ide: remove hwif->intrproc
PATCH 13/15 ide: remove hwif->intrproc
Given that:
* hpt366.c::hpt3xx_intrproc() is the only user of hwif->intrproc
* hpt366.c::hpt3xx_quirkproc() sets drive->quirk_list to 1 for quirky drives which is a value unique to hpt366 host driver
we can remove hwif->intproc and just check for drive->quirk_list == 1 in ide_do_request().
---
Handling of quirky drives (problems with nIEN) by hpt366 and pdc202xx_* looks suspicious... are the problems really dependent on the host type (thus hwif->quirkproc and ->quirk_list == 1/2)? Shouldn't we just handle quirky drives in the same way in the core IDE code regardless of the host driver being used (of course using hwif->maskproc where needed)?
drivers/ide/ide-io.c | 9 +++++---- drivers/ide/pci/hpt366.c | 10 ---------- drivers/ide/pci/sgiioc4.c | 1 - include/linux/ide.h | 2 -- 4 files changed, 5 insertions(+), 17 deletions(-)
drivers/ide/ide-io.c +5 -4
@@ -1198,10 +1198,11 @@ static void ide_do_request (ide_hwgroup_if (hwgroup->hwif->sharing_irq && hwif != hwgroup->hwif && hwif->io_ports[IDE_CONTROL_OFFSET ]) { -/* set nIEN for previous hwif */ -if (hwif->intrproc) - hwif->intrproc (drive); -else +/* +* set nIEN for previous hwif, drives in the +* quirk_list may not like intr setups/cleanups +*/ +if (drive->quirk_list !=1 ) hwif->OUTB (drive->ctl |2 ,IDE_CONTROL_REG ); } hwgroup->hwif = hwif;
drivers/ide/pci/hpt366.c +0 -10
@@ -687,15 +687,6 @@ static int hpt3xx_quirkproc(ide_drive_treturn 0 ; } -static void hpt3xx_intrproc (ide_drive_t *drive) -{ -if (drive->quirk_list) -return ; - -/* drives in the quirk_list may not like intr setups/cleanups */ -outb (drive->ctl |2 ,IDE_CONTROL_REG ); -} -static void hpt3xx_maskproc (ide_drive_t *drive,int mask) {ide_hwif_t *hwif =HWIF (drive);
@@ -1253,7 +1244,6 @@ static void __devinit init_hwif_hpt366(i hwif->set_pio_mode = &hpt3xx_set_pio_mode; hwif->set_dma_mode = &hpt3xx_set_mode; hwif->quirkproc = &hpt3xx_quirkproc; - hwif->intrproc = &hpt3xx_intrproc; hwif->maskproc = &hpt3xx_maskproc; hwif->busproc = &hpt3xx_busproc;
drivers/ide/pci/sgiioc4.c +0 -1
@@ -582,7 +582,6 @@ ide_init_sgiioc4(ide_hwif_t * hwif) hwif->pre_reset =NULL ;/* No HBA specific pre_set needed */ hwif->resetproc = &sgiioc4_resetproc;/* Reset DMA engine, clear interrupts */ - hwif->intrproc =NULL ;/* Enable or Disable interrupt from drive */ hwif->maskproc = &sgiioc4_maskproc;/* Mask on/off NIEN register */ hwif->quirkproc =NULL ; hwif->busproc =NULL ;
include/linux/ide.h +0 -2
@@ -524,8 +524,6 @@ typedef struct hwif_s {void (*pre_reset)(ide_drive_t *);/* routine to reset controller after a disk reset */ void (*resetproc)(ide_drive_t *); -/* special interrupt handling for shared pci interrupts */ -void (*intrproc)(ide_drive_t *);/* special host masking for drive selection */ void (*maskproc)(ide_drive_t *,int );/* check host's drive quirk list */
Hello.
Quoted 11 lines · Bartlomiej Zolnierkiewicz
Given that:
*
hpt366.c::hpt3xx_intrproc()is the only user ofhwif->intrproc*
hpt366.c::hpt3xx_quirkproc()setsdrive->quirk_listto 1 for quirky drives which is a value unique to hpt366 host driverwe can remove
hwif->intprocand just check fordrive->quirk_list== 1 inide_do_request().Signed-off-by Bartlomiej Zolnierkiewicz <[email protected]>
Quoted 6 lines
---
Handling of quirky drives (problems with nIEN) by hpt366 and pdc202xx_* looks suspicious... are the problems really dependent on the host type (thushwif->quirkprocand ->quirk_list == 1/2)? Shouldn't we just handle quirky drives in the same way in the core IDE code regardless of the host driver being used (of course usinghwif->maskprocwhere needed)?
Indeed...
MBR, Sergei
Quoted 3 lines
Quoted 1 line · Bartlomiej Zolnierkiewicz
*
hpt366.c::hpt3xx_intrproc()is the only user ofhwif->intrproc
..
Speaking of which..
I believe I have a small PCI card here with an HPT366 chip on it. Does anyone there want it before I throw it away?
-ml
Quoted 9 lines · Mark Lord
Quoted 3 lines
Quoted 1 line · Bartlomiej Zolnierkiewicz
*
hpt366.c::hpt3xx_intrproc()is the only user ofhwif->intrproc..
Speaking of which..
I believe I have a small PCI card here with an HPT366 chip on it. Does anyone there want it before I throw it away?
I already have a 372. It should be almost the same, right?
Signature · 1 line
tejun
Quoted 4 lines · Tejun Heo
Quoted 2 lines
I believe I have a small PCI card here with an HPT366 chip on it. Does anyone there want it before I throw it away?
I already have a 372. It should be almost the same, right?
They are not very similar no. HPT37x is a progression from the 366 but quite different
Quoted 7 lines · Alan Cox
Quoted 3 lines · Tejun Heo
Quoted 2 lines
I believe I have a small PCI card here with an HPT366 chip on it. Does anyone there want it before I throw it away?
I already have a 372. It should be almost the same, right?
They are not very similar no. HPT37x is a progression from the 366 but quite different
Alright, then, if no one else wants it, please send it to me. I can pay for the shipping via paypal. :-)
Signature · 1 line
tejun