>+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