Message ID | 1699361428-12802-4-git-send-email-quic_msarkar@quicinc.com (mailing list archive) |
---|---|
State | Superseded |
Headers | show |
Series | arm64: qcom: sa8775p: add support for EP PCIe | expand |
On Tue, Nov 07, 2023 at 06:20:27PM +0530, Mrinmay Sarkar wrote: > Add support for Qualcomm Snapdragon SA8775P SoC to the EPF driver. > Reusing PID (0x0306) as dedicated PID for SA8775P EP is yet to decide > and it supports HDMA. "SA8775P is currently reusing the PID 0x0306 (the default one hardcoded in the config space header) as the unique PID is not yet allocated. But the host side stack works fine with the default PID. It will get updated once the PID is finalized." > Currently, it has no fixed PCI class, so it is > being advertised as "PCI_CLASS_OTHERS". > > Signed-off-by: Mrinmay Sarkar <quic_msarkar@quicinc.com> > Reviewed-by: Manivannan Sadhasivam <manivannan.sadhasivam@linaro.org> > --- > drivers/pci/endpoint/functions/pci-epf-mhi.c | 17 +++++++++++++++++ > 1 file changed, 17 insertions(+) > > diff --git a/drivers/pci/endpoint/functions/pci-epf-mhi.c b/drivers/pci/endpoint/functions/pci-epf-mhi.c > index b7b9d3e..23ea94e 100644 > --- a/drivers/pci/endpoint/functions/pci-epf-mhi.c > +++ b/drivers/pci/endpoint/functions/pci-epf-mhi.c > @@ -114,6 +114,22 @@ static const struct pci_epf_mhi_ep_info sm8450_info = { > .flags = MHI_EPF_USE_DMA, > }; > > +static struct pci_epf_header sa8775p_header = { > + .vendorid = PCI_VENDOR_ID_QCOM, > + .deviceid = 0x0306, /* FIXME: Update deviceid for sa8775p EP */ > + .baseclass_code = PCI_CLASS_OTHERS, > + .interrupt_pin = PCI_INTERRUPT_INTA, > +}; > + > +static const struct pci_epf_mhi_ep_info sa8775p_info = { > + .config = &mhi_v1_config, > + .epf_header = &sa8775p_header, > + .bar_num = BAR_0, > + .epf_flags = PCI_BASE_ADDRESS_MEM_TYPE_32, > + .msi_count = 32, > + .mru = 0x8000, > +}; > + > struct pci_epf_mhi { > const struct pci_epc_features *epc_features; > const struct pci_epf_mhi_ep_info *info; > @@ -677,6 +693,7 @@ static int pci_epf_mhi_probe(struct pci_epf *epf, > } > > static const struct pci_epf_device_id pci_epf_mhi_ids[] = { > + { .name = "sa8775p", .driver_data = (kernel_ulong_t)&sa8775p_info }, The ID should be changed to "pci_epf_mhi_sa8775p". I know that you followed the existing pattern, but it was my fault to ignore the prefix "pci_epf_mhi" and now the function name would appear as "functions/sa8775p/" and it would create issue if we happen to support multiple functions for this EP. I will share the patch with you for changing the names for other functions as well. Please apply it on top this series and send it together. Even though it is an ABI breakage if we change the function name, luckily there isn't anyone (to my knowledge) using this driver outside Qcom and myself yet. - Mani > { .name = "sdx55", .driver_data = (kernel_ulong_t)&sdx55_info }, > { .name = "sm8450", .driver_data = (kernel_ulong_t)&sm8450_info }, > {}, > -- > 2.7.4 > >
diff --git a/drivers/pci/endpoint/functions/pci-epf-mhi.c b/drivers/pci/endpoint/functions/pci-epf-mhi.c index b7b9d3e..23ea94e 100644 --- a/drivers/pci/endpoint/functions/pci-epf-mhi.c +++ b/drivers/pci/endpoint/functions/pci-epf-mhi.c @@ -114,6 +114,22 @@ static const struct pci_epf_mhi_ep_info sm8450_info = { .flags = MHI_EPF_USE_DMA, }; +static struct pci_epf_header sa8775p_header = { + .vendorid = PCI_VENDOR_ID_QCOM, + .deviceid = 0x0306, /* FIXME: Update deviceid for sa8775p EP */ + .baseclass_code = PCI_CLASS_OTHERS, + .interrupt_pin = PCI_INTERRUPT_INTA, +}; + +static const struct pci_epf_mhi_ep_info sa8775p_info = { + .config = &mhi_v1_config, + .epf_header = &sa8775p_header, + .bar_num = BAR_0, + .epf_flags = PCI_BASE_ADDRESS_MEM_TYPE_32, + .msi_count = 32, + .mru = 0x8000, +}; + struct pci_epf_mhi { const struct pci_epc_features *epc_features; const struct pci_epf_mhi_ep_info *info; @@ -677,6 +693,7 @@ static int pci_epf_mhi_probe(struct pci_epf *epf, } static const struct pci_epf_device_id pci_epf_mhi_ids[] = { + { .name = "sa8775p", .driver_data = (kernel_ulong_t)&sa8775p_info }, { .name = "sdx55", .driver_data = (kernel_ulong_t)&sdx55_info }, { .name = "sm8450", .driver_data = (kernel_ulong_t)&sm8450_info }, {},