Lines Matching refs:info

46 			     struct uio_info *info)  in mf624_disable_interrupt()  argument
48 void __iomem *INTCSR_reg = info->mem[0].internal_addr + INTCSR; in mf624_disable_interrupt()
74 struct uio_info *info) in mf624_enable_interrupt() argument
76 void __iomem *INTCSR_reg = info->mem[0].internal_addr + INTCSR; in mf624_enable_interrupt()
101 static irqreturn_t mf624_irq_handler(int irq, struct uio_info *info) in mf624_irq_handler() argument
103 void __iomem *INTCSR_reg = info->mem[0].internal_addr + INTCSR; in mf624_irq_handler()
107 mf624_disable_interrupt(ADC, info); in mf624_irq_handler()
113 mf624_disable_interrupt(CTR4, info); in mf624_irq_handler()
120 static int mf624_irqcontrol(struct uio_info *info, s32 irq_on) in mf624_irqcontrol() argument
123 mf624_disable_interrupt(ALL, info); in mf624_irqcontrol()
125 mf624_enable_interrupt(ALL, info); in mf624_irqcontrol()
132 struct uio_info *info; in mf624_pci_probe() local
134 info = kzalloc(sizeof(struct uio_info), GFP_KERNEL); in mf624_pci_probe()
135 if (!info) in mf624_pci_probe()
144 info->name = "mf624"; in mf624_pci_probe()
145 info->version = "0.0.1"; in mf624_pci_probe()
150 info->mem[0].name = "PCI chipset, interrupts, status " in mf624_pci_probe()
152 info->mem[0].addr = pci_resource_start(dev, 0); in mf624_pci_probe()
153 if (!info->mem[0].addr) in mf624_pci_probe()
155 info->mem[0].size = pci_resource_len(dev, 0); in mf624_pci_probe()
156 info->mem[0].memtype = UIO_MEM_PHYS; in mf624_pci_probe()
157 info->mem[0].internal_addr = pci_ioremap_bar(dev, 0); in mf624_pci_probe()
158 if (!info->mem[0].internal_addr) in mf624_pci_probe()
162 info->mem[1].name = "ADC, DAC, DIO"; in mf624_pci_probe()
163 info->mem[1].addr = pci_resource_start(dev, 2); in mf624_pci_probe()
164 if (!info->mem[1].addr) in mf624_pci_probe()
166 info->mem[1].size = pci_resource_len(dev, 2); in mf624_pci_probe()
167 info->mem[1].memtype = UIO_MEM_PHYS; in mf624_pci_probe()
168 info->mem[1].internal_addr = pci_ioremap_bar(dev, 2); in mf624_pci_probe()
169 if (!info->mem[1].internal_addr) in mf624_pci_probe()
173 info->mem[2].name = "Counter/timer chip"; in mf624_pci_probe()
174 info->mem[2].addr = pci_resource_start(dev, 4); in mf624_pci_probe()
175 if (!info->mem[2].addr) in mf624_pci_probe()
177 info->mem[2].size = pci_resource_len(dev, 4); in mf624_pci_probe()
178 info->mem[2].memtype = UIO_MEM_PHYS; in mf624_pci_probe()
179 info->mem[2].internal_addr = pci_ioremap_bar(dev, 4); in mf624_pci_probe()
180 if (!info->mem[2].internal_addr) in mf624_pci_probe()
183 info->irq = dev->irq; in mf624_pci_probe()
184 info->irq_flags = IRQF_SHARED; in mf624_pci_probe()
185 info->handler = mf624_irq_handler; in mf624_pci_probe()
187 info->irqcontrol = mf624_irqcontrol; in mf624_pci_probe()
189 if (uio_register_device(&dev->dev, info)) in mf624_pci_probe()
192 pci_set_drvdata(dev, info); in mf624_pci_probe()
197 iounmap(info->mem[2].internal_addr); in mf624_pci_probe()
199 iounmap(info->mem[1].internal_addr); in mf624_pci_probe()
201 iounmap(info->mem[0].internal_addr); in mf624_pci_probe()
210 kfree(info); in mf624_pci_probe()
216 struct uio_info *info = pci_get_drvdata(dev); in mf624_pci_remove() local
218 mf624_disable_interrupt(ALL, info); in mf624_pci_remove()
220 uio_unregister_device(info); in mf624_pci_remove()
224 iounmap(info->mem[0].internal_addr); in mf624_pci_remove()
225 iounmap(info->mem[1].internal_addr); in mf624_pci_remove()
226 iounmap(info->mem[2].internal_addr); in mf624_pci_remove()
228 kfree(info); in mf624_pci_remove()