Lines Matching refs:apc

110 static int ar71xx_pci_check_error(struct ar71xx_pci_controller *apc, int quiet)  in ar71xx_pci_check_error()  argument
112 void __iomem *base = apc->cfg_base; in ar71xx_pci_check_error()
147 static inline void ar71xx_pci_local_write(struct ar71xx_pci_controller *apc, in ar71xx_pci_local_write() argument
150 void __iomem *base = apc->cfg_base; in ar71xx_pci_local_write()
166 struct ar71xx_pci_controller *apc = pci_bus_to_ar71xx_controller(bus); in ar71xx_pci_set_cfgaddr() local
167 void __iomem *base = apc->cfg_base; in ar71xx_pci_set_cfgaddr()
176 return ar71xx_pci_check_error(apc, 1); in ar71xx_pci_set_cfgaddr()
182 struct ar71xx_pci_controller *apc = pci_bus_to_ar71xx_controller(bus); in ar71xx_pci_read_config() local
183 void __iomem *base = apc->cfg_base; in ar71xx_pci_read_config()
206 struct ar71xx_pci_controller *apc = pci_bus_to_ar71xx_controller(bus); in ar71xx_pci_write_config() local
207 void __iomem *base = apc->cfg_base; in ar71xx_pci_write_config()
231 struct ar71xx_pci_controller *apc; in ar71xx_pci_irq_handler() local
235 apc = irq_desc_get_handler_data(desc); in ar71xx_pci_irq_handler()
241 generic_handle_irq(apc->irq_base + 0); in ar71xx_pci_irq_handler()
244 generic_handle_irq(apc->irq_base + 1); in ar71xx_pci_irq_handler()
247 generic_handle_irq(apc->irq_base + 2); in ar71xx_pci_irq_handler()
250 generic_handle_irq(apc->irq_base + 4); in ar71xx_pci_irq_handler()
258 struct ar71xx_pci_controller *apc; in ar71xx_pci_irq_unmask() local
263 apc = irq_data_get_irq_chip_data(d); in ar71xx_pci_irq_unmask()
264 irq = d->irq - apc->irq_base; in ar71xx_pci_irq_unmask()
275 struct ar71xx_pci_controller *apc; in ar71xx_pci_irq_mask() local
280 apc = irq_data_get_irq_chip_data(d); in ar71xx_pci_irq_mask()
281 irq = d->irq - apc->irq_base; in ar71xx_pci_irq_mask()
297 static void ar71xx_pci_irq_init(struct ar71xx_pci_controller *apc) in ar71xx_pci_irq_init() argument
307 apc->irq_base = ATH79_PCI_IRQ_BASE; in ar71xx_pci_irq_init()
308 for (i = apc->irq_base; in ar71xx_pci_irq_init()
309 i < apc->irq_base + AR71XX_PCI_IRQ_COUNT; i++) { in ar71xx_pci_irq_init()
312 irq_set_chip_data(i, apc); in ar71xx_pci_irq_init()
315 irq_set_chained_handler_and_data(apc->irq, ar71xx_pci_irq_handler, in ar71xx_pci_irq_init()
316 apc); in ar71xx_pci_irq_init()
333 struct ar71xx_pci_controller *apc; in ar71xx_pci_probe() local
337 apc = devm_kzalloc(&pdev->dev, sizeof(struct ar71xx_pci_controller), in ar71xx_pci_probe()
339 if (!apc) in ar71xx_pci_probe()
343 apc->cfg_base = devm_ioremap_resource(&pdev->dev, res); in ar71xx_pci_probe()
344 if (IS_ERR(apc->cfg_base)) in ar71xx_pci_probe()
345 return PTR_ERR(apc->cfg_base); in ar71xx_pci_probe()
347 apc->irq = platform_get_irq(pdev, 0); in ar71xx_pci_probe()
348 if (apc->irq < 0) in ar71xx_pci_probe()
355 apc->io_res.parent = res; in ar71xx_pci_probe()
356 apc->io_res.name = "PCI IO space"; in ar71xx_pci_probe()
357 apc->io_res.start = res->start; in ar71xx_pci_probe()
358 apc->io_res.end = res->end; in ar71xx_pci_probe()
359 apc->io_res.flags = IORESOURCE_IO; in ar71xx_pci_probe()
365 apc->mem_res.parent = res; in ar71xx_pci_probe()
366 apc->mem_res.name = "PCI memory space"; in ar71xx_pci_probe()
367 apc->mem_res.start = res->start; in ar71xx_pci_probe()
368 apc->mem_res.end = res->end; in ar71xx_pci_probe()
369 apc->mem_res.flags = IORESOURCE_MEM; in ar71xx_pci_probe()
376 ar71xx_pci_local_write(apc, PCI_COMMAND, 4, t); in ar71xx_pci_probe()
379 ar71xx_pci_check_error(apc, 1); in ar71xx_pci_probe()
381 ar71xx_pci_irq_init(apc); in ar71xx_pci_probe()
383 apc->pci_ctrl.pci_ops = &ar71xx_pci_ops; in ar71xx_pci_probe()
384 apc->pci_ctrl.mem_resource = &apc->mem_res; in ar71xx_pci_probe()
385 apc->pci_ctrl.io_resource = &apc->io_res; in ar71xx_pci_probe()
387 register_pci_controller(&apc->pci_ctrl); in ar71xx_pci_probe()