diff mbox

SDMC DM1105N not being detected

Message ID e6ac15e50904032117l650e939agb578cf6db58949b4@mail.gmail.com (mailing list archive)
State Not Applicable
Headers show

Commit Message

mp3geek April 4, 2009, 4:17 a.m. UTC
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 mbox

Patch

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