aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/isdn/hisax/teles_cs.c
diff options
context:
space:
mode:
authorDominik Brodowski <linux@dominikbrodowski.net>2010-07-30 07:13:46 -0400
committerDominik Brodowski <linux@dominikbrodowski.net>2010-09-29 11:20:24 -0400
commit00990e7ce0b0e596fe41d9c64d6933ea70084003 (patch)
tree189e0dd92860feba84231c66955749574cac5d6d /drivers/isdn/hisax/teles_cs.c
parent440eed43e2a95bb842488755683716814da10f2b (diff)
pcmcia: use autoconfiguration feature for ioports and iomem
When CONF_AUTO_SET_IO or CONF_AUTO_SET_IOMEM are set, the corresponding fields in struct pcmcia_device *p_dev->resource[0,1,2] are set accordinly. Drivers wishing to override certain settings may do so in the callback function, but they no longer need to parse the CIS entries stored in cistpl_cftable_entry_t themselves. CC: netdev@vger.kernel.org CC: linux-wireless@vger.kernel.org CC: linux-ide@vger.kernel.org CC: linux-usb@vger.kernel.org CC: laforge@gnumonks.org CC: linux-mtd@lists.infradead.org CC: linux-bluetooth@vger.kernel.org CC: alsa-devel@alsa-project.org CC: linux-serial@vger.kernel.org CC: Jiri Kosina <jkosina@suse.cz> CC: linux-scsi@vger.kernel.org Tested-by: Wolfram Sang <w.sang@pengutronix.de> Signed-off-by: Dominik Brodowski <linux@dominikbrodowski.net>
Diffstat (limited to 'drivers/isdn/hisax/teles_cs.c')
-rw-r--r--drivers/isdn/hisax/teles_cs.c16
1 files changed, 6 insertions, 10 deletions
diff --git a/drivers/isdn/hisax/teles_cs.c b/drivers/isdn/hisax/teles_cs.c
index 6605480aa37..05a5631963b 100644
--- a/drivers/isdn/hisax/teles_cs.c
+++ b/drivers/isdn/hisax/teles_cs.c
@@ -105,10 +105,7 @@ static int __devinit teles_probe(struct pcmcia_device *link)
105 and attributes of IO windows) are fixed by the nature of the 105 and attributes of IO windows) are fixed by the nature of the
106 device, and can be hard-wired here. 106 device, and can be hard-wired here.
107 */ 107 */
108 link->resource[0]->end = 96; 108 link->config_flags |= CONF_ENABLE_IRQ | CONF_AUTO_SET_IO;
109 link->resource[0]->flags |= IO_DATA_PATH_WIDTH_AUTO;
110
111 link->config_flags |= CONF_ENABLE_IRQ;
112 109
113 return teles_cs_config(link); 110 return teles_cs_config(link);
114} /* teles_attach */ 111} /* teles_attach */
@@ -142,18 +139,17 @@ static void __devexit teles_detach(struct pcmcia_device *link)
142 139
143======================================================================*/ 140======================================================================*/
144 141
145static int teles_cs_configcheck(struct pcmcia_device *p_dev, 142static int teles_cs_configcheck(struct pcmcia_device *p_dev, void *priv_data)
146 cistpl_cftable_entry_t *cf,
147 cistpl_cftable_entry_t *dflt,
148 void *priv_data)
149{ 143{
150 int j; 144 int j;
151 145
152 p_dev->io_lines = 5; 146 p_dev->io_lines = 5;
147 p_dev->resource[0]->end = 96;
148 p_dev->resource[0]->flags &= IO_DATA_PATH_WIDTH;
149 p_dev->resource[0]->flags |= IO_DATA_PATH_WIDTH_AUTO;
153 150
154 if ((cf->io.nwin > 0) && cf->io.win[0].base) { 151 if ((p_dev->resource[0]->end) && p_dev->resource[0]->start) {
155 printk(KERN_INFO "(teles_cs: looks like the 96 model)\n"); 152 printk(KERN_INFO "(teles_cs: looks like the 96 model)\n");
156 p_dev->resource[0]->start = cf->io.win[0].base;
157 if (!pcmcia_request_io(p_dev)) 153 if (!pcmcia_request_io(p_dev))
158 return 0; 154 return 0;
159 } else { 155 } else {