Lines Matching refs:apc

107 static int ar71xx_pci_check_error(struct ar71xx_pci_controller *apc, int quiet)  in ar71xx_pci_check_error()  argument
109 void __iomem *base = apc->cfg_base; in ar71xx_pci_check_error()
144 static inline void ar71xx_pci_local_write(struct ar71xx_pci_controller *apc, in ar71xx_pci_local_write() argument
147 void __iomem *base = apc->cfg_base; in ar71xx_pci_local_write()
163 struct ar71xx_pci_controller *apc = pci_bus_to_ar71xx_controller(bus); in ar71xx_pci_set_cfgaddr() local
164 void __iomem *base = apc->cfg_base; in ar71xx_pci_set_cfgaddr()
173 return ar71xx_pci_check_error(apc, 1); in ar71xx_pci_set_cfgaddr()
179 struct ar71xx_pci_controller *apc = pci_bus_to_ar71xx_controller(bus); in ar71xx_pci_read_config() local
180 void __iomem *base = apc->cfg_base; in ar71xx_pci_read_config()
203 struct ar71xx_pci_controller *apc = pci_bus_to_ar71xx_controller(bus); in ar71xx_pci_write_config() local
204 void __iomem *base = apc->cfg_base; in ar71xx_pci_write_config()
228 struct ar71xx_pci_controller *apc; in ar71xx_pci_irq_handler() local
232 apc = irq_desc_get_handler_data(desc); in ar71xx_pci_irq_handler()
238 generic_handle_irq(apc->irq_base + 0); in ar71xx_pci_irq_handler()
241 generic_handle_irq(apc->irq_base + 1); in ar71xx_pci_irq_handler()
244 generic_handle_irq(apc->irq_base + 2); in ar71xx_pci_irq_handler()
247 generic_handle_irq(apc->irq_base + 4); in ar71xx_pci_irq_handler()
255 struct ar71xx_pci_controller *apc; in ar71xx_pci_irq_unmask() local
260 apc = irq_data_get_irq_chip_data(d); in ar71xx_pci_irq_unmask()
261 irq = d->irq - apc->irq_base; in ar71xx_pci_irq_unmask()
272 struct ar71xx_pci_controller *apc; in ar71xx_pci_irq_mask() local
277 apc = irq_data_get_irq_chip_data(d); in ar71xx_pci_irq_mask()
278 irq = d->irq - apc->irq_base; in ar71xx_pci_irq_mask()
294 static void ar71xx_pci_irq_init(struct ar71xx_pci_controller *apc) in ar71xx_pci_irq_init() argument
304 apc->irq_base = ATH79_PCI_IRQ_BASE; in ar71xx_pci_irq_init()
305 for (i = apc->irq_base; in ar71xx_pci_irq_init()
306 i < apc->irq_base + AR71XX_PCI_IRQ_COUNT; i++) { in ar71xx_pci_irq_init()
309 irq_set_chip_data(i, apc); in ar71xx_pci_irq_init()
312 irq_set_chained_handler_and_data(apc->irq, ar71xx_pci_irq_handler, in ar71xx_pci_irq_init()
313 apc); in ar71xx_pci_irq_init()
330 struct ar71xx_pci_controller *apc; in ar71xx_pci_probe() local
334 apc = devm_kzalloc(&pdev->dev, sizeof(struct ar71xx_pci_controller), in ar71xx_pci_probe()
336 if (!apc) in ar71xx_pci_probe()
339 apc->cfg_base = devm_platform_ioremap_resource_byname(pdev, in ar71xx_pci_probe()
341 if (IS_ERR(apc->cfg_base)) in ar71xx_pci_probe()
342 return PTR_ERR(apc->cfg_base); in ar71xx_pci_probe()
344 apc->irq = platform_get_irq(pdev, 0); in ar71xx_pci_probe()
345 if (apc->irq < 0) in ar71xx_pci_probe()
352 apc->io_res.parent = res; in ar71xx_pci_probe()
353 apc->io_res.name = "PCI IO space"; in ar71xx_pci_probe()
354 apc->io_res.start = res->start; in ar71xx_pci_probe()
355 apc->io_res.end = res->end; in ar71xx_pci_probe()
356 apc->io_res.flags = IORESOURCE_IO; in ar71xx_pci_probe()
362 apc->mem_res.parent = res; in ar71xx_pci_probe()
363 apc->mem_res.name = "PCI memory space"; in ar71xx_pci_probe()
364 apc->mem_res.start = res->start; in ar71xx_pci_probe()
365 apc->mem_res.end = res->end; in ar71xx_pci_probe()
366 apc->mem_res.flags = IORESOURCE_MEM; in ar71xx_pci_probe()
373 ar71xx_pci_local_write(apc, PCI_COMMAND, 4, t); in ar71xx_pci_probe()
376 ar71xx_pci_check_error(apc, 1); in ar71xx_pci_probe()
378 ar71xx_pci_irq_init(apc); in ar71xx_pci_probe()
380 apc->pci_ctrl.pci_ops = &ar71xx_pci_ops; in ar71xx_pci_probe()
381 apc->pci_ctrl.mem_resource = &apc->mem_res; in ar71xx_pci_probe()
382 apc->pci_ctrl.io_resource = &apc->io_res; in ar71xx_pci_probe()
384 register_pci_controller(&apc->pci_ctrl); in ar71xx_pci_probe()