mirror of
https://github.com/adulau/aha.git
synced 2024-12-28 11:46:19 +00:00
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: Bartlomiej Zolnierkiewicz <bzolnier@gmail.com>
This commit is contained in:
parent
46aa7af1d6
commit
f58c1ab8de
3 changed files with 2 additions and 5 deletions
|
@ -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)
|
||||||
|
|
||||||
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)
|
||||||
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 {
|
||||||
|
|
||||||
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;
|
||||||
|
|
Loading…
Reference in a new issue