···1616#include <asm/ebus.h>1717#include <asm/auxio.h>18181919-/* This cannot be static, as it is referenced in entry.S */1919+/* This cannot be static, as it is referenced in irq.c */2020void __iomem *auxio_register = NULL;21212222enum auxio_type {
···159159 * underruns. If non-zero, doing_pdma encodes the direction of160160 * the transfer for debugging. 1=read 2=write161161 */162162-char *pdma_vaddr;162162+unsigned char *pdma_vaddr;163163unsigned long pdma_size;164164volatile int doing_pdma = 0;165165···209209 pdma_areasize = pdma_size;210210}211211212212-/* Our low-level entry point in arch/sparc/kernel/entry.S */213213-extern irqreturn_t floppy_hardint(int irq, void *unused, struct pt_regs *regs);212212+extern irqreturn_t sparc_floppy_irq(int, void *, struct pt_regs *);214213215214static int sun_fd_request_irq(void)216215{···219220 if(!once) {220221 once = 1;221222222222- error = request_fast_irq(FLOPPY_IRQ, floppy_hardint, 223223- SA_INTERRUPT, "floppy", NULL);223223+ error = request_irq(FLOPPY_IRQ, sparc_floppy_irq, 224224+ SA_INTERRUPT, "floppy", NULL);224225225226 return ((error == 0) ? 0 : -1);226227 }···614615 struct linux_ebus *ebus;615616 struct linux_ebus_device *edev = NULL;616617 unsigned long config = 0;617617- unsigned long auxio_reg;618618+ void __iomem *auxio_reg;618619619620 for_each_ebus(ebus) {620621 for_each_ebusdev(edev, ebus) {···641642 /* Make sure the high density bit is set, some systems642643 * (most notably Ultra5/Ultra10) come up with it clear.643644 */644644- auxio_reg = edev->resource[2].start;645645+ auxio_reg = (void __iomem *) edev->resource[2].start;645646 writel(readl(auxio_reg)|0x2, auxio_reg);646647647648 sun_pci_ebus_dev = ebus->self;···649650 spin_lock_init(&sun_pci_fd_ebus_dma.lock);650651651652 /* XXX ioremap */652652- sun_pci_fd_ebus_dma.regs = edev->resource[1].start;653653+ sun_pci_fd_ebus_dma.regs = (void __iomem *)654654+ edev->resource[1].start;653655 if (!sun_pci_fd_ebus_dma.regs)654656 return 0;655657
+1-6
include/asm-sparc64/irq.h
···1919/* You should not mess with this directly. That's the job of irq.c.2020 *2121 * If you make changes here, please update hand coded assembler of2222- * SBUS/floppy interrupt handler in entry.S -DaveM2222+ * the vectored interrupt trap handler in entry.S -DaveM2323 *2424 * This is currently one DCACHE line, two buckets per L2 cache2525 * line. Keep this in mind please.···121121extern void enable_irq(unsigned int);122122extern unsigned int build_irq(int pil, int inofixup, unsigned long iclr, unsigned long imap);123123extern unsigned int sbus_build_irq(void *sbus, unsigned int ino);124124-125125-extern int request_fast_irq(unsigned int irq,126126- irqreturn_t (*handler)(int, void *, struct pt_regs *),127127- unsigned long flags, __const__ char *devname,128128- void *dev_id);129124130125static __inline__ void set_softint(unsigned long bits)131126{