diff -Naur saa7134/Makefile saa7134.2/Makefile --- saa7134/Makefile 2007-07-09 01:32:17.000000000 +0200 +++ saa7134.2/Makefile 2007-07-21 16:51:58.000000000 +0200 @@ -9,7 +9,7 @@ obj-$(CONFIG_VIDEO_SAA7134_ALSA) += saa7134-alsa.o obj-$(CONFIG_VIDEO_SAA7134_OSS) += saa7134-oss.o -obj-$(CONFIG_VIDEO_SAA7134_DVB) += saa7134-dvb.o +#obj-$(CONFIG_VIDEO_SAA7134_DVB) += saa7134-dvb.o EXTRA_CFLAGS += -Idrivers/media/video EXTRA_CFLAGS += -Idrivers/media/dvb/dvb-core diff -Naur saa7134/saa7134-cards.c saa7134.2/saa7134-cards.c --- saa7134/saa7134-cards.c 2007-07-09 01:32:17.000000000 +0200 +++ saa7134.2/saa7134-cards.c 2007-07-21 16:51:58.000000000 +0200 @@ -3502,6 +3502,39 @@ .amux = TV, }, }, + [SAA7134_BOARD_AVERMEDIA_CARDBUS_PLUS] = { + /* hayova@gmail.com */ + .name = "AVerMedia Cardbus Plus", + .audio_clock = 0x187de7, + .tuner_type = TUNER_ALPS_TSBE5_PAL, + .radio_type = TUNER_TEA5767, + .tuner_addr = 0x61, + .radio_addr = 0x60, + .tda9887_conf = TDA9887_PRESENT, + .gpiomask = 0x0C400003, + .inputs = {{ + .name = name_tv, + .vmux = 1, + .amux = TV, + .tv = 1, + .gpio = 0x0C400001, + },{ + .name = name_comp1, + .vmux = 3, + .amux = LINE1, + .gpio = 0x0C400002, + },{ + .name = name_svideo, + .vmux = 6, + .amux = LINE1, + .gpio = 0x0C400002, + }}, + .radio = { + .name = name_radio, + .amux = LINE2, + .gpio = 0x04400001, + }, + }, }; const unsigned int saa7134_bcount = ARRAY_SIZE(saa7134_boards); @@ -4257,6 +4290,13 @@ .subdevice = PCI_ANY_ID, .driver_data = SAA7134_BOARD_UNKNOWN, },{ + /* AVerMedia CardBus Plus */ + .vendor = PCI_VENDOR_ID_PHILIPS, + .device = PCI_DEVICE_ID_PHILIPS_SAA7134, + .subvendor = 0x1461, /* Avermedia Technologies Inc */ + .subdevice = 0xb7e9, + .driver_data = SAA7134_BOARD_AVERMEDIA_CARDBUS_PLUS, + },{ /* --- end of list --- */ } }; @@ -4404,6 +4444,13 @@ saa_andorl(SAA7134_GPIO_GPMODE0 >> 2, 0x8c040007, 0x8c040007); saa_andorl(SAA7134_GPIO_GPSTATUS0 >> 2, 0x0c0007cd, 0x0c0007cd); break; + case SAA7134_BOARD_AVERMEDIA_CARDBUS_PLUS: + /* power-up tuner chip */ + saa_andorl(SAA7134_GPIO_GPMODE0 >> 2, 0x0C440003, 0x0C440003); + saa_andorl(SAA7134_GPIO_GPSTATUS0 >> 2, 0x0C400000, 0x0C400000); + dev->has_remote = SAA7134_REMOTE_GPIO; + msleep(1); + break; } return 0; } diff -Naur saa7134/saa7134.h saa7134.2/saa7134.h --- saa7134/saa7134.h 2007-07-09 01:32:17.000000000 +0200 +++ saa7134.2/saa7134.h 2007-07-21 16:52:52.000000000 +0200 @@ -42,7 +42,7 @@ #include #include #if defined(CONFIG_VIDEO_BUF_DVB) || defined(CONFIG_VIDEO_BUF_DVB_MODULE) -#include +//#include #endif #define UNSET (-1U) @@ -238,6 +238,7 @@ #define SAA7134_BOARD_ECS_TVP3XP_4CB6 113 #define SAA7134_BOARD_KWORLD_DVBT_210 114 #define SAA7134_BOARD_SABRENT_TV_PCB05 115 +#define SAA7134_BOARD_AVERMEDIA_CARDBUS_PLUS 116 #define SAA7134_MAXBOARDS 8 #define SAA7134_INPUT_MAX 8 @@ -540,8 +541,8 @@ #if defined(CONFIG_VIDEO_BUF_DVB) || defined(CONFIG_VIDEO_BUF_DVB_MODULE) /* SAA7134_MPEG_DVB only */ - struct videobuf_dvb dvb; - int (*original_demod_sleep)(struct dvb_frontend* fe); +// struct videobuf_dvb dvb; +// int (*original_demod_sleep)(struct dvb_frontend* fe); #endif }; diff -Naur saa7134/saa7134-input.c saa7134.2/saa7134-input.c --- saa7134/saa7134-input.c 2007-07-09 01:32:17.000000000 +0200 +++ saa7134.2/saa7134-input.c 2007-07-21 16:51:58.000000000 +0200 @@ -333,6 +333,15 @@ mask_keyup = 0x040000; polling = 50; // ms break; + case SAA7134_BOARD_AVERMEDIA_CARDBUS_PLUS: + ir_codes = ir_codes_gotview7135; + mask_keycode = 0x0007C8; + mask_keydown = 0x000010; + polling = 50; // ms + /* Set GPIO pin2 to high to enable the IR controller */ + saa_setb(SAA7134_GPIO_GPMODE0, 0x4); + saa_setb(SAA7134_GPIO_GPSTATUS0, 0x4); + break; } if (NULL == ir_codes) { printk("%s: Oops: IR config error [card=%d]\n",