* Re: [PATCH] phy: qcom: qmp: Add debug prints for register writes
@ 2024-07-31 12:18 ` Dmitry Baryshkov
0 siblings, 0 replies; 10+ messages in thread
From: Dmitry Baryshkov @ 2024-07-31 12:18 UTC (permalink / raw)
To: Vinod Koul
Cc: Manivannan Sadhasivam, kishon, linux-arm-msm, linux-phy,
linux-kernel
On Wed, Jul 31, 2024 at 04:28:46PM GMT, Vinod Koul wrote:
> On 30-07-24, 15:33, Manivannan Sadhasivam wrote:
> > These register prints are useful to validate the init sequence against the
> > Qcom internal documentation and also to share with the Qcom hw engineers to
> > debug issues related to PHY.
> >
> > Signed-off-by: Manivannan Sadhasivam <manivannan.sadhasivam@linaro.org>
> > ---
> > drivers/phy/qualcomm/phy-qcom-qmp-common.h | 4 ++++
> > 1 file changed, 4 insertions(+)
> >
> > diff --git a/drivers/phy/qualcomm/phy-qcom-qmp-common.h b/drivers/phy/qualcomm/phy-qcom-qmp-common.h
> > index 799384210509..e6a6bcfcac28 100644
> > --- a/drivers/phy/qualcomm/phy-qcom-qmp-common.h
> > +++ b/drivers/phy/qualcomm/phy-qcom-qmp-common.h
> > @@ -9,6 +9,7 @@
> > struct qmp_phy_init_tbl {
> > unsigned int offset;
> > unsigned int val;
> > + char *name;
> > /*
> > * mask of lanes for which this register is written
> > * for cases when second lane needs different values
> > @@ -20,6 +21,7 @@ struct qmp_phy_init_tbl {
> > { \
> > .offset = o, \
> > .val = v, \
> > + .name = #o, \
> > .lane_mask = 0xff, \
> > }
> >
> > @@ -27,6 +29,7 @@ struct qmp_phy_init_tbl {
> > { \
> > .offset = o, \
> > .val = v, \
> > + .name = #o, \
> > .lane_mask = l, \
> > }
> >
> > @@ -45,6 +48,7 @@ static inline void qmp_configure_lane(void __iomem *base,
> > if (!(t->lane_mask & lane_mask))
> > continue;
> >
> > + pr_debug("QMP PHY: Writing: %s --> 0x%02x\n", t->name, t->val);
>
> This lgtm, but fails to help when offset _might_ be incorrect, including
> the offset value as well (not just the name) would be better imo...
Can we please use dev_vdbg instead? Having dev_ part makes sure that we
can not mismatch PHYs and the sequences. _vdbg is less important, but
I don't think we want this in the log messages unless absolutely
required.
Also, could you possibly apply this to all other QMP drivers?
>
> > writel(t->val, base + t->offset);
> > }
> > }
> > --
> > 2.25.1
>
> --
> ~Vinod
>
> --
> linux-phy mailing list
> linux-phy@lists.infradead.org
> https://lists.infradead.org/mailman/listinfo/linux-phy
--
With best wishes
Dmitry
--
linux-phy mailing list
linux-phy@lists.infradead.org
https://lists.infradead.org/mailman/listinfo/linux-phy
^ permalink raw reply [flat|nested] 10+ messages in thread* Re: [PATCH] phy: qcom: qmp: Add debug prints for register writes
2024-07-31 12:18 ` Dmitry Baryshkov
@ 2024-07-31 12:19 ` Dmitry Baryshkov
-1 siblings, 0 replies; 10+ messages in thread
From: Dmitry Baryshkov @ 2024-07-31 12:19 UTC (permalink / raw)
To: Vinod Koul
Cc: Manivannan Sadhasivam, kishon, linux-arm-msm, linux-phy,
linux-kernel
On Wed, Jul 31, 2024 at 03:18:34PM GMT, Dmitry Baryshkov wrote:
> On Wed, Jul 31, 2024 at 04:28:46PM GMT, Vinod Koul wrote:
> > On 30-07-24, 15:33, Manivannan Sadhasivam wrote:
> > > These register prints are useful to validate the init sequence against the
> > > Qcom internal documentation and also to share with the Qcom hw engineers to
> > > debug issues related to PHY.
> > >
> > > Signed-off-by: Manivannan Sadhasivam <manivannan.sadhasivam@linaro.org>
> > > ---
> > > drivers/phy/qualcomm/phy-qcom-qmp-common.h | 4 ++++
> > > 1 file changed, 4 insertions(+)
> > >
> > > diff --git a/drivers/phy/qualcomm/phy-qcom-qmp-common.h b/drivers/phy/qualcomm/phy-qcom-qmp-common.h
> > > index 799384210509..e6a6bcfcac28 100644
> > > --- a/drivers/phy/qualcomm/phy-qcom-qmp-common.h
> > > +++ b/drivers/phy/qualcomm/phy-qcom-qmp-common.h
> > > @@ -9,6 +9,7 @@
> > > struct qmp_phy_init_tbl {
> > > unsigned int offset;
> > > unsigned int val;
> > > + char *name;
> > > /*
> > > * mask of lanes for which this register is written
> > > * for cases when second lane needs different values
> > > @@ -20,6 +21,7 @@ struct qmp_phy_init_tbl {
> > > { \
> > > .offset = o, \
> > > .val = v, \
> > > + .name = #o, \
> > > .lane_mask = 0xff, \
> > > }
> > >
> > > @@ -27,6 +29,7 @@ struct qmp_phy_init_tbl {
> > > { \
> > > .offset = o, \
> > > .val = v, \
> > > + .name = #o, \
> > > .lane_mask = l, \
> > > }
> > >
> > > @@ -45,6 +48,7 @@ static inline void qmp_configure_lane(void __iomem *base,
> > > if (!(t->lane_mask & lane_mask))
> > > continue;
> > >
> > > + pr_debug("QMP PHY: Writing: %s --> 0x%02x\n", t->name, t->val);
> >
> > This lgtm, but fails to help when offset _might_ be incorrect, including
> > the offset value as well (not just the name) would be better imo...
>
> Can we please use dev_vdbg instead? Having dev_ part makes sure that we
> can not mismatch PHYs and the sequences. _vdbg is less important, but
> I don't think we want this in the log messages unless absolutely
> required.
>
> Also, could you possibly apply this to all other QMP drivers?
Please ignore the last phrase, it is used by all QMP drivers.
--
With best wishes
Dmitry
^ permalink raw reply [flat|nested] 10+ messages in thread* Re: [PATCH] phy: qcom: qmp: Add debug prints for register writes
@ 2024-07-31 12:19 ` Dmitry Baryshkov
0 siblings, 0 replies; 10+ messages in thread
From: Dmitry Baryshkov @ 2024-07-31 12:19 UTC (permalink / raw)
To: Vinod Koul
Cc: Manivannan Sadhasivam, kishon, linux-arm-msm, linux-phy,
linux-kernel
On Wed, Jul 31, 2024 at 03:18:34PM GMT, Dmitry Baryshkov wrote:
> On Wed, Jul 31, 2024 at 04:28:46PM GMT, Vinod Koul wrote:
> > On 30-07-24, 15:33, Manivannan Sadhasivam wrote:
> > > These register prints are useful to validate the init sequence against the
> > > Qcom internal documentation and also to share with the Qcom hw engineers to
> > > debug issues related to PHY.
> > >
> > > Signed-off-by: Manivannan Sadhasivam <manivannan.sadhasivam@linaro.org>
> > > ---
> > > drivers/phy/qualcomm/phy-qcom-qmp-common.h | 4 ++++
> > > 1 file changed, 4 insertions(+)
> > >
> > > diff --git a/drivers/phy/qualcomm/phy-qcom-qmp-common.h b/drivers/phy/qualcomm/phy-qcom-qmp-common.h
> > > index 799384210509..e6a6bcfcac28 100644
> > > --- a/drivers/phy/qualcomm/phy-qcom-qmp-common.h
> > > +++ b/drivers/phy/qualcomm/phy-qcom-qmp-common.h
> > > @@ -9,6 +9,7 @@
> > > struct qmp_phy_init_tbl {
> > > unsigned int offset;
> > > unsigned int val;
> > > + char *name;
> > > /*
> > > * mask of lanes for which this register is written
> > > * for cases when second lane needs different values
> > > @@ -20,6 +21,7 @@ struct qmp_phy_init_tbl {
> > > { \
> > > .offset = o, \
> > > .val = v, \
> > > + .name = #o, \
> > > .lane_mask = 0xff, \
> > > }
> > >
> > > @@ -27,6 +29,7 @@ struct qmp_phy_init_tbl {
> > > { \
> > > .offset = o, \
> > > .val = v, \
> > > + .name = #o, \
> > > .lane_mask = l, \
> > > }
> > >
> > > @@ -45,6 +48,7 @@ static inline void qmp_configure_lane(void __iomem *base,
> > > if (!(t->lane_mask & lane_mask))
> > > continue;
> > >
> > > + pr_debug("QMP PHY: Writing: %s --> 0x%02x\n", t->name, t->val);
> >
> > This lgtm, but fails to help when offset _might_ be incorrect, including
> > the offset value as well (not just the name) would be better imo...
>
> Can we please use dev_vdbg instead? Having dev_ part makes sure that we
> can not mismatch PHYs and the sequences. _vdbg is less important, but
> I don't think we want this in the log messages unless absolutely
> required.
>
> Also, could you possibly apply this to all other QMP drivers?
Please ignore the last phrase, it is used by all QMP drivers.
--
With best wishes
Dmitry
--
linux-phy mailing list
linux-phy@lists.infradead.org
https://lists.infradead.org/mailman/listinfo/linux-phy
^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: [PATCH] phy: qcom: qmp: Add debug prints for register writes
2024-07-31 12:18 ` Dmitry Baryshkov
@ 2024-07-31 15:29 ` Manivannan Sadhasivam
-1 siblings, 0 replies; 10+ messages in thread
From: Manivannan Sadhasivam @ 2024-07-31 15:29 UTC (permalink / raw)
To: Dmitry Baryshkov
Cc: Vinod Koul, kishon, linux-arm-msm, linux-phy, linux-kernel
On Wed, Jul 31, 2024 at 03:18:31PM +0300, Dmitry Baryshkov wrote:
> On Wed, Jul 31, 2024 at 04:28:46PM GMT, Vinod Koul wrote:
> > On 30-07-24, 15:33, Manivannan Sadhasivam wrote:
> > > These register prints are useful to validate the init sequence against the
> > > Qcom internal documentation and also to share with the Qcom hw engineers to
> > > debug issues related to PHY.
> > >
> > > Signed-off-by: Manivannan Sadhasivam <manivannan.sadhasivam@linaro.org>
> > > ---
> > > drivers/phy/qualcomm/phy-qcom-qmp-common.h | 4 ++++
> > > 1 file changed, 4 insertions(+)
> > >
> > > diff --git a/drivers/phy/qualcomm/phy-qcom-qmp-common.h b/drivers/phy/qualcomm/phy-qcom-qmp-common.h
> > > index 799384210509..e6a6bcfcac28 100644
> > > --- a/drivers/phy/qualcomm/phy-qcom-qmp-common.h
> > > +++ b/drivers/phy/qualcomm/phy-qcom-qmp-common.h
> > > @@ -9,6 +9,7 @@
> > > struct qmp_phy_init_tbl {
> > > unsigned int offset;
> > > unsigned int val;
> > > + char *name;
> > > /*
> > > * mask of lanes for which this register is written
> > > * for cases when second lane needs different values
> > > @@ -20,6 +21,7 @@ struct qmp_phy_init_tbl {
> > > { \
> > > .offset = o, \
> > > .val = v, \
> > > + .name = #o, \
> > > .lane_mask = 0xff, \
> > > }
> > >
> > > @@ -27,6 +29,7 @@ struct qmp_phy_init_tbl {
> > > { \
> > > .offset = o, \
> > > .val = v, \
> > > + .name = #o, \
> > > .lane_mask = l, \
> > > }
> > >
> > > @@ -45,6 +48,7 @@ static inline void qmp_configure_lane(void __iomem *base,
> > > if (!(t->lane_mask & lane_mask))
> > > continue;
> > >
> > > + pr_debug("QMP PHY: Writing: %s --> 0x%02x\n", t->name, t->val);
> >
> > This lgtm, but fails to help when offset _might_ be incorrect, including
> > the offset value as well (not just the name) would be better imo...
>
> Can we please use dev_vdbg instead? Having dev_ part makes sure that we
> can not mismatch PHYs and the sequences. _vdbg is less important, but
> I don't think we want this in the log messages unless absolutely
> required.
>
I'm not a big fan of _vdbg(). IMO, all debug messages are verbose and if
enabled, user intend to see it. So I don't like one more level of
comparmentalization. Also it requires us to feed -DVERBOSE_DEBUG...
But I agree with dev_dbg(). Initially, I thought about it but forgot the fact
that we now have async probe, so there is no guaranteee that these debug prints
will get printed in order.
Sent v3 with dev_dbg(), thanks!
- Mani
--
மணிவண்ணன் சதாசிவம்
^ permalink raw reply [flat|nested] 10+ messages in thread* Re: [PATCH] phy: qcom: qmp: Add debug prints for register writes
@ 2024-07-31 15:29 ` Manivannan Sadhasivam
0 siblings, 0 replies; 10+ messages in thread
From: Manivannan Sadhasivam @ 2024-07-31 15:29 UTC (permalink / raw)
To: Dmitry Baryshkov
Cc: Vinod Koul, kishon, linux-arm-msm, linux-phy, linux-kernel
On Wed, Jul 31, 2024 at 03:18:31PM +0300, Dmitry Baryshkov wrote:
> On Wed, Jul 31, 2024 at 04:28:46PM GMT, Vinod Koul wrote:
> > On 30-07-24, 15:33, Manivannan Sadhasivam wrote:
> > > These register prints are useful to validate the init sequence against the
> > > Qcom internal documentation and also to share with the Qcom hw engineers to
> > > debug issues related to PHY.
> > >
> > > Signed-off-by: Manivannan Sadhasivam <manivannan.sadhasivam@linaro.org>
> > > ---
> > > drivers/phy/qualcomm/phy-qcom-qmp-common.h | 4 ++++
> > > 1 file changed, 4 insertions(+)
> > >
> > > diff --git a/drivers/phy/qualcomm/phy-qcom-qmp-common.h b/drivers/phy/qualcomm/phy-qcom-qmp-common.h
> > > index 799384210509..e6a6bcfcac28 100644
> > > --- a/drivers/phy/qualcomm/phy-qcom-qmp-common.h
> > > +++ b/drivers/phy/qualcomm/phy-qcom-qmp-common.h
> > > @@ -9,6 +9,7 @@
> > > struct qmp_phy_init_tbl {
> > > unsigned int offset;
> > > unsigned int val;
> > > + char *name;
> > > /*
> > > * mask of lanes for which this register is written
> > > * for cases when second lane needs different values
> > > @@ -20,6 +21,7 @@ struct qmp_phy_init_tbl {
> > > { \
> > > .offset = o, \
> > > .val = v, \
> > > + .name = #o, \
> > > .lane_mask = 0xff, \
> > > }
> > >
> > > @@ -27,6 +29,7 @@ struct qmp_phy_init_tbl {
> > > { \
> > > .offset = o, \
> > > .val = v, \
> > > + .name = #o, \
> > > .lane_mask = l, \
> > > }
> > >
> > > @@ -45,6 +48,7 @@ static inline void qmp_configure_lane(void __iomem *base,
> > > if (!(t->lane_mask & lane_mask))
> > > continue;
> > >
> > > + pr_debug("QMP PHY: Writing: %s --> 0x%02x\n", t->name, t->val);
> >
> > This lgtm, but fails to help when offset _might_ be incorrect, including
> > the offset value as well (not just the name) would be better imo...
>
> Can we please use dev_vdbg instead? Having dev_ part makes sure that we
> can not mismatch PHYs and the sequences. _vdbg is less important, but
> I don't think we want this in the log messages unless absolutely
> required.
>
I'm not a big fan of _vdbg(). IMO, all debug messages are verbose and if
enabled, user intend to see it. So I don't like one more level of
comparmentalization. Also it requires us to feed -DVERBOSE_DEBUG...
But I agree with dev_dbg(). Initially, I thought about it but forgot the fact
that we now have async probe, so there is no guaranteee that these debug prints
will get printed in order.
Sent v3 with dev_dbg(), thanks!
- Mani
--
மணிவண்ணன் சதாசிவம்
--
linux-phy mailing list
linux-phy@lists.infradead.org
https://lists.infradead.org/mailman/listinfo/linux-phy
^ permalink raw reply [flat|nested] 10+ messages in thread