ide: always set nIEN on idle devices

* Set nIEN for previous port/device in ide_do_request()
  also if port uses a non-shared IRQ.

* Remove no longer needed ide_hwif_t.sharing_irq.
Signed-off-by: default avatarBartlomiej Zolnierkiewicz <bzolnier@gmail.com>
parent 46aa7af1
...@@ -1003,7 +1003,7 @@ static void ide_do_request (ide_hwgroup_t *hwgroup, int masked_irq) ...@@ -1003,7 +1003,7 @@ static void ide_do_request (ide_hwgroup_t *hwgroup, int masked_irq)
} }
again: again:
hwif = HWIF(drive); hwif = HWIF(drive);
if (hwgroup->hwif->sharing_irq && hwif != hwgroup->hwif) { if (hwif != hwgroup->hwif) {
/* /*
* set nIEN for previous hwif, drives in the * set nIEN for previous hwif, drives in the
* quirk_list may not like intr setups/cleanups * quirk_list may not like intr setups/cleanups
......
...@@ -1060,7 +1060,6 @@ static int init_irq (ide_hwif_t *hwif) ...@@ -1060,7 +1060,6 @@ static int init_irq (ide_hwif_t *hwif)
if (h && h->hwgroup) { /* scan only initialized ports */ if (h && h->hwgroup) { /* scan only initialized ports */
if (hwif->irq == h->irq) { if (hwif->irq == h->irq) {
hwif->sharing_irq = h->sharing_irq = 1;
if (hwif->chipset != ide_pci || if (hwif->chipset != ide_pci ||
h->chipset != ide_pci) { h->chipset != ide_pci) {
save_match(hwif, h, &match); save_match(hwif, h, &match);
...@@ -1152,8 +1151,7 @@ static int init_irq (ide_hwif_t *hwif) ...@@ -1152,8 +1151,7 @@ static int init_irq (ide_hwif_t *hwif)
io_ports->data_addr, hwif->irq); io_ports->data_addr, hwif->irq);
#endif /* __mc68000__ */ #endif /* __mc68000__ */
if (match) if (match)
printk(KERN_CONT " (%sed with %s)", printk(KERN_CONT " (serialized with %s)", match->name);
hwif->sharing_irq ? "shar" : "serializ", match->name);
printk(KERN_CONT "\n"); printk(KERN_CONT "\n");
mutex_unlock(&ide_cfg_mtx); mutex_unlock(&ide_cfg_mtx);
......
...@@ -842,7 +842,6 @@ typedef struct hwif_s { ...@@ -842,7 +842,6 @@ typedef struct hwif_s {
unsigned present : 1; /* this interface exists */ unsigned present : 1; /* this interface exists */
unsigned serialized : 1; /* serialized all channel operation */ unsigned serialized : 1; /* serialized all channel operation */
unsigned sharing_irq: 1; /* 1 = sharing irq with another hwif */
unsigned sg_mapped : 1; /* sg_table and sg_nents are ready */ unsigned sg_mapped : 1; /* sg_table and sg_nents are ready */
struct device gendev; struct device gendev;
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment