Re: [sata] libata update

From: Jeff Garzik
Date: Tue Mar 30 2004 - 18:17:21 EST


Petr Sebor wrote:
Hi Jeff,

I have upgraded from 2.6.3 to 2.6.5-rc3 and can't see the secondary
sata drive anymore...

Does this patch fix it?

Jeff


===== drivers/scsi/sata_via.c 1.10 vs edited =====
--- 1.10/drivers/scsi/sata_via.c Thu Mar 25 07:30:08 2004
+++ edited/drivers/scsi/sata_via.c Tue Mar 30 18:13:16 2004
@@ -56,6 +56,7 @@
static int svia_init_one (struct pci_dev *pdev, const struct pci_device_id *ent);
static u32 svia_scr_read (struct ata_port *ap, unsigned int sc_reg);
static void svia_scr_write (struct ata_port *ap, unsigned int sc_reg, u32 val);
+static void svia_phy_reset(struct ata_port *ap);

static struct pci_device_id svia_pci_tbl[] = {
{ 0x1106, 0x3149, PCI_ANY_ID, PCI_ANY_ID, 0, 0, via_sata },
@@ -96,7 +97,7 @@
.check_status = ata_check_status_pio,
.exec_command = ata_exec_command_pio,

- .phy_reset = sata_phy_reset,
+ .phy_reset = svia_phy_reset,

.bmdma_start = ata_bmdma_start_pio,
.fill_sg = ata_fill_sg,
@@ -115,6 +116,13 @@
MODULE_DESCRIPTION("SCSI low-level driver for VIA SATA controllers");
MODULE_LICENSE("GPL");
MODULE_DEVICE_TABLE(pci, svia_pci_tbl);
+
+static void svia_phy_reset(struct ata_port *ap)
+{
+ ap->cbl = ATA_CBL_SATA;
+ ata_port_probe(ap);
+ ata_bus_reset(ap);
+}

static u32 svia_scr_read (struct ata_port *ap, unsigned int sc_reg)
{