Re: [RESEND PATCH V1 3/5] PCI: tegra: Disable interrupts before entering L2

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Hi Prakash,

> Tegra194 implements suspend_noirq() hook and during the system suspend, the link
> is taken to L2 state after PME_Turn_off handshake and if it doesn't go into L2,
> PERST# is asserted. It is observed that with some of the endpoints (Ex:- Marvell
> SATA controller), the link doesn't go into L2 state and asserting PERST# results
> in Surprise Link Down error and the corresponding AER interrupt is also raised.
> Since the system is in noirq phase, this interrupt is not served. Both PME and
> AER interrupts are served by the same wire interrupt in Tegra194, and since the
> PCIe sub-system enables wake capability for PME interrupt, having a pending AER
> interrupt is treated as PME wake interrupt by the system and prevents the system
> going into the suspend state. To address this issue, the interrupts are disabled
> before taking the link into L2 state as the interrupts are not expected anyway
> from the controller afterward.

This commit could use some formatting, perhaps splitting it into few
paragraphs and also I believe your line length could use some
adjustment.  Having said that, I am not sure if the whole detailed
account of the problem is required to be included here in the commit
message.

> +	/*
> +	 * PCIe controller exits from L2 only if reset is applied, so
> +	 * controller doesn't handle interrupts. But in cases where
> +	 * L2 entry fails, PERST# is asserted which can trigger surprise
> +	 * link down AER. However this function call happens in
> +	 * suspend_noirq(), so AER interrupt will not be processed.
> +	 * Disable all interrupts to avoid such a scenario.
> +	 */
[...]

This code comment added below makes for a better commit message that the
commit message above - clear, concise and straight to the point of why
this was added.

	Krzysztof



[Index of Archives]     [DMA Engine]     [Linux Coverity]     [Linux USB]     [Video for Linux]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]     [Greybus]

  Powered by Linux