Re: [PATCH] libata: Handle SATA bridges better

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Alan Cox wrote:
> In some situations we find that SATA devices are attached via PATA/SATA
> bridges. When we find this we need to change a couple of bits of behaviour
> 
> -	Error changedown behaviour for SATA is different - no point
> dropping to PIO
> -	40/80 wire cable detection testing cannot be done.
> 
> Thus we need to detect this case and update the cable type accordingly.
> 
> Signed-off-by: Alan Cox <alan@xxxxxxxxxx>
> 
> diff -u --new-file --recursive --exclude-from /usr/src/exclude linux.vanilla-2.6.22-rc1-mm1/drivers/ata/libata-core.c linux-2.6.22-rc1-mm1/drivers/ata/libata-core.c
> --- linux.vanilla-2.6.22-rc1-mm1/drivers/ata/libata-core.c	2007-05-18 16:22:53.000000000 +0100
> +++ linux-2.6.22-rc1-mm1/drivers/ata/libata-core.c	2007-05-18 16:40:23.000000000 +0100
> @@ -2186,6 +2186,16 @@
>  	if (ap->ops->cable_detect)
>  		ap->cbl = ap->ops->cable_detect(ap);
>  
> +	/* We may have SATA bridge glue hiding here irrespective of the
> +	   reported cable types and sensed types */
> +	for (i = 0; i < ATA_MAX_DEVICES; i++) {
> +		dev = &ap->device[i];
> +		if (!ata_dev_enabled(dev))
> +			continue;
> +		if (ata_id_is_sata(dev->id))
> +			ap->cbl = ATA_CBL_SATA;
> +	}
> +

I'm not sure this is correct.  The SATA bridge can be at the far side of
PATA cable near to the drive.  ie.

PATA host <========= PATA cable ==========> P/SATA bridge : SATA drive

In this case, most of the cable is PATA and cable detection matters.
Another problem is that there are still codes which interpret ap->cbl ==
ATA_CBL_SATA as SATA host port.  They need to be fixed first before
using ap->cbl for the actual cable type.

-- 
tejun
-
To unsubscribe from this list: send the line "unsubscribe linux-ide" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html

[Index of Archives]     [Linux Filesystems]     [Linux SCSI]     [Linux RAID]     [Git]     [Kernel Newbies]     [Linux Newbie]     [Security]     [Netfilter]     [Bugtraq]     [Yosemite News]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Samba]     [Device Mapper]

  Powered by Linux