ss_pos = intel_mid_pci_devices[i].ss_pos;
state = pdev->current_state;
/* the case of device not probed yet: Force D0i3 */
- if (state == PCI_UNKNOWN) {
+ if (state == PCI_UNKNOWN)
state = pmu_pci_choose_state(pdev);
- /* for those weird devices that does not do
- D0i3, we keep them alive
- (or we get F503's
- @todo: need to figure out why)
- */
- if (state != PCI_D3hot)
- state = PCI_D0;
-
- }
+
/* By default its set to '0' hence
* no need to update PCI_D0 state
*/
SSMSK(D0I3_MASK, PMU_SDIO0_LSS_00) | \
SSMSK(D0I3_MASK, PMU_EMMC0_LSS_01) | \
SSMSK(D0I3_MASK, PMU_HSI_LSS_03) | \
+ SSMSK(D0I3_MASK, PMU_SECURITY_LSS_04) | \
SSMSK(D0I3_MASK, PMU_EMMC1_LSS_05) | \
+ SSMSK(D0I3_MASK, PMU_USB_OTG_LSS_06) | \
SSMSK(D0I3_MASK, PMU_AUDIO_ENGINE_LSS_08) | \
SSMSK(D0I3_MASK, PMU_AUDIO_DMA_LSS_09) | \
SSMSK(D0I3_MASK, PMU_SDIO2_LSS_14))
SSMSK(D0I3_MASK, PMU_SDIO0_LSS_00) | \
SSMSK(D0I3_MASK, PMU_EMMC0_LSS_01) | \
SSMSK(D0I3_MASK, PMU_HSI_LSS_03) | \
+ SSMSK(D0I2_MASK, PMU_SECURITY_LSS_04) | \
SSMSK(D0I3_MASK, PMU_EMMC1_LSS_05) | \
+ SSMSK(D0I3_MASK, PMU_USB_OTG_LSS_06) | \
SSMSK(D0I3_MASK, PMU_AUDIO_ENGINE_LSS_08) | \
SSMSK(D0I3_MASK, PMU_AUDIO_DMA_LSS_09) | \
SSMSK(D0I3_MASK, PMU_SDIO2_LSS_14))
if (base == NULL)
return;
+ pci_set_power_state(pdev, PCI_D0);
+
cap_length = readb(base);
op_reg_base = base + cap_length;
writel(0x3f, op_reg_base + EHCI_USBSTS);
iounmap(base);
+
+ /* after disable ehci, put it back to correct power state */
+ pci_set_power_state(pdev, pci_choose_state(pdev, PMSG_SUSPEND));
}
/*