]> git.karo-electronics.de Git - karo-tx-linux.git/commitdiff
pcmcia: do not request windows if you don't need to
authorDominik Brodowski <linux@dominikbrodowski.net>
Wed, 28 Jul 2010 07:32:02 +0000 (09:32 +0200)
committerDominik Brodowski <linux@dominikbrodowski.net>
Tue, 3 Aug 2010 07:04:21 +0000 (09:04 +0200)
Several drivers contained dummy code to request for memory windows,
even though they never made use of it. Remove all such code
snippets.

CC: netdev@vger.kernel.org
CC: linux-wireless@vger.kernel.org
Signed-off-by: Dominik Brodowski <linux@dominikbrodowski.net>
drivers/isdn/hisax/sedlbauer_cs.c
drivers/net/wireless/airo_cs.c
drivers/staging/comedi/drivers/ni_daq_700.c
drivers/staging/comedi/drivers/ni_daq_dio24.c
drivers/staging/comedi/drivers/ni_labpc_cs.c

index 0b06dbb2d52d9d61f3a9c8f76d0faef58914bc7b..a024192b672a3113c0e6663fc1778c5abe4ac6f2 100644 (file)
@@ -171,8 +171,6 @@ static int sedlbauer_config_check(struct pcmcia_device *p_dev,
                                  unsigned int vcc,
                                  void *priv_data)
 {
-       win_req_t *req = priv_data;
-
        if (cfg->index == 0)
                return -ENODEV;
 
@@ -219,31 +217,6 @@ static int sedlbauer_config_check(struct pcmcia_device *p_dev,
                        return -ENODEV;
        }
 
-       /*
-         Now set up a common memory window, if needed.  There is room
-         in the struct pcmcia_device structure for one memory window handle,
-         but if the base addresses need to be saved, or if multiple
-         windows are needed, the info should go in the private data
-         structure for this device.
-
-         Note that the memory window base is a physical address, and
-         needs to be mapped to virtual space with ioremap() before it
-         is used.
-       */
-       if ((cfg->mem.nwin > 0) || (dflt->mem.nwin > 0)) {
-               cistpl_mem_t *mem = (cfg->mem.nwin) ? &cfg->mem : &dflt->mem;
-               req->Attributes = WIN_DATA_WIDTH_16|WIN_MEMORY_TYPE_CM;
-               req->Attributes |= WIN_ENABLE;
-               req->Base = mem->win[0].host_addr;
-               req->Size = mem->win[0].len;
-               req->AccessSpeed = 0;
-               if (pcmcia_request_window(p_dev, req, &p_dev->win) != 0)
-                       return -ENODEV;
-
-               if (pcmcia_map_mem_page(p_dev, p_dev->win,
-                                               mem->win[0].card_addr) != 0)
-                       return -ENODEV;
-       }
        return 0;
 }
 
