ipw->request_common_memory.Size = 0x1000;
        ipw->request_common_memory.AccessSpeed = 0;
 
-       ret = pcmcia_request_window(&p_dev, &ipw->request_common_memory,
+       ret = pcmcia_request_window(p_dev, &ipw->request_common_memory,
                                &ipw->handle_common_memory);
 
        if (ret != 0)
        ipw->request_attr_memory.Size = 0;      /* this used to be 0x1000 */
        ipw->request_attr_memory.AccessSpeed = 0;
 
-       ret = pcmcia_request_window(&p_dev, &ipw->request_attr_memory,
+       ret = pcmcia_request_window(p_dev, &ipw->request_attr_memory,
                                &ipw->handle_attr_memory);
 
        if (ret != 0)
 
                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)
+               if (pcmcia_request_window(p_dev, req, &p_dev->win) != 0)
                        return -ENODEV;
                map.Page = 0;
                map.CardOffset = mem->win[0].card_addr;
 
                int ret;
                DEBUG(2, "requesting window with size = %dKiB memspeed = %d",
                      req.Size >> 10, req.AccessSpeed);
-               ret = pcmcia_request_window(&link, &req, &link->win);
+               ret = pcmcia_request_window(link, &req, &link->win);
                DEBUG(2, "ret = %d dev->win_size = %d", ret, dev->win_size);
                if(ret) {
                        req.Size >>= 1;
 
     req.Attributes = WIN_DATA_WIDTH_8|WIN_MEMORY_TYPE_AM|WIN_ENABLE;
     req.Base = 0; req.Size = 0;
     req.AccessSpeed = 0;
-    i = pcmcia_request_window(&link, &req, &link->win);
+    i = pcmcia_request_window(link, &req, &link->win);
     if (i != 0)
        return -1;
 
     req.Attributes = WIN_DATA_WIDTH_8|WIN_MEMORY_TYPE_AM|WIN_ENABLE;
     req.Base = 0; req.Size = 0;
     req.AccessSpeed = 0;
-    i = pcmcia_request_window(&link, &req, &link->win);
+    i = pcmcia_request_window(link, &req, &link->win);
     if (i != 0)
        return -1;
 
 
     req.Base = 0; 
     req.Size = 0x2000;
     req.AccessSpeed = 250;
-    ret = pcmcia_request_window(&link, &req, &link->win);
+    ret = pcmcia_request_window(link, &req, &link->win);
     if (ret)
            goto failed;
 
     req.Base = 0;
     req.Size = sramsize * 1024;
     req.AccessSpeed = 250;
-    ret = pcmcia_request_window(&link, &req, &info->sram_win_handle);
+    ret = pcmcia_request_window(link, &req, &info->sram_win_handle);
     if (ret)
            goto failed;
 
 
     req.Attributes = WIN_DATA_WIDTH_8|WIN_MEMORY_TYPE_AM|WIN_ENABLE;
     req.Base = 0; req.Size = 0;
     req.AccessSpeed = 0;
-    i = pcmcia_request_window(&link, &req, &link->win);
+    i = pcmcia_request_window(link, &req, &link->win);
     if (i != 0)
        return NULL;
 
     req.Attributes |= WIN_USE_WAIT;
     req.Base = 0; req.Size = window_size;
     req.AccessSpeed = mem_speed;
-    ret = pcmcia_request_window(&link, &req, &link->win);
+    ret = pcmcia_request_window(link, &req, &link->win);
     if (ret)
            goto failed;
 
 
     req.Attributes = WIN_DATA_WIDTH_8|WIN_MEMORY_TYPE_AM|WIN_ENABLE;
     req.Base = req.Size = 0;
     req.AccessSpeed = 0;
-    i = pcmcia_request_window(&link, &req, &link->win);
+    i = pcmcia_request_window(link, &req, &link->win);
     if (i != 0)
            return -ENODEV;
 
 
        req.Attributes = WIN_DATA_WIDTH_8|WIN_MEMORY_TYPE_AM|WIN_ENABLE;
        req.Base = req.Size = 0;
        req.AccessSpeed = 0;
-       if ((err = pcmcia_request_window(&link, &req, &link->win)))
+       if ((err = pcmcia_request_window(link, &req, &link->win)))
            goto config_error;
 
        local->dingo_ccr = ioremap(req.Base,0x1000) + 0x0800;
 
                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)
+               if (pcmcia_request_window(p_dev, req, &p_dev->win) != 0)
                        return -ENODEV;
                map.Page = 0;
                map.CardOffset = mem->win[0].card_addr;
 
        win.Base = 0;
        win.Size = SSB_CORE_SIZE;
        win.AccessSpeed = 250;
-       res = pcmcia_request_window(&dev, &win, &dev->win);
+       res = pcmcia_request_window(dev, &win, &dev->win);
        if (res != 0)
                goto err_kfree_ssb;
 
 
     req.Attributes = WIN_DATA_WIDTH_8|WIN_MEMORY_TYPE_CM|WIN_ENABLE;
     req.Base = 0; req.Size = 0x8000;
     req.AccessSpeed = mem_speed;
-    ret = pcmcia_request_window(&link, &req, &link->win);
+    ret = pcmcia_request_window(link, &req, &link->win);
     if (ret)
            goto failed;
     mem.CardOffset = 0x20000; mem.Page = 0; 
 
        req.Base = 0;
        req.Size = 0x8000;
        req.AccessSpeed = ray_mem_speed;
-       ret = pcmcia_request_window(&link, &req, &link->win);
+       ret = pcmcia_request_window(link, &req, &link->win);
        if (ret)
                goto failed;
        mem.CardOffset = 0x0000;
        req.Base = 0;
        req.Size = 0x4000;
        req.AccessSpeed = ray_mem_speed;
-       ret = pcmcia_request_window(&link, &req, &local->rmem_handle);
+       ret = pcmcia_request_window(link, &req, &local->rmem_handle);
        if (ret)
                goto failed;
        mem.CardOffset = 0x8000;
        req.Base = 0;
        req.Size = 0x1000;
        req.AccessSpeed = ray_mem_speed;
-       ret = pcmcia_request_window(&link, &req, &local->amem_handle);
+       ret = pcmcia_request_window(link, &req, &local->amem_handle);
        if (ret)
                goto failed;
        mem.CardOffset = 0x0000;
 
       req.Attributes = WIN_DATA_WIDTH_8|WIN_MEMORY_TYPE_AM|WIN_ENABLE;
       req.Base = req.Size = 0;
       req.AccessSpeed = mem_speed;
-      i = pcmcia_request_window(&link, &req, &link->win);
+      i = pcmcia_request_window(link, &req, &link->win);
       if (i != 0)
          break;
 
 
  * Request_window() establishes a mapping between card memory space
  * and system memory space.
  */
-int pcmcia_request_window(struct pcmcia_device **p_dev, win_req_t *req, window_handle_t *wh)
+int pcmcia_request_window(struct pcmcia_device *p_dev, win_req_t *req, window_handle_t *wh)
 {
-       struct pcmcia_socket *s = (*p_dev)->socket;
+       struct pcmcia_socket *s = p_dev->socket;
        pccard_mem_map *win;
        u_long align;
        int w;
                        return -EINVAL;
                }
        }
