intel_pmc_ipc: Avoid pending IPC1 command during legacy suspend
During legacy suspend flow, IPC1 commands are being requested from opregion driver. But the PMC_IPC1 command will timeout as example: [ 281.444600] ipc_debug##: ipc_send_command: cmd=0x201ff, [ 281.444648] wbuf[0]=0x4ea6 [ 281.444668] wbuf[1]=0x0 [ 281.444674] wbuf[2]=0x0 [ 281.444676] wbuf[3]=0x0 [ 284.446467] pmc-ipc-plat INT34D2:00: IPC timed out, TS=0x4, CMD=0x200ff This is because before the opregion driver could send IPC1 commands, the PMC_IPC irq is already suspended. Which makes the IPC command to timeout. Solution: register pmc_ipc irq as IRQF_NO_SUSPEND Signed-off-by: Ananth Krishna R <ananth.krishna.r@intel.com> Signed-off-by: Bharath K Veera <bharath.k.veera@intel.com> Signed-off-by: Qipeng Zha <qipeng.zha@intel.com> Acked-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com> Signed-off-by: Darren Hart <dvhart@linux.intel.com>
This commit is contained in:
parent
1a2f25d5e7
commit
1f1ae997fd
|
@ -825,7 +825,8 @@ static int ipc_plat_probe(struct platform_device *pdev)
|
|||
goto err_device;
|
||||
}
|
||||
|
||||
if (request_irq(ipcdev.irq, ioc, 0, "intel_pmc_ipc", &ipcdev)) {
|
||||
if (request_irq(ipcdev.irq, ioc, IRQF_NO_SUSPEND,
|
||||
"intel_pmc_ipc", &ipcdev)) {
|
||||
dev_err(&pdev->dev, "Failed to request irq\n");
|
||||
ret = -EBUSY;
|
||||
goto err_irq;
|
||||
|
|
Loading…
Reference in New Issue