Re: [PATCH] libata: Use IGN_SIMPLEX for ALi

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

 



On Wednesday 13 May 2009 15:59:09 Alan Cox wrote:
> From: Alan Cox <alan@xxxxxxxxxxxxxxx>
> 
> Some ALi devices report simplex if they have been disabled and re-enabled, and
> restoring the byte does not work. Ignore it - the needed supporting logic is
> already present for the SATA ULi ports.
> 
> Signed-off-by: Alan Cox <alan@xxxxxxxxxxxxxxx>

ACK, the original driver has always ignored simplex

[ Sigh, this issue seems to go back to:

  commit 669a5db411d85a14f86cd92bc16bf7ab5b8aa235
  Author: Jeff Garzik <jeff@xxxxxxxxxx>
  Date:   Tue Aug 29 18:12:40 2006 -0400

    [libata] Add a bunch of PATA drivers. ]

> ---
> 
>  drivers/ata/pata_ali.c |   17 +++++++++++------
>  1 files changed, 11 insertions(+), 6 deletions(-)
> 
> 
> diff --git a/drivers/ata/pata_ali.c b/drivers/ata/pata_ali.c
> index 751b7ea..fc9c5d6 100644
> --- a/drivers/ata/pata_ali.c
> +++ b/drivers/ata/pata_ali.c
> @@ -497,14 +497,16 @@ static int ali_init_one(struct pci_dev *pdev, const struct pci_device_id *id)
>  	};
>  	/* Revision 0x20 added DMA */
>  	static const struct ata_port_info info_20 = {
> -		.flags = ATA_FLAG_SLAVE_POSS | ATA_FLAG_PIO_LBA48,
> +		.flags = ATA_FLAG_SLAVE_POSS | ATA_FLAG_PIO_LBA48 |
> +							ATA_FLAG_IGN_SIMPLEX,
>  		.pio_mask = ATA_PIO4,
>  		.mwdma_mask = ATA_MWDMA2,
>  		.port_ops = &ali_20_port_ops
>  	};
>  	/* Revision 0x20 with support logic added UDMA */
>  	static const struct ata_port_info info_20_udma = {
> -		.flags = ATA_FLAG_SLAVE_POSS | ATA_FLAG_PIO_LBA48,
> +		.flags = ATA_FLAG_SLAVE_POSS | ATA_FLAG_PIO_LBA48 |
> +							ATA_FLAG_IGN_SIMPLEX,
>  		.pio_mask = ATA_PIO4,
>  		.mwdma_mask = ATA_MWDMA2,
>  		.udma_mask = ATA_UDMA2,
> @@ -512,7 +514,8 @@ static int ali_init_one(struct pci_dev *pdev, const struct pci_device_id *id)
>  	};
>  	/* Revision 0xC2 adds UDMA66 */
>  	static const struct ata_port_info info_c2 = {
> -		.flags = ATA_FLAG_SLAVE_POSS | ATA_FLAG_PIO_LBA48,
> +		.flags = ATA_FLAG_SLAVE_POSS | ATA_FLAG_PIO_LBA48 |
> +							ATA_FLAG_IGN_SIMPLEX,
>  		.pio_mask = ATA_PIO4,
>  		.mwdma_mask = ATA_MWDMA2,
>  		.udma_mask = ATA_UDMA4,
> @@ -520,7 +523,8 @@ static int ali_init_one(struct pci_dev *pdev, const struct pci_device_id *id)
>  	};
>  	/* Revision 0xC3 is UDMA66 for now */
>  	static const struct ata_port_info info_c3 = {
> -		.flags = ATA_FLAG_SLAVE_POSS | ATA_FLAG_PIO_LBA48,
> +		.flags = ATA_FLAG_SLAVE_POSS | ATA_FLAG_PIO_LBA48 |
> +							ATA_FLAG_IGN_SIMPLEX,
>  		.pio_mask = ATA_PIO4,
>  		.mwdma_mask = ATA_MWDMA2,
>  		.udma_mask = ATA_UDMA4,
> @@ -528,7 +532,8 @@ static int ali_init_one(struct pci_dev *pdev, const struct pci_device_id *id)
>  	};
>  	/* Revision 0xC4 is UDMA100 */
>  	static const struct ata_port_info info_c4 = {
> -		.flags = ATA_FLAG_SLAVE_POSS | ATA_FLAG_PIO_LBA48,
> +		.flags = ATA_FLAG_SLAVE_POSS | ATA_FLAG_PIO_LBA48 |
> +							ATA_FLAG_IGN_SIMPLEX,
>  		.pio_mask = ATA_PIO4,
>  		.mwdma_mask = ATA_MWDMA2,
>  		.udma_mask = ATA_UDMA5,
> @@ -536,7 +541,7 @@ static int ali_init_one(struct pci_dev *pdev, const struct pci_device_id *id)
>  	};
>  	/* Revision 0xC5 is UDMA133 with LBA48 DMA */
>  	static const struct ata_port_info info_c5 = {
> -		.flags = ATA_FLAG_SLAVE_POSS,
> +		.flags = ATA_FLAG_SLAVE_POSS | 	ATA_FLAG_IGN_SIMPLEX,
>  		.pio_mask = ATA_PIO4,
>  		.mwdma_mask = ATA_MWDMA2,
>  		.udma_mask = ATA_UDMA6,
--
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