Message ID | 1333980849.11209.5.camel@localhost.localdomain |
---|---|
State | Not Applicable |
Delegated to: | David Miller |
Headers | show |
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
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
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; } }