Loading drivers/ide/arm/icside.c +1 −23 Original line number Diff line number Diff line Loading @@ -438,35 +438,13 @@ static void icside_dma_init(ide_hwif_t *hwif) #define icside_dma_init(hwif) (0) #endif static ide_hwif_t *icside_find_hwif(unsigned long dataport) { ide_hwif_t *hwif; int index; for (index = 0; index < MAX_HWIFS; ++index) { hwif = &ide_hwifs[index]; if (hwif->io_ports[IDE_DATA_OFFSET] == dataport) goto found; } for (index = 0; index < MAX_HWIFS; ++index) { hwif = &ide_hwifs[index]; if (!hwif->io_ports[IDE_DATA_OFFSET]) goto found; } hwif = NULL; found: return hwif; } static ide_hwif_t * icside_setup(void __iomem *base, struct cardinfo *info, struct expansion_card *ec) { unsigned long port = (unsigned long)base + info->dataoffset; ide_hwif_t *hwif; hwif = icside_find_hwif(port); hwif = ide_find_port(port); if (hwif) { int i; Loading drivers/ide/arm/rapide.c +5 −20 Original line number Diff line number Diff line Loading @@ -13,31 +13,16 @@ #include <asm/ecard.h> /* * Something like this really should be in generic code, but isn't. */ static ide_hwif_t * rapide_locate_hwif(void __iomem *base, void __iomem *ctrl, unsigned int sz, int irq) { unsigned long port = (unsigned long)base; ide_hwif_t *hwif; int index, i; for (index = 0; index < MAX_HWIFS; ++index) { hwif = ide_hwifs + index; if (hwif->io_ports[IDE_DATA_OFFSET] == port) goto found; } ide_hwif_t *hwif = ide_find_port(port); int i; for (index = 0; index < MAX_HWIFS; ++index) { hwif = ide_hwifs + index; if (hwif->io_ports[IDE_DATA_OFFSET] == 0) goto found; } return NULL; if (hwif == NULL) goto out; found: for (i = IDE_DATA_OFFSET; i <= IDE_STATUS_OFFSET; i++) { hwif->hw.io_ports[i] = port; hwif->io_ports[i] = port; Loading @@ -48,7 +33,7 @@ rapide_locate_hwif(void __iomem *base, void __iomem *ctrl, unsigned int sz, int hwif->hw.irq = hwif->irq = irq; hwif->mmio = 1; default_hwif_mmiops(hwif); out: return hwif; } Loading drivers/ide/ide.c +24 −0 Original line number Diff line number Diff line Loading @@ -265,6 +265,30 @@ static int ide_system_bus_speed(void) return system_bus_speed; } ide_hwif_t * ide_find_port(unsigned long base) { ide_hwif_t *hwif; int i; for (i = 0; i < MAX_HWIFS; i++) { hwif = &ide_hwifs[i]; if (hwif->io_ports[IDE_DATA_OFFSET] == base) goto found; } for (i = 0; i < MAX_HWIFS; i++) { hwif = &ide_hwifs[i]; if (hwif->io_ports[IDE_DATA_OFFSET] == 0) goto found; } hwif = NULL; found: return hwif; } EXPORT_SYMBOL_GPL(ide_find_port); static struct resource* hwif_request_region(ide_hwif_t *hwif, unsigned long addr, int num) { Loading drivers/ide/legacy/ide_platform.c +6 −19 Original line number Diff line number Diff line Loading @@ -33,24 +33,11 @@ static ide_hwif_t *__devinit plat_ide_locate_hwif(void __iomem *base, int mmio) { unsigned long port = (unsigned long)base; ide_hwif_t *hwif; int index, i; for (index = 0; index < MAX_HWIFS; ++index) { hwif = ide_hwifs + index; if (hwif->io_ports[IDE_DATA_OFFSET] == port) goto found; } for (index = 0; index < MAX_HWIFS; ++index) { hwif = ide_hwifs + index; if (hwif->io_ports[IDE_DATA_OFFSET] == 0) goto found; } ide_hwif_t *hwif = ide_find_port(port); int i; return NULL; found: if (hwif == NULL) goto out; hwif->hw.io_ports[IDE_DATA_OFFSET] = port; Loading @@ -73,8 +60,8 @@ static ide_hwif_t *__devinit plat_ide_locate_hwif(void __iomem *base, } hwif_prop.hwif = hwif; hwif_prop.index = index; hwif_prop.index = hwif->index; out: return hwif; } Loading include/linux/ide.h +2 −0 Original line number Diff line number Diff line Loading @@ -223,6 +223,8 @@ typedef struct hw_regs_s { struct device *dev; } hw_regs_t; struct hwif_s * ide_find_port(unsigned long); int ide_register_hw(hw_regs_t *, void (*)(struct hwif_s *), int, struct hwif_s **); Loading Loading
drivers/ide/arm/icside.c +1 −23 Original line number Diff line number Diff line Loading @@ -438,35 +438,13 @@ static void icside_dma_init(ide_hwif_t *hwif) #define icside_dma_init(hwif) (0) #endif static ide_hwif_t *icside_find_hwif(unsigned long dataport) { ide_hwif_t *hwif; int index; for (index = 0; index < MAX_HWIFS; ++index) { hwif = &ide_hwifs[index]; if (hwif->io_ports[IDE_DATA_OFFSET] == dataport) goto found; } for (index = 0; index < MAX_HWIFS; ++index) { hwif = &ide_hwifs[index]; if (!hwif->io_ports[IDE_DATA_OFFSET]) goto found; } hwif = NULL; found: return hwif; } static ide_hwif_t * icside_setup(void __iomem *base, struct cardinfo *info, struct expansion_card *ec) { unsigned long port = (unsigned long)base + info->dataoffset; ide_hwif_t *hwif; hwif = icside_find_hwif(port); hwif = ide_find_port(port); if (hwif) { int i; Loading
drivers/ide/arm/rapide.c +5 −20 Original line number Diff line number Diff line Loading @@ -13,31 +13,16 @@ #include <asm/ecard.h> /* * Something like this really should be in generic code, but isn't. */ static ide_hwif_t * rapide_locate_hwif(void __iomem *base, void __iomem *ctrl, unsigned int sz, int irq) { unsigned long port = (unsigned long)base; ide_hwif_t *hwif; int index, i; for (index = 0; index < MAX_HWIFS; ++index) { hwif = ide_hwifs + index; if (hwif->io_ports[IDE_DATA_OFFSET] == port) goto found; } ide_hwif_t *hwif = ide_find_port(port); int i; for (index = 0; index < MAX_HWIFS; ++index) { hwif = ide_hwifs + index; if (hwif->io_ports[IDE_DATA_OFFSET] == 0) goto found; } return NULL; if (hwif == NULL) goto out; found: for (i = IDE_DATA_OFFSET; i <= IDE_STATUS_OFFSET; i++) { hwif->hw.io_ports[i] = port; hwif->io_ports[i] = port; Loading @@ -48,7 +33,7 @@ rapide_locate_hwif(void __iomem *base, void __iomem *ctrl, unsigned int sz, int hwif->hw.irq = hwif->irq = irq; hwif->mmio = 1; default_hwif_mmiops(hwif); out: return hwif; } Loading
drivers/ide/ide.c +24 −0 Original line number Diff line number Diff line Loading @@ -265,6 +265,30 @@ static int ide_system_bus_speed(void) return system_bus_speed; } ide_hwif_t * ide_find_port(unsigned long base) { ide_hwif_t *hwif; int i; for (i = 0; i < MAX_HWIFS; i++) { hwif = &ide_hwifs[i]; if (hwif->io_ports[IDE_DATA_OFFSET] == base) goto found; } for (i = 0; i < MAX_HWIFS; i++) { hwif = &ide_hwifs[i]; if (hwif->io_ports[IDE_DATA_OFFSET] == 0) goto found; } hwif = NULL; found: return hwif; } EXPORT_SYMBOL_GPL(ide_find_port); static struct resource* hwif_request_region(ide_hwif_t *hwif, unsigned long addr, int num) { Loading
drivers/ide/legacy/ide_platform.c +6 −19 Original line number Diff line number Diff line Loading @@ -33,24 +33,11 @@ static ide_hwif_t *__devinit plat_ide_locate_hwif(void __iomem *base, int mmio) { unsigned long port = (unsigned long)base; ide_hwif_t *hwif; int index, i; for (index = 0; index < MAX_HWIFS; ++index) { hwif = ide_hwifs + index; if (hwif->io_ports[IDE_DATA_OFFSET] == port) goto found; } for (index = 0; index < MAX_HWIFS; ++index) { hwif = ide_hwifs + index; if (hwif->io_ports[IDE_DATA_OFFSET] == 0) goto found; } ide_hwif_t *hwif = ide_find_port(port); int i; return NULL; found: if (hwif == NULL) goto out; hwif->hw.io_ports[IDE_DATA_OFFSET] = port; Loading @@ -73,8 +60,8 @@ static ide_hwif_t *__devinit plat_ide_locate_hwif(void __iomem *base, } hwif_prop.hwif = hwif; hwif_prop.index = index; hwif_prop.index = hwif->index; out: return hwif; } Loading
include/linux/ide.h +2 −0 Original line number Diff line number Diff line Loading @@ -223,6 +223,8 @@ typedef struct hw_regs_s { struct device *dev; } hw_regs_t; struct hwif_s * ide_find_port(unsigned long); int ide_register_hw(hw_regs_t *, void (*)(struct hwif_s *), int, struct hwif_s **); Loading