Lines Matching refs:p_dev

159 static int pcmcia_access_config(struct pcmcia_device *p_dev,  in pcmcia_access_config()  argument
170 s = p_dev->socket; in pcmcia_access_config()
173 c = p_dev->function_config; in pcmcia_access_config()
176 dev_dbg(&p_dev->dev, "Configuration isn't locked\n"); in pcmcia_access_config()
181 addr = (p_dev->config_base + where) >> 1; in pcmcia_access_config()
197 int pcmcia_read_config_byte(struct pcmcia_device *p_dev, off_t where, u8 *val) in pcmcia_read_config_byte() argument
199 return pcmcia_access_config(p_dev, where, val, pcmcia_read_cis_mem); in pcmcia_read_config_byte()
210 int pcmcia_write_config_byte(struct pcmcia_device *p_dev, off_t where, u8 val) in pcmcia_write_config_byte() argument
212 return pcmcia_access_config(p_dev, where, &val, pcmcia_write_cis_mem); in pcmcia_write_config_byte()
227 int pcmcia_map_mem_page(struct pcmcia_device *p_dev, struct resource *res, in pcmcia_map_mem_page() argument
230 struct pcmcia_socket *s = p_dev->socket; in pcmcia_map_mem_page()
242 dev_warn(&p_dev->dev, "failed to set_mem_map\n"); in pcmcia_map_mem_page()
257 int pcmcia_fixup_iowidth(struct pcmcia_device *p_dev) in pcmcia_fixup_iowidth() argument
259 struct pcmcia_socket *s = p_dev->socket; in pcmcia_fixup_iowidth()
266 dev_dbg(&p_dev->dev, "fixup iowidth to 8bit\n"); in pcmcia_fixup_iowidth()
269 !(p_dev->function_config->state & CONFIG_LOCKED)) { in pcmcia_fixup_iowidth()
270 dev_dbg(&p_dev->dev, "No card? Config not locked?\n"); in pcmcia_fixup_iowidth()
307 int pcmcia_fixup_vpp(struct pcmcia_device *p_dev, unsigned char new_vpp) in pcmcia_fixup_vpp() argument
309 struct pcmcia_socket *s = p_dev->socket; in pcmcia_fixup_vpp()
314 dev_dbg(&p_dev->dev, "fixup Vpp to %d\n", new_vpp); in pcmcia_fixup_vpp()
317 !(p_dev->function_config->state & CONFIG_LOCKED)) { in pcmcia_fixup_vpp()
318 dev_dbg(&p_dev->dev, "No card? Config not locked?\n"); in pcmcia_fixup_vpp()
325 dev_warn(&p_dev->dev, "Unable to set VPP\n"); in pcmcia_fixup_vpp()
329 p_dev->vpp = new_vpp; in pcmcia_fixup_vpp()
350 int pcmcia_release_configuration(struct pcmcia_device *p_dev) in pcmcia_release_configuration() argument
353 struct pcmcia_socket *s = p_dev->socket; in pcmcia_release_configuration()
358 c = p_dev->function_config; in pcmcia_release_configuration()
359 if (p_dev->_locked) { in pcmcia_release_configuration()
360 p_dev->_locked = 0; in pcmcia_release_configuration()
397 static int pcmcia_release_io(struct pcmcia_device *p_dev) in pcmcia_release_io() argument
399 struct pcmcia_socket *s = p_dev->socket; in pcmcia_release_io()
404 if (!p_dev->_io) in pcmcia_release_io()
407 c = p_dev->function_config; in pcmcia_release_io()
414 p_dev->_io = 0; in pcmcia_release_io()
432 int pcmcia_release_window(struct pcmcia_device *p_dev, struct resource *res) in pcmcia_release_window() argument
434 struct pcmcia_socket *s = p_dev->socket; in pcmcia_release_window()
438 dev_dbg(&p_dev->dev, "releasing window %pR\n", res); in pcmcia_release_window()
447 if (!(p_dev->_win & CLIENT_WIN_REQ(w))) { in pcmcia_release_window()
448 dev_dbg(&p_dev->dev, "not releasing unknown window\n"); in pcmcia_release_window()
467 p_dev->_win &= ~CLIENT_WIN_REQ(w); in pcmcia_release_window()
484 int pcmcia_enable_device(struct pcmcia_device *p_dev) in pcmcia_enable_device() argument
488 struct pcmcia_socket *s = p_dev->socket; in pcmcia_enable_device()
494 unsigned int flags = p_dev->config_flags; in pcmcia_enable_device()
500 c = p_dev->function_config; in pcmcia_enable_device()
503 dev_dbg(&p_dev->dev, "Configuration is locked\n"); in pcmcia_enable_device()
508 s->socket.Vpp = p_dev->vpp; in pcmcia_enable_device()
511 dev_printk(KERN_WARNING, &p_dev->dev, in pcmcia_enable_device()
517 if (p_dev->_io || flags & CONF_ENABLE_IRQ) in pcmcia_enable_device()
526 if (!(p_dev->config_regs & PRESENT_STATUS)) in pcmcia_enable_device()
527 dev_warn(&p_dev->dev, "speaker requested, but " in pcmcia_enable_device()
535 p_dev->config_regs |= PRESENT_EXT_STATUS; in pcmcia_enable_device()
541 dev_dbg(&p_dev->dev, in pcmcia_enable_device()
543 p_dev->vpp, flags, p_dev->config_base, p_dev->config_regs, in pcmcia_enable_device()
544 p_dev->config_index); in pcmcia_enable_device()
547 base = p_dev->config_base; in pcmcia_enable_device()
548 if (p_dev->config_regs & PRESENT_COPY) { in pcmcia_enable_device()
550 dev_dbg(&p_dev->dev, "clearing CISREG_SCR\n"); in pcmcia_enable_device()
553 if (p_dev->config_regs & PRESENT_PIN_REPLACE) { in pcmcia_enable_device()
555 dev_dbg(&p_dev->dev, "clearing CISREG_PRR\n"); in pcmcia_enable_device()
558 if (p_dev->config_regs & PRESENT_OPTION) { in pcmcia_enable_device()
560 option = p_dev->config_index & COR_CONFIG_MASK; in pcmcia_enable_device()
562 option = p_dev->config_index & COR_MFC_CONFIG_MASK; in pcmcia_enable_device()
564 if (p_dev->config_regs & PRESENT_IOBASE_0) in pcmcia_enable_device()
573 if (p_dev->config_regs & PRESENT_STATUS) in pcmcia_enable_device()
576 if (p_dev->config_regs & PRESENT_EXT_STATUS) in pcmcia_enable_device()
580 if (p_dev->config_regs & PRESENT_IOBASE_0) { in pcmcia_enable_device()
586 if (p_dev->config_regs & PRESENT_IOSIZE) { in pcmcia_enable_device()
614 p_dev->_locked = 1; in pcmcia_enable_device()
631 int pcmcia_request_io(struct pcmcia_device *p_dev) in pcmcia_request_io() argument
633 struct pcmcia_socket *s = p_dev->socket; in pcmcia_request_io()
634 config_t *c = p_dev->function_config; in pcmcia_request_io()
638 dev_dbg(&p_dev->dev, "pcmcia_request_io: %pR , %pR", in pcmcia_request_io()
642 dev_dbg(&p_dev->dev, "pcmcia_request_io: No card present\n"); in pcmcia_request_io()
647 dev_dbg(&p_dev->dev, "Configuration is locked\n"); in pcmcia_request_io()
651 dev_dbg(&p_dev->dev, "IO already configured\n"); in pcmcia_request_io()
655 ret = alloc_io_space(s, &c->io[0], p_dev->io_lines); in pcmcia_request_io()
660 ret = alloc_io_space(s, &c->io[1], p_dev->io_lines); in pcmcia_request_io()
675 p_dev->_io = 1; in pcmcia_request_io()
677 dev_dbg(&p_dev->dev, "pcmcia_request_io succeeded: %pR , %pR", in pcmcia_request_io()
698 int __must_check pcmcia_request_irq(struct pcmcia_device *p_dev, in pcmcia_request_irq() argument
703 if (!p_dev->irq) in pcmcia_request_irq()
706 ret = request_irq(p_dev->irq, handler, IRQF_SHARED, in pcmcia_request_irq()
707 p_dev->devname, p_dev->priv); in pcmcia_request_irq()
709 p_dev->_irq = 1; in pcmcia_request_irq()
728 __pcmcia_request_exclusive_irq(struct pcmcia_device *p_dev, in __pcmcia_request_exclusive_irq() argument
733 if (!p_dev->irq) in __pcmcia_request_exclusive_irq()
736 ret = request_irq(p_dev->irq, handler, 0, p_dev->devname, p_dev->priv); in __pcmcia_request_exclusive_irq()
738 ret = pcmcia_request_irq(p_dev, handler); in __pcmcia_request_exclusive_irq()
739 dev_printk(KERN_WARNING, &p_dev->dev, "pcmcia: " in __pcmcia_request_exclusive_irq()
741 dev_printk(KERN_WARNING, &p_dev->dev, "pcmcia: the driver " in __pcmcia_request_exclusive_irq()
745 dev_printk(KERN_INFO, &p_dev->dev, "request_irq() failed\n"); in __pcmcia_request_exclusive_irq()
747 p_dev->_irq = 1; in __pcmcia_request_exclusive_irq()
770 static int pcmcia_setup_isa_irq(struct pcmcia_device *p_dev, int type) in pcmcia_setup_isa_irq() argument
772 struct pcmcia_socket *s = p_dev->socket; in pcmcia_setup_isa_irq()
794 ret = request_irq(irq, test_action, type, p_dev->devname, in pcmcia_setup_isa_irq()
795 p_dev); in pcmcia_setup_isa_irq()
797 free_irq(irq, p_dev); in pcmcia_setup_isa_irq()
798 p_dev->irq = s->pcmcia_irq = irq; in pcmcia_setup_isa_irq()
815 static int pcmcia_setup_isa_irq(struct pcmcia_device *p_dev, int type) in pcmcia_setup_isa_irq() argument
835 int pcmcia_setup_irq(struct pcmcia_device *p_dev) in pcmcia_setup_irq() argument
837 struct pcmcia_socket *s = p_dev->socket; in pcmcia_setup_irq()
839 if (p_dev->irq) in pcmcia_setup_irq()
844 p_dev->irq = s->pcmcia_irq; in pcmcia_setup_irq()
849 if (!pcmcia_setup_isa_irq(p_dev, 0)) in pcmcia_setup_irq()
853 if (!pcmcia_setup_isa_irq(p_dev, IRQF_SHARED)) in pcmcia_setup_irq()
858 p_dev->irq = s->pcmcia_irq = s->pci_irq; in pcmcia_setup_irq()
878 int pcmcia_request_window(struct pcmcia_device *p_dev, struct resource *res, in pcmcia_request_window() argument
881 struct pcmcia_socket *s = p_dev->socket; in pcmcia_request_window()
886 dev_dbg(&p_dev->dev, "request_window %pR %d\n", res, speed); in pcmcia_request_window()
889 dev_dbg(&p_dev->dev, "No card present\n"); in pcmcia_request_window()
898 dev_dbg(&p_dev->dev, "invalid map size\n"); in pcmcia_request_window()
903 dev_dbg(&p_dev->dev, "invalid base address\n"); in pcmcia_request_window()
915 dev_dbg(&p_dev->dev, "all windows are used already\n"); in pcmcia_request_window()
926 dev_dbg(&p_dev->dev, "allocating mem region failed\n"); in pcmcia_request_window()
931 p_dev->_win |= CLIENT_WIN_REQ(w); in pcmcia_request_window()
940 dev_dbg(&p_dev->dev, "failed to set memory mapping\n"); in pcmcia_request_window()
960 dev_dbg(&p_dev->dev, "request_window results in %pR\n", res); in pcmcia_request_window()
981 void pcmcia_disable_device(struct pcmcia_device *p_dev) in pcmcia_disable_device() argument
985 dev_dbg(&p_dev->dev, "disabling device\n"); in pcmcia_disable_device()
988 struct resource *res = p_dev->resource[MAX_IO_WIN + i]; in pcmcia_disable_device()
990 pcmcia_release_window(p_dev, res); in pcmcia_disable_device()
993 pcmcia_release_configuration(p_dev); in pcmcia_disable_device()
994 pcmcia_release_io(p_dev); in pcmcia_disable_device()
995 if (p_dev->_irq) { in pcmcia_disable_device()
996 free_irq(p_dev->irq, p_dev->priv); in pcmcia_disable_device()
997 p_dev->_irq = 0; in pcmcia_disable_device()