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(). Acked-by: Sergei Shtylyov <sshtylyov@ru.mvista.com> Signed-off-by: Bartlomiej Zolnierkiewicz <bzolnier@gmail.com>
This commit is contained in:
@@ -1200,10 +1200,11 @@ static void ide_do_request (ide_hwgroup_t *hwgroup, int masked_irq)
|
|||||||
if (hwgroup->hwif->sharing_irq &&
|
if (hwgroup->hwif->sharing_irq &&
|
||||||
hwif != hwgroup->hwif &&
|
hwif != hwgroup->hwif &&
|
||||||
hwif->io_ports[IDE_CONTROL_OFFSET]) {
|
hwif->io_ports[IDE_CONTROL_OFFSET]) {
|
||||||
/* set nIEN for previous hwif */
|
/*
|
||||||
if (hwif->intrproc)
|
* set nIEN for previous hwif, drives in the
|
||||||
hwif->intrproc(drive);
|
* quirk_list may not like intr setups/cleanups
|
||||||
else
|
*/
|
||||||
|
if (drive->quirk_list != 1)
|
||||||
hwif->OUTB(drive->ctl | 2, IDE_CONTROL_REG);
|
hwif->OUTB(drive->ctl | 2, IDE_CONTROL_REG);
|
||||||
}
|
}
|
||||||
hwgroup->hwif = hwif;
|
hwgroup->hwif = hwif;
|
||||||
|
@@ -424,7 +424,6 @@ static void ide_hwif_restore(ide_hwif_t *hwif, ide_hwif_t *tmp_hwif)
|
|||||||
hwif->reset_poll = tmp_hwif->reset_poll;
|
hwif->reset_poll = tmp_hwif->reset_poll;
|
||||||
hwif->pre_reset = tmp_hwif->pre_reset;
|
hwif->pre_reset = tmp_hwif->pre_reset;
|
||||||
hwif->resetproc = tmp_hwif->resetproc;
|
hwif->resetproc = tmp_hwif->resetproc;
|
||||||
hwif->intrproc = tmp_hwif->intrproc;
|
|
||||||
hwif->maskproc = tmp_hwif->maskproc;
|
hwif->maskproc = tmp_hwif->maskproc;
|
||||||
hwif->quirkproc = tmp_hwif->quirkproc;
|
hwif->quirkproc = tmp_hwif->quirkproc;
|
||||||
hwif->busproc = tmp_hwif->busproc;
|
hwif->busproc = tmp_hwif->busproc;
|
||||||
|
@@ -736,15 +736,6 @@ static int hpt3xx_quirkproc(ide_drive_t *drive)
|
|||||||
return 0;
|
return 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)
|
static void hpt3xx_maskproc(ide_drive_t *drive, int mask)
|
||||||
{
|
{
|
||||||
ide_hwif_t *hwif = HWIF(drive);
|
ide_hwif_t *hwif = HWIF(drive);
|
||||||
@@ -1298,7 +1289,6 @@ static void __devinit init_hwif_hpt366(ide_hwif_t *hwif)
|
|||||||
hwif->set_dma_mode = &hpt3xx_set_mode;
|
hwif->set_dma_mode = &hpt3xx_set_mode;
|
||||||
|
|
||||||
hwif->quirkproc = &hpt3xx_quirkproc;
|
hwif->quirkproc = &hpt3xx_quirkproc;
|
||||||
hwif->intrproc = &hpt3xx_intrproc;
|
|
||||||
hwif->maskproc = &hpt3xx_maskproc;
|
hwif->maskproc = &hpt3xx_maskproc;
|
||||||
hwif->busproc = &hpt3xx_busproc;
|
hwif->busproc = &hpt3xx_busproc;
|
||||||
|
|
||||||
|
@@ -582,7 +582,6 @@ ide_init_sgiioc4(ide_hwif_t * hwif)
|
|||||||
hwif->pre_reset = NULL; /* No HBA specific pre_set needed */
|
hwif->pre_reset = NULL; /* No HBA specific pre_set needed */
|
||||||
hwif->resetproc = &sgiioc4_resetproc;/* Reset DMA engine,
|
hwif->resetproc = &sgiioc4_resetproc;/* Reset DMA engine,
|
||||||
clear interrupts */
|
clear interrupts */
|
||||||
hwif->intrproc = NULL; /* Enable or Disable interrupt from drive */
|
|
||||||
hwif->maskproc = &sgiioc4_maskproc; /* Mask on/off NIEN register */
|
hwif->maskproc = &sgiioc4_maskproc; /* Mask on/off NIEN register */
|
||||||
hwif->quirkproc = NULL;
|
hwif->quirkproc = NULL;
|
||||||
hwif->busproc = NULL;
|
hwif->busproc = NULL;
|
||||||
|
@@ -524,8 +524,6 @@ typedef struct hwif_s {
|
|||||||
void (*pre_reset)(ide_drive_t *);
|
void (*pre_reset)(ide_drive_t *);
|
||||||
/* routine to reset controller after a disk reset */
|
/* routine to reset controller after a disk reset */
|
||||||
void (*resetproc)(ide_drive_t *);
|
void (*resetproc)(ide_drive_t *);
|
||||||
/* special interrupt handling for shared pci interrupts */
|
|
||||||
void (*intrproc)(ide_drive_t *);
|
|
||||||
/* special host masking for drive selection */
|
/* special host masking for drive selection */
|
||||||
void (*maskproc)(ide_drive_t *, int);
|
void (*maskproc)(ide_drive_t *, int);
|
||||||
/* check host's drive quirk list */
|
/* check host's drive quirk list */
|
||||||
|
Reference in New Issue
Block a user