Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

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

+11 -14
+8 -6
drivers/ide/hpt366.c
··· 838 838 839 839 static void hpt3xxn_rw_disk(ide_drive_t *drive, struct request *rq) 840 840 { 841 - hpt3xxn_set_clock(drive->hwif, rq_data_dir(rq) ? 0x23 : 0x21); 841 + hpt3xxn_set_clock(drive->hwif, rq_data_dir(rq) ? 0x21 : 0x23); 842 842 } 843 843 844 844 /** ··· 1173 1173 u16 mcr; 1174 1174 1175 1175 pci_read_config_word(dev, mcr_addr, &mcr); 1176 - pci_write_config_word(dev, mcr_addr, (mcr | 0x8000)); 1177 - /* now read cable id register */ 1176 + pci_write_config_word(dev, mcr_addr, mcr | 0x8000); 1177 + /* Debounce, then read cable ID register */ 1178 + udelay(10); 1178 1179 pci_read_config_byte(dev, 0x5a, &scr1); 1179 1180 pci_write_config_word(dev, mcr_addr, mcr); 1180 1181 } else if (chip_type >= HPT370) { ··· 1186 1185 u8 scr2 = 0; 1187 1186 1188 1187 pci_read_config_byte(dev, 0x5b, &scr2); 1189 - pci_write_config_byte(dev, 0x5b, (scr2 & ~1)); 1190 - /* now read cable id register */ 1188 + pci_write_config_byte(dev, 0x5b, scr2 & ~1); 1189 + /* Debounce, then read cable ID register */ 1190 + udelay(10); 1191 1191 pci_read_config_byte(dev, 0x5a, &scr1); 1192 - pci_write_config_byte(dev, 0x5b, scr2); 1192 + pci_write_config_byte(dev, 0x5b, scr2); 1193 1193 } else 1194 1194 pci_read_config_byte(dev, 0x5a, &scr1); 1195 1195
+3 -8
drivers/ide/ide-dma.c
··· 449 449 ide_hwif_t *hwif = drive->hwif; 450 450 const struct ide_dma_ops *dma_ops = hwif->dma_ops; 451 451 struct ide_cmd *cmd = &hwif->cmd; 452 - struct request *rq; 453 452 ide_startstop_t ret = ide_stopped; 454 453 455 454 /* ··· 486 487 ide_dma_off_quietly(drive); 487 488 488 489 /* 489 - * un-busy drive etc and make sure request is sane 490 + * make sure request is sane 490 491 */ 491 - rq = hwif->rq; 492 - if (rq) { 493 - hwif->rq = NULL; 494 - rq->errors = 0; 495 - ide_requeue_and_plug(drive, rq); 496 - } 492 + if (hwif->rq) 493 + hwif->rq->errors = 0; 497 494 return ret; 498 495 } 499 496