* [PATCH v5 0/4] PCI: endpoint: add D-state change notifier support
@ 2023-08-02 3:51 Krishna chaitanya chundru
2023-08-02 3:51 ` [PATCH v5 1/4] PCI: endpoint: Add " Krishna chaitanya chundru
` (3 more replies)
0 siblings, 4 replies; 13+ messages in thread
From: Krishna chaitanya chundru @ 2023-08-02 3:51 UTC (permalink / raw)
To: manivannan.sadhasivam
Cc: helgaas, linux-pci, linux-arm-msm, linux-kernel, quic_vbadigan,
quic_nitegupt, quic_skananth, quic_ramkri, quic_parass,
krzysztof.kozlowski, Krishna chaitanya chundru
In this series we added support to nofity the EPF driver whenever there
is change in the D-state if the EPF driver registered for it.
Krishna chaitanya chundru (4):
PCI: endpoint: Add D-state change notifier support
PCI: qcom-ep: Add support for D-state change notification
PCI: qcom-ep: Update the D-state log
PCI: epf-mhi: Add support for handling D-state notify from EPC
Documentation/PCI/endpoint/pci-endpoint.rst | 4 ++++
drivers/pci/controller/dwc/pcie-qcom-ep.c | 9 ++++++++-
drivers/pci/endpoint/functions/pci-epf-mhi.c | 11 +++++++++++
drivers/pci/endpoint/pci-epc-core.c | 27 +++++++++++++++++++++++++++
include/linux/mhi_ep.h | 3 +++
include/linux/pci-epc.h | 1 +
include/linux/pci-epf.h | 1 +
7 files changed, 55 insertions(+), 1 deletion(-)
--
2.7.4
^ permalink raw reply [flat|nested] 13+ messages in thread
* [PATCH v5 1/4] PCI: endpoint: Add D-state change notifier support
2023-08-02 3:51 [PATCH v5 0/4] PCI: endpoint: add D-state change notifier support Krishna chaitanya chundru
@ 2023-08-02 3:51 ` Krishna chaitanya chundru
2023-08-02 5:14 ` kernel test robot
2023-08-03 17:48 ` Bjorn Helgaas
2023-08-02 3:51 ` [PATCH v5 2/4] PCI: qcom-ep: Add support for D-state change notification Krishna chaitanya chundru
` (2 subsequent siblings)
3 siblings, 2 replies; 13+ messages in thread
From: Krishna chaitanya chundru @ 2023-08-02 3:51 UTC (permalink / raw)
To: manivannan.sadhasivam
Cc: helgaas, linux-pci, linux-arm-msm, linux-kernel, quic_vbadigan,
quic_nitegupt, quic_skananth, quic_ramkri, quic_parass,
krzysztof.kozlowski, Krishna chaitanya chundru, Lorenzo Pieralisi,
Krzysztof Wilczyński, Manivannan Sadhasivam,
Kishon Vijay Abraham I, Bjorn Helgaas, Jonathan Corbet,
open list:DOCUMENTATION
Add support to notify the EPF device about the D-state change event
from the EPC device.
Signed-off-by: Krishna chaitanya chundru <quic_krichai@quicinc.com>
---
Documentation/PCI/endpoint/pci-endpoint.rst | 4 ++++
drivers/pci/endpoint/pci-epc-core.c | 27 +++++++++++++++++++++++++++
include/linux/pci-epc.h | 1 +
include/linux/pci-epf.h | 1 +
4 files changed, 33 insertions(+)
diff --git a/Documentation/PCI/endpoint/pci-endpoint.rst b/Documentation/PCI/endpoint/pci-endpoint.rst
index 4f5622a..66f3191 100644
--- a/Documentation/PCI/endpoint/pci-endpoint.rst
+++ b/Documentation/PCI/endpoint/pci-endpoint.rst
@@ -78,6 +78,10 @@ by the PCI controller driver.
Cleanup the pci_epc_mem structure allocated during pci_epc_mem_init().
+* pci_epc_dstate_notity()
+
+ Notify all the function drivers that the EPC device has changed its D-state.
+
EPC APIs for the PCI Endpoint Function Driver
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
diff --git a/drivers/pci/endpoint/pci-epc-core.c b/drivers/pci/endpoint/pci-epc-core.c
index 6c54fa5..4cf9c82 100644
--- a/drivers/pci/endpoint/pci-epc-core.c
+++ b/drivers/pci/endpoint/pci-epc-core.c
@@ -785,6 +785,33 @@ void pci_epc_bme_notify(struct pci_epc *epc)
EXPORT_SYMBOL_GPL(pci_epc_bme_notify);
/**
+ * pci_epc_dstate_notity() - Notify the EPF driver that EPC device D-state
+ * has changed
+ * @epc: the EPC device which has change in D-state
+ * @state: the changed D-state
+ *
+ * Invoke to Notify the EPF device that the EPC device has D-state has
+ * changed.
+ */
+void pci_epc_dstate_notity(struct pci_epc *epc, pci_power_t state)
+{
+ struct pci_epf *epf;
+
+ if (!epc || IS_ERR(epc))
+ return;
+
+ mutex_lock(&epc->list_lock);
+ list_for_each_entry(epf, &epc->pci_epf, list) {
+ mutex_lock(&epf->lock);
+ if (epf->event_ops && epf->event_ops->dstate_notify)
+ epf->event_ops->dstate_notify(epf, state);
+ mutex_unlock(&epf->lock);
+ }
+ mutex_unlock(&epc->list_lock);
+}
+EXPORT_SYMBOL_GPL(pci_epc_dstate_notity);
+
+/**
* 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 5cb6940..26a1108 100644
--- a/include/linux/pci-epc.h
+++ b/include/linux/pci-epc.h
@@ -251,4 +251,5 @@ void __iomem *pci_epc_mem_alloc_addr(struct pci_epc *epc,
phys_addr_t *phys_addr, size_t size);
void pci_epc_mem_free_addr(struct pci_epc *epc, phys_addr_t phys_addr,
void __iomem *virt_addr, size_t size);
+void pci_epc_dstate_change(struct pci_epc *epc, pci_power_t state);
#endif /* __LINUX_PCI_EPC_H */
diff --git a/include/linux/pci-epf.h b/include/linux/pci-epf.h
index 3f44b6a..529075b 100644
--- a/include/linux/pci-epf.h
+++ b/include/linux/pci-epf.h
@@ -79,6 +79,7 @@ struct pci_epc_event_ops {
int (*link_up)(struct pci_epf *epf);
int (*link_down)(struct pci_epf *epf);
int (*bme)(struct pci_epf *epf);
+ int (*dstate_notify)(struct pci_epf *epf, pci_power_t state);
};
/**
--
2.7.4
^ permalink raw reply related [flat|nested] 13+ messages in thread
* [PATCH v5 2/4] PCI: qcom-ep: Add support for D-state change notification
2023-08-02 3:51 [PATCH v5 0/4] PCI: endpoint: add D-state change notifier support Krishna chaitanya chundru
2023-08-02 3:51 ` [PATCH v5 1/4] PCI: endpoint: Add " Krishna chaitanya chundru
@ 2023-08-02 3:51 ` Krishna chaitanya chundru
2023-08-03 10:53 ` kernel test robot
2023-08-02 3:51 ` [PATCH v5 3/4] PCI: qcom-ep: Update the D-state log Krishna chaitanya chundru
2023-08-02 3:51 ` [PATCH v5 4/4] PCI: epf-mhi: Add support for handling D-state notify from EPC Krishna chaitanya chundru
3 siblings, 1 reply; 13+ messages in thread
From: Krishna chaitanya chundru @ 2023-08-02 3:51 UTC (permalink / raw)
To: manivannan.sadhasivam
Cc: helgaas, linux-pci, linux-arm-msm, linux-kernel, quic_vbadigan,
quic_nitegupt, quic_skananth, quic_ramkri, quic_parass,
krzysztof.kozlowski, Krishna chaitanya chundru,
Manivannan Sadhasivam, Lorenzo Pieralisi,
Krzysztof Wilczyński, Rob Herring, Bjorn Helgaas
Add support to pass D-state change notification to Endpoint
function driver.
Signed-off-by: Krishna chaitanya chundru <quic_krichai@quicinc.com>
Reviewed-by: Manivannan Sadhasivam <mani@kernel.org>
---
drivers/pci/controller/dwc/pcie-qcom-ep.c | 7 +++++++
1 file changed, 7 insertions(+)
diff --git a/drivers/pci/controller/dwc/pcie-qcom-ep.c b/drivers/pci/controller/dwc/pcie-qcom-ep.c
index 0fe7f06..22545ff 100644
--- a/drivers/pci/controller/dwc/pcie-qcom-ep.c
+++ b/drivers/pci/controller/dwc/pcie-qcom-ep.c
@@ -561,6 +561,7 @@ static irqreturn_t qcom_pcie_ep_global_irq_thread(int irq, void *data)
struct device *dev = pci->dev;
u32 status = readl_relaxed(pcie_ep->parf + PARF_INT_ALL_STATUS);
u32 mask = readl_relaxed(pcie_ep->parf + PARF_INT_ALL_MASK);
+ pci_power_t state;
u32 dstate, val;
writel_relaxed(status, pcie_ep->parf + PARF_INT_ALL_CLEAR);
@@ -583,11 +584,17 @@ static irqreturn_t qcom_pcie_ep_global_irq_thread(int irq, void *data)
dstate = dw_pcie_readl_dbi(pci, DBI_CON_STATUS) &
DBI_CON_STATUS_POWER_STATE_MASK;
dev_dbg(dev, "Received D%d state event\n", dstate);
+ state = dstate;
if (dstate == 3) {
val = readl_relaxed(pcie_ep->parf + PARF_PM_CTRL);
val |= PARF_PM_CTRL_REQ_EXIT_L1;
writel_relaxed(val, pcie_ep->parf + PARF_PM_CTRL);
+
+ state = PCI_D3hot;
+ if (gpiod_get_value(pcie_ep->reset))
+ state = PCI_D3cold;
}
+ pci_epc_dstate_notify(pci->ep.epc, state);
} else if (FIELD_GET(PARF_INT_ALL_LINK_UP, status)) {
dev_dbg(dev, "Received Linkup event. Enumeration complete!\n");
dw_pcie_ep_linkup(&pci->ep);
--
2.7.4
^ permalink raw reply related [flat|nested] 13+ messages in thread
* [PATCH v5 3/4] PCI: qcom-ep: Update the D-state log
2023-08-02 3:51 [PATCH v5 0/4] PCI: endpoint: add D-state change notifier support Krishna chaitanya chundru
2023-08-02 3:51 ` [PATCH v5 1/4] PCI: endpoint: Add " Krishna chaitanya chundru
2023-08-02 3:51 ` [PATCH v5 2/4] PCI: qcom-ep: Add support for D-state change notification Krishna chaitanya chundru
@ 2023-08-02 3:51 ` Krishna chaitanya chundru
2023-08-03 17:58 ` Bjorn Helgaas
2023-08-02 3:51 ` [PATCH v5 4/4] PCI: epf-mhi: Add support for handling D-state notify from EPC Krishna chaitanya chundru
3 siblings, 1 reply; 13+ messages in thread
From: Krishna chaitanya chundru @ 2023-08-02 3:51 UTC (permalink / raw)
To: manivannan.sadhasivam
Cc: helgaas, linux-pci, linux-arm-msm, linux-kernel, quic_vbadigan,
quic_nitegupt, quic_skananth, quic_ramkri, quic_parass,
krzysztof.kozlowski, Krishna chaitanya chundru,
Manivannan Sadhasivam, Lorenzo Pieralisi,
Krzysztof Wilczyński, Rob Herring, Bjorn Helgaas
Now that the state event is stored as pci_power_t, let's use the PCI helper
pci_power_name() to print the state event.
Signed-off-by: Krishna chaitanya chundru <quic_krichai@quicinc.com>
---
drivers/pci/controller/dwc/pcie-qcom-ep.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/drivers/pci/controller/dwc/pcie-qcom-ep.c b/drivers/pci/controller/dwc/pcie-qcom-ep.c
index 22545ff..0c69a61 100644
--- a/drivers/pci/controller/dwc/pcie-qcom-ep.c
+++ b/drivers/pci/controller/dwc/pcie-qcom-ep.c
@@ -583,7 +583,6 @@ static irqreturn_t qcom_pcie_ep_global_irq_thread(int irq, void *data)
} else if (FIELD_GET(PARF_INT_ALL_DSTATE_CHANGE, status)) {
dstate = dw_pcie_readl_dbi(pci, DBI_CON_STATUS) &
DBI_CON_STATUS_POWER_STATE_MASK;
- dev_dbg(dev, "Received D%d state event\n", dstate);
state = dstate;
if (dstate == 3) {
val = readl_relaxed(pcie_ep->parf + PARF_PM_CTRL);
@@ -594,6 +593,7 @@ static irqreturn_t qcom_pcie_ep_global_irq_thread(int irq, void *data)
if (gpiod_get_value(pcie_ep->reset))
state = PCI_D3cold;
}
+ dev_dbg(dev, "Received %s event\n", pci_power_name(state));
pci_epc_dstate_notify(pci->ep.epc, state);
} else if (FIELD_GET(PARF_INT_ALL_LINK_UP, status)) {
dev_dbg(dev, "Received Linkup event. Enumeration complete!\n");
--
2.7.4
^ permalink raw reply related [flat|nested] 13+ messages in thread
* [PATCH v5 4/4] PCI: epf-mhi: Add support for handling D-state notify from EPC
2023-08-02 3:51 [PATCH v5 0/4] PCI: endpoint: add D-state change notifier support Krishna chaitanya chundru
` (2 preceding siblings ...)
2023-08-02 3:51 ` [PATCH v5 3/4] PCI: qcom-ep: Update the D-state log Krishna chaitanya chundru
@ 2023-08-02 3:51 ` Krishna chaitanya chundru
3 siblings, 0 replies; 13+ messages in thread
From: Krishna chaitanya chundru @ 2023-08-02 3:51 UTC (permalink / raw)
To: manivannan.sadhasivam
Cc: helgaas, linux-pci, linux-arm-msm, linux-kernel, quic_vbadigan,
quic_nitegupt, quic_skananth, quic_ramkri, quic_parass,
krzysztof.kozlowski, Krishna chaitanya chundru,
Manivannan Sadhasivam, Lorenzo Pieralisi,
Krzysztof Wilczyński, Kishon Vijay Abraham I, Bjorn Helgaas,
Jeffrey Hugo, open list:MHI BUS
Add support for handling D-state notify for MHI EPF.
Signed-off-by: Krishna chaitanya chundru <quic_krichai@quicinc.com>
---
drivers/pci/endpoint/functions/pci-epf-mhi.c | 11 +++++++++++
include/linux/mhi_ep.h | 3 +++
2 files changed, 14 insertions(+)
diff --git a/drivers/pci/endpoint/functions/pci-epf-mhi.c b/drivers/pci/endpoint/functions/pci-epf-mhi.c
index 9c1f5a1..ee91bfc 100644
--- a/drivers/pci/endpoint/functions/pci-epf-mhi.c
+++ b/drivers/pci/endpoint/functions/pci-epf-mhi.c
@@ -339,6 +339,16 @@ static int pci_epf_mhi_bme(struct pci_epf *epf)
return 0;
}
+static int pci_epf_mhi_dstate_notify(struct pci_epf *epf, pci_power_t state)
+{
+ struct pci_epf_mhi *epf_mhi = epf_get_drvdata(epf);
+ struct mhi_ep_cntrl *mhi_cntrl = &epf_mhi->mhi_cntrl;
+
+ mhi_cntrl->dstate = state;
+
+ return 0;
+}
+
static int pci_epf_mhi_bind(struct pci_epf *epf)
{
struct pci_epf_mhi *epf_mhi = epf_get_drvdata(epf);
@@ -394,6 +404,7 @@ static struct pci_epc_event_ops pci_epf_mhi_event_ops = {
.link_up = pci_epf_mhi_link_up,
.link_down = pci_epf_mhi_link_down,
.bme = pci_epf_mhi_bme,
+ .dstate_notify = pci_epf_mhi_dstate_notify,
};
static int pci_epf_mhi_probe(struct pci_epf *epf,
diff --git a/include/linux/mhi_ep.h b/include/linux/mhi_ep.h
index f198a8a..c3a0685 100644
--- a/include/linux/mhi_ep.h
+++ b/include/linux/mhi_ep.h
@@ -8,6 +8,7 @@
#include <linux/dma-direction.h>
#include <linux/mhi.h>
+#include <linux/pci.h>
#define MHI_EP_DEFAULT_MTU 0x8000
@@ -139,6 +140,8 @@ struct mhi_ep_cntrl {
enum mhi_state mhi_state;
+ pci_power_t dstate;
+
u32 max_chan;
u32 mru;
u32 event_rings;
--
2.7.4
^ permalink raw reply related [flat|nested] 13+ messages in thread
* Re: [PATCH v5 1/4] PCI: endpoint: Add D-state change notifier support
2023-08-02 3:51 ` [PATCH v5 1/4] PCI: endpoint: Add " Krishna chaitanya chundru
@ 2023-08-02 5:14 ` kernel test robot
2023-08-23 6:19 ` Manivannan Sadhasivam
2023-08-03 17:48 ` Bjorn Helgaas
1 sibling, 1 reply; 13+ messages in thread
From: kernel test robot @ 2023-08-02 5:14 UTC (permalink / raw)
To: Krishna chaitanya chundru, manivannan.sadhasivam
Cc: oe-kbuild-all, helgaas, linux-pci, linux-arm-msm, linux-kernel,
quic_vbadigan, quic_nitegupt, quic_skananth, quic_ramkri,
quic_parass, krzysztof.kozlowski, Krishna chaitanya chundru,
Lorenzo Pieralisi, Krzysztof Wilczyński,
Manivannan Sadhasivam, Kishon Vijay Abraham I, Jonathan Corbet,
linux-doc
Hi Krishna,
kernel test robot noticed the following build warnings:
[auto build test WARNING on pci/next]
[also build test WARNING on pci/for-linus linus/master v6.5-rc4 next-20230801]
[If your patch is applied to the wrong git tree, kindly drop us a note.
And when submitting patch, we suggest to use '--base' as documented in
https://git-scm.com/docs/git-format-patch#_base_tree_information]
url: https://github.com/intel-lab-lkp/linux/commits/Krishna-chaitanya-chundru/PCI-endpoint-Add-D-state-change-notifier-support/20230802-115309
base: https://git.kernel.org/pub/scm/linux/kernel/git/pci/pci.git next
patch link: https://lore.kernel.org/r/1690948281-2143-2-git-send-email-quic_krichai%40quicinc.com
patch subject: [PATCH v5 1/4] PCI: endpoint: Add D-state change notifier support
config: loongarch-allyesconfig (https://download.01.org/0day-ci/archive/20230802/202308021312.obgu7FWM-lkp@intel.com/config)
compiler: loongarch64-linux-gcc (GCC) 12.3.0
reproduce: (https://download.01.org/0day-ci/archive/20230802/202308021312.obgu7FWM-lkp@intel.com/reproduce)
If you fix the issue in a separate patch/commit (i.e. not just a new version of
the same patch/commit), kindly add following tags
| Reported-by: kernel test robot <lkp@intel.com>
| Closes: https://lore.kernel.org/oe-kbuild-all/202308021312.obgu7FWM-lkp@intel.com/
All warnings (new ones prefixed by >>):
>> drivers/pci/endpoint/pci-epc-core.c:795:6: warning: no previous prototype for 'pci_epc_dstate_notity' [-Wmissing-prototypes]
795 | void pci_epc_dstate_notity(struct pci_epc *epc, pci_power_t state)
| ^~~~~~~~~~~~~~~~~~~~~
vim +/pci_epc_dstate_notity +795 drivers/pci/endpoint/pci-epc-core.c
785
786 /**
787 * pci_epc_dstate_notity() - Notify the EPF driver that EPC device D-state
788 * has changed
789 * @epc: the EPC device which has change in D-state
790 * @state: the changed D-state
791 *
792 * Invoke to Notify the EPF device that the EPC device has D-state has
793 * changed.
794 */
> 795 void pci_epc_dstate_notity(struct pci_epc *epc, pci_power_t state)
796 {
797 struct pci_epf *epf;
798
799 if (!epc || IS_ERR(epc))
800 return;
801
802 mutex_lock(&epc->list_lock);
803 list_for_each_entry(epf, &epc->pci_epf, list) {
804 mutex_lock(&epf->lock);
805 if (epf->event_ops && epf->event_ops->dstate_notify)
806 epf->event_ops->dstate_notify(epf, state);
807 mutex_unlock(&epf->lock);
808 }
809 mutex_unlock(&epc->list_lock);
810 }
811 EXPORT_SYMBOL_GPL(pci_epc_dstate_notity);
812
--
0-DAY CI Kernel Test Service
https://github.com/intel/lkp-tests/wiki
^ permalink raw reply [flat|nested] 13+ messages in thread
* Re: [PATCH v5 2/4] PCI: qcom-ep: Add support for D-state change notification
2023-08-02 3:51 ` [PATCH v5 2/4] PCI: qcom-ep: Add support for D-state change notification Krishna chaitanya chundru
@ 2023-08-03 10:53 ` kernel test robot
0 siblings, 0 replies; 13+ messages in thread
From: kernel test robot @ 2023-08-03 10:53 UTC (permalink / raw)
To: Krishna chaitanya chundru, manivannan.sadhasivam
Cc: oe-kbuild-all, helgaas, linux-pci, linux-arm-msm, linux-kernel,
quic_vbadigan, quic_nitegupt, quic_skananth, quic_ramkri,
quic_parass, krzysztof.kozlowski, Krishna chaitanya chundru,
Manivannan Sadhasivam, Lorenzo Pieralisi,
Krzysztof Wilczyński, Rob Herring
Hi Krishna,
kernel test robot noticed the following build errors:
[auto build test ERROR on pci/next]
[also build test ERROR on pci/for-linus linus/master v6.5-rc4 next-20230803]
[If your patch is applied to the wrong git tree, kindly drop us a note.
And when submitting patch, we suggest to use '--base' as documented in
https://git-scm.com/docs/git-format-patch#_base_tree_information]
url: https://github.com/intel-lab-lkp/linux/commits/Krishna-chaitanya-chundru/PCI-endpoint-Add-D-state-change-notifier-support/20230802-115309
base: https://git.kernel.org/pub/scm/linux/kernel/git/pci/pci.git next
patch link: https://lore.kernel.org/r/1690948281-2143-3-git-send-email-quic_krichai%40quicinc.com
patch subject: [PATCH v5 2/4] PCI: qcom-ep: Add support for D-state change notification
config: x86_64-allyesconfig (https://download.01.org/0day-ci/archive/20230803/202308031857.u3v2s0bm-lkp@intel.com/config)
compiler: gcc-12 (Debian 12.2.0-14) 12.2.0
reproduce: (https://download.01.org/0day-ci/archive/20230803/202308031857.u3v2s0bm-lkp@intel.com/reproduce)
If you fix the issue in a separate patch/commit (i.e. not just a new version of
the same patch/commit), kindly add following tags
| Reported-by: kernel test robot <lkp@intel.com>
| Closes: https://lore.kernel.org/oe-kbuild-all/202308031857.u3v2s0bm-lkp@intel.com/
All errors (new ones prefixed by >>):
drivers/pci/controller/dwc/pcie-qcom-ep.c: In function 'qcom_pcie_ep_global_irq_thread':
>> drivers/pci/controller/dwc/pcie-qcom-ep.c:597:17: error: implicit declaration of function 'pci_epc_dstate_notify'; did you mean 'pci_epc_bme_notify'? [-Werror=implicit-function-declaration]
597 | pci_epc_dstate_notify(pci->ep.epc, state);
| ^~~~~~~~~~~~~~~~~~~~~
| pci_epc_bme_notify
cc1: some warnings being treated as errors
vim +597 drivers/pci/controller/dwc/pcie-qcom-ep.c
555
556 /* TODO: Notify clients about PCIe state change */
557 static irqreturn_t qcom_pcie_ep_global_irq_thread(int irq, void *data)
558 {
559 struct qcom_pcie_ep *pcie_ep = data;
560 struct dw_pcie *pci = &pcie_ep->pci;
561 struct device *dev = pci->dev;
562 u32 status = readl_relaxed(pcie_ep->parf + PARF_INT_ALL_STATUS);
563 u32 mask = readl_relaxed(pcie_ep->parf + PARF_INT_ALL_MASK);
564 pci_power_t state;
565 u32 dstate, val;
566
567 writel_relaxed(status, pcie_ep->parf + PARF_INT_ALL_CLEAR);
568 status &= mask;
569
570 if (FIELD_GET(PARF_INT_ALL_LINK_DOWN, status)) {
571 dev_dbg(dev, "Received Linkdown event\n");
572 pcie_ep->link_status = QCOM_PCIE_EP_LINK_DOWN;
573 pci_epc_linkdown(pci->ep.epc);
574 } else if (FIELD_GET(PARF_INT_ALL_BME, status)) {
575 dev_dbg(dev, "Received BME event. Link is enabled!\n");
576 pcie_ep->link_status = QCOM_PCIE_EP_LINK_ENABLED;
577 pci_epc_bme_notify(pci->ep.epc);
578 } else if (FIELD_GET(PARF_INT_ALL_PM_TURNOFF, status)) {
579 dev_dbg(dev, "Received PM Turn-off event! Entering L23\n");
580 val = readl_relaxed(pcie_ep->parf + PARF_PM_CTRL);
581 val |= PARF_PM_CTRL_READY_ENTR_L23;
582 writel_relaxed(val, pcie_ep->parf + PARF_PM_CTRL);
583 } else if (FIELD_GET(PARF_INT_ALL_DSTATE_CHANGE, status)) {
584 dstate = dw_pcie_readl_dbi(pci, DBI_CON_STATUS) &
585 DBI_CON_STATUS_POWER_STATE_MASK;
586 dev_dbg(dev, "Received D%d state event\n", dstate);
587 state = dstate;
588 if (dstate == 3) {
589 val = readl_relaxed(pcie_ep->parf + PARF_PM_CTRL);
590 val |= PARF_PM_CTRL_REQ_EXIT_L1;
591 writel_relaxed(val, pcie_ep->parf + PARF_PM_CTRL);
592
593 state = PCI_D3hot;
594 if (gpiod_get_value(pcie_ep->reset))
595 state = PCI_D3cold;
596 }
> 597 pci_epc_dstate_notify(pci->ep.epc, state);
598 } else if (FIELD_GET(PARF_INT_ALL_LINK_UP, status)) {
599 dev_dbg(dev, "Received Linkup event. Enumeration complete!\n");
600 dw_pcie_ep_linkup(&pci->ep);
601 pcie_ep->link_status = QCOM_PCIE_EP_LINK_UP;
602 } else {
603 dev_dbg(dev, "Received unknown event: %d\n", status);
604 }
605
606 return IRQ_HANDLED;
607 }
608
--
0-DAY CI Kernel Test Service
https://github.com/intel/lkp-tests/wiki
^ permalink raw reply [flat|nested] 13+ messages in thread
* Re: [PATCH v5 1/4] PCI: endpoint: Add D-state change notifier support
2023-08-02 3:51 ` [PATCH v5 1/4] PCI: endpoint: Add " Krishna chaitanya chundru
2023-08-02 5:14 ` kernel test robot
@ 2023-08-03 17:48 ` Bjorn Helgaas
2023-09-08 4:41 ` Krishna Chaitanya Chundru
1 sibling, 1 reply; 13+ messages in thread
From: Bjorn Helgaas @ 2023-08-03 17:48 UTC (permalink / raw)
To: Krishna chaitanya chundru
Cc: manivannan.sadhasivam, linux-pci, linux-arm-msm, linux-kernel,
quic_vbadigan, quic_nitegupt, quic_skananth, quic_ramkri,
quic_parass, krzysztof.kozlowski, Lorenzo Pieralisi,
Krzysztof Wilczyński, Manivannan Sadhasivam,
Kishon Vijay Abraham I, Bjorn Helgaas, Jonathan Corbet,
open list:DOCUMENTATION
On Wed, Aug 02, 2023 at 09:21:18AM +0530, Krishna chaitanya chundru wrote:
> Add support to notify the EPF device about the D-state change event
> from the EPC device.
>
> Signed-off-by: Krishna chaitanya chundru <quic_krichai@quicinc.com>
> ---
> Documentation/PCI/endpoint/pci-endpoint.rst | 4 ++++
> drivers/pci/endpoint/pci-epc-core.c | 27 +++++++++++++++++++++++++++
> include/linux/pci-epc.h | 1 +
> include/linux/pci-epf.h | 1 +
> 4 files changed, 33 insertions(+)
>
> diff --git a/Documentation/PCI/endpoint/pci-endpoint.rst b/Documentation/PCI/endpoint/pci-endpoint.rst
> index 4f5622a..66f3191 100644
> --- a/Documentation/PCI/endpoint/pci-endpoint.rst
> +++ b/Documentation/PCI/endpoint/pci-endpoint.rst
> @@ -78,6 +78,10 @@ by the PCI controller driver.
> Cleanup the pci_epc_mem structure allocated during pci_epc_mem_init().
>
>
> +* pci_epc_dstate_notity()
s/notity/notify/ (several instances)
> +
> + Notify all the function drivers that the EPC device has changed its D-state.
> +
> EPC APIs for the PCI Endpoint Function Driver
> ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
>
> diff --git a/drivers/pci/endpoint/pci-epc-core.c b/drivers/pci/endpoint/pci-epc-core.c
> index 6c54fa5..4cf9c82 100644
> --- a/drivers/pci/endpoint/pci-epc-core.c
> +++ b/drivers/pci/endpoint/pci-epc-core.c
> @@ -785,6 +785,33 @@ void pci_epc_bme_notify(struct pci_epc *epc)
> EXPORT_SYMBOL_GPL(pci_epc_bme_notify);
>
> /**
> + * pci_epc_dstate_notity() - Notify the EPF driver that EPC device D-state
> + * has changed
> + * @epc: the EPC device which has change in D-state
> + * @state: the changed D-state
> + *
> + * Invoke to Notify the EPF device that the EPC device has D-state has
> + * changed.
s/device has D-state/device D-state/
> + */
> +void pci_epc_dstate_notity(struct pci_epc *epc, pci_power_t state)
> +{
> + struct pci_epf *epf;
> +
> + if (!epc || IS_ERR(epc))
> + return;
Is this needed? Looks like a programming error if we return here. I
don't like silently ignoring errors like this. I generally prefer
taking the NULL pointer dereference oops so we know the caller is
broken and can fix it.
> + mutex_lock(&epc->list_lock);
> + list_for_each_entry(epf, &epc->pci_epf, list) {
> + mutex_lock(&epf->lock);
> + if (epf->event_ops && epf->event_ops->dstate_notify)
> + epf->event_ops->dstate_notify(epf, state);
> + mutex_unlock(&epf->lock);
> + }
> + mutex_unlock(&epc->list_lock);
> +}
> +EXPORT_SYMBOL_GPL(pci_epc_dstate_notity);
> +
> +/**
> * 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 5cb6940..26a1108 100644
> --- a/include/linux/pci-epc.h
> +++ b/include/linux/pci-epc.h
> @@ -251,4 +251,5 @@ void __iomem *pci_epc_mem_alloc_addr(struct pci_epc *epc,
> phys_addr_t *phys_addr, size_t size);
> void pci_epc_mem_free_addr(struct pci_epc *epc, phys_addr_t phys_addr,
> void __iomem *virt_addr, size_t size);
> +void pci_epc_dstate_change(struct pci_epc *epc, pci_power_t state);
> #endif /* __LINUX_PCI_EPC_H */
> diff --git a/include/linux/pci-epf.h b/include/linux/pci-epf.h
> index 3f44b6a..529075b 100644
> --- a/include/linux/pci-epf.h
> +++ b/include/linux/pci-epf.h
> @@ -79,6 +79,7 @@ struct pci_epc_event_ops {
> int (*link_up)(struct pci_epf *epf);
> int (*link_down)(struct pci_epf *epf);
> int (*bme)(struct pci_epf *epf);
> + int (*dstate_notify)(struct pci_epf *epf, pci_power_t state);
> };
>
> /**
> --
> 2.7.4
>
^ permalink raw reply [flat|nested] 13+ messages in thread
* Re: [PATCH v5 3/4] PCI: qcom-ep: Update the D-state log
2023-08-02 3:51 ` [PATCH v5 3/4] PCI: qcom-ep: Update the D-state log Krishna chaitanya chundru
@ 2023-08-03 17:58 ` Bjorn Helgaas
2023-09-08 4:43 ` Krishna Chaitanya Chundru
0 siblings, 1 reply; 13+ messages in thread
From: Bjorn Helgaas @ 2023-08-03 17:58 UTC (permalink / raw)
To: Krishna chaitanya chundru
Cc: manivannan.sadhasivam, linux-pci, linux-arm-msm, linux-kernel,
quic_vbadigan, quic_nitegupt, quic_skananth, quic_ramkri,
quic_parass, krzysztof.kozlowski, Manivannan Sadhasivam,
Lorenzo Pieralisi, Krzysztof Wilczyński, Rob Herring,
Bjorn Helgaas
In subject:
PCI: qcom-ep: Print D-state name to distinguish D3hot/D3cold
("Update" doesn't give any hint about what the change does.)
On Wed, Aug 02, 2023 at 09:21:20AM +0530, Krishna chaitanya chundru wrote:
> Now that the state event is stored as pci_power_t, let's use the PCI helper
> pci_power_name() to print the state event.
s/let's use/use/
The main change is this, right?
D3 -> D3hot
D4 -> D3cold
> Signed-off-by: Krishna chaitanya chundru <quic_krichai@quicinc.com>
> ---
> drivers/pci/controller/dwc/pcie-qcom-ep.c | 2 +-
> 1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/drivers/pci/controller/dwc/pcie-qcom-ep.c b/drivers/pci/controller/dwc/pcie-qcom-ep.c
> index 22545ff..0c69a61 100644
> --- a/drivers/pci/controller/dwc/pcie-qcom-ep.c
> +++ b/drivers/pci/controller/dwc/pcie-qcom-ep.c
> @@ -583,7 +583,6 @@ static irqreturn_t qcom_pcie_ep_global_irq_thread(int irq, void *data)
> } else if (FIELD_GET(PARF_INT_ALL_DSTATE_CHANGE, status)) {
> dstate = dw_pcie_readl_dbi(pci, DBI_CON_STATUS) &
> DBI_CON_STATUS_POWER_STATE_MASK;
> - dev_dbg(dev, "Received D%d state event\n", dstate);
> state = dstate;
> if (dstate == 3) {
Can this check for "state == PCI_D3hot" to be clearer?
> val = readl_relaxed(pcie_ep->parf + PARF_PM_CTRL);
> @@ -594,6 +593,7 @@ static irqreturn_t qcom_pcie_ep_global_irq_thread(int irq, void *data)
> if (gpiod_get_value(pcie_ep->reset))
> state = PCI_D3cold;
> }
> + dev_dbg(dev, "Received %s event\n", pci_power_name(state));
Not really sure why this needs to be moved (the diff would be clearer
if it stayed in the same spot), but it doesn't look like it really
matters.
> pci_epc_dstate_notify(pci->ep.epc, state);
> } else if (FIELD_GET(PARF_INT_ALL_LINK_UP, status)) {
> dev_dbg(dev, "Received Linkup event. Enumeration complete!\n");
> --
> 2.7.4
>
^ permalink raw reply [flat|nested] 13+ messages in thread
* Re: [PATCH v5 1/4] PCI: endpoint: Add D-state change notifier support
2023-08-02 5:14 ` kernel test robot
@ 2023-08-23 6:19 ` Manivannan Sadhasivam
2023-09-08 4:44 ` Krishna Chaitanya Chundru
0 siblings, 1 reply; 13+ messages in thread
From: Manivannan Sadhasivam @ 2023-08-23 6:19 UTC (permalink / raw)
To: kernel test robot
Cc: Krishna chaitanya chundru, manivannan.sadhasivam, oe-kbuild-all,
helgaas, linux-pci, linux-arm-msm, linux-kernel, quic_vbadigan,
quic_nitegupt, quic_skananth, quic_ramkri, quic_parass,
krzysztof.kozlowski, Lorenzo Pieralisi, Krzysztof Wilczyński,
Kishon Vijay Abraham I, Jonathan Corbet, linux-doc
On Wed, Aug 02, 2023 at 01:14:44PM +0800, kernel test robot wrote:
> Hi Krishna,
>
> kernel test robot noticed the following build warnings:
>
> [auto build test WARNING on pci/next]
> [also build test WARNING on pci/for-linus linus/master v6.5-rc4 next-20230801]
> [If your patch is applied to the wrong git tree, kindly drop us a note.
> And when submitting patch, we suggest to use '--base' as documented in
> https://git-scm.com/docs/git-format-patch#_base_tree_information]
>
> url: https://github.com/intel-lab-lkp/linux/commits/Krishna-chaitanya-chundru/PCI-endpoint-Add-D-state-change-notifier-support/20230802-115309
> base: https://git.kernel.org/pub/scm/linux/kernel/git/pci/pci.git next
> patch link: https://lore.kernel.org/r/1690948281-2143-2-git-send-email-quic_krichai%40quicinc.com
> patch subject: [PATCH v5 1/4] PCI: endpoint: Add D-state change notifier support
> config: loongarch-allyesconfig (https://download.01.org/0day-ci/archive/20230802/202308021312.obgu7FWM-lkp@intel.com/config)
> compiler: loongarch64-linux-gcc (GCC) 12.3.0
> reproduce: (https://download.01.org/0day-ci/archive/20230802/202308021312.obgu7FWM-lkp@intel.com/reproduce)
>
> If you fix the issue in a separate patch/commit (i.e. not just a new version of
> the same patch/commit), kindly add following tags
> | Reported-by: kernel test robot <lkp@intel.com>
> | Closes: https://lore.kernel.org/oe-kbuild-all/202308021312.obgu7FWM-lkp@intel.com/
>
> All warnings (new ones prefixed by >>):
>
> >> drivers/pci/endpoint/pci-epc-core.c:795:6: warning: no previous prototype for 'pci_epc_dstate_notity' [-Wmissing-prototypes]
> 795 | void pci_epc_dstate_notity(struct pci_epc *epc, pci_power_t state)
This tells that you haven't build tested the series before sending. Please
always do both build and functionality testing before sending each iteration.
- Mani
> | ^~~~~~~~~~~~~~~~~~~~~
>
>
> vim +/pci_epc_dstate_notity +795 drivers/pci/endpoint/pci-epc-core.c
>
> 785
> 786 /**
> 787 * pci_epc_dstate_notity() - Notify the EPF driver that EPC device D-state
> 788 * has changed
> 789 * @epc: the EPC device which has change in D-state
> 790 * @state: the changed D-state
> 791 *
> 792 * Invoke to Notify the EPF device that the EPC device has D-state has
> 793 * changed.
> 794 */
> > 795 void pci_epc_dstate_notity(struct pci_epc *epc, pci_power_t state)
> 796 {
> 797 struct pci_epf *epf;
> 798
> 799 if (!epc || IS_ERR(epc))
> 800 return;
> 801
> 802 mutex_lock(&epc->list_lock);
> 803 list_for_each_entry(epf, &epc->pci_epf, list) {
> 804 mutex_lock(&epf->lock);
> 805 if (epf->event_ops && epf->event_ops->dstate_notify)
> 806 epf->event_ops->dstate_notify(epf, state);
> 807 mutex_unlock(&epf->lock);
> 808 }
> 809 mutex_unlock(&epc->list_lock);
> 810 }
> 811 EXPORT_SYMBOL_GPL(pci_epc_dstate_notity);
> 812
>
> --
> 0-DAY CI Kernel Test Service
> https://github.com/intel/lkp-tests/wiki
--
மணிவண்ணன் சதாசிவம்
^ permalink raw reply [flat|nested] 13+ messages in thread
* Re: [PATCH v5 1/4] PCI: endpoint: Add D-state change notifier support
2023-08-03 17:48 ` Bjorn Helgaas
@ 2023-09-08 4:41 ` Krishna Chaitanya Chundru
0 siblings, 0 replies; 13+ messages in thread
From: Krishna Chaitanya Chundru @ 2023-09-08 4:41 UTC (permalink / raw)
To: Bjorn Helgaas
Cc: manivannan.sadhasivam, linux-pci, linux-arm-msm, linux-kernel,
quic_vbadigan, quic_nitegupt, quic_skananth, quic_ramkri,
quic_parass, krzysztof.kozlowski, Lorenzo Pieralisi,
Krzysztof Wilczyński, Manivannan Sadhasivam,
Kishon Vijay Abraham I, Bjorn Helgaas, Jonathan Corbet,
open list:DOCUMENTATION
On 8/3/2023 11:18 PM, Bjorn Helgaas wrote:
> On Wed, Aug 02, 2023 at 09:21:18AM +0530, Krishna chaitanya chundru wrote:
>> Add support to notify the EPF device about the D-state change event
>> from the EPC device.
>>
>> Signed-off-by: Krishna chaitanya chundru <quic_krichai@quicinc.com>
>> ---
>> Documentation/PCI/endpoint/pci-endpoint.rst | 4 ++++
>> drivers/pci/endpoint/pci-epc-core.c | 27 +++++++++++++++++++++++++++
>> include/linux/pci-epc.h | 1 +
>> include/linux/pci-epf.h | 1 +
>> 4 files changed, 33 insertions(+)
>>
>> diff --git a/Documentation/PCI/endpoint/pci-endpoint.rst b/Documentation/PCI/endpoint/pci-endpoint.rst
>> index 4f5622a..66f3191 100644
>> --- a/Documentation/PCI/endpoint/pci-endpoint.rst
>> +++ b/Documentation/PCI/endpoint/pci-endpoint.rst
>> @@ -78,6 +78,10 @@ by the PCI controller driver.
>> Cleanup the pci_epc_mem structure allocated during pci_epc_mem_init().
>>
>>
>> +* pci_epc_dstate_notity()
> s/notity/notify/ (several instances)
sorry for late reply, till now I was using a different branch which has
some out of tree patches for testing and rebasing the patch on
linux-next to send them because of that few things are getting missed.
Now I took time to completely move to the linux next so that testing and
sending patches will be on same code base.
>> +
>> + Notify all the function drivers that the EPC device has changed its D-state.
>> +
>> EPC APIs for the PCI Endpoint Function Driver
>> ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
>>
>> diff --git a/drivers/pci/endpoint/pci-epc-core.c b/drivers/pci/endpoint/pci-epc-core.c
>> index 6c54fa5..4cf9c82 100644
>> --- a/drivers/pci/endpoint/pci-epc-core.c
>> +++ b/drivers/pci/endpoint/pci-epc-core.c
>> @@ -785,6 +785,33 @@ void pci_epc_bme_notify(struct pci_epc *epc)
>> EXPORT_SYMBOL_GPL(pci_epc_bme_notify);
>>
>> /**
>> + * pci_epc_dstate_notity() - Notify the EPF driver that EPC device D-state
>> + * has changed
>> + * @epc: the EPC device which has change in D-state
>> + * @state: the changed D-state
>> + *
>> + * Invoke to Notify the EPF device that the EPC device has D-state has
>> + * changed.
> s/device has D-state/device D-state/
>
>> + */
>> +void pci_epc_dstate_notity(struct pci_epc *epc, pci_power_t state)
>> +{
>> + struct pci_epf *epf;
>> +
>> + if (!epc || IS_ERR(epc))
>> + return;
> Is this needed? Looks like a programming error if we return here. I
> don't like silently ignoring errors like this. I generally prefer
> taking the NULL pointer dereference oops so we know the caller is
> broken and can fix it.
sure I will remove this check in the next patch series.
>
>> + mutex_lock(&epc->list_lock);
>> + list_for_each_entry(epf, &epc->pci_epf, list) {
>> + mutex_lock(&epf->lock);
>> + if (epf->event_ops && epf->event_ops->dstate_notify)
>> + epf->event_ops->dstate_notify(epf, state);
>> + mutex_unlock(&epf->lock);
>> + }
>> + mutex_unlock(&epc->list_lock);
>> +}
>> +EXPORT_SYMBOL_GPL(pci_epc_dstate_notity);
>> +
>> +/**
>> * 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 5cb6940..26a1108 100644
>> --- a/include/linux/pci-epc.h
>> +++ b/include/linux/pci-epc.h
>> @@ -251,4 +251,5 @@ void __iomem *pci_epc_mem_alloc_addr(struct pci_epc *epc,
>> phys_addr_t *phys_addr, size_t size);
>> void pci_epc_mem_free_addr(struct pci_epc *epc, phys_addr_t phys_addr,
>> void __iomem *virt_addr, size_t size);
>> +void pci_epc_dstate_change(struct pci_epc *epc, pci_power_t state);
>> #endif /* __LINUX_PCI_EPC_H */
>> diff --git a/include/linux/pci-epf.h b/include/linux/pci-epf.h
>> index 3f44b6a..529075b 100644
>> --- a/include/linux/pci-epf.h
>> +++ b/include/linux/pci-epf.h
>> @@ -79,6 +79,7 @@ struct pci_epc_event_ops {
>> int (*link_up)(struct pci_epf *epf);
>> int (*link_down)(struct pci_epf *epf);
>> int (*bme)(struct pci_epf *epf);
>> + int (*dstate_notify)(struct pci_epf *epf, pci_power_t state);
>> };
>>
>> /**
>> --
>> 2.7.4
>>
^ permalink raw reply [flat|nested] 13+ messages in thread
* Re: [PATCH v5 3/4] PCI: qcom-ep: Update the D-state log
2023-08-03 17:58 ` Bjorn Helgaas
@ 2023-09-08 4:43 ` Krishna Chaitanya Chundru
0 siblings, 0 replies; 13+ messages in thread
From: Krishna Chaitanya Chundru @ 2023-09-08 4:43 UTC (permalink / raw)
To: Bjorn Helgaas
Cc: manivannan.sadhasivam, linux-pci, linux-arm-msm, linux-kernel,
quic_vbadigan, quic_nitegupt, quic_skananth, quic_ramkri,
quic_parass, krzysztof.kozlowski, Manivannan Sadhasivam,
Lorenzo Pieralisi, Krzysztof Wilczyński, Rob Herring,
Bjorn Helgaas
On 8/3/2023 11:28 PM, Bjorn Helgaas wrote:
> In subject:
>
> PCI: qcom-ep: Print D-state name to distinguish D3hot/D3cold
>
> ("Update" doesn't give any hint about what the change does.)
I will update it as suggested.
> On Wed, Aug 02, 2023 at 09:21:20AM +0530, Krishna chaitanya chundru wrote:
>> Now that the state event is stored as pci_power_t, let's use the PCI helper
>> pci_power_name() to print the state event.
> s/let's use/use/
>
> The main change is this, right?
>
> D3 -> D3hot
> D4 -> D3cold
Yes this is the main change.
>> Signed-off-by: Krishna chaitanya chundru <quic_krichai@quicinc.com>
>> ---
>> drivers/pci/controller/dwc/pcie-qcom-ep.c | 2 +-
>> 1 file changed, 1 insertion(+), 1 deletion(-)
>>
>> diff --git a/drivers/pci/controller/dwc/pcie-qcom-ep.c b/drivers/pci/controller/dwc/pcie-qcom-ep.c
>> index 22545ff..0c69a61 100644
>> --- a/drivers/pci/controller/dwc/pcie-qcom-ep.c
>> +++ b/drivers/pci/controller/dwc/pcie-qcom-ep.c
>> @@ -583,7 +583,6 @@ static irqreturn_t qcom_pcie_ep_global_irq_thread(int irq, void *data)
>> } else if (FIELD_GET(PARF_INT_ALL_DSTATE_CHANGE, status)) {
>> dstate = dw_pcie_readl_dbi(pci, DBI_CON_STATUS) &
>> DBI_CON_STATUS_POWER_STATE_MASK;
>> - dev_dbg(dev, "Received D%d state event\n", dstate);
>> state = dstate;
>> if (dstate == 3) {
> Can this check for "state == PCI_D3hot" to be clearer?
I will modify this.
>
>> val = readl_relaxed(pcie_ep->parf + PARF_PM_CTRL);
>> @@ -594,6 +593,7 @@ static irqreturn_t qcom_pcie_ep_global_irq_thread(int irq, void *data)
>> if (gpiod_get_value(pcie_ep->reset))
>> state = PCI_D3cold;
>> }
>> + dev_dbg(dev, "Received %s event\n", pci_power_name(state));
> Not really sure why this needs to be moved (the diff would be clearer
> if it stayed in the same spot), but it doesn't look like it really
> matters.
As we know if the link is in D3hot or D3cold moving the log here so that
we can log correct Dstate.
- KC
>> pci_epc_dstate_notify(pci->ep.epc, state);
>> } else if (FIELD_GET(PARF_INT_ALL_LINK_UP, status)) {
>> dev_dbg(dev, "Received Linkup event. Enumeration complete!\n");
>> --
>> 2.7.4
>>
^ permalink raw reply [flat|nested] 13+ messages in thread
* Re: [PATCH v5 1/4] PCI: endpoint: Add D-state change notifier support
2023-08-23 6:19 ` Manivannan Sadhasivam
@ 2023-09-08 4:44 ` Krishna Chaitanya Chundru
0 siblings, 0 replies; 13+ messages in thread
From: Krishna Chaitanya Chundru @ 2023-09-08 4:44 UTC (permalink / raw)
To: Manivannan Sadhasivam, kernel test robot
Cc: manivannan.sadhasivam, oe-kbuild-all, helgaas, linux-pci,
linux-arm-msm, linux-kernel, quic_vbadigan, quic_nitegupt,
quic_skananth, quic_ramkri, quic_parass, krzysztof.kozlowski,
Lorenzo Pieralisi, Krzysztof Wilczyński,
Kishon Vijay Abraham I, Jonathan Corbet, linux-doc
On 8/23/2023 11:49 AM, Manivannan Sadhasivam wrote:
> On Wed, Aug 02, 2023 at 01:14:44PM +0800, kernel test robot wrote:
>> Hi Krishna,
>>
>> kernel test robot noticed the following build warnings:
>>
>> [auto build test WARNING on pci/next]
>> [also build test WARNING on pci/for-linus linus/master v6.5-rc4 next-20230801]
>> [If your patch is applied to the wrong git tree, kindly drop us a note.
>> And when submitting patch, we suggest to use '--base' as documented in
>> https://git-scm.com/docs/git-format-patch#_base_tree_information]
>>
>> url: https://github.com/intel-lab-lkp/linux/commits/Krishna-chaitanya-chundru/PCI-endpoint-Add-D-state-change-notifier-support/20230802-115309
>> base: https://git.kernel.org/pub/scm/linux/kernel/git/pci/pci.git next
>> patch link: https://lore.kernel.org/r/1690948281-2143-2-git-send-email-quic_krichai%40quicinc.com
>> patch subject: [PATCH v5 1/4] PCI: endpoint: Add D-state change notifier support
>> config: loongarch-allyesconfig (https://download.01.org/0day-ci/archive/20230802/202308021312.obgu7FWM-lkp@intel.com/config)
>> compiler: loongarch64-linux-gcc (GCC) 12.3.0
>> reproduce: (https://download.01.org/0day-ci/archive/20230802/202308021312.obgu7FWM-lkp@intel.com/reproduce)
>>
>> If you fix the issue in a separate patch/commit (i.e. not just a new version of
>> the same patch/commit), kindly add following tags
>> | Reported-by: kernel test robot <lkp@intel.com>
>> | Closes: https://lore.kernel.org/oe-kbuild-all/202308021312.obgu7FWM-lkp@intel.com/
>>
>> All warnings (new ones prefixed by >>):
>>
>>>> drivers/pci/endpoint/pci-epc-core.c:795:6: warning: no previous prototype for 'pci_epc_dstate_notity' [-Wmissing-prototypes]
>> 795 | void pci_epc_dstate_notity(struct pci_epc *epc, pci_power_t state)
> This tells that you haven't build tested the series before sending. Please
> always do both build and functionality testing before sending each iteration.
>
> - Mani
sorry for late reply, till now I was using a different branch which has
some out of tree patches for testing and rebasing the patch on
linux-next to send them because of that few things are getting missed.
Now I took time to completely move to the linux next so that testing and
sending patches will be on same code base.
I will correct this in next patch series.
- KC
>> | ^~~~~~~~~~~~~~~~~~~~~
>>
>>
>> vim +/pci_epc_dstate_notity +795 drivers/pci/endpoint/pci-epc-core.c
>>
>> 785
>> 786 /**
>> 787 * pci_epc_dstate_notity() - Notify the EPF driver that EPC device D-state
>> 788 * has changed
>> 789 * @epc: the EPC device which has change in D-state
>> 790 * @state: the changed D-state
>> 791 *
>> 792 * Invoke to Notify the EPF device that the EPC device has D-state has
>> 793 * changed.
>> 794 */
>> > 795 void pci_epc_dstate_notity(struct pci_epc *epc, pci_power_t state)
>> 796 {
>> 797 struct pci_epf *epf;
>> 798
>> 799 if (!epc || IS_ERR(epc))
>> 800 return;
>> 801
>> 802 mutex_lock(&epc->list_lock);
>> 803 list_for_each_entry(epf, &epc->pci_epf, list) {
>> 804 mutex_lock(&epf->lock);
>> 805 if (epf->event_ops && epf->event_ops->dstate_notify)
>> 806 epf->event_ops->dstate_notify(epf, state);
>> 807 mutex_unlock(&epf->lock);
>> 808 }
>> 809 mutex_unlock(&epc->list_lock);
>> 810 }
>> 811 EXPORT_SYMBOL_GPL(pci_epc_dstate_notity);
>> 812
>>
>> --
>> 0-DAY CI Kernel Test Service
>> https://github.com/intel/lkp-tests/wiki
^ permalink raw reply [flat|nested] 13+ messages in thread
end of thread, other threads:[~2023-09-08 4:44 UTC | newest]
Thread overview: 13+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2023-08-02 3:51 [PATCH v5 0/4] PCI: endpoint: add D-state change notifier support Krishna chaitanya chundru
2023-08-02 3:51 ` [PATCH v5 1/4] PCI: endpoint: Add " Krishna chaitanya chundru
2023-08-02 5:14 ` kernel test robot
2023-08-23 6:19 ` Manivannan Sadhasivam
2023-09-08 4:44 ` Krishna Chaitanya Chundru
2023-08-03 17:48 ` Bjorn Helgaas
2023-09-08 4:41 ` Krishna Chaitanya Chundru
2023-08-02 3:51 ` [PATCH v5 2/4] PCI: qcom-ep: Add support for D-state change notification Krishna chaitanya chundru
2023-08-03 10:53 ` kernel test robot
2023-08-02 3:51 ` [PATCH v5 3/4] PCI: qcom-ep: Update the D-state log Krishna chaitanya chundru
2023-08-03 17:58 ` Bjorn Helgaas
2023-09-08 4:43 ` Krishna Chaitanya Chundru
2023-08-02 3:51 ` [PATCH v5 4/4] PCI: epf-mhi: Add support for handling D-state notify from EPC Krishna chaitanya chundru
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.