* [PATCH] em28xx: Add entry for GADMEI UTV330+ and related IR codec
@ 2009-08-20 17:54 Shine Liu
2009-08-20 18:12 ` Devin Heitmueller
0 siblings, 1 reply; 6+ messages in thread
From: Shine Liu @ 2009-08-20 17:54 UTC (permalink / raw)
To: linux-media
Patch to support for the GADMEI UTV330+ board. IR codec this board is
also added.
Based and tested on linux-2.6.31-rc6
Signed-off-by: Shine Liu <shinel@foxmail.com>
-----------------------------------------------------------------------
--- a/drivers/media/video/em28xx/em28xx-cards.c 2009-08-14 06:43:34.000000000 +0800
+++ b/drivers/media/video/em28xx/em28xx-cards.c 2009-08-21 01:31:23.000000000 +0800
@@ -558,6 +558,28 @@
.amux = EM28XX_AMUX_LINE_IN,
} },
},
+ [EM2861_BOARD_GADMEI_UTV330PLUS] = {
+ .name = "Gadmei UTV330+",
+ .valid = EM28XX_BOARD_NOT_VALIDATED,
+ .tuner_type = TUNER_TNF_5335MF,
+ .tda9887_conf = TDA9887_PRESENT,
+ .ir_codes = ir_codes_gadimei_rm008z,
+ .decoder = EM28XX_SAA711X,
+ .xclk = EM28XX_XCLK_FREQUENCY_12MHZ,
+ .input = { {
+ .type = EM28XX_VMUX_TELEVISION,
+ .vmux = SAA7115_COMPOSITE2,
+ .amux = EM28XX_AMUX_VIDEO,
+ }, {
+ .type = EM28XX_VMUX_COMPOSITE1,
+ .vmux = SAA7115_COMPOSITE0,
+ .amux = EM28XX_AMUX_LINE_IN,
+ }, {
+ .type = EM28XX_VMUX_SVIDEO,
+ .vmux = SAA7115_SVIDEO3,
+ .amux = EM28XX_AMUX_LINE_IN,
+ } },
+ },
[EM2860_BOARD_TERRATEC_HYBRID_XS] = {
.name = "Terratec Cinergy A Hybrid XS",
.valid = EM28XX_BOARD_NOT_VALIDATED,
@@ -1551,7 +1573,7 @@
{ USB_DEVICE(0xeb1a, 0x2860),
.driver_info = EM2820_BOARD_UNKNOWN },
{ USB_DEVICE(0xeb1a, 0x2861),
- .driver_info = EM2820_BOARD_UNKNOWN },
+ .driver_info = EM2861_BOARD_GADMEI_UTV330PLUS },
{ USB_DEVICE(0xeb1a, 0x2870),
.driver_info = EM2820_BOARD_UNKNOWN },
{ USB_DEVICE(0xeb1a, 0x2881),
--- a/drivers/media/video/em28xx/em28xx.h 2009-08-14 06:43:34.000000000 +0800
+++ b/drivers/media/video/em28xx/em28xx.h 2009-08-21 01:32:16.000000000 +0800
@@ -108,6 +108,7 @@
#define EM2882_BOARD_KWORLD_ATSC_315U 69
#define EM2882_BOARD_EVGA_INDTUBE 70
#define EM2820_BOARD_SILVERCREST_WEBCAM 71
+#define EM2861_BOARD_GADMEI_UTV330PLUS 72
/* Limits minimum and default number of buffers */
#define EM28XX_MIN_BUF 4
--- a/drivers/media/common/ir-keymaps.c 2009-08-14 06:43:34.000000000 +0800
+++ b/drivers/media/common/ir-keymaps.c 2009-08-21 01:38:25.000000000 +0800
@@ -2773,3 +2773,46 @@
[0x13] = KEY_CAMERA,
};
EXPORT_SYMBOL_GPL(ir_codes_evga_indtube);
+
+/* GADMEI UTV330+ RM008Z remote
+ Shine Liu <shinel@foxmail.com>
+ */
+IR_KEYTAB_TYPE ir_codes_gadmei_rm008z[IR_KEYTAB_SIZE] = {
+ [ 0x14 ] = KEY_ESC, /* POWER OFF */
+ [ 0x0c ] = KEY_M, /* MUTE */
+
+ [ 0x18 ] = KEY_PLAY, /* TV */
+ [ 0x0e ] = KEY_VIDEO, /* AV */
+ [ 0x0b ] = KEY_AUDIO, /* SV */
+ [ 0x0f ] = KEY_RADIO, /* FM */
+
+ [ 0x00 ] = KEY_1,
+ [ 0x01 ] = KEY_2,
+ [ 0x02 ] = KEY_3,
+ [ 0x03 ] = KEY_4,
+ [ 0x04 ] = KEY_5,
+ [ 0x05 ] = KEY_6,
+ [ 0x06 ] = KEY_7,
+ [ 0x07 ] = KEY_8,
+ [ 0x08 ] = KEY_9,
+ [ 0x09 ] = KEY_0,
+ [ 0x0a ] = KEY_D, /* OSD */
+ [ 0x1c ] = KEY_BACKSPACE, /* LAST */
+
+ [ 0x0d ] = KEY_PLAY, /* PLAY */
+ [ 0x1e ] = KEY_S, /* SNAPSHOT */
+ [ 0x1a ] = KEY_RECORD, /* RECORD */
+ [ 0x17 ] = KEY_STOP, /* STOP */
+
+ [ 0x1f ] = KEY_UP, /* UP */
+ [ 0x44 ] = KEY_DOWN, /* DOWN */
+ [ 0x46 ] = KEY_TAB, /* BACK */
+ [ 0x4a ] = KEY_F, /* FULLSECREEN */
+
+ [ 0x10 ] = KEY_RIGHT, /* VOLUMEUP */
+ [ 0x11 ] = KEY_LEFT, /* VOLUMEDOWN */
+ [ 0x12 ] = KEY_UP, /* CHANNELUP */
+ [ 0x13 ] = KEY_DOWN, /* CHANNELDOWN */
+ [ 0x15 ] = KEY_ENTER, /* OK */
+};
+EXPORT_SYMBOL_GPL(ir_codes_gadmei_rm008z);
--- a/include/media/ir-common.h 2009-08-14 06:43:34.000000000 +0800
+++ b/include/media/ir-common.h 2009-08-21 01:41:01.000000000 +0800
@@ -163,6 +163,7 @@
extern IR_KEYTAB_TYPE ir_codes_kaiomy[IR_KEYTAB_SIZE];
extern IR_KEYTAB_TYPE ir_codes_dm1105_nec[IR_KEYTAB_SIZE];
extern IR_KEYTAB_TYPE ir_codes_evga_indtube[IR_KEYTAB_SIZE];
+extern IR_KEYTAB_TYPE ir_codes_gadmei_rm008z[IR_KEYTAB_SIZE];
#endif
--- a/Documentation/video4linux/CARDLIST.em28xx 2009-08-14 06:43:34.000000000 +0800
+++ b/Documentation/video4linux/CARDLIST.em28xx 2009-08-21 01:45:35.000000000 +0800
@@ -67,3 +67,4 @@
69 -> KWorld ATSC 315U HDTV TV Box (em2882) [eb1a:a313]
70 -> Evga inDtube (em2882)
71 -> Silvercrest Webcam 1.3mpix (em2820/em2840)
+ 72 -> Gadmei UTV330+ (em2861) [eb1a:2861]
^ permalink raw reply [flat|nested] 6+ messages in thread* Re: [PATCH] em28xx: Add entry for GADMEI UTV330+ and related IR codec
2009-08-20 17:54 [PATCH] em28xx: Add entry for GADMEI UTV330+ and related IR codec Shine Liu
@ 2009-08-20 18:12 ` Devin Heitmueller
2009-08-20 18:39 ` Shine Liu
2009-08-20 18:45 ` Shine Liu
0 siblings, 2 replies; 6+ messages in thread
From: Devin Heitmueller @ 2009-08-20 18:12 UTC (permalink / raw)
To: Shine Liu; +Cc: linux-media
On Thu, Aug 20, 2009 at 1:54 PM, Shine Liu<shinel@foxmail.com> wrote:
> Patch to support for the GADMEI UTV330+ board. IR codec this board is
> also added.
>
> Based and tested on linux-2.6.31-rc6
>
>
> Signed-off-by: Shine Liu <shinel@foxmail.com>
> -----------------------------------------------------------------------
>
> --- a/drivers/media/video/em28xx/em28xx-cards.c 2009-08-14 06:43:34.000000000 +0800
> +++ b/drivers/media/video/em28xx/em28xx-cards.c 2009-08-21 01:31:23.000000000 +0800
> @@ -558,6 +558,28 @@
> .amux = EM28XX_AMUX_LINE_IN,
> } },
> },
> + [EM2861_BOARD_GADMEI_UTV330PLUS] = {
> + .name = "Gadmei UTV330+",
> + .valid = EM28XX_BOARD_NOT_VALIDATED,
> + .tuner_type = TUNER_TNF_5335MF,
> + .tda9887_conf = TDA9887_PRESENT,
> + .ir_codes = ir_codes_gadimei_rm008z,
> + .decoder = EM28XX_SAA711X,
> + .xclk = EM28XX_XCLK_FREQUENCY_12MHZ,
> + .input = { {
> + .type = EM28XX_VMUX_TELEVISION,
> + .vmux = SAA7115_COMPOSITE2,
> + .amux = EM28XX_AMUX_VIDEO,
> + }, {
> + .type = EM28XX_VMUX_COMPOSITE1,
> + .vmux = SAA7115_COMPOSITE0,
> + .amux = EM28XX_AMUX_LINE_IN,
> + }, {
> + .type = EM28XX_VMUX_SVIDEO,
> + .vmux = SAA7115_SVIDEO3,
> + .amux = EM28XX_AMUX_LINE_IN,
> + } },
> + },
> [EM2860_BOARD_TERRATEC_HYBRID_XS] = {
> .name = "Terratec Cinergy A Hybrid XS",
> .valid = EM28XX_BOARD_NOT_VALIDATED,
> @@ -1551,7 +1573,7 @@
> { USB_DEVICE(0xeb1a, 0x2860),
> .driver_info = EM2820_BOARD_UNKNOWN },
> { USB_DEVICE(0xeb1a, 0x2861),
> - .driver_info = EM2820_BOARD_UNKNOWN },
> + .driver_info = EM2861_BOARD_GADMEI_UTV330PLUS },
> { USB_DEVICE(0xeb1a, 0x2870),
> .driver_info = EM2820_BOARD_UNKNOWN },
> { USB_DEVICE(0xeb1a, 0x2881),
> --- a/drivers/media/video/em28xx/em28xx.h 2009-08-14 06:43:34.000000000 +0800
> +++ b/drivers/media/video/em28xx/em28xx.h 2009-08-21 01:32:16.000000000 +0800
> @@ -108,6 +108,7 @@
> #define EM2882_BOARD_KWORLD_ATSC_315U 69
> #define EM2882_BOARD_EVGA_INDTUBE 70
> #define EM2820_BOARD_SILVERCREST_WEBCAM 71
> +#define EM2861_BOARD_GADMEI_UTV330PLUS 72
>
> /* Limits minimum and default number of buffers */
> #define EM28XX_MIN_BUF 4
> --- a/drivers/media/common/ir-keymaps.c 2009-08-14 06:43:34.000000000 +0800
> +++ b/drivers/media/common/ir-keymaps.c 2009-08-21 01:38:25.000000000 +0800
> @@ -2773,3 +2773,46 @@
> [0x13] = KEY_CAMERA,
> };
> EXPORT_SYMBOL_GPL(ir_codes_evga_indtube);
> +
> +/* GADMEI UTV330+ RM008Z remote
> + Shine Liu <shinel@foxmail.com>
> + */
> +IR_KEYTAB_TYPE ir_codes_gadmei_rm008z[IR_KEYTAB_SIZE] = {
> + [ 0x14 ] = KEY_ESC, /* POWER OFF */
> + [ 0x0c ] = KEY_M, /* MUTE */
> +
> + [ 0x18 ] = KEY_PLAY, /* TV */
> + [ 0x0e ] = KEY_VIDEO, /* AV */
> + [ 0x0b ] = KEY_AUDIO, /* SV */
> + [ 0x0f ] = KEY_RADIO, /* FM */
> +
> + [ 0x00 ] = KEY_1,
> + [ 0x01 ] = KEY_2,
> + [ 0x02 ] = KEY_3,
> + [ 0x03 ] = KEY_4,
> + [ 0x04 ] = KEY_5,
> + [ 0x05 ] = KEY_6,
> + [ 0x06 ] = KEY_7,
> + [ 0x07 ] = KEY_8,
> + [ 0x08 ] = KEY_9,
> + [ 0x09 ] = KEY_0,
> + [ 0x0a ] = KEY_D, /* OSD */
> + [ 0x1c ] = KEY_BACKSPACE, /* LAST */
> +
> + [ 0x0d ] = KEY_PLAY, /* PLAY */
> + [ 0x1e ] = KEY_S, /* SNAPSHOT */
> + [ 0x1a ] = KEY_RECORD, /* RECORD */
> + [ 0x17 ] = KEY_STOP, /* STOP */
> +
> + [ 0x1f ] = KEY_UP, /* UP */
> + [ 0x44 ] = KEY_DOWN, /* DOWN */
> + [ 0x46 ] = KEY_TAB, /* BACK */
> + [ 0x4a ] = KEY_F, /* FULLSECREEN */
> +
> + [ 0x10 ] = KEY_RIGHT, /* VOLUMEUP */
> + [ 0x11 ] = KEY_LEFT, /* VOLUMEDOWN */
> + [ 0x12 ] = KEY_UP, /* CHANNELUP */
> + [ 0x13 ] = KEY_DOWN, /* CHANNELDOWN */
> + [ 0x15 ] = KEY_ENTER, /* OK */
> +};
> +EXPORT_SYMBOL_GPL(ir_codes_gadmei_rm008z);
> --- a/include/media/ir-common.h 2009-08-14 06:43:34.000000000 +0800
> +++ b/include/media/ir-common.h 2009-08-21 01:41:01.000000000 +0800
> @@ -163,6 +163,7 @@
> extern IR_KEYTAB_TYPE ir_codes_kaiomy[IR_KEYTAB_SIZE];
> extern IR_KEYTAB_TYPE ir_codes_dm1105_nec[IR_KEYTAB_SIZE];
> extern IR_KEYTAB_TYPE ir_codes_evga_indtube[IR_KEYTAB_SIZE];
> +extern IR_KEYTAB_TYPE ir_codes_gadmei_rm008z[IR_KEYTAB_SIZE];
>
> #endif
>
> --- a/Documentation/video4linux/CARDLIST.em28xx 2009-08-14 06:43:34.000000000 +0800
> +++ b/Documentation/video4linux/CARDLIST.em28xx 2009-08-21 01:45:35.000000000 +0800
> @@ -67,3 +67,4 @@
> 69 -> KWorld ATSC 315U HDTV TV Box (em2882) [eb1a:a313]
> 70 -> Evga inDtube (em2882)
> 71 -> Silvercrest Webcam 1.3mpix (em2820/em2840)
> + 72 -> Gadmei UTV330+ (em2861) [eb1a:2861]
Hello Shine,
This patch has a problem. Your change makes it so that any device
that uses the default Empia USB ID will become the Gademi board, which
will cause breakage.
When vendors don't assign their own USB ID, we rely on either the
eeprom has or i2c_hash field to make the assignment. You will need to
add an entry to the i2c_hash list in order for your patch to be
accepted upstream.
Also, you have the .valid field set to indicate the board is not
validated. Since presumably you have tested the product with your
patch, this field should not be set.
Once those two issues are addressed, I don't see any reason this can't
be accepted upstream.
Cheers,
Devin
--
Devin J. Heitmueller - Kernel Labs
http://www.kernellabs.com
^ permalink raw reply [flat|nested] 6+ messages in thread* Re: [PATCH] em28xx: Add entry for GADMEI UTV330+ and related IR codec
2009-08-20 18:12 ` Devin Heitmueller
@ 2009-08-20 18:39 ` Shine Liu
2009-08-20 18:45 ` Shine Liu
1 sibling, 0 replies; 6+ messages in thread
From: Shine Liu @ 2009-08-20 18:39 UTC (permalink / raw)
To: Devin Heitmueller; +Cc: linux-media
>
> Hello Shine,
>
> This patch has a problem. Your change makes it so that any device
> that uses the default Empia USB ID will become the Gademi board, which
> will cause breakage.
>
> When vendors don't assign their own USB ID, we rely on either the
> eeprom has or i2c_hash field to make the assignment. You will need to
> add an entry to the i2c_hash list in order for your patch to be
> accepted upstream.
>
> Also, you have the .valid field set to indicate the board is not
> validated. Since presumably you have tested the product with your
> patch, this field should not be set.
>
> Once those two issues are addressed, I don't see any reason this can't
> be accepted upstream.
>
> Cheers,
>
> Devin
>
>
Hi Devin,
Thanks for your suggestion. From the dmesg, I got the information:
em28xx #0: Board i2c devicelist hash is 0x4ba50080
I've regenerated the patch used the i2c hash value 0x4ba50080.
Best regard,
Shine
Signed-off-by: Shine Liu <shinel@foxmail.com>
-----------------------------------------------------------
--- a/drivers/media/video/em28xx/em28xx-cards.c 2009-08-14 06:43:34.000000000 +0800
+++ b/drivers/media/video/em28xx/em28xx-cards.c 2009-08-21 01:31:23.000000000 +0800
@@ -558,6 +558,27 @@
.amux = EM28XX_AMUX_LINE_IN,
} },
},
+ [EM2861_BOARD_GADMEI_UTV330PLUS] = {
+ .name = "Gadmei UTV330+",
+ .tuner_type = TUNER_TNF_5335MF,
+ .tda9887_conf = TDA9887_PRESENT,
+ .ir_codes = ir_codes_gadimei_rm008z,
+ .decoder = EM28XX_SAA711X,
+ .xclk = EM28XX_XCLK_FREQUENCY_12MHZ,
+ .input = { {
+ .type = EM28XX_VMUX_TELEVISION,
+ .vmux = SAA7115_COMPOSITE2,
+ .amux = EM28XX_AMUX_VIDEO,
+ }, {
+ .type = EM28XX_VMUX_COMPOSITE1,
+ .vmux = SAA7115_COMPOSITE0,
+ .amux = EM28XX_AMUX_LINE_IN,
+ }, {
+ .type = EM28XX_VMUX_SVIDEO,
+ .vmux = SAA7115_SVIDEO3,
+ .amux = EM28XX_AMUX_LINE_IN,
+ } },
+ },
[EM2860_BOARD_TERRATEC_HYBRID_XS] = {
.name = "Terratec Cinergy A Hybrid XS",
.valid = EM28XX_BOARD_NOT_VALIDATED,
@@ -1665,6 +1686,7 @@
{0xf51200e3, EM2800_BOARD_VGEAR_POCKETTV, TUNER_LG_PAL_NEW_TAPC},
{0x1ba50080, EM2860_BOARD_SAA711X_REFERENCE_DESIGN, TUNER_ABSENT},
{0xc51200e3, EM2820_BOARD_GADMEI_TVR200, TUNER_LG_PAL_NEW_TAPC},
+ {0x4ba50080, EM2861_BOARD_GADMEI_UTV330PLUS, TUNER_TNF_5335MF},
};
/* I2C possible address to saa7115, tvp5150, msp3400, tvaudio */
--- a/drivers/media/video/em28xx/em28xx.h 2009-08-14 06:43:34.000000000 +0800
+++ b/drivers/media/video/em28xx/em28xx.h 2009-08-21 01:32:16.000000000 +0800
@@ -108,6 +108,7 @@
#define EM2882_BOARD_KWORLD_ATSC_315U 69
#define EM2882_BOARD_EVGA_INDTUBE 70
#define EM2820_BOARD_SILVERCREST_WEBCAM 71
+#define EM2861_BOARD_GADMEI_UTV330PLUS 72
/* Limits minimum and default number of buffers */
#define EM28XX_MIN_BUF 4
--- a/drivers/media/common/ir-keymaps.c 2009-08-14 06:43:34.000000000 +0800
+++ b/drivers/media/common/ir-keymaps.c 2009-08-21 01:38:25.000000000 +0800
@@ -2773,3 +2773,46 @@
[0x13] = KEY_CAMERA,
};
EXPORT_SYMBOL_GPL(ir_codes_evga_indtube);
+
+/* GADMEI UTV330+ RM008Z remote
+ Shine Liu <shinel@foxmail.com>
+ */
+IR_KEYTAB_TYPE ir_codes_gadmei_rm008z[IR_KEYTAB_SIZE] = {
+ [ 0x14 ] = KEY_ESC, /* POWER OFF */
+ [ 0x0c ] = KEY_M, /* MUTE */
+
+ [ 0x18 ] = KEY_PLAY, /* TV */
+ [ 0x0e ] = KEY_VIDEO, /* AV */
+ [ 0x0b ] = KEY_AUDIO, /* SV */
+ [ 0x0f ] = KEY_RADIO, /* FM */
+
+ [ 0x00 ] = KEY_1,
+ [ 0x01 ] = KEY_2,
+ [ 0x02 ] = KEY_3,
+ [ 0x03 ] = KEY_4,
+ [ 0x04 ] = KEY_5,
+ [ 0x05 ] = KEY_6,
+ [ 0x06 ] = KEY_7,
+ [ 0x07 ] = KEY_8,
+ [ 0x08 ] = KEY_9,
+ [ 0x09 ] = KEY_0,
+ [ 0x0a ] = KEY_D, /* OSD */
+ [ 0x1c ] = KEY_BACKSPACE, /* LAST */
+
+ [ 0x0d ] = KEY_PLAY, /* PLAY */
+ [ 0x1e ] = KEY_S, /* SNAPSHOT */
+ [ 0x1a ] = KEY_RECORD, /* RECORD */
+ [ 0x17 ] = KEY_STOP, /* STOP */
+
+ [ 0x1f ] = KEY_UP, /* UP */
+ [ 0x44 ] = KEY_DOWN, /* DOWN */
+ [ 0x46 ] = KEY_TAB, /* BACK */
+ [ 0x4a ] = KEY_F, /* FULLSECREEN */
+
+ [ 0x10 ] = KEY_RIGHT, /* VOLUMEUP */
+ [ 0x11 ] = KEY_LEFT, /* VOLUMEDOWN */
+ [ 0x12 ] = KEY_UP, /* CHANNELUP */
+ [ 0x13 ] = KEY_DOWN, /* CHANNELDOWN */
+ [ 0x15 ] = KEY_ENTER, /* OK */
+};
+EXPORT_SYMBOL_GPL(ir_codes_gadmei_rm008z);
--- a/include/media/ir-common.h 2009-08-14 06:43:34.000000000 +0800
+++ b/include/media/ir-common.h 2009-08-21 01:41:01.000000000 +0800
@@ -163,6 +163,7 @@
extern IR_KEYTAB_TYPE ir_codes_kaiomy[IR_KEYTAB_SIZE];
extern IR_KEYTAB_TYPE ir_codes_dm1105_nec[IR_KEYTAB_SIZE];
extern IR_KEYTAB_TYPE ir_codes_evga_indtube[IR_KEYTAB_SIZE];
+extern IR_KEYTAB_TYPE ir_codes_gadmei_rm008z[IR_KEYTAB_SIZE];
#endif
--- a/Documentation/video4linux/CARDLIST.em28xx 2009-08-14 06:43:34.000000000 +0800
+++ b/Documentation/video4linux/CARDLIST.em28xx 2009-08-21 01:45:35.000000000 +0800
@@ -67,3 +67,4 @@
69 -> KWorld ATSC 315U HDTV TV Box (em2882) [eb1a:a313]
70 -> Evga inDtube (em2882)
71 -> Silvercrest Webcam 1.3mpix (em2820/em2840)
+ 72 -> Gadmei UTV330+ (em2861) [eb1a:2861]
^ permalink raw reply [flat|nested] 6+ messages in thread* Re: [PATCH] em28xx: Add entry for GADMEI UTV330+ and related IR codec
2009-08-20 18:12 ` Devin Heitmueller
2009-08-20 18:39 ` Shine Liu
@ 2009-08-20 18:45 ` Shine Liu
2009-08-20 18:49 ` Devin Heitmueller
1 sibling, 1 reply; 6+ messages in thread
From: Shine Liu @ 2009-08-20 18:45 UTC (permalink / raw)
To: Devin Heitmueller; +Cc: linux-media
Hi Devin,
Thanks for your suggestion. From the dmesg, I got the information:
em28xx #0: Board i2c devicelist hash is 0x4ba50080
I've regenerated the patch used the i2c hash value 0x4ba50080.
|-------------------------------------------------------------------|
|Sorry for the last wrong mail, "ir_codes_gadimei_rm008z" should be |
|"ir_codes_gadmei_rm008z". This patch is correct. |
|-------------------------------------------------------------------|
Best regard,
Shine
Signed-off-by: Shine Liu <shinel@foxmail.com>
-----------------------------------------------------------
--- a/drivers/media/video/em28xx/em28xx-cards.c 2009-08-14 06:43:34.000000000 +0800
+++ b/drivers/media/video/em28xx/em28xx-cards.c 2009-08-21 01:31:23.000000000 +0800
@@ -558,6 +558,27 @@
.amux = EM28XX_AMUX_LINE_IN,
} },
},
+ [EM2861_BOARD_GADMEI_UTV330PLUS] = {
+ .name = "Gadmei UTV330+",
+ .tuner_type = TUNER_TNF_5335MF,
+ .tda9887_conf = TDA9887_PRESENT,
+ .ir_codes = ir_codes_gadmei_rm008z,
+ .decoder = EM28XX_SAA711X,
+ .xclk = EM28XX_XCLK_FREQUENCY_12MHZ,
+ .input = { {
+ .type = EM28XX_VMUX_TELEVISION,
+ .vmux = SAA7115_COMPOSITE2,
+ .amux = EM28XX_AMUX_VIDEO,
+ }, {
+ .type = EM28XX_VMUX_COMPOSITE1,
+ .vmux = SAA7115_COMPOSITE0,
+ .amux = EM28XX_AMUX_LINE_IN,
+ }, {
+ .type = EM28XX_VMUX_SVIDEO,
+ .vmux = SAA7115_SVIDEO3,
+ .amux = EM28XX_AMUX_LINE_IN,
+ } },
+ },
[EM2860_BOARD_TERRATEC_HYBRID_XS] = {
.name = "Terratec Cinergy A Hybrid XS",
.valid = EM28XX_BOARD_NOT_VALIDATED,
@@ -1665,6 +1686,7 @@
{0xf51200e3, EM2800_BOARD_VGEAR_POCKETTV, TUNER_LG_PAL_NEW_TAPC},
{0x1ba50080, EM2860_BOARD_SAA711X_REFERENCE_DESIGN, TUNER_ABSENT},
{0xc51200e3, EM2820_BOARD_GADMEI_TVR200, TUNER_LG_PAL_NEW_TAPC},
+ {0x4ba50080, EM2861_BOARD_GADMEI_UTV330PLUS, TUNER_TNF_5335MF},
};
/* I2C possible address to saa7115, tvp5150, msp3400, tvaudio */
--- a/drivers/media/video/em28xx/em28xx.h 2009-08-14 06:43:34.000000000 +0800
+++ b/drivers/media/video/em28xx/em28xx.h 2009-08-21 01:32:16.000000000 +0800
@@ -108,6 +108,7 @@
#define EM2882_BOARD_KWORLD_ATSC_315U 69
#define EM2882_BOARD_EVGA_INDTUBE 70
#define EM2820_BOARD_SILVERCREST_WEBCAM 71
+#define EM2861_BOARD_GADMEI_UTV330PLUS 72
/* Limits minimum and default number of buffers */
#define EM28XX_MIN_BUF 4
--- a/drivers/media/common/ir-keymaps.c 2009-08-14 06:43:34.000000000 +0800
+++ b/drivers/media/common/ir-keymaps.c 2009-08-21 01:38:25.000000000 +0800
@@ -2773,3 +2773,46 @@
[0x13] = KEY_CAMERA,
};
EXPORT_SYMBOL_GPL(ir_codes_evga_indtube);
+
+/* GADMEI UTV330+ RM008Z remote
+ Shine Liu <shinel@foxmail.com>
+ */
+IR_KEYTAB_TYPE ir_codes_gadmei_rm008z[IR_KEYTAB_SIZE] = {
+ [ 0x14 ] = KEY_ESC, /* POWER OFF */
+ [ 0x0c ] = KEY_M, /* MUTE */
+
+ [ 0x18 ] = KEY_PLAY, /* TV */
+ [ 0x0e ] = KEY_VIDEO, /* AV */
+ [ 0x0b ] = KEY_AUDIO, /* SV */
+ [ 0x0f ] = KEY_RADIO, /* FM */
+
+ [ 0x00 ] = KEY_1,
+ [ 0x01 ] = KEY_2,
+ [ 0x02 ] = KEY_3,
+ [ 0x03 ] = KEY_4,
+ [ 0x04 ] = KEY_5,
+ [ 0x05 ] = KEY_6,
+ [ 0x06 ] = KEY_7,
+ [ 0x07 ] = KEY_8,
+ [ 0x08 ] = KEY_9,
+ [ 0x09 ] = KEY_0,
+ [ 0x0a ] = KEY_D, /* OSD */
+ [ 0x1c ] = KEY_BACKSPACE, /* LAST */
+
+ [ 0x0d ] = KEY_PLAY, /* PLAY */
+ [ 0x1e ] = KEY_S, /* SNAPSHOT */
+ [ 0x1a ] = KEY_RECORD, /* RECORD */
+ [ 0x17 ] = KEY_STOP, /* STOP */
+
+ [ 0x1f ] = KEY_UP, /* UP */
+ [ 0x44 ] = KEY_DOWN, /* DOWN */
+ [ 0x46 ] = KEY_TAB, /* BACK */
+ [ 0x4a ] = KEY_F, /* FULLSECREEN */
+
+ [ 0x10 ] = KEY_RIGHT, /* VOLUMEUP */
+ [ 0x11 ] = KEY_LEFT, /* VOLUMEDOWN */
+ [ 0x12 ] = KEY_UP, /* CHANNELUP */
+ [ 0x13 ] = KEY_DOWN, /* CHANNELDOWN */
+ [ 0x15 ] = KEY_ENTER, /* OK */
+};
+EXPORT_SYMBOL_GPL(ir_codes_gadmei_rm008z);
--- a/include/media/ir-common.h 2009-08-14 06:43:34.000000000 +0800
+++ b/include/media/ir-common.h 2009-08-21 01:41:01.000000000 +0800
@@ -163,6 +163,7 @@
extern IR_KEYTAB_TYPE ir_codes_kaiomy[IR_KEYTAB_SIZE];
extern IR_KEYTAB_TYPE ir_codes_dm1105_nec[IR_KEYTAB_SIZE];
extern IR_KEYTAB_TYPE ir_codes_evga_indtube[IR_KEYTAB_SIZE];
+extern IR_KEYTAB_TYPE ir_codes_gadmei_rm008z[IR_KEYTAB_SIZE];
#endif
--- a/Documentation/video4linux/CARDLIST.em28xx 2009-08-14 06:43:34.000000000 +0800
+++ b/Documentation/video4linux/CARDLIST.em28xx 2009-08-21 01:45:35.000000000 +0800
@@ -67,3 +67,4 @@
69 -> KWorld ATSC 315U HDTV TV Box (em2882) [eb1a:a313]
70 -> Evga inDtube (em2882)
71 -> Silvercrest Webcam 1.3mpix (em2820/em2840)
+ 72 -> Gadmei UTV330+ (em2861) [eb1a:2861]
^ permalink raw reply [flat|nested] 6+ messages in thread* Re: [PATCH] em28xx: Add entry for GADMEI UTV330+ and related IR codec
2009-08-20 18:45 ` Shine Liu
@ 2009-08-20 18:49 ` Devin Heitmueller
0 siblings, 0 replies; 6+ messages in thread
From: Devin Heitmueller @ 2009-08-20 18:49 UTC (permalink / raw)
To: Shine Liu; +Cc: linux-media
On Thu, Aug 20, 2009 at 2:45 PM, Shine Liu<shinel@foxmail.com> wrote:
>
>
> Hi Devin,
>
> Thanks for your suggestion. From the dmesg, I got the information:
>
> em28xx #0: Board i2c devicelist hash is 0x4ba50080
>
> I've regenerated the patch used the i2c hash value 0x4ba50080.
>
> |-------------------------------------------------------------------|
> |Sorry for the last wrong mail, "ir_codes_gadimei_rm008z" should be |
> |"ir_codes_gadmei_rm008z". This patch is correct. |
> |-------------------------------------------------------------------|
>
> Best regard,
>
> Shine
Looks good to me:
Reviewed-by: Devin Heitmueller <dheitmueller@kernellabs.com>
Devin
--
Devin J. Heitmueller - Kernel Labs
http://www.kernellabs.com
^ permalink raw reply [flat|nested] 6+ messages in thread
* [PATCH] em28xx: Add entry for GADMEI UTV330+ and related IR codec
@ 2009-08-20 18:03 Shine Liu
0 siblings, 0 replies; 6+ messages in thread
From: Shine Liu @ 2009-08-20 18:03 UTC (permalink / raw)
To: linux-media
Patch to support for the GADMEI UTV330+ board. IR codec this board is
also added.
Based and tested on linux-2.6.31-rc6
Signed-off-by: Shine Liu <shinel@foxmail.com>
-----------------------------------------------------------------------
--- a/drivers/media/video/em28xx/em28xx-cards.c 2009-08-14 06:43:34.000000000 +0800
+++ b/drivers/media/video/em28xx/em28xx-cards.c 2009-08-21 01:31:23.000000000 +0800
@@ -558,6 +558,28 @@
.amux = EM28XX_AMUX_LINE_IN,
} },
},
+ [EM2861_BOARD_GADMEI_UTV330PLUS] = {
+ .name = "Gadmei UTV330+",
+ .valid = EM28XX_BOARD_NOT_VALIDATED,
+ .tuner_type = TUNER_TNF_5335MF,
+ .tda9887_conf = TDA9887_PRESENT,
+ .ir_codes = ir_codes_gadimei_rm008z,
+ .decoder = EM28XX_SAA711X,
+ .xclk = EM28XX_XCLK_FREQUENCY_12MHZ,
+ .input = { {
+ .type = EM28XX_VMUX_TELEVISION,
+ .vmux = SAA7115_COMPOSITE2,
+ .amux = EM28XX_AMUX_VIDEO,
+ }, {
+ .type = EM28XX_VMUX_COMPOSITE1,
+ .vmux = SAA7115_COMPOSITE0,
+ .amux = EM28XX_AMUX_LINE_IN,
+ }, {
+ .type = EM28XX_VMUX_SVIDEO,
+ .vmux = SAA7115_SVIDEO3,
+ .amux = EM28XX_AMUX_LINE_IN,
+ } },
+ },
[EM2860_BOARD_TERRATEC_HYBRID_XS] = {
.name = "Terratec Cinergy A Hybrid XS",
.valid = EM28XX_BOARD_NOT_VALIDATED,
@@ -1551,7 +1573,7 @@
{ USB_DEVICE(0xeb1a, 0x2860),
.driver_info = EM2820_BOARD_UNKNOWN },
{ USB_DEVICE(0xeb1a, 0x2861),
- .driver_info = EM2820_BOARD_UNKNOWN },
+ .driver_info = EM2861_BOARD_GADMEI_UTV330PLUS },
{ USB_DEVICE(0xeb1a, 0x2870),
.driver_info = EM2820_BOARD_UNKNOWN },
{ USB_DEVICE(0xeb1a, 0x2881),
--- a/drivers/media/video/em28xx/em28xx.h 2009-08-14 06:43:34.000000000 +0800
+++ b/drivers/media/video/em28xx/em28xx.h 2009-08-21 01:32:16.000000000 +0800
@@ -108,6 +108,7 @@
#define EM2882_BOARD_KWORLD_ATSC_315U 69
#define EM2882_BOARD_EVGA_INDTUBE 70
#define EM2820_BOARD_SILVERCREST_WEBCAM 71
+#define EM2861_BOARD_GADMEI_UTV330PLUS 72
/* Limits minimum and default number of buffers */
#define EM28XX_MIN_BUF 4
--- a/drivers/media/common/ir-keymaps.c 2009-08-14 06:43:34.000000000 +0800
+++ b/drivers/media/common/ir-keymaps.c 2009-08-21 01:38:25.000000000 +0800
@@ -2773,3 +2773,46 @@
[0x13] = KEY_CAMERA,
};
EXPORT_SYMBOL_GPL(ir_codes_evga_indtube);
+
+/* GADMEI UTV330+ RM008Z remote
+ Shine Liu <shinel@foxmail.com>
+ */
+IR_KEYTAB_TYPE ir_codes_gadmei_rm008z[IR_KEYTAB_SIZE] = {
+ [ 0x14 ] = KEY_ESC, /* POWER OFF */
+ [ 0x0c ] = KEY_M, /* MUTE */
+
+ [ 0x18 ] = KEY_PLAY, /* TV */
+ [ 0x0e ] = KEY_VIDEO, /* AV */
+ [ 0x0b ] = KEY_AUDIO, /* SV */
+ [ 0x0f ] = KEY_RADIO, /* FM */
+
+ [ 0x00 ] = KEY_1,
+ [ 0x01 ] = KEY_2,
+ [ 0x02 ] = KEY_3,
+ [ 0x03 ] = KEY_4,
+ [ 0x04 ] = KEY_5,
+ [ 0x05 ] = KEY_6,
+ [ 0x06 ] = KEY_7,
+ [ 0x07 ] = KEY_8,
+ [ 0x08 ] = KEY_9,
+ [ 0x09 ] = KEY_0,
+ [ 0x0a ] = KEY_D, /* OSD */
+ [ 0x1c ] = KEY_BACKSPACE, /* LAST */
+
+ [ 0x0d ] = KEY_PLAY, /* PLAY */
+ [ 0x1e ] = KEY_S, /* SNAPSHOT */
+ [ 0x1a ] = KEY_RECORD, /* RECORD */
+ [ 0x17 ] = KEY_STOP, /* STOP */
+
+ [ 0x1f ] = KEY_UP, /* UP */
+ [ 0x44 ] = KEY_DOWN, /* DOWN */
+ [ 0x46 ] = KEY_TAB, /* BACK */
+ [ 0x4a ] = KEY_F, /* FULLSECREEN */
+
+ [ 0x10 ] = KEY_RIGHT, /* VOLUMEUP */
+ [ 0x11 ] = KEY_LEFT, /* VOLUMEDOWN */
+ [ 0x12 ] = KEY_UP, /* CHANNELUP */
+ [ 0x13 ] = KEY_DOWN, /* CHANNELDOWN */
+ [ 0x15 ] = KEY_ENTER, /* OK */
+};
+EXPORT_SYMBOL_GPL(ir_codes_gadmei_rm008z);
--- a/include/media/ir-common.h 2009-08-14 06:43:34.000000000 +0800
+++ b/include/media/ir-common.h 2009-08-21 01:41:01.000000000 +0800
@@ -163,6 +163,7 @@
extern IR_KEYTAB_TYPE ir_codes_kaiomy[IR_KEYTAB_SIZE];
extern IR_KEYTAB_TYPE ir_codes_dm1105_nec[IR_KEYTAB_SIZE];
extern IR_KEYTAB_TYPE ir_codes_evga_indtube[IR_KEYTAB_SIZE];
+extern IR_KEYTAB_TYPE ir_codes_gadmei_rm008z[IR_KEYTAB_SIZE];
#endif
--- a/Documentation/video4linux/CARDLIST.em28xx 2009-08-14 06:43:34.000000000 +0800
+++ b/Documentation/video4linux/CARDLIST.em28xx 2009-08-21 01:45:35.000000000 +0800
@@ -67,3 +67,4 @@
69 -> KWorld ATSC 315U HDTV TV Box (em2882) [eb1a:a313]
70 -> Evga inDtube (em2882)
71 -> Silvercrest Webcam 1.3mpix (em2820/em2840)
+ 72 -> Gadmei UTV330+ (em2861) [eb1a:2861]
^ permalink raw reply [flat|nested] 6+ messages in thread
end of thread, other threads:[~2009-08-20 18:49 UTC | newest]
Thread overview: 6+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2009-08-20 17:54 [PATCH] em28xx: Add entry for GADMEI UTV330+ and related IR codec Shine Liu
2009-08-20 18:12 ` Devin Heitmueller
2009-08-20 18:39 ` Shine Liu
2009-08-20 18:45 ` Shine Liu
2009-08-20 18:49 ` Devin Heitmueller
-- strict thread matches above, loose matches on Subject: below --
2009-08-20 18:03 Shine Liu
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox