Patchwork sil3531: has no PM capability, remove support.

login
register
mail settings
Submitter Philby John
Date April 9, 2012, 2:14 p.m.
Message ID <1333980849.11209.5.camel@localhost.localdomain>
Download mbox | patch
Permalink /patch/151442/
State Not Applicable
Delegated to: David Miller
Headers show

Comments

Philby John - April 9, 2012, 2:14 p.m.
From: Philby John <pjohn@mvista.com>
Date: Mon, 9 Apr 2012 19:09:51 +0530
Subject: [PATCH] sil3531: has no PM capability, remove support.

SATA sil3531 does not support Power Management Capability and
as per the manual Bit [31:27] is hardwired to 00h.
Otherwise, when the device goes into suspend/resume the Power
Management Control + Status registers are accessed and the
arch specific readl()/__raw_readl() calls block indefinitely.

This patch sets the PCI_DEV_FLAGS_NO_D3 flag by which the if
condition in pci_set_power_state() evaluates to true and
pci_raw_set_power_state() functions are not executed.

Signed-off-by: Philby John <pjohn@mvista.com>
Signed-off-by: Johnny Chiang <Johnny.Chiang@caviumnetworks.com>
---
 drivers/pci/pci.c |    1 +
 1 files changed, 1 insertions(+), 0 deletions(-)
Jeff Garzik - April 9, 2012, 2:51 p.m.
On 04/09/2012 10:14 AM, philby john wrote:
> From: Philby John<pjohn@mvista.com>
> Date: Mon, 9 Apr 2012 19:09:51 +0530
> Subject: [PATCH] sil3531: has no PM capability, remove support.
>
> SATA sil3531 does not support Power Management Capability and
> as per the manual Bit [31:27] is hardwired to 00h.
> Otherwise, when the device goes into suspend/resume the Power
> Management Control + Status registers are accessed and the
> arch specific readl()/__raw_readl() calls block indefinitely.
>
> This patch sets the PCI_DEV_FLAGS_NO_D3 flag by which the if
> condition in pci_set_power_state() evaluates to true and
> pci_raw_set_power_state() functions are not executed.
>
> Signed-off-by: Philby John<pjohn@mvista.com>
> Signed-off-by: Johnny Chiang<Johnny.Chiang@caviumnetworks.com>
> ---
>   drivers/pci/pci.c |    1 +
>   1 files changed, 1 insertions(+), 0 deletions(-)
>
> diff --git a/drivers/pci/pci.c b/drivers/pci/pci.c
> index 8156744..129120d 100644
> --- a/drivers/pci/pci.c
> +++ b/drivers/pci/pci.c
> @@ -1863,6 +1863,7 @@ void pci_pm_init(struct pci_dev *dev)
>   		pci_pme_active(dev, false);
>   	} else {
>   		dev->pme_support = 0;
> +		dev->dev_flags |= PCI_DEV_FLAGS_NO_D3;

This patch applies to -every- piece of PCI hardware out there, not just 
the sil3531...

	Jeff




--
To unsubscribe from this list: send the line "unsubscribe linux-ide" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Philby John - April 9, 2012, 3:07 p.m.
On Mo, 2012-04-09 at 10:51 -0400, Jeff Garzik wrote:
> On 04/09/2012 10:14 AM, philby john wrote:
> > From: Philby John<pjohn@mvista.com>
> > Date: Mon, 9 Apr 2012 19:09:51 +0530
> > Subject: [PATCH] sil3531: has no PM capability, remove support.
> >
> > SATA sil3531 does not support Power Management Capability and
> > as per the manual Bit [31:27] is hardwired to 00h.
> > Otherwise, when the device goes into suspend/resume the Power
> > Management Control + Status registers are accessed and the
> > arch specific readl()/__raw_readl() calls block indefinitely.
> >
> > This patch sets the PCI_DEV_FLAGS_NO_D3 flag by which the if
> > condition in pci_set_power_state() evaluates to true and
> > pci_raw_set_power_state() functions are not executed.
> >
> > Signed-off-by: Philby John<pjohn@mvista.com>
> > Signed-off-by: Johnny Chiang<Johnny.Chiang@caviumnetworks.com>
> > ---
> >   drivers/pci/pci.c |    1 +
> >   1 files changed, 1 insertions(+), 0 deletions(-)
> >
> > diff --git a/drivers/pci/pci.c b/drivers/pci/pci.c
> > index 8156744..129120d 100644
> > --- a/drivers/pci/pci.c
> > +++ b/drivers/pci/pci.c
> > @@ -1863,6 +1863,7 @@ void pci_pm_init(struct pci_dev *dev)
> >   		pci_pme_active(dev, false);
> >   	} else {
> >   		dev->pme_support = 0;
> > +		dev->dev_flags |= PCI_DEV_FLAGS_NO_D3;
> 
> This patch applies to -every- piece of PCI hardware out there, not just 
> the sil3531...
> 

But if pme_support is zero, isn't it ok to set dev_flags to
PCI_DEV_FLAGS_NO_D3 ?

Regards,
Philby


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

Patch

diff --git a/drivers/pci/pci.c b/drivers/pci/pci.c
index 8156744..129120d 100644
--- a/drivers/pci/pci.c
+++ b/drivers/pci/pci.c
@@ -1863,6 +1863,7 @@  void pci_pm_init(struct pci_dev *dev)
 		pci_pme_active(dev, false);
 	} else {
 		dev->pme_support = 0;
+		dev->dev_flags |= PCI_DEV_FLAGS_NO_D3;
 	}
 }