ide: add hwif->ack_intr hook
PATCH 1/1 ide: add hwif->ack_intr hook
* Add hwif->ack_intr hook and use it instead of hwif->hw.ack_intr.
* Add missing brackets to cris-v32 and powerpc ide_ack_intr() macros.
Cc Roman Zippel <[email protected]>
Cc Geert Uytterhoeven <[email protected]>
Cc Andrew Morton <[email protected]>
Signed-off-by Bartlomiej Zolnierkiewicz <[email protected]>
---
Andrew has noticed that:
http://kernel.org/pub/linux/kernel/people/bart/pata-2.6/patches/ide-remove-write-only-hwif-hw.patch
broke m68k, this pre-patch should fix it (together with fixing cris-v32/mpc8xx).
drivers/ide/ide.c | 1 + drivers/ide/ppc/mpc8xx.c | 4 ++-- include/asm-cris/arch-v32/ide.h | 2 +- include/asm-m68k/ide.h | 2 +- include/asm-powerpc/ide.h | 2 +- include/linux/ide.h | 2 ++ 6 files changed, 8 insertions(+), 5 deletions(-)
drivers/ide/ide.c +1 -0
@@ -737,6 +737,7 @@ found: hwif->fixup = fixup; hwif->chipset = hw->chipset; hwif->gendev.parent = hw->dev; + hwif->ack_intr = hw->ack_intr;if (initializing ==0 ) {u8 idx[4 ] = { index,0xff ,0xff ,0xff };
drivers/ide/ppc/mpc8xx.c +2 -2
@@ -316,8 +316,8 @@ m8xx_ide_init_hwif_ports(hw_regs_t *hw, ide_hwifs[data_port].pio_mask =ATA_PIO4 ; ide_hwifs[data_port].set_pio_mode = m8xx_ide_set_pio_mode; + ide_hwifs[data_port].ack_intr = (ide_ack_intr_t *)ide_interrupt_ack; - hw->ack_intr = (ide_ack_intr_t *) ide_interrupt_ack;/* Enable Harddisk Interrupt, * and make it edge sensitive */
@@ -402,8 +402,8 @@ void m8xx_ide_init_hwif_ports (hw_regs_t ide_hwifs[data_port].pio_mask =ATA_PIO4 ; ide_hwifs[data_port].set_pio_mode = m8xx_ide_set_pio_mode; + ide_hwifs[data_port].ack_intr = (ide_ack_intr_t *)ide_interrupt_ack; - hw->ack_intr = (ide_ack_intr_t *) ide_interrupt_ack;/* Enable Harddisk Interrupt, * and make it edge sensitive */
include/asm-cris/arch-v32/ide.h +1 -1
@@ -54,7 +54,7 @@ static inline unsigned long ide_default_#define SUPPORT_VLB_SYNC 0#define IDE_ARCH_ACK_INTR -#define ide_ack_intr (hwif) (hwif)->hw.ack_intr(hwif) +#define ide_ack_intr (hwif) ((hwif)->ack_intr(hwif))#endif /* __KERNEL__ */
include/asm-m68k/ide.h +1 -1
@@ -137,7 +137,7 @@ ide_get_lock(irq_handler_t handler, void#endif /* CONFIG_BLK_DEV_FALCON_IDE */ #define IDE_ARCH_ACK_INTR -#define ide_ack_intr (hwif) ((hwif)->hw.ack_intr ? (hwif)->hw.ack_intr(hwif) : 1) +#define ide_ack_intr (hwif) ((hwif)->ack_intr ? (hwif)->ack_intr(hwif) : 1)#endif /* __KERNEL__ */ #endif /* _M68K_IDE_H */
include/asm-powerpc/ide.h +1 -1
@@ -69,7 +69,7 @@ static __inline__ unsigned long ide_defa#ifdef CONFIG_BLK_DEV_MPC8xx_IDE#define IDE_ARCH_ACK_INTR 1 -#define ide_ack_intr (hwif) (hwif->hw.ack_intr ? hwif->hw.ack_intr(hwif) : 1) +#define ide_ack_intr (hwif) ((hwif)->ack_intr ? (hwif)->ack_intr(hwif) : 1)#endif #endif /* __powerpc64__ */
include/linux/ide.h +2 -0
@@ -683,6 +683,8 @@ typedef struct hwif_s {struct pci_dev *pci_dev;/* for pci chipsets */ struct ide_pci_device_s *cds;/* chipset device struct */ +ide_ack_intr_t *ack_intr; +void (*rw_disk)(ide_drive_t *,struct request *);#if 0