mirror of
https://github.com/BobTheBlinker/android_kernel_motorola_sm6375.git
synced 2026-10-29 03:01:39 -04:00
Merge 4.14-rc6 into staging-next
We want the IIO and staging driver fixes in here as well. Signed-off-by: Greg Kroah-Hartman <[email protected]>
This commit is contained in:
commit
7706abf5a0
539 changed files with 5459 additions and 2547 deletions
|
|
@ -127,6 +127,8 @@
|
|||
#define MEI_DEV_ID_BXT_M 0x1A9A /* Broxton M */
|
||||
#define MEI_DEV_ID_APL_I 0x5A9A /* Apollo Lake I */
|
||||
|
||||
#define MEI_DEV_ID_GLK 0x319A /* Gemini Lake */
|
||||
|
||||
#define MEI_DEV_ID_KBP 0xA2BA /* Kaby Point */
|
||||
#define MEI_DEV_ID_KBP_2 0xA2BB /* Kaby Point 2 */
|
||||
|
||||
|
|
|
|||
|
|
@ -93,6 +93,8 @@ static const struct pci_device_id mei_me_pci_tbl[] = {
|
|||
{MEI_PCI_DEVICE(MEI_DEV_ID_BXT_M, MEI_ME_PCH8_CFG)},
|
||||
{MEI_PCI_DEVICE(MEI_DEV_ID_APL_I, MEI_ME_PCH8_CFG)},
|
||||
|
||||
{MEI_PCI_DEVICE(MEI_DEV_ID_GLK, MEI_ME_PCH8_CFG)},
|
||||
|
||||
{MEI_PCI_DEVICE(MEI_DEV_ID_KBP, MEI_ME_PCH8_CFG)},
|
||||
{MEI_PCI_DEVICE(MEI_DEV_ID_KBP_2, MEI_ME_PCH8_CFG)},
|
||||
|
||||
|
|
@ -226,12 +228,15 @@ static int mei_me_probe(struct pci_dev *pdev, const struct pci_device_id *ent)
|
|||
pdev->dev_flags |= PCI_DEV_FLAGS_NEEDS_RESUME;
|
||||
|
||||
/*
|
||||
* For not wake-able HW runtime pm framework
|
||||
* can't be used on pci device level.
|
||||
* Use domain runtime pm callbacks instead.
|
||||
*/
|
||||
if (!pci_dev_run_wake(pdev))
|
||||
mei_me_set_pm_domain(dev);
|
||||
* ME maps runtime suspend/resume to D0i states,
|
||||
* hence we need to go around native PCI runtime service which
|
||||
* eventually brings the device into D3cold/hot state,
|
||||
* but the mei device cannot wake up from D3 unlike from D0i3.
|
||||
* To get around the PCI device native runtime pm,
|
||||
* ME uses runtime pm domain handlers which take precedence
|
||||
* over the driver's pm handlers.
|
||||
*/
|
||||
mei_me_set_pm_domain(dev);
|
||||
|
||||
if (mei_pg_is_enabled(dev))
|
||||
pm_runtime_put_noidle(&pdev->dev);
|
||||
|
|
@ -271,8 +276,7 @@ static void mei_me_shutdown(struct pci_dev *pdev)
|
|||
dev_dbg(&pdev->dev, "shutdown\n");
|
||||
mei_stop(dev);
|
||||
|
||||
if (!pci_dev_run_wake(pdev))
|
||||
mei_me_unset_pm_domain(dev);
|
||||
mei_me_unset_pm_domain(dev);
|
||||
|
||||
mei_disable_interrupts(dev);
|
||||
free_irq(pdev->irq, dev);
|
||||
|
|
@ -300,8 +304,7 @@ static void mei_me_remove(struct pci_dev *pdev)
|
|||
dev_dbg(&pdev->dev, "stop\n");
|
||||
mei_stop(dev);
|
||||
|
||||
if (!pci_dev_run_wake(pdev))
|
||||
mei_me_unset_pm_domain(dev);
|
||||
mei_me_unset_pm_domain(dev);
|
||||
|
||||
mei_disable_interrupts(dev);
|
||||
|
||||
|
|
|
|||
|
|
@ -144,12 +144,14 @@ static int mei_txe_probe(struct pci_dev *pdev, const struct pci_device_id *ent)
|
|||
pdev->dev_flags |= PCI_DEV_FLAGS_NEEDS_RESUME;
|
||||
|
||||
/*
|
||||
* For not wake-able HW runtime pm framework
|
||||
* can't be used on pci device level.
|
||||
* Use domain runtime pm callbacks instead.
|
||||
*/
|
||||
if (!pci_dev_run_wake(pdev))
|
||||
mei_txe_set_pm_domain(dev);
|
||||
* TXE maps runtime suspend/resume to own power gating states,
|
||||
* hence we need to go around native PCI runtime service which
|
||||
* eventually brings the device into D3cold/hot state.
|
||||
* But the TXE device cannot wake up from D3 unlike from own
|
||||
* power gating. To get around PCI device native runtime pm,
|
||||
* TXE uses runtime pm domain handlers which take precedence.
|
||||
*/
|
||||
mei_txe_set_pm_domain(dev);
|
||||
|
||||
pm_runtime_put_noidle(&pdev->dev);
|
||||
|
||||
|
|
@ -186,8 +188,7 @@ static void mei_txe_shutdown(struct pci_dev *pdev)
|
|||
dev_dbg(&pdev->dev, "shutdown\n");
|
||||
mei_stop(dev);
|
||||
|
||||
if (!pci_dev_run_wake(pdev))
|
||||
mei_txe_unset_pm_domain(dev);
|
||||
mei_txe_unset_pm_domain(dev);
|
||||
|
||||
mei_disable_interrupts(dev);
|
||||
free_irq(pdev->irq, dev);
|
||||
|
|
@ -215,8 +216,7 @@ static void mei_txe_remove(struct pci_dev *pdev)
|
|||
|
||||
mei_stop(dev);
|
||||
|
||||
if (!pci_dev_run_wake(pdev))
|
||||
mei_txe_unset_pm_domain(dev);
|
||||
mei_txe_unset_pm_domain(dev);
|
||||
|
||||
mei_disable_interrupts(dev);
|
||||
free_irq(pdev->irq, dev);
|
||||
|
|
@ -318,15 +318,7 @@ static int mei_txe_pm_runtime_suspend(struct device *device)
|
|||
else
|
||||
ret = -EAGAIN;
|
||||
|
||||
/*
|
||||
* If everything is okay we're about to enter PCI low
|
||||
* power state (D3) therefor we need to disable the
|
||||
* interrupts towards host.
|
||||
* However if device is not wakeable we do not enter
|
||||
* D-low state and we need to keep the interrupt kicking
|
||||
*/
|
||||
if (!ret && pci_dev_run_wake(pdev))
|
||||
mei_disable_interrupts(dev);
|
||||
/* keep irq on we are staying in D0 */
|
||||
|
||||
dev_dbg(&pdev->dev, "rpm: txe: runtime suspend ret=%d\n", ret);
|
||||
|
||||
|
|
|
|||
Loading…
Reference in a new issue