Lines Matching refs:p_dev
155 static int pcmcia_access_config(struct pcmcia_device *p_dev, in pcmcia_access_config() argument
166 s = p_dev->socket; in pcmcia_access_config()
169 c = p_dev->function_config; in pcmcia_access_config()
172 dev_dbg(&p_dev->dev, "Configuration isn't locked\n"); in pcmcia_access_config()
177 addr = (p_dev->config_base + where) >> 1; in pcmcia_access_config()
193 int pcmcia_read_config_byte(struct pcmcia_device *p_dev, off_t where, u8 *val) in pcmcia_read_config_byte() argument
195 return pcmcia_access_config(p_dev, where, val, pcmcia_read_cis_mem); in pcmcia_read_config_byte()
206 int pcmcia_write_config_byte(struct pcmcia_device *p_dev, off_t where, u8 val) in pcmcia_write_config_byte() argument
208 return pcmcia_access_config(p_dev, where, &val, pcmcia_write_cis_mem); in pcmcia_write_config_byte()
223 int pcmcia_map_mem_page(struct pcmcia_device *p_dev, struct resource *res, in pcmcia_map_mem_page() argument
226 struct pcmcia_socket *s = p_dev->socket; in pcmcia_map_mem_page()
238 dev_warn(&p_dev->dev, "failed to set_mem_map\n"); in pcmcia_map_mem_page()
253 int pcmcia_fixup_iowidth(struct pcmcia_device *p_dev) in pcmcia_fixup_iowidth() argument
255 struct pcmcia_socket *s = p_dev->socket; in pcmcia_fixup_iowidth()
262 dev_dbg(&p_dev->dev, "fixup iowidth to 8bit\n"); in pcmcia_fixup_iowidth()
265 !(p_dev->function_config->state & CONFIG_LOCKED)) { in pcmcia_fixup_iowidth()
266 dev_dbg(&p_dev->dev, "No card? Config not locked?\n"); in pcmcia_fixup_iowidth()
303 int pcmcia_fixup_vpp(struct pcmcia_device *p_dev, unsigned char new_vpp) in pcmcia_fixup_vpp() argument
305 struct pcmcia_socket *s = p_dev->socket; in pcmcia_fixup_vpp()
310 dev_dbg(&p_dev->dev, "fixup Vpp to %d\n", new_vpp); in pcmcia_fixup_vpp()
313 !(p_dev->function_config->state & CONFIG_LOCKED)) { in pcmcia_fixup_vpp()
314 dev_dbg(&p_dev->dev, "No card? Config not locked?\n"); in pcmcia_fixup_vpp()
321 dev_warn(&p_dev->dev, "Unable to set VPP\n"); in pcmcia_fixup_vpp()
325 p_dev->vpp = new_vpp; in pcmcia_fixup_vpp()
346 int pcmcia_release_configuration(struct pcmcia_device *p_dev) in pcmcia_release_configuration() argument
349 struct pcmcia_socket *s = p_dev->socket; in pcmcia_release_configuration()
354 c = p_dev->function_config; in pcmcia_release_configuration()
355 if (p_dev->_locked) { in pcmcia_release_configuration()
356 p_dev->_locked = 0; in pcmcia_release_configuration()
393 static int pcmcia_release_io(struct pcmcia_device *p_dev) in pcmcia_release_io() argument
395 struct pcmcia_socket *s = p_dev->socket; in pcmcia_release_io()
400 if (!p_dev->_io) in pcmcia_release_io()
403 c = p_dev->function_config; in pcmcia_release_io()
410 p_dev->_io = 0; in pcmcia_release_io()
428 int pcmcia_release_window(struct pcmcia_device *p_dev, struct resource *res) in pcmcia_release_window() argument
430 struct pcmcia_socket *s = p_dev->socket; in pcmcia_release_window()
434 dev_dbg(&p_dev->dev, "releasing window %pR\n", res); in pcmcia_release_window()
443 if (!(p_dev->_win & CLIENT_WIN_REQ(w))) { in pcmcia_release_window()
444 dev_dbg(&p_dev->dev, "not releasing unknown window\n"); in pcmcia_release_window()
463 p_dev->_win &= ~CLIENT_WIN_REQ(w); in pcmcia_release_window()
480 int pcmcia_enable_device(struct pcmcia_device *p_dev) in pcmcia_enable_device() argument
484 struct pcmcia_socket *s = p_dev->socket; in pcmcia_enable_device()
490 unsigned int flags = p_dev->config_flags; in pcmcia_enable_device()
496 c = p_dev->function_config; in pcmcia_enable_device()
499 dev_dbg(&p_dev->dev, "Configuration is locked\n"); in pcmcia_enable_device()
504 s->socket.Vpp = p_dev->vpp; in pcmcia_enable_device()
507 dev_warn(&p_dev->dev, "Unable to set socket state\n"); in pcmcia_enable_device()
512 if (p_dev->_io || flags & CONF_ENABLE_IRQ) in pcmcia_enable_device()
521 if (!(p_dev->config_regs & PRESENT_STATUS)) in pcmcia_enable_device()
522 dev_warn(&p_dev->dev, "speaker requested, but " in pcmcia_enable_device()
530 p_dev->config_regs |= PRESENT_EXT_STATUS; in pcmcia_enable_device()
536 dev_dbg(&p_dev->dev, in pcmcia_enable_device()
538 p_dev->vpp, flags, p_dev->config_base, p_dev->config_regs, in pcmcia_enable_device()
539 p_dev->config_index); in pcmcia_enable_device()
542 base = p_dev->config_base; in pcmcia_enable_device()
543 if (p_dev->config_regs & PRESENT_COPY) { in pcmcia_enable_device()
545 dev_dbg(&p_dev->dev, "clearing CISREG_SCR\n"); in pcmcia_enable_device()
548 if (p_dev->config_regs & PRESENT_PIN_REPLACE) { in pcmcia_enable_device()
550 dev_dbg(&p_dev->dev, "clearing CISREG_PRR\n"); in pcmcia_enable_device()
553 if (p_dev->config_regs & PRESENT_OPTION) { in pcmcia_enable_device()
555 option = p_dev->config_index & COR_CONFIG_MASK; in pcmcia_enable_device()
557 option = p_dev->config_index & COR_MFC_CONFIG_MASK; in pcmcia_enable_device()
559 if (p_dev->config_regs & PRESENT_IOBASE_0) in pcmcia_enable_device()
568 if (p_dev->config_regs & PRESENT_STATUS) in pcmcia_enable_device()
571 if (p_dev->config_regs & PRESENT_EXT_STATUS) in pcmcia_enable_device()
575 if (p_dev->config_regs & PRESENT_IOBASE_0) { in pcmcia_enable_device()
581 if (p_dev->config_regs & PRESENT_IOSIZE) { in pcmcia_enable_device()
609 p_dev->_locked = 1; in pcmcia_enable_device()
626 int pcmcia_request_io(struct pcmcia_device *p_dev) in pcmcia_request_io() argument
628 struct pcmcia_socket *s = p_dev->socket; in pcmcia_request_io()
629 config_t *c = p_dev->function_config; in pcmcia_request_io()
633 dev_dbg(&p_dev->dev, "pcmcia_request_io: %pR , %pR", in pcmcia_request_io()
637 dev_dbg(&p_dev->dev, "pcmcia_request_io: No card present\n"); in pcmcia_request_io()
642 dev_dbg(&p_dev->dev, "Configuration is locked\n"); in pcmcia_request_io()
646 dev_dbg(&p_dev->dev, "IO already configured\n"); in pcmcia_request_io()
650 ret = alloc_io_space(s, &c->io[0], p_dev->io_lines); in pcmcia_request_io()
655 ret = alloc_io_space(s, &c->io[1], p_dev->io_lines); in pcmcia_request_io()
670 p_dev->_io = 1; in pcmcia_request_io()
672 dev_dbg(&p_dev->dev, "pcmcia_request_io succeeded: %pR , %pR", in pcmcia_request_io()
693 int __must_check pcmcia_request_irq(struct pcmcia_device *p_dev, in pcmcia_request_irq() argument
698 if (!p_dev->irq) in pcmcia_request_irq()
701 ret = request_irq(p_dev->irq, handler, IRQF_SHARED, in pcmcia_request_irq()
702 p_dev->devname, p_dev->priv); in pcmcia_request_irq()
704 p_dev->_irq = 1; in pcmcia_request_irq()
727 static int pcmcia_setup_isa_irq(struct pcmcia_device *p_dev, int type) in pcmcia_setup_isa_irq() argument
729 struct pcmcia_socket *s = p_dev->socket; in pcmcia_setup_isa_irq()
751 ret = request_irq(irq, test_action, type, p_dev->devname, in pcmcia_setup_isa_irq()
752 p_dev); in pcmcia_setup_isa_irq()
754 free_irq(irq, p_dev); in pcmcia_setup_isa_irq()
755 p_dev->irq = s->pcmcia_irq = irq; in pcmcia_setup_isa_irq()
772 static int pcmcia_setup_isa_irq(struct pcmcia_device *p_dev, int type) in pcmcia_setup_isa_irq() argument
792 int pcmcia_setup_irq(struct pcmcia_device *p_dev) in pcmcia_setup_irq() argument
794 struct pcmcia_socket *s = p_dev->socket; in pcmcia_setup_irq()
796 if (p_dev->irq) in pcmcia_setup_irq()
801 p_dev->irq = s->pcmcia_irq; in pcmcia_setup_irq()
806 if (!pcmcia_setup_isa_irq(p_dev, 0)) in pcmcia_setup_irq()
810 if (!pcmcia_setup_isa_irq(p_dev, IRQF_SHARED)) in pcmcia_setup_irq()
815 p_dev->irq = s->pcmcia_irq = s->pci_irq; in pcmcia_setup_irq()
835 int pcmcia_request_window(struct pcmcia_device *p_dev, struct resource *res, in pcmcia_request_window() argument
838 struct pcmcia_socket *s = p_dev->socket; in pcmcia_request_window()
843 dev_dbg(&p_dev->dev, "request_window %pR %d\n", res, speed); in pcmcia_request_window()
846 dev_dbg(&p_dev->dev, "No card present\n"); in pcmcia_request_window()
855 dev_dbg(&p_dev->dev, "invalid map size\n"); in pcmcia_request_window()
860 dev_dbg(&p_dev->dev, "invalid base address\n"); in pcmcia_request_window()
872 dev_dbg(&p_dev->dev, "all windows are used already\n"); in pcmcia_request_window()
883 dev_dbg(&p_dev->dev, "allocating mem region failed\n"); in pcmcia_request_window()
888 p_dev->_win |= CLIENT_WIN_REQ(w); in pcmcia_request_window()
897 dev_dbg(&p_dev->dev, "failed to set memory mapping\n"); in pcmcia_request_window()
917 dev_dbg(&p_dev->dev, "request_window results in %pR\n", res); in pcmcia_request_window()
938 void pcmcia_disable_device(struct pcmcia_device *p_dev) in pcmcia_disable_device() argument
942 dev_dbg(&p_dev->dev, "disabling device\n"); in pcmcia_disable_device()
945 struct resource *res = p_dev->resource[MAX_IO_WIN + i]; in pcmcia_disable_device()
947 pcmcia_release_window(p_dev, res); in pcmcia_disable_device()
950 pcmcia_release_configuration(p_dev); in pcmcia_disable_device()
951 pcmcia_release_io(p_dev); in pcmcia_disable_device()
952 if (p_dev->_irq) { in pcmcia_disable_device()
953 free_irq(p_dev->irq, p_dev->priv); in pcmcia_disable_device()
954 p_dev->_irq = 0; in pcmcia_disable_device()