Honestech Vidbox NW03: Difference between revisions
Jump to navigation
Jump to search
Gareththered (talk | contribs) |
Gareththered (talk | contribs) No edit summary |
||
Line 50: | Line 50: | ||
else if ((vid >> 8) == 0x838476) |
else if ((vid >> 8) == 0x838476) |
||
dev->audio_mode.ac97 = EM28XX_AC97_SIGMATEL; |
dev->audio_mode.ac97 = EM28XX_AC97_SIGMATEL; |
||
</pre> |
|||
The second patch adds the USB Id to the driver and configures it to work with Composite and audio inputs: |
|||
<pre> |
|||
diff --git a/linux/drivers/media/video/em28xx/em28xx-cards.c b/linux/drivers/media/video/em28xx/em28xx-cards.c |
|||
index 1704da0..4f55962 100644 |
|||
--- a/linux/drivers/media/video/em28xx/em28xx-cards.c |
|||
+++ b/linux/drivers/media/video/em28xx/em28xx-cards.c |
|||
@@ -1888,6 +1888,22 @@ struct em28xx_board em28xx_boards[] = { |
|||
.has_dvb = 1, |
|||
.ir_codes = RC_MAP_PINNACLE_PCTV_HD, |
|||
}, |
|||
+ /* eb1a:5006 Honestech VIDBOX NW03 |
|||
+ * Empia EM2860, Philips SAA7113, Empia EMP202, No Tuner */ |
|||
+ [EM2860_BOARD_HT_VIDBOX_NW03] = { |
|||
+ .name = "Honestech Vidbox NW03", |
|||
+ .tuner_type = TUNER_ABSENT, |
|||
+ .decoder = EM28XX_SAA711X, |
|||
+ .input = { { |
|||
+ .type = EM28XX_VMUX_COMPOSITE1, |
|||
+ .vmux = SAA7115_COMPOSITE0, |
|||
+ .amux = EM28XX_AMUX_LINE_IN, |
|||
+ }, { |
|||
+ .type = EM28XX_VMUX_SVIDEO, |
|||
+ .vmux = SAA7115_SVIDEO3, /* S-VIDEO needs confirming */ |
|||
+ .amux = EM28XX_AMUX_LINE_IN, |
|||
+ } }, |
|||
+ }, |
|||
}; |
|||
const unsigned int em28xx_bcount = ARRAY_SIZE(em28xx_boards); |
|||
@@ -2027,6 +2043,8 @@ struct usb_device_id em28xx_id_table[] = { |
|||
.driver_info = EM28174_BOARD_PCTV_460E }, |
|||
{ USB_DEVICE(0x2040, 0x1605), |
|||
.driver_info = EM2884_BOARD_HAUPPAUGE_WINTV_HVR_930C }, |
|||
+ { USB_DEVICE(0xeb1a, 0x5006), |
|||
+ .driver_info = EM2860_BOARD_HT_VIDBOX_NW03 }, |
|||
{ }, |
|||
}; |
|||
MODULE_DEVICE_TABLE(usb, em28xx_id_table); |
|||
diff --git a/linux/drivers/media/video/em28xx/em28xx.h b/linux/drivers/media/video/em28xx/em28xx.h |
|||
index b1199ef..2dbb12c 100644 |
|||
--- a/linux/drivers/media/video/em28xx/em28xx.h |
|||
+++ b/linux/drivers/media/video/em28xx/em28xx.h |
|||
@@ -124,6 +124,7 @@ |
|||
#define EM28174_BOARD_PCTV_460E 80 |
|||
#define EM2884_BOARD_HAUPPAUGE_WINTV_HVR_930C 81 |
|||
#define EM2884_BOARD_CINERGY_HTC_STICK 82 |
|||
+#define EM2860_BOARD_HT_VIDBOX_NW03 83 |
|||
/* Limits minimum and default number of buffers */ |
|||
#define EM28XX_MIN_BUF 4 |
|||
</pre> |
</pre> |
Revision as of 14:24, 21 December 2011
A USB video and audio capture device with no tuner. It only has Composite and S-Video inputs.
Currently unsupported by Linux without patching the V4L tree. Once patched it works well with Composite input, but S-Video hasn't been tested.
Overview/Features
- Three phono (RCA jack) inputs for Composite, which use the standard Red/White/Yellow colour scheme.
- Four pin mini-DIN socket for S-Video input.
- Based on the Empia EM2860 chip, therefore uses V4L's em28xx driver.
- USB Id eb1a:5006
Components Used
Verified by opening the box:
- Empia EM2860 USB Video Capture Device.
- Empia EMP202 Dual-Channel AC'97 Codec.
- Philips SAA7113H Video Input Processor.
- BL24C02 Serial EEPROM.
Current Status
- Needs patching to work.
- After patching, works with the Composite video and audio inputs.
- S-Video input untested.
To Make It Work
There are three issues with V4L and this device:
- The EMP202 is identified as a SIGMATEL chip by the driver.
- The USB Id is not recognised by the driver.
- Once recognised, the inputs are not configured correctly.
Patching V4L
This first patch addresses the 1st issue - incorrectly identified audio chip:
diff --git a/linux/drivers/media/video/em28xx/em28xx-core.c b/linux/drivers/media/video/em28xx/em28xx-core.c index 804a4ab..2982a06 100644 --- a/linux/drivers/media/video/em28xx/em28xx-core.c +++ b/linux/drivers/media/video/em28xx/em28xx-core.c @@ -568,7 +568,7 @@ int em28xx_audio_setup(struct em28xx *dev) em28xx_warn("AC97 features = 0x%04x\n", feat); /* Try to identify what audio processor we have */ - if ((vid == 0xffffffff) && (feat == 0x6a90)) + if (((vid == 0xffffffff) || (vid == 0x83847650)) && (feat == 0x6a90)) dev->audio_mode.ac97 = EM28XX_AC97_EM202; else if ((vid >> 8) == 0x838476) dev->audio_mode.ac97 = EM28XX_AC97_SIGMATEL;
The second patch adds the USB Id to the driver and configures it to work with Composite and audio inputs:
diff --git a/linux/drivers/media/video/em28xx/em28xx-cards.c b/linux/drivers/media/video/em28xx/em28xx-cards.c index 1704da0..4f55962 100644 --- a/linux/drivers/media/video/em28xx/em28xx-cards.c +++ b/linux/drivers/media/video/em28xx/em28xx-cards.c @@ -1888,6 +1888,22 @@ struct em28xx_board em28xx_boards[] = { .has_dvb = 1, .ir_codes = RC_MAP_PINNACLE_PCTV_HD, }, + /* eb1a:5006 Honestech VIDBOX NW03 + * Empia EM2860, Philips SAA7113, Empia EMP202, No Tuner */ + [EM2860_BOARD_HT_VIDBOX_NW03] = { + .name = "Honestech Vidbox NW03", + .tuner_type = TUNER_ABSENT, + .decoder = EM28XX_SAA711X, + .input = { { + .type = EM28XX_VMUX_COMPOSITE1, + .vmux = SAA7115_COMPOSITE0, + .amux = EM28XX_AMUX_LINE_IN, + }, { + .type = EM28XX_VMUX_SVIDEO, + .vmux = SAA7115_SVIDEO3, /* S-VIDEO needs confirming */ + .amux = EM28XX_AMUX_LINE_IN, + } }, + }, }; const unsigned int em28xx_bcount = ARRAY_SIZE(em28xx_boards); @@ -2027,6 +2043,8 @@ struct usb_device_id em28xx_id_table[] = { .driver_info = EM28174_BOARD_PCTV_460E }, { USB_DEVICE(0x2040, 0x1605), .driver_info = EM2884_BOARD_HAUPPAUGE_WINTV_HVR_930C }, + { USB_DEVICE(0xeb1a, 0x5006), + .driver_info = EM2860_BOARD_HT_VIDBOX_NW03 }, { }, }; MODULE_DEVICE_TABLE(usb, em28xx_id_table); diff --git a/linux/drivers/media/video/em28xx/em28xx.h b/linux/drivers/media/video/em28xx/em28xx.h index b1199ef..2dbb12c 100644 --- a/linux/drivers/media/video/em28xx/em28xx.h +++ b/linux/drivers/media/video/em28xx/em28xx.h @@ -124,6 +124,7 @@ #define EM28174_BOARD_PCTV_460E 80 #define EM2884_BOARD_HAUPPAUGE_WINTV_HVR_930C 81 #define EM2884_BOARD_CINERGY_HTC_STICK 82 +#define EM2860_BOARD_HT_VIDBOX_NW03 83 /* Limits minimum and default number of buffers */ #define EM28XX_MIN_BUF 4