Messages in this thread Patch in this message | | | Date | Wed, 29 Oct 2003 20:29:17 -0500 | From | Jeff Garzik <> | Subject | [PATCH] Re: SATA and 2.6.0-test9 |
| |
Patrik Wallstrom wrote: > On Mon, 27 Oct 2003, Jeff Garzik wrote: > > >>>>Jeff Garzik: >>>> o [libata] Merge Serial ATA core, and drivers for >>>> o [libata] Integrate Serial ATA driver into kernel tree >>> >>>I am happy to see these in the kernel now, but I have yet to get them >>>working on my KT6 Delta KT600 motherboard with the VT8237 SATA >>>southbridge controller or even the Promise controller. >> >>Does it improve things, if you change ATA_FLAG_SRST to >>ATA_FLAG_SATA_RESET, in drivers/scsi/sata_via.c ? > > > It doesn't hang any more, but the only result is: > sata_via version 0.11 > ata3: SATA max UDMA/133 cmd 0xD800 ctl 0xD402 bmdma 0xC800 irq 16 > ata4: SATA max UDMA/133 cmd 0xD000 ctl 0xCC02 bmdma 0xC808 irq 16 > ata3: thread exiting > scsi2 : sata_via > ata4: thread exiting > scsi3 : sata_via
Duh... I was missing a piece in libata-core.c, and clobbering some information I needed.
Can you try this patch, and let me know if things change?
Jeff
===== drivers/scsi/libata-core.c 1.5 vs edited ===== --- 1.5/drivers/scsi/libata-core.c Wed Oct 22 22:25:32 2003 +++ edited/drivers/scsi/libata-core.c Wed Oct 29 20:27:27 2003 @@ -1339,9 +1339,13 @@ outb(ap->ctl, ioaddr->ctl_addr); /* determine if device 0/1 are present */ - dev0 = ata_dev_devchk(ap, 0); - if (slave_possible) - dev1 = ata_dev_devchk(ap, 1); + if (ap->flags & ATA_FLAG_SATA_RESET) + dev0 = 1; + else { + dev0 = ata_dev_devchk(ap, 0); + if (slave_possible) + dev1 = ata_dev_devchk(ap, 1); + } if (dev0) devmask |= (1 << 0); ===== drivers/scsi/sata_via.c 1.2 vs edited ===== --- 1.2/drivers/scsi/sata_via.c Tue Oct 21 23:13:54 2003 +++ edited/drivers/scsi/sata_via.c Wed Oct 29 20:27:43 2003 @@ -108,7 +108,7 @@ { .sht = &svia_sht, .host_flags = ATA_FLAG_SATA | ATA_FLAG_NO_LEGACY - | ATA_FLAG_SRST, + | ATA_FLAG_SATA_RESET, .pio_mask = 0x03, /* pio3-4 */ .udma_mask = 0x7f, /* udma0-6 ; FIXME */ .port_ops = &svia_sata_ops, | |