2018-09-06 21:11:22

by Suman Tripathi

[permalink] [raw]
Subject: [PATCH v3] ata: Disable AHCI ALPM feature for Ampere Computing eMAG SATA

Due to hardware errata, Ampere Computing eMAG SATA can't support
AHCI ALPM feature. This patch disables the AHCI ALPM feature for
eMAG SATA.

Signed-off-by: Suman Trpathi <[email protected]>
Signed-off-by: Rameshwar Prasad Sahu <[email protected]>

---
Changes for v3:

* Fix the indentation and whitespace warnings.

Changes for v2:

* Introduce the new ata_port_info object which includes ATA_FLAG_NO_LPM.
* Include this object for eMAG SATA inside the acpi match table.
* Retrieve the ata_port_info from the acpi match table.

---
drivers/ata/ahci_platform.c | 15 ++++++++++++++-
1 file changed, 14 insertions(+), 1 deletion(-)

diff --git a/drivers/ata/ahci_platform.c b/drivers/ata/ahci_platform.c
index 99f9a89..9ba283f 100644
--- a/drivers/ata/ahci_platform.c
+++ b/drivers/ata/ahci_platform.c
@@ -33,6 +33,13 @@ static const struct ata_port_info ahci_port_info = {
.port_ops = &ahci_platform_ops,
};

