aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/net/wireless/libertas/if_cs.c
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/net/wireless/libertas/if_cs.c')
-rw-r--r--drivers/net/wireless/libertas/if_cs.c16
1 files changed, 5 insertions, 11 deletions
diff --git a/drivers/net/wireless/libertas/if_cs.c b/drivers/net/wireless/libertas/if_cs.c
index 031f3e6da3c9..2c6f28ac5197 100644
--- a/drivers/net/wireless/libertas/if_cs.c
+++ b/drivers/net/wireless/libertas/if_cs.c
@@ -794,20 +794,12 @@ static void if_cs_release(struct pcmcia_device *p_dev)
794 * insertion event. 794 * insertion event.
795 */ 795 */
796 796
797static int if_cs_ioprobe(struct pcmcia_device *p_dev, 797static int if_cs_ioprobe(struct pcmcia_device *p_dev, void *priv_data)
798 cistpl_cftable_entry_t *cfg,
799 cistpl_cftable_entry_t *dflt,
800 void *priv_data)
801{ 798{
799 p_dev->resource[0]->flags &= ~IO_DATA_PATH_WIDTH;
802 p_dev->resource[0]->flags |= IO_DATA_PATH_WIDTH_AUTO; 800 p_dev->resource[0]->flags |= IO_DATA_PATH_WIDTH_AUTO;
803 p_dev->resource[0]->start = cfg->io.win[0].base;
804 p_dev->resource[0]->end = cfg->io.win[0].len;
805 801
806 /* Do we need to allocate an interrupt? */ 802 if (p_dev->resource[1]->end) {
807 p_dev->config_flags |= CONF_ENABLE_IRQ;
808
809 /* IO window settings */
810 if (cfg->io.nwin != 1) {
811 lbs_pr_err("wrong CIS (check number of IO windows)\n"); 803 lbs_pr_err("wrong CIS (check number of IO windows)\n");
812 return -ENODEV; 804 return -ENODEV;
813 } 805 }
@@ -833,6 +825,8 @@ static int if_cs_probe(struct pcmcia_device *p_dev)
833 card->p_dev = p_dev; 825 card->p_dev = p_dev;
834 p_dev->priv = card; 826 p_dev->priv = card;
835 827
828 p_dev->config_flags |= CONF_ENABLE_IRQ | CONF_AUTO_SET_IO;
829
836 if (pcmcia_loop_config(p_dev, if_cs_ioprobe, NULL)) { 830 if (pcmcia_loop_config(p_dev, if_cs_ioprobe, NULL)) {
837 lbs_pr_err("error in pcmcia_loop_config\n"); 831 lbs_pr_err("error in pcmcia_loop_config\n");
838 goto out1; 832 goto out1;