Loading arch/sparc/include/asm/sbus_32.h +0 −17 Original line number Diff line number Diff line Loading @@ -76,9 +76,6 @@ struct sbus_bus { struct linux_prom_ranges sbus_ranges[PROMREG_MAX]; int num_sbus_ranges; int devid; int board; }; #define to_sbus(d) container_of(d, struct sbus_bus, ofdev.dev) Loading @@ -102,26 +99,12 @@ sbus_is_slave(struct sbus_dev *dev) for ((bus) = sbus_root; (bus); (bus) = (bus)->next) \ for ((device) = (bus)->devices; (device); (device) = (device)->next) extern void sbus_fill_device_irq(struct sbus_dev *); /* These yield IOMMU mappings in consistent mode. */ void prom_adjust_ranges(struct linux_prom_ranges *, int, struct linux_prom_ranges *, int); /* Eric Brower (ebrower@usa.net) * Translate SBus interrupt levels to ino values-- * this is used when converting sbus "interrupts" OBP * node values to "intr" node values, and is platform * dependent. If only we could call OBP with * "sbus-intr>cpu (sbint -- ino)" from kernel... * See .../drivers/sbus/sbus.c for details. */ BTFIXUPDEF_CALL(unsigned int, sbint_to_irq, struct sbus_dev *sdev, unsigned int) #define sbint_to_irq(sdev, sbint) BTFIXUP_CALL(sbint_to_irq)(sdev, sbint) extern void sbus_arch_bus_ranges_init(struct device_node *, struct sbus_bus *); extern void sbus_setup_iommu(struct sbus_bus *, struct device_node *); extern void sbus_setup_arch_props(struct sbus_bus *, struct device_node *); extern int sbus_arch_preinit(void); extern void sbus_arch_postinit(void); Loading arch/sparc/include/asm/sbus_64.h +0 −3 Original line number Diff line number Diff line Loading @@ -94,11 +94,8 @@ extern struct sbus_bus *sbus_root; for ((bus) = sbus_root; (bus); (bus) = (bus)->next) \ for ((device) = (bus)->devices; (device); (device) = (device)->next) extern void sbus_fill_device_irq(struct sbus_dev *); extern void sbus_arch_bus_ranges_init(struct device_node *, struct sbus_bus *); extern void sbus_setup_iommu(struct sbus_bus *, struct device_node *); extern void sbus_setup_arch_props(struct sbus_bus *, struct device_node *); extern int sbus_arch_preinit(void); extern void sbus_arch_postinit(void); Loading arch/sparc/kernel/ioport.c +0 −53 Original line number Diff line number Diff line Loading @@ -255,49 +255,6 @@ void sbus_set_sbus64(struct device *dev, int x) printk("sbus_set_sbus64: unsupported\n"); } extern unsigned int sun4d_build_irq(struct sbus_dev *sdev, int irq); void __init sbus_fill_device_irq(struct sbus_dev *sdev) { struct linux_prom_irqs irqs[PROMINTR_MAX]; int len; len = prom_getproperty(sdev->prom_node, "intr", (char *)irqs, sizeof(irqs)); if (len != -1) { sdev->num_irqs = len / 8; if (sdev->num_irqs == 0) { sdev->irqs[0] = 0; } else if (sparc_cpu_model == sun4d) { for (len = 0; len < sdev->num_irqs; len++) sdev->irqs[len] = sun4d_build_irq(sdev, irqs[len].pri); } else { for (len = 0; len < sdev->num_irqs; len++) sdev->irqs[len] = irqs[len].pri; } } else { int interrupts[PROMINTR_MAX]; /* No "intr" node found-- check for "interrupts" node. * This node contains SBus interrupt levels, not IPLs * as in "intr", and no vector values. We convert * SBus interrupt levels to PILs (platform specific). */ len = prom_getproperty(sdev->prom_node, "interrupts", (char *)interrupts, sizeof(interrupts)); if (len == -1) { sdev->irqs[0] = 0; sdev->num_irqs = 0; } else { sdev->num_irqs = len / sizeof(int); for (len = 0; len < sdev->num_irqs; len++) { sdev->irqs[len] = sbint_to_irq(sdev, interrupts[len]); } } } } /* * Allocate a chunk of memory suitable for DMA. * Typically devices use them for control blocks. Loading Loading @@ -479,16 +436,6 @@ void __init sbus_setup_iommu(struct sbus_bus *sbus, struct device_node *dp) #endif } void __init sbus_setup_arch_props(struct sbus_bus *sbus, struct device_node *dp) { if (sparc_cpu_model == sun4d) { struct device_node *parent = dp->parent; sbus->devid = of_getintprop_default(parent, "device-id", 0); sbus->board = of_getintprop_default(parent, "board#", 0); } } int __init sbus_arch_preinit(void) { register_proc_sparc_ioport(); Loading arch/sparc/kernel/sun4c_irq.c +0 −13 Original line number Diff line number Diff line Loading @@ -66,18 +66,6 @@ static struct resource sun4c_intr_eb = { "sun4c_intr" }; */ unsigned char *interrupt_enable = NULL; static int sun4c_pil_map[] = { 0, 1, 2, 3, 5, 7, 8, 9 }; static unsigned int sun4c_sbint_to_irq(struct sbus_dev *sdev, unsigned int sbint) { if (sbint >= sizeof(sun4c_pil_map)) { printk(KERN_ERR "%s: bogus SBINT %d\n", sdev->prom_name, sbint); BUG(); } return sun4c_pil_map[sbint]; } static void sun4c_disable_irq(unsigned int irq_nr) { unsigned long flags; Loading Loading @@ -243,7 +231,6 @@ void __init sun4c_init_IRQ(void) if (!interrupt_enable) panic("Cannot map interrupt_enable"); BTFIXUPSET_CALL(sbint_to_irq, sun4c_sbint_to_irq, BTFIXUPCALL_NORM); BTFIXUPSET_CALL(enable_irq, sun4c_enable_irq, BTFIXUPCALL_NORM); BTFIXUPSET_CALL(disable_irq, sun4c_disable_irq, BTFIXUPCALL_NORM); BTFIXUPSET_CALL(enable_pil_irq, sun4c_enable_irq, BTFIXUPCALL_NORM); Loading arch/sparc/kernel/sun4d_irq.c +0 −21 Original line number Diff line number Diff line Loading @@ -257,26 +257,6 @@ void sun4d_handler_irq(int irq, struct pt_regs * regs) set_irq_regs(old_regs); } unsigned int sun4d_build_irq(struct sbus_dev *sdev, int irq) { int sbusl = pil_to_sbus[irq]; if (sbusl) return ((sdev->bus->board + 1) << 5) + (sbusl << 2) + sdev->slot; else return irq; } static unsigned int sun4d_sbint_to_irq(struct sbus_dev *sdev, unsigned int sbint) { if (sbint >= sizeof(sbus_to_pil)) { printk(KERN_ERR "%s: bogus SBINT %d\n", sdev->prom_name, sbint); BUG(); } return sun4d_build_irq(sdev, sbus_to_pil[sbint]); } int sun4d_request_irq(unsigned int irq, irq_handler_t handler, unsigned long irqflags, const char * devname, void *dev_id) Loading Loading @@ -585,7 +565,6 @@ void __init sun4d_init_IRQ(void) { local_irq_disable(); BTFIXUPSET_CALL(sbint_to_irq, sun4d_sbint_to_irq, BTFIXUPCALL_NORM); BTFIXUPSET_CALL(enable_irq, sun4d_enable_irq, BTFIXUPCALL_NORM); BTFIXUPSET_CALL(disable_irq, sun4d_disable_irq, BTFIXUPCALL_NORM); BTFIXUPSET_CALL(clear_clock_irq, sun4d_clear_clock_irq, BTFIXUPCALL_NORM); Loading Loading
arch/sparc/include/asm/sbus_32.h +0 −17 Original line number Diff line number Diff line Loading @@ -76,9 +76,6 @@ struct sbus_bus { struct linux_prom_ranges sbus_ranges[PROMREG_MAX]; int num_sbus_ranges; int devid; int board; }; #define to_sbus(d) container_of(d, struct sbus_bus, ofdev.dev) Loading @@ -102,26 +99,12 @@ sbus_is_slave(struct sbus_dev *dev) for ((bus) = sbus_root; (bus); (bus) = (bus)->next) \ for ((device) = (bus)->devices; (device); (device) = (device)->next) extern void sbus_fill_device_irq(struct sbus_dev *); /* These yield IOMMU mappings in consistent mode. */ void prom_adjust_ranges(struct linux_prom_ranges *, int, struct linux_prom_ranges *, int); /* Eric Brower (ebrower@usa.net) * Translate SBus interrupt levels to ino values-- * this is used when converting sbus "interrupts" OBP * node values to "intr" node values, and is platform * dependent. If only we could call OBP with * "sbus-intr>cpu (sbint -- ino)" from kernel... * See .../drivers/sbus/sbus.c for details. */ BTFIXUPDEF_CALL(unsigned int, sbint_to_irq, struct sbus_dev *sdev, unsigned int) #define sbint_to_irq(sdev, sbint) BTFIXUP_CALL(sbint_to_irq)(sdev, sbint) extern void sbus_arch_bus_ranges_init(struct device_node *, struct sbus_bus *); extern void sbus_setup_iommu(struct sbus_bus *, struct device_node *); extern void sbus_setup_arch_props(struct sbus_bus *, struct device_node *); extern int sbus_arch_preinit(void); extern void sbus_arch_postinit(void); Loading
arch/sparc/include/asm/sbus_64.h +0 −3 Original line number Diff line number Diff line Loading @@ -94,11 +94,8 @@ extern struct sbus_bus *sbus_root; for ((bus) = sbus_root; (bus); (bus) = (bus)->next) \ for ((device) = (bus)->devices; (device); (device) = (device)->next) extern void sbus_fill_device_irq(struct sbus_dev *); extern void sbus_arch_bus_ranges_init(struct device_node *, struct sbus_bus *); extern void sbus_setup_iommu(struct sbus_bus *, struct device_node *); extern void sbus_setup_arch_props(struct sbus_bus *, struct device_node *); extern int sbus_arch_preinit(void); extern void sbus_arch_postinit(void); Loading
arch/sparc/kernel/ioport.c +0 −53 Original line number Diff line number Diff line Loading @@ -255,49 +255,6 @@ void sbus_set_sbus64(struct device *dev, int x) printk("sbus_set_sbus64: unsupported\n"); } extern unsigned int sun4d_build_irq(struct sbus_dev *sdev, int irq); void __init sbus_fill_device_irq(struct sbus_dev *sdev) { struct linux_prom_irqs irqs[PROMINTR_MAX]; int len; len = prom_getproperty(sdev->prom_node, "intr", (char *)irqs, sizeof(irqs)); if (len != -1) { sdev->num_irqs = len / 8; if (sdev->num_irqs == 0) { sdev->irqs[0] = 0; } else if (sparc_cpu_model == sun4d) { for (len = 0; len < sdev->num_irqs; len++) sdev->irqs[len] = sun4d_build_irq(sdev, irqs[len].pri); } else { for (len = 0; len < sdev->num_irqs; len++) sdev->irqs[len] = irqs[len].pri; } } else { int interrupts[PROMINTR_MAX]; /* No "intr" node found-- check for "interrupts" node. * This node contains SBus interrupt levels, not IPLs * as in "intr", and no vector values. We convert * SBus interrupt levels to PILs (platform specific). */ len = prom_getproperty(sdev->prom_node, "interrupts", (char *)interrupts, sizeof(interrupts)); if (len == -1) { sdev->irqs[0] = 0; sdev->num_irqs = 0; } else { sdev->num_irqs = len / sizeof(int); for (len = 0; len < sdev->num_irqs; len++) { sdev->irqs[len] = sbint_to_irq(sdev, interrupts[len]); } } } } /* * Allocate a chunk of memory suitable for DMA. * Typically devices use them for control blocks. Loading Loading @@ -479,16 +436,6 @@ void __init sbus_setup_iommu(struct sbus_bus *sbus, struct device_node *dp) #endif } void __init sbus_setup_arch_props(struct sbus_bus *sbus, struct device_node *dp) { if (sparc_cpu_model == sun4d) { struct device_node *parent = dp->parent; sbus->devid = of_getintprop_default(parent, "device-id", 0); sbus->board = of_getintprop_default(parent, "board#", 0); } } int __init sbus_arch_preinit(void) { register_proc_sparc_ioport(); Loading
arch/sparc/kernel/sun4c_irq.c +0 −13 Original line number Diff line number Diff line Loading @@ -66,18 +66,6 @@ static struct resource sun4c_intr_eb = { "sun4c_intr" }; */ unsigned char *interrupt_enable = NULL; static int sun4c_pil_map[] = { 0, 1, 2, 3, 5, 7, 8, 9 }; static unsigned int sun4c_sbint_to_irq(struct sbus_dev *sdev, unsigned int sbint) { if (sbint >= sizeof(sun4c_pil_map)) { printk(KERN_ERR "%s: bogus SBINT %d\n", sdev->prom_name, sbint); BUG(); } return sun4c_pil_map[sbint]; } static void sun4c_disable_irq(unsigned int irq_nr) { unsigned long flags; Loading Loading @@ -243,7 +231,6 @@ void __init sun4c_init_IRQ(void) if (!interrupt_enable) panic("Cannot map interrupt_enable"); BTFIXUPSET_CALL(sbint_to_irq, sun4c_sbint_to_irq, BTFIXUPCALL_NORM); BTFIXUPSET_CALL(enable_irq, sun4c_enable_irq, BTFIXUPCALL_NORM); BTFIXUPSET_CALL(disable_irq, sun4c_disable_irq, BTFIXUPCALL_NORM); BTFIXUPSET_CALL(enable_pil_irq, sun4c_enable_irq, BTFIXUPCALL_NORM); Loading
arch/sparc/kernel/sun4d_irq.c +0 −21 Original line number Diff line number Diff line Loading @@ -257,26 +257,6 @@ void sun4d_handler_irq(int irq, struct pt_regs * regs) set_irq_regs(old_regs); } unsigned int sun4d_build_irq(struct sbus_dev *sdev, int irq) { int sbusl = pil_to_sbus[irq]; if (sbusl) return ((sdev->bus->board + 1) << 5) + (sbusl << 2) + sdev->slot; else return irq; } static unsigned int sun4d_sbint_to_irq(struct sbus_dev *sdev, unsigned int sbint) { if (sbint >= sizeof(sbus_to_pil)) { printk(KERN_ERR "%s: bogus SBINT %d\n", sdev->prom_name, sbint); BUG(); } return sun4d_build_irq(sdev, sbus_to_pil[sbint]); } int sun4d_request_irq(unsigned int irq, irq_handler_t handler, unsigned long irqflags, const char * devname, void *dev_id) Loading Loading @@ -585,7 +565,6 @@ void __init sun4d_init_IRQ(void) { local_irq_disable(); BTFIXUPSET_CALL(sbint_to_irq, sun4d_sbint_to_irq, BTFIXUPCALL_NORM); BTFIXUPSET_CALL(enable_irq, sun4d_enable_irq, BTFIXUPCALL_NORM); BTFIXUPSET_CALL(disable_irq, sun4d_disable_irq, BTFIXUPCALL_NORM); BTFIXUPSET_CALL(clear_clock_irq, sun4d_clear_clock_irq, BTFIXUPCALL_NORM); Loading