]> git.proxmox.com Git - mirror_ubuntu-artful-kernel.git/blobdiff - arch/x86/platform/intel-mid/pwr.c
Merge branch 'x86-platform-for-linus' of git://git.kernel.org/pub/scm/linux/kernel...
[mirror_ubuntu-artful-kernel.git] / arch / x86 / platform / intel-mid / pwr.c
index 59628e4b55513b6e6ccadbb2f16e1137a7f52102..ef03852ea6e8fdf2896a990398201ba24fd72e4f 100644 (file)
@@ -271,6 +271,25 @@ int intel_mid_pci_set_power_state(struct pci_dev *pdev, pci_power_t state)
        return 0;
 }
 
+pci_power_t intel_mid_pci_get_power_state(struct pci_dev *pdev)
+{
+       struct mid_pwr *pwr = midpwr;
+       int id, reg, bit;
+       u32 power;
+
+       if (!pwr || !pwr->available)
+               return PCI_UNKNOWN;
+
+       id = intel_mid_pwr_get_lss_id(pdev);
+       if (id < 0)
+               return PCI_UNKNOWN;
+
+       reg = (id * LSS_PWS_BITS) / 32;
+       bit = (id * LSS_PWS_BITS) % 32;
+       power = mid_pwr_get_state(pwr, reg);
+       return (__force pci_power_t)((power >> bit) & 3);
+}
+
 void intel_mid_pwr_power_off(void)
 {
        struct mid_pwr *pwr = midpwr;