Message ID | 20191113090851.26345-3-vidyas@nvidia.com |
---|---|
State | Superseded |
Delegated to: | Lorenzo Pieralisi |
Headers | show |
Series | Add support to defer core initialization | expand |
Hi, On 13/11/19 2:38 PM, Vidya Sagar wrote: > Add support to send notifications to EPF from EPC once the core > registers initialization is complete. > > Signed-off-by: Vidya Sagar <vidyas@nvidia.com> > --- > drivers/pci/endpoint/pci-epc-core.c | 19 ++++++++++++++++++- > include/linux/pci-epc.h | 1 + > include/linux/pci-epf.h | 5 +++++ > 3 files changed, 24 insertions(+), 1 deletion(-) > > diff --git a/drivers/pci/endpoint/pci-epc-core.c b/drivers/pci/endpoint/pci-epc-core.c > index 2f6436599fcb..fcc3f7fb19c0 100644 > --- a/drivers/pci/endpoint/pci-epc-core.c > +++ b/drivers/pci/endpoint/pci-epc-core.c > @@ -542,10 +542,27 @@ void pci_epc_linkup(struct pci_epc *epc) > if (!epc || IS_ERR(epc)) > return; > > - atomic_notifier_call_chain(&epc->notifier, 0, NULL); > + atomic_notifier_call_chain(&epc->notifier, LINK_UP, NULL); > } > EXPORT_SYMBOL_GPL(pci_epc_linkup); Is this based on upstream kernel? or did you create this after applying [1]? [1] -> https://lkml.org/lkml/2019/6/4/633 Thanks Kishon
Hi, On 27/11/19 1:48 PM, Kishon Vijay Abraham I wrote: > Hi, > > On 13/11/19 2:38 PM, Vidya Sagar wrote: >> Add support to send notifications to EPF from EPC once the core >> registers initialization is complete. >> >> Signed-off-by: Vidya Sagar <vidyas@nvidia.com> >> --- >> drivers/pci/endpoint/pci-epc-core.c | 19 ++++++++++++++++++- >> include/linux/pci-epc.h | 1 + >> include/linux/pci-epf.h | 5 +++++ >> 3 files changed, 24 insertions(+), 1 deletion(-) >> >> diff --git a/drivers/pci/endpoint/pci-epc-core.c b/drivers/pci/endpoint/pci-epc-core.c >> index 2f6436599fcb..fcc3f7fb19c0 100644 >> --- a/drivers/pci/endpoint/pci-epc-core.c >> +++ b/drivers/pci/endpoint/pci-epc-core.c >> @@ -542,10 +542,27 @@ void pci_epc_linkup(struct pci_epc *epc) >> if (!epc || IS_ERR(epc)) >> return; >> >> - atomic_notifier_call_chain(&epc->notifier, 0, NULL); >> + atomic_notifier_call_chain(&epc->notifier, LINK_UP, NULL); >> } >> EXPORT_SYMBOL_GPL(pci_epc_linkup); > > Is this based on upstream kernel? or did you create this after applying [1]? never mind, you've mentioned this depends on my other series in your cover letter. Thanks Kishon
diff --git a/drivers/pci/endpoint/pci-epc-core.c b/drivers/pci/endpoint/pci-epc-core.c index 2f6436599fcb..fcc3f7fb19c0 100644 --- a/drivers/pci/endpoint/pci-epc-core.c +++ b/drivers/pci/endpoint/pci-epc-core.c @@ -542,10 +542,27 @@ void pci_epc_linkup(struct pci_epc *epc) if (!epc || IS_ERR(epc)) return; - atomic_notifier_call_chain(&epc->notifier, 0, NULL); + atomic_notifier_call_chain(&epc->notifier, LINK_UP, NULL); } EXPORT_SYMBOL_GPL(pci_epc_linkup); +/** + * pci_epc_init_notify() - Notify the EPF device that EPC device's core + * initialization is completed. + * @epc: the EPC device whose core initialization is completeds + * + * Invoke to Notify the EPF device that the EPC device's initialization + * is completed. + */ +void pci_epc_init_notify(struct pci_epc *epc) +{ + if (!epc || IS_ERR(epc)) + return; + + atomic_notifier_call_chain(&epc->notifier, CORE_INIT, NULL); +} +EXPORT_SYMBOL_GPL(pci_epc_init_notify); + /** * pci_epc_destroy() - destroy the EPC device * @epc: the EPC device that has to be destroyed diff --git a/include/linux/pci-epc.h b/include/linux/pci-epc.h index 241e6a6f39fb..c670543e42f9 100644 --- a/include/linux/pci-epc.h +++ b/include/linux/pci-epc.h @@ -160,6 +160,7 @@ void devm_pci_epc_destroy(struct device *dev, struct pci_epc *epc); void pci_epc_destroy(struct pci_epc *epc); int pci_epc_add_epf(struct pci_epc *epc, struct pci_epf *epf); void pci_epc_linkup(struct pci_epc *epc); +void pci_epc_init_notify(struct pci_epc *epc); void pci_epc_remove_epf(struct pci_epc *epc, struct pci_epf *epf); int pci_epc_write_header(struct pci_epc *epc, u8 func_no, struct pci_epf_header *hdr); diff --git a/include/linux/pci-epf.h b/include/linux/pci-epf.h index 4993f7f6439b..3cb65ac1648c 100644 --- a/include/linux/pci-epf.h +++ b/include/linux/pci-epf.h @@ -15,6 +15,11 @@ struct pci_epf; +enum pci_notify_event { + CORE_INIT, + LINK_UP, +}; + enum pci_barno { BAR_0, BAR_1,
Add support to send notifications to EPF from EPC once the core registers initialization is complete. Signed-off-by: Vidya Sagar <vidyas@nvidia.com> --- drivers/pci/endpoint/pci-epc-core.c | 19 ++++++++++++++++++- include/linux/pci-epc.h | 1 + include/linux/pci-epf.h | 5 +++++ 3 files changed, 24 insertions(+), 1 deletion(-)