diff options
-rw-r--r-- | drivers/pcmcia/pcmcia_ioctl.c | 18 | ||||
-rw-r--r-- | drivers/pcmcia/pcmcia_resource.c | 46 | ||||
-rw-r--r-- | include/pcmcia/ss.h | 6 |
3 files changed, 33 insertions, 37 deletions
diff --git a/drivers/pcmcia/pcmcia_ioctl.c b/drivers/pcmcia/pcmcia_ioctl.c index 38b3a26a3ff3..c4d7908fa37f 100644 --- a/drivers/pcmcia/pcmcia_ioctl.c +++ b/drivers/pcmcia/pcmcia_ioctl.c | |||
@@ -224,7 +224,7 @@ static int pcmcia_adjust_resource_info(adjust_t *adj) | |||
224 | static int pcmcia_get_window(struct pcmcia_socket *s, window_handle_t *wh_out, | 224 | static int pcmcia_get_window(struct pcmcia_socket *s, window_handle_t *wh_out, |
225 | window_handle_t wh, win_req_t *req) | 225 | window_handle_t wh, win_req_t *req) |
226 | { | 226 | { |
227 | window_t *win; | 227 | pccard_mem_map *win; |
228 | window_handle_t w; | 228 | window_handle_t w; |
229 | 229 | ||
230 | wh--; | 230 | wh--; |
@@ -238,17 +238,17 @@ static int pcmcia_get_window(struct pcmcia_socket *s, window_handle_t *wh_out, | |||
238 | if (w == MAX_WIN) | 238 | if (w == MAX_WIN) |
239 | return -EINVAL; | 239 | return -EINVAL; |
240 | win = &s->win[w]; | 240 | win = &s->win[w]; |
241 | req->Base = win->ctl.res->start; | 241 | req->Base = win->res->start; |
242 | req->Size = win->ctl.res->end - win->ctl.res->start + 1; | 242 | req->Size = win->res->end - win->res->start + 1; |
243 | req->AccessSpeed = win->ctl.speed; | 243 | req->AccessSpeed = win->speed; |
244 | req->Attributes = 0; | 244 | req->Attributes = 0; |
245 | if (win->ctl.flags & MAP_ATTRIB) | 245 | if (win->flags & MAP_ATTRIB) |
246 | req->Attributes |= WIN_MEMORY_TYPE_AM; | 246 | req->Attributes |= WIN_MEMORY_TYPE_AM; |
247 | if (win->ctl.flags & MAP_ACTIVE) | 247 | if (win->flags & MAP_ACTIVE) |
248 | req->Attributes |= WIN_ENABLE; | 248 | req->Attributes |= WIN_ENABLE; |
249 | if (win->ctl.flags & MAP_16BIT) | 249 | if (win->flags & MAP_16BIT) |
250 | req->Attributes |= WIN_DATA_WIDTH_16; | 250 | req->Attributes |= WIN_DATA_WIDTH_16; |
251 | if (win->ctl.flags & MAP_USE_WAIT) | 251 | if (win->flags & MAP_USE_WAIT) |
252 | req->Attributes |= WIN_USE_WAIT; | 252 | req->Attributes |= WIN_USE_WAIT; |
253 | 253 | ||
254 | *wh_out = w + 1; | 254 | *wh_out = w + 1; |
@@ -268,7 +268,7 @@ static int pcmcia_get_mem_page(struct pcmcia_socket *skt, window_handle_t wh, | |||
268 | return -EINVAL; | 268 | return -EINVAL; |
269 | 269 | ||
270 | req->Page = 0; | 270 | req->Page = 0; |
271 | req->CardOffset = skt->win[wh].ctl.card_start; | 271 | req->CardOffset = skt->win[wh].card_start; |
272 | return 0; | 272 | return 0; |
273 | } /* pcmcia_get_mem_page */ | 273 | } /* pcmcia_get_mem_page */ |
274 | 274 | ||
diff --git a/drivers/pcmcia/pcmcia_resource.c b/drivers/pcmcia/pcmcia_resource.c index ae68b26a7050..50468543d607 100644 --- a/drivers/pcmcia/pcmcia_resource.c +++ b/drivers/pcmcia/pcmcia_resource.c | |||
@@ -197,8 +197,8 @@ int pcmcia_map_mem_page(struct pcmcia_device *p_dev, window_handle_t wh, | |||
197 | dev_dbg(&s->dev, "failure: requested page is zero\n"); | 197 | dev_dbg(&s->dev, "failure: requested page is zero\n"); |
198 | return -EINVAL; | 198 | return -EINVAL; |
199 | } | 199 | } |
200 | s->win[wh].ctl.card_start = req->CardOffset; | 200 | s->win[wh].card_start = req->CardOffset; |
201 | if (s->ops->set_mem_map(s, &s->win[wh].ctl) != 0) { | 201 | if (s->ops->set_mem_map(s, &s->win[wh]) != 0) { |
202 | dev_dbg(&s->dev, "failed to set_mem_map\n"); | 202 | dev_dbg(&s->dev, "failed to set_mem_map\n"); |
203 | return -EIO; | 203 | return -EIO; |
204 | } | 204 | } |
@@ -398,7 +398,7 @@ static int pcmcia_release_irq(struct pcmcia_device *p_dev, irq_req_t *req) | |||
398 | int pcmcia_release_window(struct pcmcia_device *p_dev, window_handle_t wh) | 398 | int pcmcia_release_window(struct pcmcia_device *p_dev, window_handle_t wh) |
399 | { | 399 | { |
400 | struct pcmcia_socket *s = p_dev->socket; | 400 | struct pcmcia_socket *s = p_dev->socket; |
401 | window_t *win; | 401 | pccard_mem_map *win; |
402 | 402 | ||
403 | wh--; | 403 | wh--; |
404 | if (wh >= MAX_WIN) | 404 | if (wh >= MAX_WIN) |
@@ -412,15 +412,15 @@ int pcmcia_release_window(struct pcmcia_device *p_dev, window_handle_t wh) | |||
412 | } | 412 | } |
413 | 413 | ||
414 | /* Shut down memory window */ | 414 | /* Shut down memory window */ |
415 | win->ctl.flags &= ~MAP_ACTIVE; | 415 | win->flags &= ~MAP_ACTIVE; |
416 | s->ops->set_mem_map(s, &win->ctl); | 416 | s->ops->set_mem_map(s, win); |
417 | s->state &= ~SOCKET_WIN_REQ(wh); | 417 | s->state &= ~SOCKET_WIN_REQ(wh); |
418 | 418 | ||
419 | /* Release system memory */ | 419 | /* Release system memory */ |
420 | if (win->ctl.res) { | 420 | if (win->res) { |
421 | release_resource(win->ctl.res); | 421 | release_resource(win->res); |
422 | kfree(win->ctl.res); | 422 | kfree(win->res); |
423 | win->ctl.res = NULL; | 423 | win->res = NULL; |
424 | } | 424 | } |
425 | p_dev->_win &= ~CLIENT_WIN_REQ(wh); | 425 | p_dev->_win &= ~CLIENT_WIN_REQ(wh); |
426 | 426 | ||
@@ -755,7 +755,7 @@ EXPORT_SYMBOL(pcmcia_request_irq); | |||
755 | int pcmcia_request_window(struct pcmcia_device **p_dev, win_req_t *req, window_handle_t *wh) | 755 | int pcmcia_request_window(struct pcmcia_device **p_dev, win_req_t *req, window_handle_t *wh) |
756 | { | 756 | { |
757 | struct pcmcia_socket *s = (*p_dev)->socket; | 757 | struct pcmcia_socket *s = (*p_dev)->socket; |
758 | window_t *win; | 758 | pccard_mem_map *win; |
759 | u_long align; | 759 | u_long align; |
760 | int w; | 760 | int w; |
761 | 761 | ||
@@ -797,9 +797,9 @@ int pcmcia_request_window(struct pcmcia_device **p_dev, win_req_t *req, window_h | |||
797 | win = &s->win[w]; | 797 | win = &s->win[w]; |
798 | 798 | ||
799 | if (!(s->features & SS_CAP_STATIC_MAP)) { | 799 | if (!(s->features & SS_CAP_STATIC_MAP)) { |
800 | win->ctl.res = pcmcia_find_mem_region(req->Base, req->Size, align, | 800 | win->res = pcmcia_find_mem_region(req->Base, req->Size, align, |
801 | (req->Attributes & WIN_MAP_BELOW_1MB), s); | 801 | (req->Attributes & WIN_MAP_BELOW_1MB), s); |
802 | if (!win->ctl.res) { | 802 | if (!win->res) { |
803 | dev_dbg(&s->dev, "allocating mem region failed\n"); | 803 | dev_dbg(&s->dev, "allocating mem region failed\n"); |
804 | return -EINVAL; | 804 | return -EINVAL; |
805 | } | 805 | } |
@@ -807,19 +807,19 @@ int pcmcia_request_window(struct pcmcia_device **p_dev, win_req_t *req, window_h | |||
807 | (*p_dev)->_win |= CLIENT_WIN_REQ(w); | 807 | (*p_dev)->_win |= CLIENT_WIN_REQ(w); |
808 | 808 | ||
809 | /* Configure the socket controller */ | 809 | /* Configure the socket controller */ |
810 | win->ctl.map = w+1; | 810 | win->map = w+1; |
811 | win->ctl.flags = 0; | 811 | win->flags = 0; |
812 | win->ctl.speed = req->AccessSpeed; | 812 | win->speed = req->AccessSpeed; |
813 | if (req->Attributes & WIN_MEMORY_TYPE) | 813 | if (req->Attributes & WIN_MEMORY_TYPE) |
814 | win->ctl.flags |= MAP_ATTRIB; | 814 | win->flags |= MAP_ATTRIB; |
815 | if (req->Attributes & WIN_ENABLE) | 815 | if (req->Attributes & WIN_ENABLE) |
816 | win->ctl.flags |= MAP_ACTIVE; | 816 | win->flags |= MAP_ACTIVE; |
817 | if (req->Attributes & WIN_DATA_WIDTH_16) | 817 | if (req->Attributes & WIN_DATA_WIDTH_16) |
818 | win->ctl.flags |= MAP_16BIT; | 818 | win->flags |= MAP_16BIT; |
819 | if (req->Attributes & WIN_USE_WAIT) | 819 | if (req->Attributes & WIN_USE_WAIT) |
820 | win->ctl.flags |= MAP_USE_WAIT; | 820 | win->flags |= MAP_USE_WAIT; |
821 | win->ctl.card_start = 0; | 821 | win->card_start = 0; |
822 | if (s->ops->set_mem_map(s, &win->ctl) != 0) { | 822 | if (s->ops->set_mem_map(s, win) != 0) { |
823 | dev_dbg(&s->dev, "failed to set memory mapping\n"); | 823 | dev_dbg(&s->dev, "failed to set memory mapping\n"); |
824 | return -EIO; | 824 | return -EIO; |
825 | } | 825 | } |
@@ -827,9 +827,9 @@ int pcmcia_request_window(struct pcmcia_device **p_dev, win_req_t *req, window_h | |||
827 | 827 | ||
828 | /* Return window handle */ | 828 | /* Return window handle */ |
829 | if (s->features & SS_CAP_STATIC_MAP) { | 829 | if (s->features & SS_CAP_STATIC_MAP) { |
830 | req->Base = win->ctl.static_start; | 830 | req->Base = win->static_start; |
831 | } else { | 831 | } else { |
832 | req->Base = win->ctl.res->start; | 832 | req->Base = win->res->start; |
833 | } | 833 | } |
834 | *wh = w + 1; | 834 | *wh = w + 1; |
835 | 835 | ||
diff --git a/include/pcmcia/ss.h b/include/pcmcia/ss.h index 6301c3f4f19e..d85f725be7e3 100644 --- a/include/pcmcia/ss.h +++ b/include/pcmcia/ss.h | |||
@@ -107,10 +107,6 @@ typedef struct io_window_t { | |||
107 | struct resource *res; | 107 | struct resource *res; |
108 | } io_window_t; | 108 | } io_window_t; |
109 | 109 | ||
110 | typedef struct window_t { | ||
111 | pccard_mem_map ctl; | ||
112 | } window_t; | ||
113 | |||
114 | /* Maximum number of IO windows per socket */ | 110 | /* Maximum number of IO windows per socket */ |
115 | #define MAX_IO_WIN 2 | 111 | #define MAX_IO_WIN 2 |
116 | 112 | ||
@@ -150,7 +146,7 @@ struct pcmcia_socket { | |||
150 | u_int Config; | 146 | u_int Config; |
151 | } irq; | 147 | } irq; |
152 | io_window_t io[MAX_IO_WIN]; | 148 | io_window_t io[MAX_IO_WIN]; |
153 | window_t win[MAX_WIN]; | 149 | pccard_mem_map win[MAX_WIN]; |
154 | struct list_head cis_cache; | 150 | struct list_head cis_cache; |
155 | size_t fake_cis_len; | 151 | size_t fake_cis_len; |
156 | u8 *fake_cis; | 152 | u8 *fake_cis; |