aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMauro Carvalho Chehab <mchehab@redhat.com>2009-11-26 19:26:13 -0500
committerMauro Carvalho Chehab <mchehab@redhat.com>2009-12-05 15:42:17 -0500
commit694a101e6acb865f5405a95c358eea43c813cf24 (patch)
treec2499318b5c66f413d15e81d72cf55de0c1fd23d
parentfb3de0398ab1bf270bc55f66945f82e61e50f6b6 (diff)
V4L/DVB (13528): em28xx: add support for em2800 VC211A card
Adds support to VC211A em2800 card. As this board doesn't have eeprom, and uses a common set of i2c address, it has no way to add any autodetection for it. The patch were tested by me and by Raimundo on his board. Thanks to those tests, several bugs related to em2800 support were corrected. for producing the usbsnoop dump, used to get the gpio's and allowing me to remotelly access his machine and to the needed tests. Thanks-to: Raimundo Eduvirgnes de Oliveira <eduvirgens@yahoo.com.br> Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
-rw-r--r--Documentation/video4linux/CARDLIST.em28xx1
-rw-r--r--drivers/media/video/em28xx/em28xx-cards.c25
-rw-r--r--drivers/media/video/em28xx/em28xx.h1
3 files changed, 27 insertions, 0 deletions
diff --git a/Documentation/video4linux/CARDLIST.em28xx b/Documentation/video4linux/CARDLIST.em28xx
index f8ea8acdd894..0c166ff003a0 100644
--- a/Documentation/video4linux/CARDLIST.em28xx
+++ b/Documentation/video4linux/CARDLIST.em28xx
@@ -69,3 +69,4 @@
69 71 -> Silvercrest Webcam 1.3mpix (em2820/em2840) 69 71 -> Silvercrest Webcam 1.3mpix (em2820/em2840)
70 72 -> Gadmei UTV330+ (em2861) 70 72 -> Gadmei UTV330+ (em2861)
71 73 -> Reddo DVB-C USB TV Box (em2870) 71 73 -> Reddo DVB-C USB TV Box (em2870)
72 74 -> Actionmaster/LinXcel/Digitus VC211A (em2800)
diff --git a/drivers/media/video/em28xx/em28xx-cards.c b/drivers/media/video/em28xx/em28xx-cards.c
index 00bceb865a7c..ed5acc3a2b5a 100644
--- a/drivers/media/video/em28xx/em28xx-cards.c
+++ b/drivers/media/video/em28xx/em28xx-cards.c
@@ -225,6 +225,14 @@ static struct em28xx_reg_seq silvercrest_reg_seq[] = {
225 { -1, -1, -1, -1}, 225 { -1, -1, -1, -1},
226}; 226};
227 227
228static struct em28xx_reg_seq vc211a_enable[] = {
229 {EM28XX_R08_GPIO, 0xff, 0x07, 10},
230 {EM28XX_R08_GPIO, 0xff, 0x0f, 10},
231 {EM28XX_R08_GPIO, 0xff, 0x0b, 10},
232 { -1, -1, -1, -1},
233};
234
235
228/* 236/*
229 * Board definitions 237 * Board definitions
230 */ 238 */
@@ -1009,6 +1017,23 @@ struct em28xx_board em28xx_boards[] = {
1009 .amux = EM28XX_AMUX_LINE_IN, 1017 .amux = EM28XX_AMUX_LINE_IN,
1010 } }, 1018 } },
1011 }, 1019 },
1020 [EM2800_BOARD_VC211A] = {
1021 .name = "Actionmaster/LinXcel/Digitus VC211A",
1022 .is_em2800 = 1,
1023 .tuner_type = TUNER_ABSENT, /* Capture-only board */
1024 .decoder = EM28XX_SAA711X,
1025 .input = { {
1026 .type = EM28XX_VMUX_COMPOSITE1,
1027 .vmux = SAA7115_COMPOSITE0,
1028 .amux = EM28XX_AMUX_LINE_IN,
1029 .gpio = vc211a_enable,
1030 }, {
1031 .type = EM28XX_VMUX_SVIDEO,
1032 .vmux = SAA7115_SVIDEO3,
1033 .amux = EM28XX_AMUX_LINE_IN,
1034 .gpio = vc211a_enable,
1035 } },
1036 },
1012 [EM2800_BOARD_LEADTEK_WINFAST_USBII] = { 1037 [EM2800_BOARD_LEADTEK_WINFAST_USBII] = {
1013 .name = "Leadtek Winfast USB II", 1038 .name = "Leadtek Winfast USB II",
1014 .is_em2800 = 1, 1039 .is_em2800 = 1,
diff --git a/drivers/media/video/em28xx/em28xx.h b/drivers/media/video/em28xx/em28xx.h
index 166d4a6e6eaa..441df644ddbe 100644
--- a/drivers/media/video/em28xx/em28xx.h
+++ b/drivers/media/video/em28xx/em28xx.h
@@ -110,6 +110,7 @@
110#define EM2820_BOARD_SILVERCREST_WEBCAM 71 110#define EM2820_BOARD_SILVERCREST_WEBCAM 71
111#define EM2861_BOARD_GADMEI_UTV330PLUS 72 111#define EM2861_BOARD_GADMEI_UTV330PLUS 72
112#define EM2870_BOARD_REDDO_DVB_C_USB_BOX 73 112#define EM2870_BOARD_REDDO_DVB_C_USB_BOX 73
113#define EM2800_BOARD_VC211A 74
113 114
114/* Limits minimum and default number of buffers */ 115/* Limits minimum and default number of buffers */
115#define EM28XX_MIN_BUF 4 116#define EM28XX_MIN_BUF 4