>+static int langwell_otg_runtime_suspend(struct device *dev)
>+{
>+      struct langwell_otg     *lnw = the_transceiver;
>+      struct pci_dev          *pdev;
>+      int                     ret = 0;
>+
>+      dev_dbg(dev, "%s --->\n", __func__);
>+
>+      pdev = to_pci_dev(dev);
>+
>+      switch (lnw->iotg.otg.state) {
>+      case OTG_STATE_A_IDLE:
>+      case OTG_STATE_B_IDLE:
>+              /* Transceiver handle it itself */
>+              langwell_otg_phy_low_power(1);
>+              pci_save_state(pdev);
>+              pci_disable_device(pdev);
>+              pci_set_power_state(pdev, PCI_D3hot);

Hi Lee,

I suggest that remove pci related operations, because PCI PM core has already 
do the same things.

>+static int langwell_otg_runtime_resume(struct device *dev)
>+{
>+      struct langwell_otg     *lnw = the_transceiver;
>+      struct pci_dev          *pdev;
>+      int                     ret = 0;
>+
>+      dev_dbg(dev, "%s --->\n", __func__);
>+
>+      pdev = to_pci_dev(dev);
>+
>+      langwell_otg_intr(1);
>+      langwell_otg_phy_low_power(0);
>+
>+      switch (lnw->iotg.otg.state) {
>+      case OTG_STATE_A_IDLE:
>+      case OTG_STATE_B_IDLE:
>+              /* Transceiver handle it itself */
>+              pci_set_power_state(pdev, PCI_D0);
>+              pci_restore_state(pdev);
>+              ret = pci_enable_device(pdev);
>+              if (ret)
>+                      dev_err(&pdev->dev, "device cant be enabled\n");
>+              langwell_otg_phy_low_power(0);

Same as runtime_suspend function, no need to do pci_set_power_state and other 
PCI related function.

Hao
_______________________________________________
MeeGo-kernel mailing list
[email protected]
http://lists.meego.com/listinfo/meego-kernel

Reply via email to