• Home
  • Raw
  • Download

Lines Matching refs:s

41 int pcmcia_validate_mem(struct pcmcia_socket *s)  in pcmcia_validate_mem()  argument
43 if (s->resource_ops->validate_mem) in pcmcia_validate_mem()
44 return s->resource_ops->validate_mem(s); in pcmcia_validate_mem()
50 int low, struct pcmcia_socket *s) in pcmcia_find_mem_region() argument
52 if (s->resource_ops->find_mem) in pcmcia_find_mem_region()
53 return s->resource_ops->find_mem(base, num, align, low, s); in pcmcia_find_mem_region()
64 static void release_io_space(struct pcmcia_socket *s, struct resource *res) in release_io_space() argument
69 dev_dbg(&s->dev, "release_io_space for %pR\n", res); in release_io_space()
72 if (!s->io[i].res) in release_io_space()
74 if ((s->io[i].res->start <= res->start) && in release_io_space()
75 (s->io[i].res->end >= res->end)) { in release_io_space()
76 s->io[i].InUse -= num; in release_io_space()
82 if (s->io[i].InUse == 0) { in release_io_space()
83 release_resource(s->io[i].res); in release_io_space()
84 kfree(s->io[i].res); in release_io_space()
85 s->io[i].res = NULL; in release_io_space()
100 static int alloc_io_space(struct pcmcia_socket *s, struct resource *res, in alloc_io_space() argument
110 dev_dbg(&s->dev, "alloc_io_space request for %pR, %d lines\n", in alloc_io_space()
116 dev_dbg(&s->dev, "odd IO request\n"); in alloc_io_space()
123 dev_dbg(&s->dev, "odd IO request\n"); in alloc_io_space()
127 ret = s->resource_ops->find_io(s, res->flags, &base, num, align, in alloc_io_space()
130 dev_dbg(&s->dev, "alloc_io_space request failed (%d)\n", ret); in alloc_io_space()
140 dev_warn(&s->dev, in alloc_io_space()
143 release_io_space(s, res); in alloc_io_space()
146 dev_dbg(&s->dev, "alloc_io_space request result %d: %pR\n", ret, res); in alloc_io_space()
161 int (*accessf) (struct pcmcia_socket *s, in pcmcia_access_config()
165 struct pcmcia_socket *s; in pcmcia_access_config() local
170 s = p_dev->socket; in pcmcia_access_config()
172 mutex_lock(&s->ops_mutex); in pcmcia_access_config()
177 mutex_unlock(&s->ops_mutex); in pcmcia_access_config()
183 ret = accessf(s, 1, addr, 1, val); in pcmcia_access_config()
185 mutex_unlock(&s->ops_mutex); in pcmcia_access_config()
230 struct pcmcia_socket *s = p_dev->socket; in pcmcia_map_mem_page() local
238 mutex_lock(&s->ops_mutex); in pcmcia_map_mem_page()
239 s->win[w].card_start = offset; in pcmcia_map_mem_page()
240 ret = s->ops->set_mem_map(s, &s->win[w]); in pcmcia_map_mem_page()
243 mutex_unlock(&s->ops_mutex); in pcmcia_map_mem_page()
259 struct pcmcia_socket *s = p_dev->socket; in pcmcia_fixup_iowidth() local
264 mutex_lock(&s->ops_mutex); in pcmcia_fixup_iowidth()
268 if (!(s->state & SOCKET_PRESENT) || in pcmcia_fixup_iowidth()
277 if (!s->io[i].res) in pcmcia_fixup_iowidth()
283 io_on.start = s->io[i].res->start; in pcmcia_fixup_iowidth()
284 io_on.stop = s->io[i].res->end; in pcmcia_fixup_iowidth()
286 s->ops->set_io_map(s, &io_off); in pcmcia_fixup_iowidth()
288 s->ops->set_io_map(s, &io_on); in pcmcia_fixup_iowidth()
291 mutex_unlock(&s->ops_mutex); in pcmcia_fixup_iowidth()
309 struct pcmcia_socket *s = p_dev->socket; in pcmcia_fixup_vpp() local
312 mutex_lock(&s->ops_mutex); in pcmcia_fixup_vpp()
316 if (!(s->state & SOCKET_PRESENT) || in pcmcia_fixup_vpp()
323 s->socket.Vpp = new_vpp; in pcmcia_fixup_vpp()
324 if (s->ops->set_socket(s, &s->socket)) { in pcmcia_fixup_vpp()
332 mutex_unlock(&s->ops_mutex); in pcmcia_fixup_vpp()
353 struct pcmcia_socket *s = p_dev->socket; in pcmcia_release_configuration() local
357 mutex_lock(&s->ops_mutex); in pcmcia_release_configuration()
361 if (--(s->lock_count) == 0) { in pcmcia_release_configuration()
362 s->socket.flags = SS_OUTPUT_ENA; /* Is this correct? */ in pcmcia_release_configuration()
363 s->socket.Vpp = 0; in pcmcia_release_configuration()
364 s->socket.io_irq = 0; in pcmcia_release_configuration()
365 s->ops->set_socket(s, &s->socket); in pcmcia_release_configuration()
372 if (!s->io[i].res) in pcmcia_release_configuration()
374 s->io[i].Config--; in pcmcia_release_configuration()
375 if (s->io[i].Config != 0) in pcmcia_release_configuration()
378 s->ops->set_io_map(s, &io); in pcmcia_release_configuration()
381 mutex_unlock(&s->ops_mutex); in pcmcia_release_configuration()
399 struct pcmcia_socket *s = p_dev->socket; in pcmcia_release_io() local
403 mutex_lock(&s->ops_mutex); in pcmcia_release_io()
409 release_io_space(s, &c->io[0]); in pcmcia_release_io()
412 release_io_space(s, &c->io[1]); in pcmcia_release_io()
418 mutex_unlock(&s->ops_mutex); in pcmcia_release_io()
434 struct pcmcia_socket *s = p_dev->socket; in pcmcia_release_window() local
444 mutex_lock(&s->ops_mutex); in pcmcia_release_window()
445 win = &s->win[w]; in pcmcia_release_window()
449 mutex_unlock(&s->ops_mutex); in pcmcia_release_window()
455 s->ops->set_mem_map(s, win); in pcmcia_release_window()
456 s->state &= ~SOCKET_WIN_REQ(w); in pcmcia_release_window()
468 mutex_unlock(&s->ops_mutex); in pcmcia_release_window()
488 struct pcmcia_socket *s = p_dev->socket; in pcmcia_enable_device() local
496 if (!(s->state & SOCKET_PRESENT)) in pcmcia_enable_device()
499 mutex_lock(&s->ops_mutex); in pcmcia_enable_device()
502 mutex_unlock(&s->ops_mutex); in pcmcia_enable_device()
508 s->socket.Vpp = p_dev->vpp; in pcmcia_enable_device()
509 if (s->ops->set_socket(s, &s->socket)) { in pcmcia_enable_device()
510 mutex_unlock(&s->ops_mutex); in pcmcia_enable_device()
519 s->socket.flags |= SS_IOCARD; in pcmcia_enable_device()
521 s->socket.flags |= SS_ZVCARD | SS_IOCARD; in pcmcia_enable_device()
523 s->socket.flags |= SS_SPKR_ENA; in pcmcia_enable_device()
530 s->socket.io_irq = s->pcmcia_irq; in pcmcia_enable_device()
532 s->socket.io_irq = 0; in pcmcia_enable_device()
537 s->ops->set_socket(s, &s->socket); in pcmcia_enable_device()
538 s->lock_count++; in pcmcia_enable_device()
550 pcmcia_write_cis_mem(s, 1, (base + CISREG_SCR)>>1, 1, &tmp); in pcmcia_enable_device()
555 pcmcia_write_cis_mem(s, 1, (base + CISREG_PRR)>>1, 1, &tmp); in pcmcia_enable_device()
558 if (s->functions == 1) { in pcmcia_enable_device()
569 pcmcia_write_cis_mem(s, 1, (base + CISREG_COR)>>1, 1, &option); in pcmcia_enable_device()
573 pcmcia_write_cis_mem(s, 1, (base + CISREG_CCSR)>>1, 1, &status); in pcmcia_enable_device()
576 pcmcia_write_cis_mem(s, 1, (base + CISREG_ESR)>>1, 1, in pcmcia_enable_device()
581 pcmcia_write_cis_mem(s, 1, (base + CISREG_IOBASE_0)>>1, 1, &b); in pcmcia_enable_device()
583 pcmcia_write_cis_mem(s, 1, (base + CISREG_IOBASE_1)>>1, 1, &b); in pcmcia_enable_device()
587 pcmcia_write_cis_mem(s, 1, (base + CISREG_IOSIZE)>>1, 1, &b); in pcmcia_enable_device()
594 if (s->io[i].res) { in pcmcia_enable_device()
597 switch (s->io[i].res->flags & IO_DATA_PATH_WIDTH) { in pcmcia_enable_device()
605 iomap.start = s->io[i].res->start; in pcmcia_enable_device()
606 iomap.stop = s->io[i].res->end; in pcmcia_enable_device()
607 s->ops->set_io_map(s, &iomap); in pcmcia_enable_device()
608 s->io[i].Config++; in pcmcia_enable_device()
614 mutex_unlock(&s->ops_mutex); in pcmcia_enable_device()
632 struct pcmcia_socket *s = p_dev->socket; in pcmcia_request_io() local
636 mutex_lock(&s->ops_mutex); in pcmcia_request_io()
640 if (!(s->state & SOCKET_PRESENT)) { in pcmcia_request_io()
654 ret = alloc_io_space(s, &c->io[0], p_dev->io_lines); in pcmcia_request_io()
659 ret = alloc_io_space(s, &c->io[1], p_dev->io_lines); in pcmcia_request_io()
663 release_io_space(s, &c->io[0]); in pcmcia_request_io()
679 mutex_unlock(&s->ops_mutex); in pcmcia_request_io()
769 struct pcmcia_socket *s = p_dev->socket; in pcmcia_setup_isa_irq() local
771 u32 mask = s->irq_mask; in pcmcia_setup_isa_irq()
795 p_dev->irq = s->pcmcia_irq = irq; in pcmcia_setup_isa_irq()
804 void pcmcia_cleanup_irq(struct pcmcia_socket *s) in pcmcia_cleanup_irq() argument
806 pcmcia_used_irq[s->pcmcia_irq]--; in pcmcia_cleanup_irq()
807 s->pcmcia_irq = 0; in pcmcia_cleanup_irq()
817 void pcmcia_cleanup_irq(struct pcmcia_socket *s) in pcmcia_cleanup_irq() argument
819 s->pcmcia_irq = 0; in pcmcia_cleanup_irq()
834 struct pcmcia_socket *s = p_dev->socket; in pcmcia_setup_irq() local
840 if (s->pcmcia_irq) { in pcmcia_setup_irq()
841 p_dev->irq = s->pcmcia_irq; in pcmcia_setup_irq()
854 if (s->pci_irq) { in pcmcia_setup_irq()
855 p_dev->irq = s->pcmcia_irq = s->pci_irq; in pcmcia_setup_irq()
878 struct pcmcia_socket *s = p_dev->socket; in pcmcia_request_window() local
885 if (!(s->state & SOCKET_PRESENT)) { in pcmcia_request_window()
892 res->end = s->map_size; in pcmcia_request_window()
893 align = (s->features & SS_CAP_MEM_ALIGN) ? res->end : s->map_size; in pcmcia_request_window()
894 if (res->end & (s->map_size-1)) { in pcmcia_request_window()
898 if ((res->start && (s->features & SS_CAP_STATIC_MAP)) || in pcmcia_request_window()
907 mutex_lock(&s->ops_mutex); in pcmcia_request_window()
909 if (!(s->state & SOCKET_WIN_REQ(w))) in pcmcia_request_window()
913 mutex_unlock(&s->ops_mutex); in pcmcia_request_window()
917 win = &s->win[w]; in pcmcia_request_window()
919 if (!(s->features & SS_CAP_STATIC_MAP)) { in pcmcia_request_window()
921 0, s); in pcmcia_request_window()
924 mutex_unlock(&s->ops_mutex); in pcmcia_request_window()
936 if (s->ops->set_mem_map(s, win) != 0) { in pcmcia_request_window()
938 mutex_unlock(&s->ops_mutex); in pcmcia_request_window()
941 s->state |= SOCKET_WIN_REQ(w); in pcmcia_request_window()
944 if (s->features & SS_CAP_STATIC_MAP) in pcmcia_request_window()
959 mutex_unlock(&s->ops_mutex); in pcmcia_request_window()