@@ -251,16 +224,11 @@ static int sedlbauer_config_check(struct pcmcia_device *p_dev,
 
 static int __devinit sedlbauer_config(struct pcmcia_device *link)
 {
-    win_req_t *req;
     int ret;
     IsdnCard_t  icard;
 
     dev_dbg(&link->dev, "sedlbauer_config(0x%p)\n", link);
 
-    req = kzalloc(sizeof(win_req_t), GFP_KERNEL);
-    if (!req)
-           return -ENOMEM;
-
     /*
       In this loop, we scan the CIS for configuration table entries,
       each of which describes a valid card configuration, including
@@ -273,7 +241,7 @@ static int __devinit sedlbauer_config(struct pcmcia_device *link)
       these things without consulting the CIS, and most client drivers
       will only use the CIS to fill in implementation-defined details.
     */
-    ret = pcmcia_loop_config(link, sedlbauer_config_check, req);
+    ret = pcmcia_loop_config(link, sedlbauer_config_check, NULL);
     if (ret)
            goto failed;
 
@@ -297,9 +265,6 @@ static int __devinit sedlbauer_config(struct pcmcia_device *link)
        printk(" & %pR", link->resource[0]);
     if (link->resource[1])
        printk(" & %pR", link->resource[1]);
-    if (link->win)
-       printk(", mem 0x%06lx-0x%06lx", req->Base,
-              req->Base+req->Size-1);
     printk("\n");
 
     icard.para[0] = link->irq;
index d47672cb4196f064cc62a181bd1fd68de37ad8ac..9a121a5b787cb2468005e914e81a15eee55e312f 100644 (file)
@@ -154,8 +154,6 @@ static int airo_cs_config_check(struct pcmcia_device *p_dev,
                                unsigned int vcc,
                                void *priv_data)
 {
-       win_req_t *req = priv_data;
-
        if (cfg->index == 0)
                return -ENODEV;
 
@@ -194,29 +192,6 @@ static int airo_cs_config_check(struct pcmcia_device *p_dev,
        if (pcmcia_request_io(p_dev) != 0)
                return -ENODEV;
 
-       /*
-         Now set up a common memory window, if needed.  There is room
-         in the struct pcmcia_device structure for one memory window handle,
-         but if the base addresses need to be saved, or if multiple
-         windows are needed, the info should go in the private data
-         structure for this device.
-
-         Note that the memory window base is a physical address, and
-         needs to be mapped to virtual space with ioremap() before it
-         is used.
-       */
-       if ((cfg->mem.nwin > 0) || (dflt->mem.nwin > 0)) {
-               cistpl_mem_t *mem = (cfg->mem.nwin) ? &cfg->mem : &dflt->mem;
-               req->Attributes = WIN_DATA_WIDTH_16|WIN_MEMORY_TYPE_CM;
-               req->Base = mem->win[0].host_addr;
-               req->Size = mem->win[0].len;
-               req->AccessSpeed = 0;
-               if (pcmcia_request_window(p_dev, req, &p_dev->win) != 0)
-                       return -ENODEV;
-               if (pcmcia_map_mem_page(p_dev, p_dev->win,
-                                               mem->win[0].card_addr) != 0)
-                       return -ENODEV;
-       }
        /* If we got this far, we're cool! */
        return 0;
 }
@@ -225,17 +200,12 @@ static int airo_cs_config_check(struct pcmcia_device *p_dev,
 static int airo_config(struct pcmcia_device *link)
 {
        local_info_t *dev;
-       win_req_t *req;
        int ret;
 
        dev = link->priv;
 
        dev_dbg(&link->dev, "airo_config\n");
 
-       req = kzalloc(sizeof(win_req_t), GFP_KERNEL);
-       if (!req)
-               return -ENOMEM;
-
        /*
         * In this loop, we scan the CIS for configuration table
         * entries, each of which describes a valid card
@@ -250,7 +220,7 @@ static int airo_config(struct pcmcia_device *link)
         * and most client drivers will only use the CIS to fill in
         * implementation-defined details.
         */
-       ret = pcmcia_loop_config(link, airo_cs_config_check, req);
+       ret = pcmcia_loop_config(link, airo_cs_config_check, NULL);
        if (ret)
                goto failed;
 
@@ -281,16 +251,11 @@ static int airo_config(struct pcmcia_device *link)
                printk(" & %pR", link->resource[0]);
        if (link->resource[1])
                printk(" & %pR", link->resource[1]);
-       if (link->win)
-               printk(", mem 0x%06lx-0x%06lx", req->Base,
-                      req->Base+req->Size-1);
        printk("\n");
-       kfree(req);
        return 0;
 
  failed:
        airo_release(link);
-       kfree(req);
        return -ENODEV;
 } /* airo_config */
 
index abaa40b8be7e70183e42bea64651261b8bb8a5c4..bf2e84aa03ea4a755ce069db2ceb72d460b24789 100644 (file)
@@ -555,8 +555,6 @@ static int dio700_pcmcia_config_loop(struct pcmcia_device *p_dev,
                                unsigned int vcc,
                                void *priv_data)
 {
-       win_req_t *req = priv_data;
-
        if (cfg->index == 0)
                return -ENODEV;
 
@@ -589,22 +587,6 @@ static int dio700_pcmcia_config_loop(struct pcmcia_device *p_dev,
                        return -ENODEV;
        }
 
-       if ((cfg->mem.nwin > 0) || (dflt->mem.nwin > 0)) {
-               cistpl_mem_t *mem =
-                       (cfg->mem.nwin) ? &cfg->mem : &dflt->mem;
-               req->Attributes = WIN_DATA_WIDTH_16 | WIN_MEMORY_TYPE_CM;
-               req->Attributes |= WIN_ENABLE;
-               req->Base = mem->win[0].host_addr;
-               req->Size = mem->win[0].len;
-               if (req->Size < 0x1000)
-                       req->Size = 0x1000;
-               req->AccessSpeed = 0;
-               if (pcmcia_request_window(p_dev, req, &p_dev->win))
-                       return -ENODEV;
-               if (pcmcia_map_mem_page(p_dev, p_dev->win,
-                               mem->win[0].card_addr))
-                       return -ENODEV;
-       }
        /* If we got this far, we're cool! */
        return 0;
 }
@@ -618,7 +600,7 @@ static void dio700_config(struct pcmcia_device *link)
 
        dev_dbg(&link->dev, "dio700_config\n");
 
-       ret = pcmcia_loop_config(link, dio700_pcmcia_config_loop, &req);
+       ret = pcmcia_loop_config(link, dio700_pcmcia_config_loop, NULL);
        if (ret) {
                dev_warn(&link->dev, "no configuration found\n");
                goto failed;
@@ -644,9 +626,6 @@ static void dio700_config(struct pcmcia_device *link)
                printk(", io %pR", link->resource[0]);
        if (link->resource[1])
                printk(" & %pR", link->resource[1]);
-       if (link->win)
-               printk(", mem 0x%06lx-0x%06lx", req.Base,
-                      req.Base + req.Size - 1);
        printk("\n");
 
        return;
index caccece20855e4e8b905ef48ebaa5b43836b769c..9112e70cc85661b24bb64b5fe090b4023051b3ba 100644 (file)
@@ -307,8 +307,6 @@ static int dio24_pcmcia_config_loop(struct pcmcia_device *p_dev,
                                unsigned int vcc,
                                void *priv_data)
 {
-       win_req_t *req = priv_data;
-
        if (cfg->index == 0)
                return -ENODEV;
 
@@ -341,22 +339,6 @@ static int dio24_pcmcia_config_loop(struct pcmcia_device *p_dev,
                        return -ENODEV;
        }
 
-       if ((cfg->mem.nwin > 0) || (dflt->mem.nwin > 0)) {
-               cistpl_mem_t *mem =
-                       (cfg->mem.nwin) ? &cfg->mem : &dflt->mem;
-               req->Attributes = WIN_DATA_WIDTH_16 | WIN_MEMORY_TYPE_CM;
-               req->Attributes |= WIN_ENABLE;
-               req->Base = mem->win[0].host_addr;
-               req->Size = mem->win[0].len;
-               if (req->Size < 0x1000)
-                       req->Size = 0x1000;
-               req->AccessSpeed = 0;
-               if (pcmcia_request_window(p_dev, req, &p_dev->win))
-                       return -ENODEV;
-               if (pcmcia_map_mem_page(p_dev, p_dev->win,
-                                               mem->win[0].card_addr))
-                       return -ENODEV;
-       }
        /* If we got this far, we're cool! */
        return 0;
 }
@@ -364,13 +346,12 @@ static int dio24_pcmcia_config_loop(struct pcmcia_device *p_dev,
 static void dio24_config(struct pcmcia_device *link)
 {
        int ret;
-       win_req_t req;
 
        printk(KERN_INFO "ni_daq_dio24: HOLA SOY YO! - config\n");
 
        dev_dbg(&link->dev, "dio24_config\n");
 
-       ret = pcmcia_loop_config(link, dio24_pcmcia_config_loop, &req);
+       ret = pcmcia_loop_config(link, dio24_pcmcia_config_loop, NULL);
        if (ret) {
                dev_warn(&link->dev, "no configuration found\n");
                goto failed;
@@ -396,9 +377,6 @@ static void dio24_config(struct pcmcia_device *link)
                printk(" & %pR", link->resource[0]);
        if (link->resource[1])
                printk(" & %pR", link->resource[1]);
-       if (link->win)
-               printk(", mem 0x%06lx-0x%06lx", req.Base,
-                      req.Base + req.Size - 1);
        printk("\n");
 
        return;
index 94d9f7fe6f2c07ae6c91313669675110fa7b1d4b..f204961e07867b97b1a79d0ca87b5d5f71d98aa7 100644 (file)
@@ -285,8 +285,6 @@ static int labpc_pcmcia_config_loop(struct pcmcia_device *p_dev,
                                unsigned int vcc,
                                void *priv_data)
 {
-       win_req_t *req = priv_data;
-
        if (cfg->index == 0)
                return -ENODEV;
 
@@ -319,22 +317,6 @@ static int labpc_pcmcia_config_loop(struct pcmcia_device *p_dev,
                        return -ENODEV;
        }
 
-       if ((cfg->mem.nwin > 0) || (dflt->mem.nwin > 0)) {
-               cistpl_mem_t *mem =
-                       (cfg->mem.nwin) ? &cfg->mem : &dflt->mem;
-               req->Attributes = WIN_DATA_WIDTH_16 | WIN_MEMORY_TYPE_CM;
-               req->Attributes |= WIN_ENABLE;
-               req->Base = mem->win[0].host_addr;
-               req->Size = mem->win[0].len;
-               if (req->Size < 0x1000)
-                       req->Size = 0x1000;
-               req->AccessSpeed = 0;
-               if (pcmcia_request_window(p_dev, req, &p_dev->win))
-                       return -ENODEV;
-               if (pcmcia_map_mem_page(p_dev, p_dev->win,
-                                               mem->win[0].card_addr))
-                       return -ENODEV;
-       }
        /* If we got this far, we're cool! */
        return 0;
 }
@@ -343,11 +325,10 @@ static int labpc_pcmcia_config_loop(struct pcmcia_device *p_dev,
 static void labpc_config(struct pcmcia_device *link)
 {
        int ret;
-       win_req_t req;
 
        dev_dbg(&link->dev, "labpc_config\n");
 
-       ret = pcmcia_loop_config(link, labpc_pcmcia_config_loop, &req);
+       ret = pcmcia_loop_config(link, labpc_pcmcia_config_loop, NULL);
        if (ret) {
                dev_warn(&link->dev, "no configuration found\n");
                goto failed;
@@ -373,9 +354,6 @@ static void labpc_config(struct pcmcia_device *link)
                printk(" & %pR", link->resource[0]);
        if (link->resource[1])
                printk(" & %pR", link->resource[1]);
-       if (link->win)
-               printk(", mem 0x%06lx-0x%06lx", req.Base,
-                      req.Base + req.Size - 1);
        printk("\n");
 
        return;