lkml.org 
[lkml]   [2003]   [Oct]   [30]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
Patch in this message
/
Date
From
Subject[PATCH #2] 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

Actually, attached is a better patch...
===== 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 Thu Oct 30 11:18:59 2003
@@ -1086,6 +1086,11 @@
if (ap->flags & ATA_FLAG_PORT_DISABLED)
return;

+ if (ata_busy_sleep(ap, ATA_TMOUT_BOOT_QUICK, ATA_TMOUT_BOOT)) {
+ ata_port_disable(ap);
+ return;
+ }
+
ata_bus_reset(ap);
}

@@ -1339,9 +1344,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_promise.c 1.8 vs edited =====
--- 1.8/drivers/scsi/sata_promise.c Tue Oct 28 11:04:25 2003
+++ edited/drivers/scsi/sata_promise.c Thu Oct 30 08:13:44 2003
@@ -176,7 +176,7 @@
{
.sht = &pdc_sata_sht,
.host_flags = ATA_FLAG_SATA | ATA_FLAG_NO_LEGACY |
- ATA_FLAG_SRST | ATA_FLAG_MMIO,
+ ATA_FLAG_SATA_RESET | ATA_FLAG_MMIO,
.pio_mask = 0x03, /* pio3-4 */
.udma_mask = 0x7f, /* udma0-6 ; FIXME */
.port_ops = &pdc_sata_ops,
@@ -186,7 +186,7 @@
{
.sht = &pdc_sata_sht,
.host_flags = ATA_FLAG_SATA | ATA_FLAG_NO_LEGACY |
- ATA_FLAG_SRST | ATA_FLAG_MMIO,
+ ATA_FLAG_SATA_RESET | ATA_FLAG_MMIO,
.pio_mask = 0x03, /* pio3-4 */
.udma_mask = 0x7f, /* udma0-6 ; FIXME */
.port_ops = &pdc_sata_ops,
@@ -207,6 +207,8 @@

static struct pci_device_id pdc_sata_pci_tbl[] = {
{ PCI_VENDOR_ID_PROMISE, 0x3371, PCI_ANY_ID, PCI_ANY_ID, 0, 0,
+ board_2037x },
+ { PCI_VENDOR_ID_PROMISE, 0x3373, PCI_ANY_ID, PCI_ANY_ID, 0, 0,
board_2037x },
{ PCI_VENDOR_ID_PROMISE, 0x3375, PCI_ANY_ID, PCI_ANY_ID, 0, 0,
board_2037x },
===== 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,
\
 
 \ /
  Last update: 2005-03-22 13:58    [from the cache]
©2003-2011 Jasper Spaans