All of lore.kernel.org
 help / color / mirror / Atom feed
From: David Laight <David.Laight@ACULAB.COM>
To: "'Faiz Abbas'" <faiz_abbas@ti.com>, "kishon@ti.com" <kishon@ti.com>
Cc: "bhelgaas@google.com" <bhelgaas@google.com>,
	"linux-omap@vger.kernel.org" <linux-omap@vger.kernel.org>,
	"linux-pci@vger.kernel.org" <linux-pci@vger.kernel.org>,
	"linux-kernel@vger.kernel.org" <linux-kernel@vger.kernel.org>
Subject: RE: [PATCH v2] dwc: dra7xx: Print link state to console for debug
Date: Thu, 19 Oct 2017 13:26:06 +0000	[thread overview]
Message-ID: <063D6719AE5E284EB5DD2968C1650D6DD009C62B@AcuExch.aculab.com> (raw)
In-Reply-To: <9378c5c9-381d-4c40-3290-f7e3720792ba@ti.com>

From: Faiz Abbas
> Sent: 19 October 2017 14:09
> On Thursday 19 October 2017 06:13 PM, Faiz Abbas wrote:
> > Enable support for printing the LTSSM link state for debugging PCI
> > when link is down.
> >
> > Signed-off-by: Faiz Abbas <faiz_abbas@ti.com>
> > ---
> > v2:
> >  1. Changed dev_err() to dev_dbg()
> >  2. Changed static char array to static const char * const
> >  3. format changes
> >
> >  drivers/pci/dwc/pci-dra7xx.c | 48 ++++++++++++++++++++++++++++++++++++++++++++
> >  1 file changed, 48 insertions(+)
> >
> > diff --git a/drivers/pci/dwc/pci-dra7xx.c b/drivers/pci/dwc/pci-dra7xx.c
> > index 34427a6..0e70e77 100644
> > --- a/drivers/pci/dwc/pci-dra7xx.c
> > +++ b/drivers/pci/dwc/pci-dra7xx.c
> > @@ -98,6 +98,45 @@ struct dra7xx_pcie_of_data {
> >
> >  #define to_dra7xx_pcie(x)	dev_get_drvdata((x)->dev)
> >
> > +static const char * const state[] = {
> > +	"DETECT_QUIET",
...
> > +	"RCVRY_EQ3"
> > +};
> > +
> >  static inline u32 dra7xx_pcie_readl(struct dra7xx_pcie *pcie, u32 offset)
> >  {
> >  	return readl(pcie->base + offset);
> > @@ -118,6 +157,15 @@ static int dra7xx_pcie_link_up(struct dw_pcie *pci)
> >  {
> >  	struct dra7xx_pcie *dra7xx = to_dra7xx_pcie(pci);
> >  	u32 reg = dra7xx_pcie_readl(dra7xx, PCIECTRL_DRA7XX_CONF_PHY_CS);
> > +	u32 cmd_reg;
> > +	u32 ltssm_state;
> > +
> > +	if (!(reg & LINK_UP)) {
> > +		cmd_reg = dra7xx_pcie_readl(dra7xx,
> > +					    PCIECTRL_DRA7XX_CONF_DEVICE_CMD);
> > +		ltssm_state = (cmd_reg & GENMASK(7, 2)) >> 2;
> > +		dev_dbg(pci->dev, "Link state:%s\n", state[ltssm_state]);

Hmmm... GENMASK leaves by hunting header files...
Why not (cmd_reg >> 2) & 63 and explicitly define state[64]
to guarantee that you never print anything worse than a NULL
pointer.

> > +	}
> >
> >  	return !!(reg & LINK_UP);
> >  }
> >
> 
> I missed David's comment in v1. Will submit a new version. Please ignore.

I've a 'neat' trick for generating strings that match constants.
You can get the compiler to do all the work for you:
(Assuming I've typed it correctly)

#define LTSSM_DEFS(x) \
  x(DETECT_QUIET) \
  x(DETECT_ACT) \
(continue for all the names)

Define an enum with the named constants:
#define X(name) LTSSM_STATE_##name,
enum (LTSSM_DEFS(X) LTSSM_STATE_SIZE=64);
#undef X

Array of strings:
#define X(name) [LTSSM_STATE_##name] = #name
static const char * const state_names[LTSSM_STATE_SIZE] = { LTSSM_DEFS(X) };
#undef X

	David

WARNING: multiple messages have this Message-ID (diff)
From: David Laight <David.Laight@ACULAB.COM>
To: 'Faiz Abbas' <faiz_abbas@ti.com>, "kishon@ti.com" <kishon@ti.com>
Cc: "bhelgaas@google.com" <bhelgaas@google.com>,
	"linux-omap@vger.kernel.org" <linux-omap@vger.kernel.org>,
	"linux-pci@vger.kernel.org" <linux-pci@vger.kernel.org>,
	"linux-kernel@vger.kernel.org" <linux-kernel@vger.kernel.org>
Subject: RE: [PATCH v2] dwc: dra7xx: Print link state to console for debug
Date: Thu, 19 Oct 2017 13:26:06 +0000	[thread overview]
Message-ID: <063D6719AE5E284EB5DD2968C1650D6DD009C62B@AcuExch.aculab.com> (raw)
In-Reply-To: <9378c5c9-381d-4c40-3290-f7e3720792ba@ti.com>

RnJvbTogRmFpeiBBYmJhcw0KPiBTZW50OiAxOSBPY3RvYmVyIDIwMTcgMTQ6MDkNCj4gT24gVGh1
cnNkYXkgMTkgT2N0b2JlciAyMDE3IDA2OjEzIFBNLCBGYWl6IEFiYmFzIHdyb3RlOg0KPiA+IEVu
YWJsZSBzdXBwb3J0IGZvciBwcmludGluZyB0aGUgTFRTU00gbGluayBzdGF0ZSBmb3IgZGVidWdn
aW5nIFBDSQ0KPiA+IHdoZW4gbGluayBpcyBkb3duLg0KPiA+DQo+ID4gU2lnbmVkLW9mZi1ieTog
RmFpeiBBYmJhcyA8ZmFpel9hYmJhc0B0aS5jb20+DQo+ID4gLS0tDQo+ID4gdjI6DQo+ID4gIDEu
IENoYW5nZWQgZGV2X2VycigpIHRvIGRldl9kYmcoKQ0KPiA+ICAyLiBDaGFuZ2VkIHN0YXRpYyBj
aGFyIGFycmF5IHRvIHN0YXRpYyBjb25zdCBjaGFyICogY29uc3QNCj4gPiAgMy4gZm9ybWF0IGNo
YW5nZXMNCj4gPg0KPiA+ICBkcml2ZXJzL3BjaS9kd2MvcGNpLWRyYTd4eC5jIHwgNDggKysrKysr
KysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysNCj4gPiAgMSBmaWxlIGNoYW5n
ZWQsIDQ4IGluc2VydGlvbnMoKykNCj4gPg0KPiA+IGRpZmYgLS1naXQgYS9kcml2ZXJzL3BjaS9k
d2MvcGNpLWRyYTd4eC5jIGIvZHJpdmVycy9wY2kvZHdjL3BjaS1kcmE3eHguYw0KPiA+IGluZGV4
IDM0NDI3YTYuLjBlNzBlNzcgMTAwNjQ0DQo+ID4gLS0tIGEvZHJpdmVycy9wY2kvZHdjL3BjaS1k
cmE3eHguYw0KPiA+ICsrKyBiL2RyaXZlcnMvcGNpL2R3Yy9wY2ktZHJhN3h4LmMNCj4gPiBAQCAt
OTgsNiArOTgsNDUgQEAgc3RydWN0IGRyYTd4eF9wY2llX29mX2RhdGEgew0KPiA+DQo+ID4gICNk
ZWZpbmUgdG9fZHJhN3h4X3BjaWUoeCkJZGV2X2dldF9kcnZkYXRhKCh4KS0+ZGV2KQ0KPiA+DQo+
ID4gK3N0YXRpYyBjb25zdCBjaGFyICogY29uc3Qgc3RhdGVbXSA9IHsNCj4gPiArCSJERVRFQ1Rf
UVVJRVQiLA0KLi4uDQo+ID4gKwkiUkNWUllfRVEzIg0KPiA+ICt9Ow0KPiA+ICsNCj4gPiAgc3Rh
dGljIGlubGluZSB1MzIgZHJhN3h4X3BjaWVfcmVhZGwoc3RydWN0IGRyYTd4eF9wY2llICpwY2ll
LCB1MzIgb2Zmc2V0KQ0KPiA+ICB7DQo+ID4gIAlyZXR1cm4gcmVhZGwocGNpZS0+YmFzZSArIG9m
ZnNldCk7DQo+ID4gQEAgLTExOCw2ICsxNTcsMTUgQEAgc3RhdGljIGludCBkcmE3eHhfcGNpZV9s
aW5rX3VwKHN0cnVjdCBkd19wY2llICpwY2kpDQo+ID4gIHsNCj4gPiAgCXN0cnVjdCBkcmE3eHhf
cGNpZSAqZHJhN3h4ID0gdG9fZHJhN3h4X3BjaWUocGNpKTsNCj4gPiAgCXUzMiByZWcgPSBkcmE3
eHhfcGNpZV9yZWFkbChkcmE3eHgsIFBDSUVDVFJMX0RSQTdYWF9DT05GX1BIWV9DUyk7DQo+ID4g
Kwl1MzIgY21kX3JlZzsNCj4gPiArCXUzMiBsdHNzbV9zdGF0ZTsNCj4gPiArDQo+ID4gKwlpZiAo
IShyZWcgJiBMSU5LX1VQKSkgew0KPiA+ICsJCWNtZF9yZWcgPSBkcmE3eHhfcGNpZV9yZWFkbChk
cmE3eHgsDQo+ID4gKwkJCQkJICAgIFBDSUVDVFJMX0RSQTdYWF9DT05GX0RFVklDRV9DTUQpOw0K
PiA+ICsJCWx0c3NtX3N0YXRlID0gKGNtZF9yZWcgJiBHRU5NQVNLKDcsIDIpKSA+PiAyOw0KPiA+
ICsJCWRldl9kYmcocGNpLT5kZXYsICJMaW5rIHN0YXRlOiVzXG4iLCBzdGF0ZVtsdHNzbV9zdGF0
ZV0pOw0KDQpIbW1tLi4uIEdFTk1BU0sgbGVhdmVzIGJ5IGh1bnRpbmcgaGVhZGVyIGZpbGVzLi4u
DQpXaHkgbm90IChjbWRfcmVnID4+IDIpICYgNjMgYW5kIGV4cGxpY2l0bHkgZGVmaW5lIHN0YXRl
WzY0XQ0KdG8gZ3VhcmFudGVlIHRoYXQgeW91IG5ldmVyIHByaW50IGFueXRoaW5nIHdvcnNlIHRo
YW4gYSBOVUxMDQpwb2ludGVyLg0KDQo+ID4gKwl9DQo+ID4NCj4gPiAgCXJldHVybiAhIShyZWcg
JiBMSU5LX1VQKTsNCj4gPiAgfQ0KPiA+DQo+IA0KPiBJIG1pc3NlZCBEYXZpZCdzIGNvbW1lbnQg
aW4gdjEuIFdpbGwgc3VibWl0IGEgbmV3IHZlcnNpb24uIFBsZWFzZSBpZ25vcmUuDQoNCkkndmUg
YSAnbmVhdCcgdHJpY2sgZm9yIGdlbmVyYXRpbmcgc3RyaW5ncyB0aGF0IG1hdGNoIGNvbnN0YW50
cy4NCllvdSBjYW4gZ2V0IHRoZSBjb21waWxlciB0byBkbyBhbGwgdGhlIHdvcmsgZm9yIHlvdToN
CihBc3N1bWluZyBJJ3ZlIHR5cGVkIGl0IGNvcnJlY3RseSkNCg0KI2RlZmluZSBMVFNTTV9ERUZT
KHgpIFwNCiAgeChERVRFQ1RfUVVJRVQpIFwNCiAgeChERVRFQ1RfQUNUKSBcDQooY29udGludWUg
Zm9yIGFsbCB0aGUgbmFtZXMpDQoNCkRlZmluZSBhbiBlbnVtIHdpdGggdGhlIG5hbWVkIGNvbnN0
YW50czoNCiNkZWZpbmUgWChuYW1lKSBMVFNTTV9TVEFURV8jI25hbWUsDQplbnVtIChMVFNTTV9E
RUZTKFgpIExUU1NNX1NUQVRFX1NJWkU9NjQpOw0KI3VuZGVmIFgNCg0KQXJyYXkgb2Ygc3RyaW5n
czoNCiNkZWZpbmUgWChuYW1lKSBbTFRTU01fU1RBVEVfIyNuYW1lXSA9ICNuYW1lDQpzdGF0aWMg
Y29uc3QgY2hhciAqIGNvbnN0IHN0YXRlX25hbWVzW0xUU1NNX1NUQVRFX1NJWkVdID0geyBMVFNT
TV9ERUZTKFgpIH07DQojdW5kZWYgWA0KDQoJRGF2aWQNCg0K

  reply	other threads:[~2017-10-19 13:26 UTC|newest]

Thread overview: 19+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2017-10-19 12:43 [PATCH v2] dwc: dra7xx: Print link state to console for debug Faiz Abbas
2017-10-19 12:43 ` Faiz Abbas
2017-10-19 13:08 ` Faiz Abbas
2017-10-19 13:08   ` Faiz Abbas
2017-10-19 13:26   ` David Laight [this message]
2017-10-19 13:26     ` David Laight
2017-10-26  7:59     ` Faiz Abbas
2017-10-30  8:48       ` Faiz Abbas
2017-11-06  2:56         ` Faiz Abbas
2017-10-20 23:09 ` Bjorn Helgaas
2017-10-23 10:29   ` Faiz Abbas
2017-10-23 10:29     ` Faiz Abbas
2017-10-23 14:04     ` Bjorn Helgaas
2017-10-24  6:18       ` Kishon Vijay Abraham I
2017-10-24  6:18         ` Kishon Vijay Abraham I
2017-10-24 19:59 ` Bjorn Helgaas
2017-10-25  8:21   ` Faiz Abbas
2017-10-25  8:21     ` Faiz Abbas
2017-10-25 13:23     ` Bjorn Helgaas

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=063D6719AE5E284EB5DD2968C1650D6DD009C62B@AcuExch.aculab.com \
    --to=david.laight@aculab.com \
    --cc=bhelgaas@google.com \
    --cc=faiz_abbas@ti.com \
    --cc=kishon@ti.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-omap@vger.kernel.org \
    --cc=linux-pci@vger.kernel.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
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.