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 */
},
};