Leadtek WinFast DTV-1800H support
A message that is not in the archive (sent off-list or not yet received): [email protected]
A message that is not in the archive (sent off-list or not yet received): [email protected]
A message that is not in the archive (sent off-list or not yet received): [email protected]
A message that is not in the archive (sent off-list or not yet received): [email protected]
A message that is not in the archive (sent off-list or not yet received): [email protected]
A message that is not in the archive (sent off-list or not yet received): [email protected]
A message that is not in the archive (sent off-list or not yet received): [email protected]
A message that is not in the archive (sent off-list or not yet received): [email protected]
PATCH 1/1 Leadtek WinFast DTV-1800H support
Hello,
Here is patch for Leadtek WinFast DTV-1800H.
It enables support for digital TV, analogue TV and radio. I have already sent it here, but as I am newbie the patch wasn't compatible with "Linux Kernel Coding Style".
That's probably the reason why the patch hasn't been pushed into the repository yet.
Now the patch meets the LKCS requirements.
(checked using: linux/scripts/checkpatch.pl)
Thanks for the advice.
I hope everything is correct now.
- Miroslav Šustek
linux/drivers/media/video/cx88/cx88-cards.c +75 -0
@@ -1967,6 +1967,47 @@ } }, .mpeg = CX88_MPEG_DVB, }, + [CX88_BOARD_WINFAST_DTV1800H] = { + .name = "Leadtek WinFast DTV1800 Hybrid", + .tuner_type = TUNER_XC2028, + .radio_type = TUNER_XC2028, + .tuner_addr = 0x61, + .radio_addr = 0x61, +/* +* GPIO setting +* +* 2: mute (0=off,1=on) +* 12: tuner reset pin +* 13: audio source (0=tuner audio,1=line in) +* 14: FM (0=on,1=off ???) +*/ + .input = {{ + .type = CX88_VMUX_TELEVISION, + .vmux = 0, + .gpio0 = 0x0400, /* pin 2 = 0 */ + .gpio1 = 0x6040, /* pin 13 = 0, pin 14 = 1 */ + .gpio2 = 0x0000, + }, { + .type = CX88_VMUX_COMPOSITE1, + .vmux = 1, + .gpio0 = 0x0400, /* pin 2 = 0 */ + .gpio1 = 0x6060, /* pin 13 = 1, pin 14 = 1 */ + .gpio2 = 0x0000, + }, { + .type = CX88_VMUX_SVIDEO, + .vmux = 2, + .gpio0 = 0x0400, /* pin 2 = 0 */ + .gpio1 = 0x6060, /* pin 13 = 1, pin 14 = 1 */ + .gpio2 = 0x0000, + } }, + .radio = { + .type = CX88_RADIO, + .gpio0 = 0x0400, /* pin 2 = 0 */ + .gpio1 = 0x6000, /* pin 13 = 0, pin 14 = 0 */ + .gpio2 = 0x0000, + }, + .mpeg = CX88_MPEG_DVB, + }, };/* ------------------------------------------------------------------ */
@@ -2376,6 +2417,10 @@ .subvendor = 0xb200, .subdevice = 0x4200, .card = CX88_BOARD_SATTRADE_ST4200, + }, { + .subvendor = 0x107d, + .subdevice = 0x6654, + .card = CX88_BOARD_WINFAST_DTV1800H, }, };
@@ -2573,6 +2618,23 @@return -EINVAL ; } +static int cx88_xc3028_winfast1800h_callback (struct cx88_core *core, +int command,int arg) +{ +switch (command) { +case XC2028_TUNER_RESET : +/* GPIO 12 (xc3028 tuner reset) */ +cx_set (MO_GP1_IO ,0x1010 ); +mdelay (50 ); +cx_clear (MO_GP1_IO ,0x10 ); +mdelay (50 ); +cx_set (MO_GP1_IO ,0x10 ); +mdelay (50 ); +return 0 ; + } +return -EINVAL ; +} +/* ------------------------------------------------------------------- */ /* some Divco specific stuff */ static int cx88_pv_8000gt_callback(struct cx88_core *core,
@@ -2645,6 +2707,8 @@case CX88_BOARD_DVICO_FUSIONHDTV_DVB_T_PRO :case CX88_BOARD_DVICO_FUSIONHDTV_5_PCI_NANO :return cx88_dvico_xc2028_callback (core, command, arg); +case CX88_BOARD_WINFAST_DTV1800H : +return cx88_xc3028_winfast1800h_callback (core, command, arg); }switch (command) {
@@ -2819,6 +2883,16 @@cx_set (MO_GP0_IO ,0x00000080 );/* 702 out of reset */ udelay (1000 );break ; + +case CX88_BOARD_WINFAST_DTV1800H : +/* GPIO 12 (xc3028 tuner reset) */ +cx_set (MO_GP1_IO ,0x1010 ); +mdelay (50 ); +cx_clear (MO_GP1_IO ,0x10 ); +mdelay (50 ); +cx_set (MO_GP1_IO ,0x10 ); +mdelay (50 ); +break ; } }
@@ -2839,6 +2913,7 @@ core->i2c_algo.udelay =16 ;break ;case CX88_BOARD_DVICO_FUSIONHDTV_DVB_T_PRO : +case CX88_BOARD_WINFAST_DTV1800H : ctl->demod =XC3028_FE_ZARLINK456 ;break ;case CX88_BOARD_KWORLD_ATSC_120 :
linux/drivers/media/video/cx88/cx88-dvb.c +1 -0
@@ -965,6 +965,7 @@ }break ;case CX88_BOARD_PINNACLE_HYBRID_PCTV : +case CX88_BOARD_WINFAST_DTV1800H : fe0->dvb.frontend =dvb_attach (zl10353_attach, &cx88_pinnacle_hybrid_pctv, &core->i2c_adap);
linux/drivers/media/video/cx88/cx88-input.c +2 -0
@@ -93,6 +93,7 @@ gpio=(gpio &0x7fd ) + (auxgpio &0xef );break ;case CX88_BOARD_WINFAST_DTV1000 : +case CX88_BOARD_WINFAST_DTV1800H : gpio = (gpio &0x6ff ) | ((cx_read (MO_GP1_IO ) <<8 ) &0x900 ); auxgpio = gpio;break ;
@@ -244,6 +245,7 @@ ir->sampling =1 ;break ;case CX88_BOARD_WINFAST_DTV2000H : +case CX88_BOARD_WINFAST_DTV1800H : ir_codes = ir_codes_winfast; ir->gpio_addr =MO_GP0_IO ; ir->mask_keycode =0x8f8 ;
linux/drivers/media/video/cx88/cx88.h +1 -0
@@ -232,6 +232,7 @@#define CX88_BOARD_SATTRADE_ST4200 76#define CX88_BOARD_TBS_8910 77#define CX88_BOARD_PROF_6200 78 +#define CX88_BOARD_WINFAST_DTV1800H 79enum cx88_itype {CX88_VMUX_COMPOSITE1 =1 ,
_______________________________________________
linux-dvb mailing list
[email protected]
http://www.linuxtv.org/cgi-bin/mailman/listinfo/linux-dvb
Quoted 10 lines · Miroslav Šustek
Hello,
Here is patch for Leadtek WinFast DTV-1800H.
It enables support for digital TV, analogue TV and radio. I have already sent it here, but as I am newbie the patch wasn't compatible with "Linux Kernel Coding Style".That's probably the reason why the patch hasn't been pushed into the repository yet.
Likely something much more benign -- simply overlooked or hasn't been spotted yet ... (I believe Mauro is pretty busy recently and, in general, traffic on the lists is way down :( ).
Quoted 5 lines
Now the patch meets the LKCS requirements.
(checked using:linux/scripts/checkpatch.pl)Thanks for the advice.
I hope everything is correct now.
Mauro will want you to add your "signed of by " ... for further details
see: http://linuxtv.org/hg/v4l-dvb/file/0f7686e28ff5/README.patches
_______________________________________________
linux-dvb mailing list
[email protected]
http://www.linuxtv.org/cgi-bin/mailman/listinfo/linux-dvb
Quoted 16 lines · CityK
Quoted 10 lines · Miroslav Šustek
Hello,
Here is patch for Leadtek WinFast DTV-1800H.
It enables support for digital TV, analogue TV and radio. I have already sent it here, but as I am newbie the patch wasn't compatible with "Linux Kernel Coding Style".That's probably the reason why the patch hasn't been pushed into the repository yet.
Likely something much more benign -- simply overlooked or hasn't been spotted yet ... (I believe Mauro is pretty busy recently and, in general, traffic on the lists is way down :( ).
Quoted 9 lines
Quoted 5 lines
Now the patch meets the LKCS requirements.
(checked using:linux/scripts/checkpatch.pl)Thanks for the advice.
I hope everything is correct now.Mauro will want you to add your "signed of by " ... for further details
see: http://linuxtv.org/hg/v4l-dvb/file/0f7686e28ff5/README.patches
New (signed) patch attached.
Third time and last time. :)
Adds Support for Leadtek WinFast DTV-1800H
From: Miroslav Sustek <[email protected]>
linux/drivers/media/video/cx88/cx88-cards.c +75 -0
@@ -1967,6 +1967,47 @@ } }, .mpeg = CX88_MPEG_DVB, }, + [CX88_BOARD_WINFAST_DTV1800H] = { + .name = "Leadtek WinFast DTV1800 Hybrid", + .tuner_type = TUNER_XC2028, + .radio_type = TUNER_XC2028, + .tuner_addr = 0x61, + .radio_addr = 0x61, +/* +* GPIO setting +* +* 2: mute (0=off,1=on) +* 12: tuner reset pin +* 13: audio source (0=tuner audio,1=line in) +* 14: FM (0=on,1=off ???) +*/ + .input = {{ + .type = CX88_VMUX_TELEVISION, + .vmux = 0, + .gpio0 = 0x0400, /* pin 2 = 0 */ + .gpio1 = 0x6040, /* pin 13 = 0, pin 14 = 1 */ + .gpio2 = 0x0000, + }, { + .type = CX88_VMUX_COMPOSITE1, + .vmux = 1, + .gpio0 = 0x0400, /* pin 2 = 0 */ + .gpio1 = 0x6060, /* pin 13 = 1, pin 14 = 1 */ + .gpio2 = 0x0000, + }, { + .type = CX88_VMUX_SVIDEO, + .vmux = 2, + .gpio0 = 0x0400, /* pin 2 = 0 */ + .gpio1 = 0x6060, /* pin 13 = 1, pin 14 = 1 */ + .gpio2 = 0x0000, + } }, + .radio = { + .type = CX88_RADIO, + .gpio0 = 0x0400, /* pin 2 = 0 */ + .gpio1 = 0x6000, /* pin 13 = 0, pin 14 = 0 */ + .gpio2 = 0x0000, + }, + .mpeg = CX88_MPEG_DVB, + }, };/* ------------------------------------------------------------------ */
@@ -2376,6 +2417,10 @@ .subvendor = 0xb200, .subdevice = 0x4200, .card = CX88_BOARD_SATTRADE_ST4200, + }, { + .subvendor = 0x107d, + .subdevice = 0x6654, + .card = CX88_BOARD_WINFAST_DTV1800H, }, };
@@ -2573,6 +2618,23 @@return -EINVAL ; } +static int cx88_xc3028_winfast1800h_callback (struct cx88_core *core, +int command,int arg) +{ +switch (command) { +case XC2028_TUNER_RESET : +/* GPIO 12 (xc3028 tuner reset) */ +cx_set (MO_GP1_IO ,0x1010 ); +mdelay (50 ); +cx_clear (MO_GP1_IO ,0x10 ); +mdelay (50 ); +cx_set (MO_GP1_IO ,0x10 ); +mdelay (50 ); +return 0 ; + } +return -EINVAL ; +} +/* ------------------------------------------------------------------- */ /* some Divco specific stuff */ static int cx88_pv_8000gt_callback(struct cx88_core *core,
@@ -2645,6 +2707,8 @@case CX88_BOARD_DVICO_FUSIONHDTV_DVB_T_PRO :case CX88_BOARD_DVICO_FUSIONHDTV_5_PCI_NANO :return cx88_dvico_xc2028_callback (core, command, arg); +case CX88_BOARD_WINFAST_DTV1800H : +return cx88_xc3028_winfast1800h_callback (core, command, arg); }switch (command) {
@@ -2819,6 +2883,16 @@cx_set (MO_GP0_IO ,0x00000080 );/* 702 out of reset */ udelay (1000 );break ; + +case CX88_BOARD_WINFAST_DTV1800H : +/* GPIO 12 (xc3028 tuner reset) */ +cx_set (MO_GP1_IO ,0x1010 ); +mdelay (50 ); +cx_clear (MO_GP1_IO ,0x10 ); +mdelay (50 ); +cx_set (MO_GP1_IO ,0x10 ); +mdelay (50 ); +break ; } }
@@ -2839,6 +2913,7 @@ core->i2c_algo.udelay =16 ;break ;case CX88_BOARD_DVICO_FUSIONHDTV_DVB_T_PRO : +case CX88_BOARD_WINFAST_DTV1800H : ctl->demod =XC3028_FE_ZARLINK456 ;break ;case CX88_BOARD_KWORLD_ATSC_120 :
linux/drivers/media/video/cx88/cx88-dvb.c +1 -0
@@ -965,6 +965,7 @@ }break ;case CX88_BOARD_PINNACLE_HYBRID_PCTV : +case CX88_BOARD_WINFAST_DTV1800H : fe0->dvb.frontend =dvb_attach (zl10353_attach, &cx88_pinnacle_hybrid_pctv, &core->i2c_adap);
linux/drivers/media/video/cx88/cx88-input.c +2 -0
@@ -93,6 +93,7 @@ gpio=(gpio &0x7fd ) + (auxgpio &0xef );break ;case CX88_BOARD_WINFAST_DTV1000 : +case CX88_BOARD_WINFAST_DTV1800H : gpio = (gpio &0x6ff ) | ((cx_read (MO_GP1_IO ) <<8 ) &0x900 ); auxgpio = gpio;break ;
@@ -244,6 +245,7 @@ ir->sampling =1 ;break ;case CX88_BOARD_WINFAST_DTV2000H : +case CX88_BOARD_WINFAST_DTV1800H : ir_codes = ir_codes_winfast; ir->gpio_addr =MO_GP0_IO ; ir->mask_keycode =0x8f8 ;
linux/drivers/media/video/cx88/cx88.h +1 -0
@@ -232,6 +232,7 @@#define CX88_BOARD_SATTRADE_ST4200 76#define CX88_BOARD_TBS_8910 77#define CX88_BOARD_PROF_6200 78 +#define CX88_BOARD_WINFAST_DTV1800H 79enum cx88_itype {CX88_VMUX_COMPOSITE1 =1 ,
_______________________________________________
linux-dvb mailing list
[email protected]
http://www.linuxtv.org/cgi-bin/mailman/listinfo/linux-dvb