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
next prev parent 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: linkBe 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.