-       (*p_dev)->_win |= CLIENT_WIN_REQ(w);
+       p_dev->_win |= CLIENT_WIN_REQ(w);
 
        /* Configure the socket controller */
        win->map = w+1;
 
                        if (cfg_mem->req.Size < 0x1000)
                                cfg_mem->req.Size = 0x1000;
                        cfg_mem->req.AccessSpeed = 0;
-                       if (pcmcia_request_window(&p_dev, &cfg_mem->req, &p_dev->win) != 0)
+                       if (pcmcia_request_window(p_dev, &cfg_mem->req, &p_dev->win) != 0)
                                goto next_entry;
                        map.Page = 0; map.CardOffset = mem->win[0].card_addr;
                        if (pcmcia_map_mem_page(p_dev, p_dev->win, &map) != 0)
 
                if (req->Size < 0x1000)
                        req->Size = 0x1000;
                req->AccessSpeed = 0;
-               if (pcmcia_request_window(&p_dev, req, &p_dev->win))
+               if (pcmcia_request_window(p_dev, req, &p_dev->win))
                        return -ENODEV;
                map.Page = 0;
                map.CardOffset = mem->win[0].card_addr;
 
                if (req->Size < 0x1000)
                        req->Size = 0x1000;
                req->AccessSpeed = 0;
-               if (pcmcia_request_window(&p_dev, req, &p_dev->win))
+               if (pcmcia_request_window(p_dev, req, &p_dev->win))
                        return -ENODEV;
                map.Page = 0;
                map.CardOffset = mem->win[0].card_addr;
 
                if (req->Size < 0x1000)
                        req->Size = 0x1000;
                req->AccessSpeed = 0;
-               if (pcmcia_request_window(&p_dev, req, &p_dev->win))
+               if (pcmcia_request_window(p_dev, req, &p_dev->win))
                        return -ENODEV;
                map.Page = 0;
                map.CardOffset = mem->win[0].card_addr;
 
 int pcmcia_request_configuration(struct pcmcia_device *p_dev,
                                 config_req_t *req);
 
-int pcmcia_request_window(struct pcmcia_device **p_dev, win_req_t *req,
+int pcmcia_request_window(struct pcmcia_device *p_dev, win_req_t *req,
                          window_handle_t *wh);
 int pcmcia_release_window(struct pcmcia_device *p_dev, window_handle_t win);
 int pcmcia_map_mem_page(struct pcmcia_device *p_dev, window_handle_t win,