Commit 8bf3ad76 authored by Krishna Chaitanya Chundru's avatar Krishna Chaitanya Chundru Committed by Bjorn Helgaas
Browse files

PCI: qcom: Implement .assert_perst()



Add support for assert_perst() for switches like TC9563, which require
configuration before the PCIe link is established. Such devices use this
function op to assert PERST# before configuring the device and once the
configuration is done they de-assert PERST#.

Signed-off-by: default avatarKrishna Chaitanya Chundru <krishna.chundru@oss.qualcomm.com>
Signed-off-by: default avatarBjorn Helgaas <bhelgaas@google.com>
Acked-by: default avatarManivannan Sadhasivam <mani@kernel.org>
Link: https://patch.msgid.link/20251101-tc9563-v9-5-de3429f7787a@oss.qualcomm.com
parent 3445d382
Loading
Loading
Loading
Loading
+13 −0
Original line number Diff line number Diff line
@@ -696,6 +696,18 @@ static int qcom_pcie_post_init_1_0_0(struct qcom_pcie *pcie)
	return 0;
}

static int qcom_pcie_assert_perst(struct dw_pcie *pci, bool assert)
{
	struct qcom_pcie *pcie = to_qcom_pcie(pci);

	if (assert)
		qcom_ep_reset_assert(pcie);
	else
		qcom_ep_reset_deassert(pcie);

	return 0;
}

static void qcom_pcie_2_3_2_ltssm_enable(struct qcom_pcie *pcie)
{
	u32 val;
@@ -1516,6 +1528,7 @@ static const struct qcom_pcie_cfg cfg_fw_managed = {
static const struct dw_pcie_ops dw_pcie_ops = {
	.link_up = qcom_pcie_link_up,
	.start_link = qcom_pcie_start_link,
	.assert_perst = qcom_pcie_assert_perst,
};

static int qcom_pcie_icc_init(struct qcom_pcie *pcie)