From mboxrd@z Thu Jan 1 00:00:00 1970 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: base64 Subject: [01/31] usb: usbssp: Defined register maps and other useful structures. From: Greg Kroah-Hartman Message-Id: <20180712060944.GA20905@kroah.com> Date: Thu, 12 Jul 2018 08:09:44 +0200 To: Pawel Laszczak Cc: linux-usb@vger.kernel.org, Felipe Balbi , linux-kernel@vger.kernel.org, ltyrala@cadence.com, adouglas@cadence.com List-ID: T24gVGh1LCBKdWwgMTIsIDIwMTggYXQgMDY6NDY6NThBTSArMDEwMCwgUGF3ZWwgTGFzemN6YWsg d3JvdGU6Cj4gSXQgaXMgYSBmaXJzdCBwYXRjaCBpbnRyb2R1Y2UgQ2FkZW5jZSBVU0JTU1AgRFJE Cj4gY29udHJvbGxlci4gVGhpcyBwYXRjaCBpcyByZWxhdGVkIHRvIGRldmljZSBzaWRlLgo+IAo+ IERldmljZSBwYXJ0IG9mIFVTQlNTUCBjb250cm9sbGVyIGJhc2Ugb24gc3RhbmRhcmQKPiBYSENJ IHNwZWNpZmljYXRpb24uCj4gCj4gRmlsZSBkZWZpbmUgbWFjcm9zIHVzZWQgYnllIFVTQlNTUCBj b250cm9sbGVyLAo+IHN0cnVjdHVyZXMgaG9sZGluZyBhbmQgZ3JvdXBpbmcgcmVnaXN0ZXJzLCBh bmQgb3RoZXIKPiBvYmplY3QgdGhhdCBhcmUgdXNlZCBieSBkZXZpY2UgY29udHJvbGxlci4KPiAK PiBSZWdpc3RlciBtYXAgaW5jbHVkZToKPiBzdHJ1Y3QgdXNic3NwX2NhcF9yZWdzIC0gQ2FwYWJp bGl0aWVzIFJlZ2lzdGVyIFNldC4KPiBzdHJ1Y3QgdXNic3NwX29wX3JlZ3MgLSBPcGVyYXRpb25h bCBSZWdpc3RlciBTZXQuCj4gc3RydWN0IHVzYnNzcF9pbnRyX3JlZyAtIEludGVycnVwdGVyIFJl Z2lzdGVyIFNldC4KPiBzdHJ1Y3QgdXNic3NwX3J1bl9yZWdzIC0gUnVudGltZSBSZWdpc3RlciBT ZXQuCj4gCj4gT2JqZWN0IHVzZWQgYnkgaGFyZHdhcmUgaW5jbHVkZXM6Cj4gc3RydWN0IHVzYnNz cF9kb29yYmVsbF9hcnJheSAtIGFycmF5IHVzZWQgZm9yIGFybWluZyBjb21tYW5kIGFuZAo+IAl0 cmFuc2ZlciByaW5ncy4KPiBzdHJ1Y3QgdXNic3NwX3Nsb3RfY3R4IC0gaG9sZHMgaW5mb3JtYXRp b24gcmVsYXRlZCB0byBTbG90IENvbnRleHQuCj4gc3RydWN0IHVzYnNzcF9lcF9jdHggLSBob2xk IGluZm9ybWF0aW9uIHJlbGF0ZWQgdG8gRW5kcG9pbnQgQ29udGV4dC4KPiBzdHJ1Y3QgdXNic3Nw X2lucHV0X2NvbnRyb2xfY3R4IC0gaG9sZCBpbmZvcm1hdGlvbiBhYm91dAo+IAlJbnB1dCBDb250 cm9sIENvbnRleHQuCj4gc3RydWN0IHVzYnNzcF9saW5rX3RyYiAtIGRlZmluZSBsaW5rIFRSQi4K PiBzdHJ1Y3QgdXNic3NwX3RyYW5zZmVyX2V2ZW50IC0gZGVmaW5lIFRyYW5zZmVyIEV2ZW50IFRS Qi4KPiBzdHJ1Y3QgdXNic3NwX2V2ZW50X2NtZCAtIGRlZmluZSBDb21tYW5kIEV2ZW50IFRSQi4K PiBzdHJ1Y3QgdXNic3NwX2dlbmVyaWNfdHJiIC0gZ2VuZXJpYyB1c2VkIFRSQiBvYmplY3QuCj4g Cj4gUGF0Y2ggYWxzbyBhZGQgc29tZSBoaWdoIGxldmVsIG9iamVjdCB0aGF0IGhvbGQgIGluZm9y bWF0aW9uCj4gdXNlZCBpbiBkcml2ZXIuCj4gCj4gU29tZSBvZiB0aGVtIGFyZToKPiBzdHJ1Y3Qg dXNic3NwX3VkYyAtIG1haW4gb2JqZWN0IGluIGRyaXZlciB3aGljaCBpcyBwYXNzZWQKPiAJYXMg cGFyYW1ldGVyIHRvIG1vc3Qgb2YgZnVuY3Rpb24gaW4gZHJpdmVyIGFuZCBhbGxvd3MKPiAJdG8g YWNjZXNzIHRvIGFsbCBvdGhlciBzdHJ1Y3R1cmVzLgo+IHN0cnVjdCB1c2Jzc3BfZXAgLSBob2xk cyBpbmZvcm1hdGlvbiByZWxhdGVkIHRvIFVTQiBlbmRwb2ludC4KPiBzdHJ1Y3QgdXNic3NwX2Nv bW1hbmQgLSBkZXNjcmliZSBjb21tYW5kIHNlbmQgdG8gRXZlbnQgUmluZy4KPiBzdHJ1Y3QgdXNi c3NwX2RldmljZSAtIGhvbGRzIGluZm9ybWF0aW9uIHJlbGF0ZSBkbyBVU0IgZGV2aWNlLgo+IHN0 cnVjdCB1c2Jzc3Bfc2VnbWVudCAtIGhvbGRzIGluZm9ybWF0aW9uIGRlc2NyaWJpbmcgc2VnbWVu dHMgb2YgVFJCcy4KPiBzdHJ1Y3QgdXNic3NwX3RkICAtIGhvbGQgaW5mb3JtYXRpb24gYWJvdXQg VHJhbnNmZXIgRGVzY3JpcHRvci4KPiBzdHJ1Y3QgdXNic3NwX3JpbmcgLSBob2xkcyBpbmZvcm1h dGlvbiByZWxhdGVkIHRvIFRyYW5zZmVyLCBFdmVudCBvcgo+IAlDb21tYW5kIHJpbmcuCj4gc3Ry dWN0IHVzYnNzcF9yZXF1ZXN0IC0gaG9sZHMgaW5mb3JtYXRpb24gcmVsYXRlZCB0byBzaW5nbGUg dHJhbnNmZXIuCj4gCj4gU2lnbmVkLW9mZi1ieTogUGF3ZWwgTGFzemN6YWsgPHBhd2VsbEBjYWRl bmNlLmNvbT4KPiAtLS0KPiAgZHJpdmVycy91c2IvdXNic3NwL2dhZGdldC5oIHwgMTU2NyArKysr KysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKwo+ICAxIGZpbGUgY2hhbmdlZCwgMTU2NyBp bnNlcnRpb25zKCspCj4gIGNyZWF0ZSBtb2RlIDEwMDY0NCBkcml2ZXJzL3VzYi91c2Jzc3AvZ2Fk Z2V0LmgKPiAKPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy91c2IvdXNic3NwL2dhZGdldC5oIGIvZHJp dmVycy91c2IvdXNic3NwL2dhZGdldC5oCj4gbmV3IGZpbGUgbW9kZSAxMDA2NDQKPiBpbmRleCAw MDAwMDAwMDAwMDAuLjQ4NmU4NjgwNjhiNwo+IC0tLSAvZGV2L251bGwKPiArKysgYi9kcml2ZXJz L3VzYi91c2Jzc3AvZ2FkZ2V0LmgKPiBAQCAtMCwwICsxLDE1NjcgQEAKPiArLy8gU1BEWC1MaWNl bnNlLUlkZW50aWZpZXI6IEdQTC0yLjAKPiArLyoKPiArICogVVNCU1NQIGRldmljZSBjb250cm9s bGVyIGRyaXZlcgo+ICsgKgo+ICsgKiBDb3B5cmlnaHQgKEMpIDIwMTggQ2FkZW5jZS4KPiArICoK PiArICogQXV0aG9yOiBQYXdlbCBMYXN6Y3phawo+ICsgKgo+ICsgKiBBIGxvdCBvZiBjb2RlIGJh c2VkIG9uIExpbnV4IFhIQ0kgZHJpdmVyLgo+ICsgKiBPcmlnaW46IENvcHlyaWdodCAoQykgMjAw OCBJbnRlbCBDb3JwLgo+ICsgKi8KPiArCj4gKyNpZm5kZWYgX19MSU5VWF9VU0JTU1BfR0FER0VU X0gKPiArI2RlZmluZSBfX0xJTlVYX1VTQlNTUF9HQURHRVRfSAo+ICsKPiArI2luY2x1ZGUgPGxp bnV4L3VzYi5oPgo+ICsjaW5jbHVkZSA8bGludXgvdGltZXIuaD4KPiArI2luY2x1ZGUgPGxpbnV4 L2tlcm5lbC5oPgo+ICsjaW5jbHVkZSA8bGludXgvaW8tNjQtbm9uYXRvbWljLWxvLWhpLmg+Cj4g KyNpbmNsdWRlIDxsaW51eC91c2IvZ2FkZ2V0Lmg+CgpXaHkgZG9lcyB0aGlzIC5oIGZpbGUgbmVl ZCBhbGwgb2YgdGhlc2U/ICBPbmx5IGluY2x1ZGUgd2hhdCBpcyBuZWVkZWQgdG8KYnVpbGQgdGhp cyBzcGVjaWZpYyBmaWxlIGlmIGF0IGFsbCBwb3NzaWJsZS4KCj4gKwo+ICsvKiBNYXggbnVtYmVy IHNsb3RzIC0gb25seSAxIGlzIGFsbG93ZWQgKi8KPiArI2RlZmluZSBERVZfTUFYX1NMT1RTIDEK PiArCj4gKy8qIG1heCBwb3J0cyBmb3IgVVNCU1NQLURldiAtIG9ubHkgMiBhcmUgYWxsb3dlZCov Cj4gKyNkZWZpbmUgTUFYX1VTQlNTUF9QT1JUUwkyCj4gKwo+ICsjZGVmaW5lIFVTQlNTUF9FUDBf U0VUVVBfU0laRSA1MTIKPiArCj4gKy8qMTYgZm9yIGluIGFuZCAxNiBmb3Igb3V0ICovCgoiLyog MTYuLi4iCgo+ICsjZGVmaW5lIFVTQlNTUF9FTkRQT0lOVFNfTlVNCTMyCgpPZGQgYWxpZ25tZW50 IG9mIGFsbCBvZiB0aGVzZSBkZWZpbmVzLCBlaXRoZXIgbWFrZSB0aGVtIGxpbmUgdXAgb3Igbm90 LAp3aGF0IHlvdSBoYXZlIGlzIGFuIG9kZCBtaXggb2YgdGFicyBhbmQgc3BhY2VzLgoKPiArLyoq Cj4gKyAqIHN0cnVjdCB1c2Jzc3BfY2FwX3JlZ3MgLSBVU0JTU1AgUmVnaXN0ZXJzLgo+ICsgKiBA aGNfY2FwYmFzZToJCWxlbmd0aCBvZiB0aGUgY2FwYWJpbGl0aWVzIHJlZ2lzdGVyIGFuZCBEQyB2 ZXJzaW9uIG51bWJlcgo+ICsgKiBAaGNzX3BhcmFtczE6CUhDU1BBUkFNUzEgLSBTdHJ1Y3R1cmFs IFBhcmFtZXRlcnMgMQo+ICsgKiBAaGNzX3BhcmFtczI6CUhDU1BBUkFNUzIgLSBTdHJ1Y3R1cmFs IFBhcmFtZXRlcnMgMgo+ICsgKiBAaGNzX3BhcmFtczM6CUhDU1BBUkFNUzMgLSBTdHJ1Y3R1cmFs IFBhcmFtZXRlcnMgMwo+ICsgKiBAaGNjX3BhcmFtczoJCUhDQ1BBUkFNUyAtIENhcGFiaWxpdHkg UGFyYW1ldGVycwo+ICsgKiBAZGJfb2ZmOgkJREJPRkYgLSBEb29yYmVsbCBhcnJheSBvZmZzZXQK PiArICogQHJ1bl9yZWdzX29mZjoJUlRTT0ZGIC0gUnVudGltZSByZWdpc3RlciBzcGFjZSBvZmZz ZXQKPiArICogQGhjY19wYXJhbXMyOglIQ0NQQVJBTVMyIENhcGFiaWxpdHkgUGFyYW1ldGVycyAy LAo+ICsgKi8KPiArc3RydWN0IHVzYnNzcF9jYXBfcmVncyB7Cj4gKwlfX2xlMzIJaGNfY2FwYmFz ZTsKPiArCV9fbGUzMgloY3NfcGFyYW1zMTsKPiArCV9fbGUzMgloY3NfcGFyYW1zMjsKPiArCV9f bGUzMgloY3NfcGFyYW1zMzsKPiArCV9fbGUzMgloY2NfcGFyYW1zOwo+ICsJX19sZTMyCWRiX29m ZjsKPiArCV9fbGUzMglydW5fcmVnc19vZmY7Cj4gKwlfX2xlMzIJaGNjX3BhcmFtczI7Cj4gKwkv KiBSZXNlcnZlZCB1cCB0byAoQ0FQTEVOR1RIIC0gMHgxQykgKi8KPiArfTsKCkRvZXMgdGhpcywg YW5kIHlvdXIgb3RoZXIgc3RydWN0dXJlcyB0aGF0IG1hcCB0byBoYXJkd2FyZSwgbmVlZCB0byBi ZQpfX3BhY2tlZD8KCj4gKwo+ICsvKiBSZXNldCBEQyAtIHJlc2V0cyBpbnRlcm5hbCBEQyBzdGF0 ZSBtYWNoaW5lIGFuZCBhbGwgcmVnaXN0ZXJzIChleGNlcHQKPiArICogUENJIGNvbmZpZyByZWdz KS4KPiArICovCj4gKyNkZWZpbmUgQ01EX1JFU0VUCSgxIDw8IDEpCgpGb3IgYWxsIG9mIHRoZXNl LCB0cnkgdXNpbmcgdGhlIEJJVCgpIG1hY3JvLgoKPiArLyogYml0IDIgcmVzZXJ2ZWQgYW5kIHpl cm9lZCAqLwo+ICsvKiB0cnVlOiBwb3J0IGhhcyBhbiBvdmVyLWN1cnJlbnQgY29uZGl0aW9uICov Cj4gKyNkZWZpbmUgUE9SVF9PQwkJCSgxIDw8IDMpCj4gKy8qIHRydWU6IHBvcnQgcmVzZXQgc2ln bmFsaW5nIGFzc2VydGVkICovCj4gKyNkZWZpbmUgUE9SVF9SRVNFVAkJKDEgPDwgNCkKPiArLyog UG9ydCBMaW5rIFN0YXRlIC0gYml0cyA1OjgKPiArICogQSByZWFkIGdpdmVzIHRoZSBjdXJyZW50 IGxpbmsgUE0gc3RhdGUgb2YgdGhlIHBvcnQsCj4gKyAqIGEgd3JpdGUgd2l0aCBMaW5rIFN0YXRl IFdyaXRlIFN0cm9iZSBzZXQgc2V0cyB0aGUgbGluayBzdGF0ZS4KPiArICovCj4gKwo+ICsjZGVm aW5lIFBPUlRfUExTX01BU0sJKDB4ZiA8PCA1KQo+ICsjZGVmaW5lIFhERVZfVTAJCSgweDAgPDwg NSkKCllvdXIgc3BhY2luZyBqdXN0IGRvZXNuJ3QgbWFrZSBtdWNoIHNlbnNlIGF0IGFsbC4gIElz IHRoYXQgY29tbWVudCBmb3IKdGhlIGxpbmUgYWJvdmUsIG9yIGJlbG93PyAgUGxlYXNlIG1ha2Ug dGhlc2UgZWFzaWVyIHRvIHVuZGVyc3RhbmQsIGFzIGl0CmlzLCB0aGV5IGFyZSBub3QuCgo+ICsj ZGVmaW5lIFhERVZfUkVTVU1FCQkoMHhmIDw8IDUpCj4gKwo+ICsvKiB0cnVlOiBwb3J0IGhhcyBw b3dlciAoc2VlIEhDQ19QUEMpICovCj4gKyNkZWZpbmUgUE9SVF9QT1dFUgkoMSA8PCA5KQoKT2ss IHRoYXQgd29ya3MsIGJ1dCB3aHkgbm8gYmxhbmsgbGluZSBhZnRlciB0aGlzPyAgWW91IGRpdmUg cmlnaHQgaW50bwphbm90aGVyIGNvbW1lbnQ6Cgo+ICsvKiBiaXRzIDEwOjEzIGluZGljYXRlIGRl dmljZSBzcGVlZDoKPiArICogMCAtIHVuZGVmaW5lZCBzcGVlZCAtIHBvcnQgaGFzbid0IGJlIGlu aXRpYWxpemVkIGJ5IGEgcmVzZXQgeWV0Cj4gKyAqIDEgLSBmdWxsIHNwZWVkCj4gKyAqIDIgLSBs b3cgc3BlZWQKPiArICogMyAtIGhpZ2ggc3BlZWQKPiArICogNCAtIHN1cGVyIHNwZWVkCj4gKyAq IDUtMTUgcmVzZXJ2ZWQKPiArICovCj4gKyNkZWZpbmUgREVWX1NQRUVEX01BU0sJCSgweGYgPDwg MTApCgpBbmQgdHJ5IHVzaW5nIHRoZSBtdWx0aS1saW5lIGZvcm1hdCB0aGF0IHRoZSByZXN0IG9m IHRoZSBrZXJuZWwgdXNlcwoobm90IG5ldHdvcmtpbmcpLCBpdCdzIGVhc2llciB0byByZWFkLgoK PiArLyogUG9ydCBMaW5rIFN0YXRlIFdyaXRlIFN0cm9iZSAtIHNldCB0aGlzIHdoZW4gY2hhbmdp bmcgbGluayBzdGF0ZSAqLwo+ICsjZGVmaW5lIFBPUlRfTElOS19TVFJPQkUJKDEgPDwgMTYpCgpB Z2FpbiB3aXRoIHRoZSBCSVQoKSB1c2FnZS4KCkp1c3QgY2xlYW4gdXAgdGhlIHdoaXRlc3BhY2Ug dG8gbWFrZSB0aGlzIHdob2xlIGZpbGUgZWFzaWVyIHRvIHJlYWQKcGxlYXNlLCBJJ20gc3RvcHBp bmcgcmV2aWV3aW5nIGhlcmUuCgpPb3BzLCBubywgb25lIGZpbmFsIHRoaW5nOgoKPiArI2RlZmlu ZSB1c2Jzc3BfZGJnKHVzYnNzcF9kYXRhLCBmbXQsIGFyZ3MuLi4pIFwKPiArCWRldl9kYmcodXNi c3NwX2RhdGEtPmRldiwgZm10LCAjIyBhcmdzKQo+ICsKPiArI2RlZmluZSB1c2Jzc3BfZXJyKHVz YnNzcF9kYXRhLCBmbXQsIGFyZ3MuLi4pIFwKPiArCWRldl9lcnIodXNic3NwX2RhdGEtPmRldiwg Zm10LCAjIyBhcmdzKQo+ICsKPiArI2RlZmluZSB1c2Jzc3Bfd2Fybih1c2Jzc3BfZGF0YSwgZm10 LCBhcmdzLi4uKSBcCj4gKwlkZXZfd2Fybih1c2Jzc3BfZGF0YS0+ZGV2LCBmbXQsICMjIGFyZ3Mp Cj4gKwo+ICsjZGVmaW5lIHVzYnNzcF93YXJuX3JhdGVsaW1pdGVkKHVzYnNzcF9kYXRhLCBmbXQs IGFyZ3MuLi4pIFwKPiArCWRldl93YXJuX3JhdGVsaW1pdGVkKHVzYnNzcF9kYXRhLT5kZXYsIGZt dCwgIyMgYXJncykKPiArCj4gKyNkZWZpbmUgdXNic3NwX2luZm8odXNic3NwX2RhdGEsIGZtdCwg YXJncy4uLikgXAo+ICsJZGV2X2luZm8odXNic3NwX2RhdGEtPmRldiwgZm10LCAjIyBhcmdzKQoK QWxsIGRyaXZlcnMgZmVlbCB0aGV5IGFyZSB1bmlxdWUgYW5kIHNwZWNpYWwgbGlrZSBhbGwgb3Ro ZXIgZHJpdmVycywgc28KdGhleSB3YW50IHRvIGNyZWF0ZSB0aGVpciBvd24gZGVidWdnaW5nIG1h Y3Jvcy4gIERvbid0IGRvIGl0LCBqdXN0IHVzZQpkZXZfZGJnKCkgYW5kIGZyaWVuZHMgZGlyZWN0 bHkgcGxlYXNlLiAgSXQgc2F2ZXMgbm8gb25lIGFueSB0aW1lIHRvIHVzZQpzcGVjaWFsIG9uZXMg YXMgdGhlbiBldmVyeW9uZSBoYXMgdG8gZ28gYW5kIGxvb2sgdXAgZXhhY3RseSB3aGF0IHRoZXkK ZG8uCgpEb24ndCBiZSBzcGVjaWFsLCB5b3UgYXJlIGxpa2UgYWxsIG9mIHRoZSByZXN0IG9mIHVz IDopCgp0aGFua3MsCgpncmVnIGstaAotLS0KVG8gdW5zdWJzY3JpYmUgZnJvbSB0aGlzIGxpc3Q6 IHNlbmQgdGhlIGxpbmUgInVuc3Vic2NyaWJlIGxpbnV4LXVzYiIgaW4KdGhlIGJvZHkgb2YgYSBt ZXNzYWdlIHRvIG1ham9yZG9tb0B2Z2VyLmtlcm5lbC5vcmcKTW9yZSBtYWpvcmRvbW8gaW5mbyBh dCAgaHR0cDovL3ZnZXIua2VybmVsLm9yZy9tYWpvcmRvbW8taW5mby5odG1sCg== From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-2.2 required=3.0 tests=HEADER_FROM_DIFFERENT_DOMAINS, MAILING_LIST_MULTI,SPF_PASS,URIBL_BLOCKED,USER_AGENT_MUTT autolearn=ham autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id B2EA5C43A1D for ; Thu, 12 Jul 2018 06:09:50 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by mail.kernel.org (Postfix) with ESMTP id 6963C20C0C for ; Thu, 12 Jul 2018 06:09:50 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 6963C20C0C Authentication-Results: mail.kernel.org; dmarc=none (p=none dis=none) header.from=linuxfoundation.org Authentication-Results: mail.kernel.org; spf=none smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1726860AbeGLGRt (ORCPT ); Thu, 12 Jul 2018 02:17:49 -0400 Received: from mail.linuxfoundation.org ([140.211.169.12]:56812 "EHLO mail.linuxfoundation.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1725995AbeGLGRt (ORCPT ); Thu, 12 Jul 2018 02:17:49 -0400 Received: from localhost (LFbn-1-12247-202.w90-92.abo.wanadoo.fr [90.92.61.202]) by mail.linuxfoundation.org (Postfix) with ESMTPSA id 5FDBDC97; Thu, 12 Jul 2018 06:09:46 +0000 (UTC) Date: Thu, 12 Jul 2018 08:09:44 +0200 From: Greg Kroah-Hartman To: Pawel Laszczak Cc: linux-usb@vger.kernel.org, Felipe Balbi , linux-kernel@vger.kernel.org, ltyrala@cadence.com, adouglas@cadence.com Subject: Re: [PATCH 01/31] usb: usbssp: Defined register maps and other useful structures. Message-ID: <20180712060944.GA20905@kroah.com> References: <1531374448-26532-1-git-send-email-pawell@cadence.com> <1531374448-26532-2-git-send-email-pawell@cadence.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <1531374448-26532-2-git-send-email-pawell@cadence.com> User-Agent: Mutt/1.10.0 (2018-05-17) Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On Thu, Jul 12, 2018 at 06:46:58AM +0100, Pawel Laszczak wrote: > It is a first patch introduce Cadence USBSSP DRD > controller. This patch is related to device side. > > Device part of USBSSP controller base on standard > XHCI specification. > > File define macros used bye USBSSP controller, > structures holding and grouping registers, and other > object that are used by device controller. > > Register map include: > struct usbssp_cap_regs - Capabilities Register Set. > struct usbssp_op_regs - Operational Register Set. > struct usbssp_intr_reg - Interrupter Register Set. > struct usbssp_run_regs - Runtime Register Set. > > Object used by hardware includes: > struct usbssp_doorbell_array - array used for arming command and > transfer rings. > struct usbssp_slot_ctx - holds information related to Slot Context. > struct usbssp_ep_ctx - hold information related to Endpoint Context. > struct usbssp_input_control_ctx - hold information about > Input Control Context. > struct usbssp_link_trb - define link TRB. > struct usbssp_transfer_event - define Transfer Event TRB. > struct usbssp_event_cmd - define Command Event TRB. > struct usbssp_generic_trb - generic used TRB object. > > Patch also add some high level object that hold information > used in driver. > > Some of them are: > struct usbssp_udc - main object in driver which is passed > as parameter to most of function in driver and allows > to access to all other structures. > struct usbssp_ep - holds information related to USB endpoint. > struct usbssp_command - describe command send to Event Ring. > struct usbssp_device - holds information relate do USB device. > struct usbssp_segment - holds information describing segments of TRBs. > struct usbssp_td - hold information about Transfer Descriptor. > struct usbssp_ring - holds information related to Transfer, Event or > Command ring. > struct usbssp_request - holds information related to single transfer. > > Signed-off-by: Pawel Laszczak > --- > drivers/usb/usbssp/gadget.h | 1567 +++++++++++++++++++++++++++++++++++ > 1 file changed, 1567 insertions(+) > create mode 100644 drivers/usb/usbssp/gadget.h > > diff --git a/drivers/usb/usbssp/gadget.h b/drivers/usb/usbssp/gadget.h > new file mode 100644 > index 000000000000..486e868068b7 > --- /dev/null > +++ b/drivers/usb/usbssp/gadget.h > @@ -0,0 +1,1567 @@ > +// SPDX-License-Identifier: GPL-2.0 > +/* > + * USBSSP device controller driver > + * > + * Copyright (C) 2018 Cadence. > + * > + * Author: Pawel Laszczak > + * > + * A lot of code based on Linux XHCI driver. > + * Origin: Copyright (C) 2008 Intel Corp. > + */ > + > +#ifndef __LINUX_USBSSP_GADGET_H > +#define __LINUX_USBSSP_GADGET_H > + > +#include > +#include > +#include > +#include > +#include Why does this .h file need all of these? Only include what is needed to build this specific file if at all possible. > + > +/* Max number slots - only 1 is allowed */ > +#define DEV_MAX_SLOTS 1 > + > +/* max ports for USBSSP-Dev - only 2 are allowed*/ > +#define MAX_USBSSP_PORTS 2 > + > +#define USBSSP_EP0_SETUP_SIZE 512 > + > +/*16 for in and 16 for out */ "/* 16..." > +#define USBSSP_ENDPOINTS_NUM 32 Odd alignment of all of these defines, either make them line up or not, what you have is an odd mix of tabs and spaces. > +/** > + * struct usbssp_cap_regs - USBSSP Registers. > + * @hc_capbase: length of the capabilities register and DC version number > + * @hcs_params1: HCSPARAMS1 - Structural Parameters 1 > + * @hcs_params2: HCSPARAMS2 - Structural Parameters 2 > + * @hcs_params3: HCSPARAMS3 - Structural Parameters 3 > + * @hcc_params: HCCPARAMS - Capability Parameters > + * @db_off: DBOFF - Doorbell array offset > + * @run_regs_off: RTSOFF - Runtime register space offset > + * @hcc_params2: HCCPARAMS2 Capability Parameters 2, > + */ > +struct usbssp_cap_regs { > + __le32 hc_capbase; > + __le32 hcs_params1; > + __le32 hcs_params2; > + __le32 hcs_params3; > + __le32 hcc_params; > + __le32 db_off; > + __le32 run_regs_off; > + __le32 hcc_params2; > + /* Reserved up to (CAPLENGTH - 0x1C) */ > +}; Does this, and your other structures that map to hardware, need to be __packed? > + > +/* Reset DC - resets internal DC state machine and all registers (except > + * PCI config regs). > + */ > +#define CMD_RESET (1 << 1) For all of these, try using the BIT() macro. > +/* bit 2 reserved and zeroed */ > +/* true: port has an over-current condition */ > +#define PORT_OC (1 << 3) > +/* true: port reset signaling asserted */ > +#define PORT_RESET (1 << 4) > +/* Port Link State - bits 5:8 > + * A read gives the current link PM state of the port, > + * a write with Link State Write Strobe set sets the link state. > + */ > + > +#define PORT_PLS_MASK (0xf << 5) > +#define XDEV_U0 (0x0 << 5) Your spacing just doesn't make much sense at all. Is that comment for the line above, or below? Please make these easier to understand, as it is, they are not. > +#define XDEV_RESUME (0xf << 5) > + > +/* true: port has power (see HCC_PPC) */ > +#define PORT_POWER (1 << 9) Ok, that works, but why no blank line after this? You dive right into another comment: > +/* bits 10:13 indicate device speed: > + * 0 - undefined speed - port hasn't be initialized by a reset yet > + * 1 - full speed > + * 2 - low speed > + * 3 - high speed > + * 4 - super speed > + * 5-15 reserved > + */ > +#define DEV_SPEED_MASK (0xf << 10) And try using the multi-line format that the rest of the kernel uses (not networking), it's easier to read. > +/* Port Link State Write Strobe - set this when changing link state */ > +#define PORT_LINK_STROBE (1 << 16) Again with the BIT() usage. Just clean up the whitespace to make this whole file easier to read please, I'm stopping reviewing here. Oops, no, one final thing: > +#define usbssp_dbg(usbssp_data, fmt, args...) \ > + dev_dbg(usbssp_data->dev, fmt, ## args) > + > +#define usbssp_err(usbssp_data, fmt, args...) \ > + dev_err(usbssp_data->dev, fmt, ## args) > + > +#define usbssp_warn(usbssp_data, fmt, args...) \ > + dev_warn(usbssp_data->dev, fmt, ## args) > + > +#define usbssp_warn_ratelimited(usbssp_data, fmt, args...) \ > + dev_warn_ratelimited(usbssp_data->dev, fmt, ## args) > + > +#define usbssp_info(usbssp_data, fmt, args...) \ > + dev_info(usbssp_data->dev, fmt, ## args) All drivers feel they are unique and special like all other drivers, so they want to create their own debugging macros. Don't do it, just use dev_dbg() and friends directly please. It saves no one any time to use special ones as then everyone has to go and look up exactly what they do. Don't be special, you are like all of the rest of us :) thanks, greg k-h