]> www.infradead.org Git - users/jedix/linux-maple.git/commit
PCI: endpoint: pci-epf-test: Handle Link Down event
authorManivannan Sadhasivam <manivannan.sadhasivam@linaro.org>
Tue, 30 Apr 2024 06:13:51 +0000 (11:43 +0530)
committerBjorn Helgaas <bhelgaas@google.com>
Tue, 28 May 2024 17:13:59 +0000 (12:13 -0500)
commitcfc2d4c5151bb8449fd28b2591877a514214ad4a
treec765d64027fc8e24627cf0734ab4a3d4a5dbcd23
parent60bd3e039aa257790e925f7ff22d776756f3b123
PCI: endpoint: pci-epf-test: Handle Link Down event

Per PCIe r6.0, sec 5.2, a Link Down event can happen under any of the
following circumstances:

  1. Fundamental/Hot reset
  2. Link disable transmission by upstream component
  3. Moving from L2/L3 to L0

When the event happens, the EPC driver capable of detecting it may pass the
notification to the EPF driver through link_down() callback in 'struct
pci_epc_event_ops'.

While the PCIe spec has not defined the actual behavior of the endpoint
when the Link Down event happens, we may assume that at least the ongoing
transactions need to be stopped as the link won't be active, so
cancel the command handler work in the callback implementation
pci_epf_test_link_down(). The work will be started again in
pci_epf_test_link_up() once the link comes back again.

Link: https://lore.kernel.org/linux-pci/20240430-pci-epf-rework-v4-10-22832d0d456f@linaro.org
Tested-by: Niklas Cassel <cassel@kernel.org>
Signed-off-by: Manivannan Sadhasivam <manivannan.sadhasivam@linaro.org>
Signed-off-by: Krzysztof WilczyƄski <kwilczynski@kernel.org>
[bhelgaas: update spec citation]
Signed-off-by: Bjorn Helgaas <bhelgaas@google.com>
Reviewed-by: Niklas Cassel <cassel@kernel.org>
drivers/pci/endpoint/functions/pci-epf-test.c