+static const struct ata_port_info ahci_port_info_nolpm = {
+ .flags = AHCI_FLAG_COMMON | ATA_FLAG_NO_LPM,
+ .pio_mask = ATA_PIO4,
+ .udma_mask = ATA_UDMA6,
+ .port_ops = &ahci_platform_ops,
+};
+
static struct scsi_host_template ahci_platform_sht = {
AHCI_SHT(DRV_NAME),
};
@@ -41,6 +48,7 @@ static int ahci_probe(struct platform_device *pdev)
{
struct device *dev = &pdev->dev;
struct ahci_host_priv *hpriv;
+ const struct ata_port_info *port;
int rc;

hpriv = ahci_platform_get_resources(pdev);
@@ -57,7 +65,11 @@ static int ahci_probe(struct platform_device *pdev)
if (of_device_is_compatible(dev->of_node, "hisilicon,hisi-ahci"))
hpriv->flags |= AHCI_HFLAG_NO_FBS | AHCI_HFLAG_NO_NCQ;

- rc = ahci_platform_init_host(pdev, hpriv, &ahci_port_info,
+ port = acpi_device_get_match_data(dev);
+ if (!port)
+ port = &ahci_port_info;
+
+ rc = ahci_platform_init_host(pdev, hpriv, port,
&ahci_platform_sht);
if (rc)
goto disable_resources;
@@ -85,6 +97,7 @@ static const struct of_device_id ahci_of_match[] = {
MODULE_DEVICE_TABLE(of, ahci_of_match);

static const struct acpi_device_id ahci_acpi_match[] = {
+ { "APMC0D33", (unsigned long)&ahci_port_info_nolpm },
{ ACPI_DEVICE_CLASS(PCI_CLASS_STORAGE_SATA_AHCI, 0xffffff) },
{},
};
--
2.7.4



2018-09-06 21:22:48

by Hans de Goede

[permalink] [raw]
Subject: Re: [PATCH v3] ata: Disable AHCI ALPM feature for Ampere Computing eMAG SATA

Hi,

On 06-09-18 20:05, Suman Tripathi wrote:
> Due to hardware errata, Ampere Computing eMAG SATA can't support
> AHCI ALPM feature. This patch disables the AHCI ALPM feature for
> eMAG SATA.
>
> Signed-off-by: Suman Trpathi <[email protected]>
> Signed-off-by: Rameshwar Prasad Sahu <[email protected]>

Sorry, but the patch is still coming through mangled. Did you use
git send-email ?

Regards,

Hans




>
> ---
> Changes for v3:
>
> * Fix the indentation and whitespace warnings.
>
> Changes for v2:
>
> * Introduce the new ata_port_info object which includes ATA_FLAG_NO_LPM.
> * Include this object for eMAG SATA inside the acpi match table.
> * Retrieve the ata_port_info from the acpi match table.
>
> ---
> drivers/ata/ahci_platform.c | 15 ++++++++++++++-
> 1 file changed, 14 insertions(+), 1 deletion(-)
>
> diff --git a/drivers/ata/ahci_platform.c b/drivers/ata/ahci_platform.c
> index 99f9a89..9ba283f 100644
> --- a/drivers/ata/ahci_platform.c
> +++ b/drivers/ata/ahci_platform.c
> @@ -33,6 +33,13 @@ static const struct ata_port_info ahci_port_info = {
> .port_ops = &ahci_platform_ops,
> };
>
> +static const struct ata_port_info ahci_port_info_nolpm = {
> + .flags = AHCI_FLAG_COMMON | ATA_FLAG_NO_LPM,
> + .pio_mask = ATA_PIO4,
> + .udma_mask = ATA_UDMA6,
> + .port_ops = &ahci_platform_ops,
> +};
> +
> static struct scsi_host_template ahci_platform_sht = {
> AHCI_SHT(DRV_NAME),
> };
> @@ -41,6 +48,7 @@ static int ahci_probe(struct platform_device *pdev)
> {
> struct device *dev = &pdev->dev;
> struct ahci_host_priv *hpriv;
> + const struct ata_port_info *port;
> int rc;
>
> hpriv = ahci_platform_get_resources(pdev);
> @@ -57,7 +65,11 @@ static int ahci_probe(struct platform_device *pdev)
> if (of_device_is_compatible(dev->of_node, "hisilicon,hisi-ahci"))
> hpriv->flags |= AHCI_HFLAG_NO_FBS | AHCI_HFLAG_NO_NCQ;
>
> - rc = ahci_platform_init_host(pdev, hpriv, &ahci_port_info,
> + port = acpi_device_get_match_data(dev);
> + if (!port)
> + port = &ahci_port_info;
> +
> + rc = ahci_platform_init_host(pdev, hpriv, port,
> &ahci_platform_sht);
> if (rc)
> goto disable_resources;
> @@ -85,6 +97,7 @@ static const struct of_device_id ahci_of_match[] = {
> MODULE_DEVICE_TABLE(of, ahci_of_match);
>
> static const struct acpi_device_id ahci_acpi_match[] = {
> + { "APMC0D33", (unsigned long)&ahci_port_info_nolpm },
> { ACPI_DEVICE_CLASS(PCI_CLASS_STORAGE_SATA_AHCI, 0xffffff) },
> {},
> };
> --
> 2.7.4
>

2018-09-06 21:23:13

by Suman Tripathi

[permalink] [raw]
Subject: RE: [PATCH v3] ata: Disable AHCI ALPM feature for Ampere Computing eMAG SATA

Hi Hans,


With regards,
Suman



-----Original Message-----
From: Hans de Goede <[email protected]>
Sent: Thursday, September 6, 2018 1:06 PM
To: Suman Tripathi <[email protected]>; [email protected]; [email protected]; [email protected]; [email protected]; [email protected]; [email protected]; [email protected]; [email protected]
Cc: Open Source Submission <[email protected]>; Rameshwar Sahu <[email protected]>
Subject: Re: [PATCH v3] ata: Disable AHCI ALPM feature for Ampere Computing eMAG SATA

[NOTICE: This email originated from an external sender. Please be mindful of safe email handling and proprietary information protection practices.] ________________________________________________________________________________________________________________________

Hi,

On 06-09-18 20:05, Suman Tripathi wrote:
> Due to hardware errata, Ampere Computing eMAG SATA can't support AHCI
> ALPM feature. This patch disables the AHCI ALPM feature for eMAG SATA.
>
> Signed-off-by: Suman Trpathi <[email protected]>
> Signed-off-by: Rameshwar Prasad Sahu
> <[email protected]>

Sorry, but the patch is still coming through mangled. Did you use git send-email ?
[Suman Tripathi] yes. I rechecked before sending twice. Sorry for the inconvenience. Will figure the issue out

Regards,

Hans




>
> ---
> Changes for v3:
>
> * Fix the indentation and whitespace warnings.
>
> Changes for v2:
>
> * Introduce the new ata_port_info object which includes ATA_FLAG_NO_LPM.
> * Include this object for eMAG SATA inside the acpi match table.
> * Retrieve the ata_port_info from the acpi match table.
>
> ---
> drivers/ata/ahci_platform.c | 15 ++++++++++++++-
> 1 file changed, 14 insertions(+), 1 deletion(-)
>
> diff --git a/drivers/ata/ahci_platform.c b/drivers/ata/ahci_platform.c
> index 99f9a89..9ba283f 100644
> --- a/drivers/ata/ahci_platform.c
> +++ b/drivers/ata/ahci_platform.c
> @@ -33,6 +33,13 @@ static const struct ata_port_info ahci_port_info = {
> .port_ops = &ahci_platform_ops,
> };
>
> +static const struct ata_port_info ahci_port_info_nolpm = {
> + .flags = AHCI_FLAG_COMMON | ATA_FLAG_NO_LPM,
> + .pio_mask = ATA_PIO4,
> + .udma_mask = ATA_UDMA6,
> + .port_ops = &ahci_platform_ops,
> +};
> +
> static struct scsi_host_template ahci_platform_sht = {
> AHCI_SHT(DRV_NAME),
> };
> @@ -41,6 +48,7 @@ static int ahci_probe(struct platform_device *pdev)
> {
> struct device *dev = &pdev->dev;
> struct ahci_host_priv *hpriv;
> + const struct ata_port_info *port;
> int rc;
>
> hpriv = ahci_platform_get_resources(pdev);
> @@ -57,7 +65,11 @@ static int ahci_probe(struct platform_device *pdev)
> if (of_device_is_compatible(dev->of_node, "hisilicon,hisi-ahci"))
> hpriv->flags |= AHCI_HFLAG_NO_FBS | AHCI_HFLAG_NO_NCQ;
>
> - rc = ahci_platform_init_host(pdev, hpriv, &ahci_port_info,
> + port = acpi_device_get_match_data(dev);
> + if (!port)
> + port = &ahci_port_info;
> +
> + rc = ahci_platform_init_host(pdev, hpriv, port,
> &ahci_platform_sht);
> if (rc)
> goto disable_resources;
> @@ -85,6 +97,7 @@ static const struct of_device_id ahci_of_match[] = {
> MODULE_DEVICE_TABLE(of, ahci_of_match);
>
> static const struct acpi_device_id ahci_acpi_match[] = {
> + { "APMC0D33", (unsigned long)&ahci_port_info_nolpm },
> { ACPI_DEVICE_CLASS(PCI_CLASS_STORAGE_SATA_AHCI, 0xffffff) },
> {},
> };
> --
> 2.7.4
>

2018-09-07 15:49:29

by Jens Axboe

[permalink] [raw]
Subject: Re: [PATCH v3] ata: Disable AHCI ALPM feature for Ampere Computing eMAG SATA

On 9/6/18 2:08 PM, Suman Tripathi wrote:
>> Sorry, but the patch is still coming through mangled. Did you use git
>> send-email ?
>
> [Suman Tripathi] yes. I rechecked before sending twice. Sorry for the
> inconvenience. Will figure the issue out

I can apply it manually while you work out the kinks in your email
setup. It might even be your company MTA mangling it, I've seen all
sorts of crazy like that.

--
Jens Axboe


2018-09-07 16:38:00

by Suman Tripathi

[permalink] [raw]
Subject: RE: [PATCH v3] ata: Disable AHCI ALPM feature for Ampere Computing eMAG SATA

Hi Jens

With regards,
Suman



>-----Original Message-----
>From: Jens Axboe <[email protected]>
>Sent: Friday, September 7, 2018 7:26 AM
>To: Suman Tripathi <[email protected]>; Hans de Goede
><[email protected]>; [email protected]; [email protected]; linux-
>[email protected]; [email protected];
>[email protected]; [email protected]; [email protected]
>Cc: Open Source Submission <[email protected]>; Rameshwar
>Sahu <[email protected]>
>Subject: Re: [PATCH v3] ata: Disable AHCI ALPM feature for Ampere Computing
>eMAG SATA
>
>[NOTICE: This email originated from an external sender. Please be mindful of
>safe email handling and proprietary information protection practices.]
>_____________________________________________________________
>___________________________________________________________
>
>On 9/6/18 2:08 PM, Suman Tripathi wrote:
>>> Sorry, but the patch is still coming through mangled. Did you use git
>>> send-email ?
>>
>> [Suman Tripathi] yes. I rechecked before sending twice. Sorry for the
>> inconvenience. Will figure the issue out
>
>I can apply it manually while you work out the kinks in your email setup. It might
>even be your company MTA mangling it, I've seen all sorts of crazy like that.
Thanks for the support. We are working with IT to fix this issue.
>
>--
>Jens Axboe

2018-09-07 16:38:45

by Jens Axboe

[permalink] [raw]
Subject: Re: [PATCH v3] ata: Disable AHCI ALPM feature for Ampere Computing eMAG SATA

On 9/7/18 10:35 AM, Suman Tripathi wrote:
>> I can apply it manually while you work out the kinks in your email
>> setup. It might even be your company MTA mangling it, I've seen all
>> sorts of crazy like that.
>
> Thanks for the support. We are working with IT to fix this issue.

Good luck! If all else fails, there's always gmail...

In any case, queued up:

http://git.kernel.dk/cgit/linux-block/commit/?h=for-4.20/libata&id=20bdc376b427cb420836f39ee8f281ea85dbaeef

--
Jens Axboe