diff options
author | David S. Miller <davem@davemloft.net> | 2006-06-29 18:07:37 -0400 |
---|---|---|
committer | David S. Miller <davem@sunset.davemloft.net> | 2006-06-29 19:37:38 -0400 |
commit | 2b1e59787198e75fb2ffb3bb4fb247da1c55ac12 (patch) | |
tree | 96d74048849b310135e0c79f663b16c52186caa5 /arch/sparc64/kernel/pci_sun4v.c | |
parent | c3a8b85f5ac2c21f4ef75e87bfe55ee7a753ffcf (diff) |
[SPARC64]: of_device layer IRQ resolution
Do IRQ determination generically by parsing the PROM properties,
and using IRQ controller drivers for final resolution.
One immediate positive effect is that all of the IRQ frobbing
in the EBUS, ISA, and PCI controller layers has been eliminated.
We just look up the of_device and use the properly computed
value.
The PCI controller irq_build() routines are gone and no longer
used. Unfortunately sbus_build_irq() has to remain as there is
a direct reference to this in the sunzilog driver. That can be
killed off once the sparc32 side of this is written and the
sunzilog driver is transformed into an "of" bus driver.
Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'arch/sparc64/kernel/pci_sun4v.c')
-rw-r--r-- | arch/sparc64/kernel/pci_sun4v.c | 10 |
1 files changed, 0 insertions, 10 deletions
diff --git a/arch/sparc64/kernel/pci_sun4v.c b/arch/sparc64/kernel/pci_sun4v.c index b69e2270a721..03ad4c06758e 100644 --- a/arch/sparc64/kernel/pci_sun4v.c +++ b/arch/sparc64/kernel/pci_sun4v.c | |||
@@ -843,15 +843,6 @@ static void pci_sun4v_scan_bus(struct pci_controller_info *p) | |||
843 | /* XXX register error interrupt handlers XXX */ | 843 | /* XXX register error interrupt handlers XXX */ |
844 | } | 844 | } |
845 | 845 | ||
846 | static unsigned int pci_sun4v_irq_build(struct pci_pbm_info *pbm, | ||
847 | struct pci_dev *pdev, | ||
848 | unsigned int devino) | ||
849 | { | ||
850 | u32 devhandle = pbm->devhandle; | ||
851 | |||
852 | return sun4v_build_irq(devhandle, devino); | ||
853 | } | ||
854 | |||
855 | static void pci_sun4v_base_address_update(struct pci_dev *pdev, int resource) | 846 | static void pci_sun4v_base_address_update(struct pci_dev *pdev, int resource) |
856 | { | 847 | { |
857 | struct pcidev_cookie *pcp = pdev->sysdata; | 848 | struct pcidev_cookie *pcp = pdev->sysdata; |
@@ -1200,7 +1191,6 @@ void sun4v_pci_init(struct device_node *dp, char *model_name) | |||
1200 | p->pbms_same_domain = 0; | 1191 | p->pbms_same_domain = 0; |
1201 | 1192 | ||
1202 | p->scan_bus = pci_sun4v_scan_bus; | 1193 | p->scan_bus = pci_sun4v_scan_bus; |
1203 | p->irq_build = pci_sun4v_irq_build; | ||
1204 | p->base_address_update = pci_sun4v_base_address_update; | 1194 | p->base_address_update = pci_sun4v_base_address_update; |
1205 | p->resource_adjust = pci_sun4v_resource_adjust; | 1195 | p->resource_adjust = pci_sun4v_resource_adjust; |
1206 | p->pci_ops = &pci_sun4v_ops; | 1196 | p->pci_ops = &pci_sun4v_ops; |