Shows up now, but doesnt load the frontend :/ DVB: registering new adapter (dm1105) dm1105 0000:00:08.0: MAC ff:ff:ff:ff:ff:ff dm1105 0000:00:08.0: could not attach frontend 00:08.0 Ethernet controller: Unknown device 195d:1105 (rev 10) Subsystem: Unknown device 195d:1105 Control: I/O+ Mem+ BusMaster- SpecCycle- MemWINV+ VGASnoop- ParErr- Stepping- SERR- FastB2B- Status: Cap- 66MHz- UDF- FastB2B- ParErr- DEVSEL=medium >TAbort- <TAbort- <MAbort- >SERR- <PERR- Interrupt: pin A routed to IRQ 11 Region 0: I/O ports at 9400 [size=256] > I wrote code to support card with subsystem/device 195d/1105, but no one reported success, so I > decided to not include it in commit :( > > It was more then one year ago > > http://liplianin.at.tut.by/dvblipl.tar.bz2 > > http://liplianin.at.tut.by/ds110en.html > -- > Igor M. Liplianin > Microsoft Windows Free Zone - Linux used for all Computing Tasks >
diff -Naur s2-liplianin-org/linux/drivers/media/dvb/dm1105/dm1105.c s2-liplianin/linux/drivers/media/dvb/dm1105/dm1105.c --- s2-liplianin-org/linux/drivers/media/dvb/dm1105/dm1105.c 2009-04-04 15:25:28.000000000 +1300 +++ s2-liplianin/linux/drivers/media/dvb/dm1105/dm1105.c 2009-04-04 16:59:20.000000000 +1300 @@ -54,12 +54,21 @@ #ifndef PCI_DEVICE_ID_DM1105 #define PCI_DEVICE_ID_DM1105 0x036f #endif +#ifndef PCI_DEVICE_ID_DM1105S +#define PCI_DEVICE_ID_DM1105S 0x1105 +#endif +#ifndef PCI_VENDOR_ID_AXESS +#define PCI_VENDOR_ID_AXESS 0x195d +#endif #ifndef PCI_DEVICE_ID_DW2002 #define PCI_DEVICE_ID_DW2002 0x2002 #endif #ifndef PCI_DEVICE_ID_DW2004 #define PCI_DEVICE_ID_DW2004 0x2004 #endif +#ifndef PCI_DEVICE_ID_DM05 +#define PCI_DEVICE_ID_DM05 0x1105 +#endif /* ----------------------------------------------- */ /* sdmc dm1105 registers */ @@ -150,6 +159,11 @@ #define DM1105_LNB_13V 0x00010100 #define DM1105_LNB_18V 0x00000100 +/* GPIO's for LNB power control for Axess DM05 - EXPERIMENTAL!*/ +#define DM05_LNB_MASK 0xfffffffc +#define DM05_LNB_13V 0x3fffd +#define DM05_LNB_18V 0x3fffc + static int ir_debug; module_param(ir_debug, int, 0644); MODULE_PARM_DESC(ir_debug, "enable debugging information for IR decoding"); @@ -316,7 +330,8 @@ static int dm1105dvb_set_voltage(struct dvb_frontend *fe, fe_sec_voltage_t voltage) { struct dm1105dvb *dm1105dvb = frontend_to_dm1105dvb(fe); - + switch (dm1105dvb->pdev->subsystem_device){ + case PCI_DEVICE_ID_DW2002: if (voltage == SEC_VOLTAGE_18) { outl(DM1105_LNB_MASK, dm_io_mem(DM1105_GPIOCTR)); outl(DM1105_LNB_18V, dm_io_mem(DM1105_GPIOVAL)); @@ -325,7 +340,19 @@ outl(DM1105_LNB_MASK, dm_io_mem(DM1105_GPIOCTR)); outl(DM1105_LNB_13V, dm_io_mem(DM1105_GPIOVAL)); } - + break; + + case PCI_DEVICE_ID_DM05: + if (voltage == SEC_VOLTAGE_18) { + outl(DM05_LNB_MASK, dm_io_mem(DM1105_GPIOCTR)); + outl(DM05_LNB_18V, dm_io_mem(DM1105_GPIOVAL)); + }else { + /*LNB ON-13V by default!*/ + outl(DM05_LNB_MASK, dm_io_mem(DM1105_GPIOCTR)); + outl(DM05_LNB_13V, dm_io_mem(DM1105_GPIOVAL)); + } + break; + } return 0; } @@ -632,6 +659,7 @@ dm1105dvb_set_voltage; } break; + case PCI_DEVICE_ID_DW2004: dm1105dvb->fe = dvb_attach( cx24116_attach, &serit_sp2633_config, @@ -870,6 +898,11 @@ .subvendor = PCI_ANY_ID, .subdevice = PCI_DEVICE_ID_DW2004, }, { + .vendor = PCI_VENDOR_ID_AXESS, + .device = PCI_DEVICE_ID_DM1105S, + .subvendor = PCI_ANY_ID, + .subdevice = PCI_DEVICE_ID_DM05, + }, { /* empty */ }, };