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

Configure Feed

Select the types of activity you want to include in your feed.

Merge branch 'upstream-linus' of master.kernel.org:/pub/scm/linux/kernel/git/jgarzik/libata-dev

* 'upstream-linus' of master.kernel.org:/pub/scm/linux/kernel/git/jgarzik/libata-dev:
libata clear horkage on ata_dev_init()
[libata, IDE] add new VIA bridge to VIA PATA drivers
pata_it821x: fix lost interrupt with atapi devices
Fix broken pata_via cable detection

+18 -3
+1
drivers/ata/libata-core.c
··· 6035 6035 */ 6036 6036 spin_lock_irqsave(ap->lock, flags); 6037 6037 dev->flags &= ~ATA_DFLAG_INIT_MASK; 6038 + dev->horkage = 0; 6038 6039 spin_unlock_irqrestore(ap->lock, flags); 6039 6040 6040 6041 memset((void *)dev + ATA_DEVICE_CLEAR_OFFSET, 0,
+4
drivers/ata/pata_it821x.c
··· 533 533 struct ata_port *ap = qc->ap; 534 534 struct it821x_dev *itdev = ap->private_data; 535 535 536 + /* Only use dma for transfers to/from the media. */ 537 + if (qc->nbytes < 2048) 538 + return -EOPNOTSUPP; 539 + 536 540 /* No ATAPI DMA in smart mode */ 537 541 if (itdev->smart) 538 542 return -EOPNOTSUPP;
+11 -3
drivers/ata/pata_via.c
··· 97 97 u8 rev_max; 98 98 u16 flags; 99 99 } via_isa_bridges[] = { 100 + { "vx800", PCI_DEVICE_ID_VIA_VX800, 0x00, 0x2f, VIA_UDMA_133 | VIA_BAD_AST }, 100 101 { "vt8237s", PCI_DEVICE_ID_VIA_8237S, 0x00, 0x2f, VIA_UDMA_133 | VIA_BAD_AST }, 101 102 { "vt8251", PCI_DEVICE_ID_VIA_8251, 0x00, 0x2f, VIA_UDMA_133 | VIA_BAD_AST }, 102 103 { "cx700", PCI_DEVICE_ID_VIA_CX700, 0x00, 0x2f, VIA_UDMA_133 | VIA_BAD_AST }, ··· 244 243 int ut; 245 244 int offset = 3 - (2*ap->port_no) - adev->devno; 246 245 247 - 248 246 /* Calculate the timing values we require */ 249 247 ata_timing_compute(adev, mode, &t, T, UT); 250 248 ··· 290 290 ut = t.udma ? (0xe0 | (FIT(t.udma, 2, 9) - 2)) : 0x07; 291 291 break; 292 292 } 293 + 293 294 /* Set UDMA unless device is not UDMA capable */ 294 - if (udma_type) 295 - pci_write_config_byte(pdev, 0x50 + offset, ut); 295 + if (udma_type) { 296 + u8 cable80_status; 297 + 298 + /* Get 80-wire cable detection bit */ 299 + pci_read_config_byte(pdev, 0x50 + offset, &cable80_status); 300 + cable80_status &= 0x10; 301 + 302 + pci_write_config_byte(pdev, 0x50 + offset, ut | cable80_status); 303 + } 296 304 } 297 305 298 306 static void via_set_piomode(struct ata_port *ap, struct ata_device *adev)
+1
drivers/ide/pci/via82cxxx.c
··· 74 74 u8 udma_mask; 75 75 u8 flags; 76 76 } via_isa_bridges[] = { 77 + { "vx800", PCI_DEVICE_ID_VIA_VX800, 0x00, 0x2f, ATA_UDMA6, VIA_BAD_AST }, 77 78 { "cx700", PCI_DEVICE_ID_VIA_CX700, 0x00, 0x2f, ATA_UDMA6, VIA_BAD_AST }, 78 79 { "vt8237s", PCI_DEVICE_ID_VIA_8237S, 0x00, 0x2f, ATA_UDMA6, VIA_BAD_AST }, 79 80 { "vt6410", PCI_DEVICE_ID_VIA_6410, 0x00, 0x2f, ATA_UDMA6, VIA_BAD_AST },
+1
include/linux/pci_ids.h
··· 1343 1343 #define PCI_DEVICE_ID_VIA_8231_4 0x8235 1344 1344 #define PCI_DEVICE_ID_VIA_8365_1 0x8305 1345 1345 #define PCI_DEVICE_ID_VIA_CX700 0x8324 1346 + #define PCI_DEVICE_ID_VIA_VX800 0x8353 1346 1347 #define PCI_DEVICE_ID_VIA_8371_1 0x8391 1347 1348 #define PCI_DEVICE_ID_VIA_82C598_1 0x8598 1348 1349 #define PCI_DEVICE_ID_VIA_838X_1 0xB188