mirror of
https://github.com/edk2-porting/linux-next.git
synced 2024-11-19 08:05:27 +08:00
Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/ide-2.6
* git://git.kernel.org/pub/scm/linux/kernel/git/davem/ide-2.6: ide: clean up timed out request handling hpt366: fix clock turnaround hpt366: add debounce delay to cable_detect() method
This commit is contained in:
commit
302f5bc544
@ -838,7 +838,7 @@ static void hpt3xxn_set_clock(ide_hwif_t *hwif, u8 mode)
|
||||
|
||||
static void hpt3xxn_rw_disk(ide_drive_t *drive, struct request *rq)
|
||||
{
|
||||
hpt3xxn_set_clock(drive->hwif, rq_data_dir(rq) ? 0x23 : 0x21);
|
||||
hpt3xxn_set_clock(drive->hwif, rq_data_dir(rq) ? 0x21 : 0x23);
|
||||
}
|
||||
|
||||
/**
|
||||
@ -1173,8 +1173,9 @@ static u8 hpt3xx_cable_detect(ide_hwif_t *hwif)
|
||||
u16 mcr;
|
||||
|
||||
pci_read_config_word(dev, mcr_addr, &mcr);
|
||||
pci_write_config_word(dev, mcr_addr, (mcr | 0x8000));
|
||||
/* now read cable id register */
|
||||
pci_write_config_word(dev, mcr_addr, mcr | 0x8000);
|
||||
/* Debounce, then read cable ID register */
|
||||
udelay(10);
|
||||
pci_read_config_byte(dev, 0x5a, &scr1);
|
||||
pci_write_config_word(dev, mcr_addr, mcr);
|
||||
} else if (chip_type >= HPT370) {
|
||||
@ -1185,10 +1186,11 @@ static u8 hpt3xx_cable_detect(ide_hwif_t *hwif)
|
||||
u8 scr2 = 0;
|
||||
|
||||
pci_read_config_byte(dev, 0x5b, &scr2);
|
||||
pci_write_config_byte(dev, 0x5b, (scr2 & ~1));
|
||||
/* now read cable id register */
|
||||
pci_write_config_byte(dev, 0x5b, scr2 & ~1);
|
||||
/* Debounce, then read cable ID register */
|
||||
udelay(10);
|
||||
pci_read_config_byte(dev, 0x5a, &scr1);
|
||||
pci_write_config_byte(dev, 0x5b, scr2);
|
||||
pci_write_config_byte(dev, 0x5b, scr2);
|
||||
} else
|
||||
pci_read_config_byte(dev, 0x5a, &scr1);
|
||||
|
||||
|
@ -449,7 +449,6 @@ ide_startstop_t ide_dma_timeout_retry(ide_drive_t *drive, int error)
|
||||
ide_hwif_t *hwif = drive->hwif;
|
||||
const struct ide_dma_ops *dma_ops = hwif->dma_ops;
|
||||
struct ide_cmd *cmd = &hwif->cmd;
|
||||
struct request *rq;
|
||||
ide_startstop_t ret = ide_stopped;
|
||||
|
||||
/*
|
||||
@ -487,14 +486,10 @@ ide_startstop_t ide_dma_timeout_retry(ide_drive_t *drive, int error)
|
||||
ide_dma_off_quietly(drive);
|
||||
|
||||
/*
|
||||
* un-busy drive etc and make sure request is sane
|
||||
* make sure request is sane
|
||||
*/
|
||||
rq = hwif->rq;
|
||||
if (rq) {
|
||||
hwif->rq = NULL;
|
||||
rq->errors = 0;
|
||||
ide_requeue_and_plug(drive, rq);
|
||||
}
|
||||
if (hwif->rq)
|
||||
hwif->rq->errors = 0;
|
||||
return ret;
|
||||
}
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user