From mboxrd@z Thu Jan 1 00:00:00 1970 From: "Tan, Jui Nee" Subject: RE: [PATCH v6 1/3] x86/platform/p2sb: New Primary to Sideband bridge support driver for Intel SOC's Date: Mon, 18 Jul 2016 03:35:18 +0000 Message-ID: <0158A29DB680F54A88142ED28D55B1D00826E8AC@PGSMSX107.gar.corp.intel.com> References: <1468483919-31258-1-git-send-email-jui.nee.tan@intel.com> <1468483919-31258-2-git-send-email-jui.nee.tan@intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mga14.intel.com ([192.55.52.115]:55725 "EHLO mga14.intel.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751380AbcGRDf0 (ORCPT ); Sun, 17 Jul 2016 23:35:26 -0400 In-Reply-To: Content-Language: en-US Sender: linux-gpio-owner@vger.kernel.org List-Id: linux-gpio@vger.kernel.org To: "Gortmaker, Paul (Wind River)" , "andriy.shevchenko@linux.intel.com" Cc: "mika.westerberg@linux.intel.com" , "heikki.krogerus@linux.intel.com" , "tglx@linutronix.de" , "mingo@redhat.com" , "H. Peter Anvin" , X86 ML , "ptyser@xes-inc.com" , Lee Jones , Linus Walleij , "linux-gpio@vger.kernel.org" , LKML , "Yong, Jonathan" , "Yu, Ong Hock" , "Voon, Weifeng" , "Wan Mohamad, Wan Ahmad Zainie" DQoNCj4gLS0tLS1PcmlnaW5hbCBNZXNzYWdlLS0tLS0NCj4gRnJvbTogcGF1bC5nb3J0bWFrZXJA Z21haWwuY29tIFttYWlsdG86cGF1bC5nb3J0bWFrZXJAZ21haWwuY29tXSBPbg0KPiBCZWhhbGYg T2YgUGF1bCBHb3J0bWFrZXINCj4gU2VudDogRnJpZGF5LCBKdWx5IDE1LCAyMDE2IDg6MDEgQU0N Cj4gVG86IFRhbiwgSnVpIE5lZSA8anVpLm5lZS50YW5AaW50ZWwuY29tPg0KPiBDYzogbWlrYS53 ZXN0ZXJiZXJnQGxpbnV4LmludGVsLmNvbTsgaGVpa2tpLmtyb2dlcnVzQGxpbnV4LmludGVsLmNv bTsNCj4gYW5kcml5LnNoZXZjaGVua29AbGludXguaW50ZWwuY29tOyB0Z2x4QGxpbnV0cm9uaXgu ZGU7DQo+IG1pbmdvQHJlZGhhdC5jb207IEguIFBldGVyIEFudmluIDxocGFAenl0b3IuY29tPjsg WDg2IE1MDQo+IDx4ODZAa2VybmVsLm9yZz47IHB0eXNlckB4ZXMtaW5jLmNvbTsgTGVlIEpvbmVz IDxsZWUuam9uZXNAbGluYXJvLm9yZz47DQo+IExpbnVzIFdhbGxlaWogPGxpbnVzLndhbGxlaWpA bGluYXJvLm9yZz47IGxpbnV4LWdwaW9Admdlci5rZXJuZWwub3JnOyBMS01MDQo+IDxsaW51eC1r ZXJuZWxAdmdlci5rZXJuZWwub3JnPjsgWW9uZywgSm9uYXRoYW4NCj4gPGpvbmF0aGFuLnlvbmdA aW50ZWwuY29tPjsgWXUsIE9uZyBIb2NrIDxvbmcuaG9jay55dUBpbnRlbC5jb20+OyBWb29uLA0K PiBXZWlmZW5nIDx3ZWlmZW5nLnZvb25AaW50ZWwuY29tPjsgV2FuIE1vaGFtYWQsIFdhbiBBaG1h ZCBaYWluaWUNCj4gPHdhbi5haG1hZC56YWluaWUud2FuLm1vaGFtYWRAaW50ZWwuY29tPg0KPiBT dWJqZWN0OiBSZTogW1BBVENIIHY2IDEvM10geDg2L3BsYXRmb3JtL3Ayc2I6IE5ldyBQcmltYXJ5 IHRvIFNpZGViYW5kDQo+IGJyaWRnZSBzdXBwb3J0IGRyaXZlciBmb3IgSW50ZWwgU09DJ3MNCj4g DQo+IE9uIFRodSwgSnVsIDE0LCAyMDE2IGF0IDQ6MTEgQU0sIFRhbiBKdWkgTmVlIDxqdWkubmVl LnRhbkBpbnRlbC5jb20+IHdyb3RlOg0KPiA+IEZyb206IEFuZHkgU2hldmNoZW5rbyA8YW5kcml5 LnNoZXZjaGVua29AbGludXguaW50ZWwuY29tPg0KPiA+DQo+ID4gVGhlcmUgaXMgYWxyZWFkeSBv bmUgYW5kIGF0IGxlYXN0IG9uZSBtb3JlIHVzZXIgY29taW5nIHdoaWNoIHJlcXVpcmUNCj4gPiBh biBhY2Nlc3MgdG8gUHJpbWFyeSB0byBTaWRlYmFuZCBicmlkZ2UgKFAyU0IpIGluIG9yZGVyIHRv IGdldCBJTyBvcg0KPiA+IE1NSU8gYmFyIGhpZGRlbiBieSBCSU9TLg0KPiA+IENyZWF0ZSBhIGRy aXZlciB0byBhY2Nlc3MgUDJTQiBmb3IgeDg2IGRldmljZXMuDQo+ID4NCj4gPiBTaWduZWQtb2Zm LWJ5OiBZb25nLCBKb25hdGhhbiA8am9uYXRoYW4ueW9uZ0BpbnRlbC5jb20+DQo+ID4gU2lnbmVk LW9mZi1ieTogQW5keSBTaGV2Y2hlbmtvIDxhbmRyaXkuc2hldmNoZW5rb0BsaW51eC5pbnRlbC5j b20+DQo+ID4gLS0tDQo+ID4gQ2hhbmdlcyBpbiBWNjoNCj4gPiAgICAgICAgIC0gTm8gY2hhbmdl DQo+ID4NCj4gPiBDaGFuZ2VzIGluIFY1Og0KPiA+ICAgICAgICAgLSBObyBjaGFuZ2UNCj4gPg0K PiA+IENoYW5nZXMgaW4gVjQ6DQo+ID4gICAgICAgICAtIE1vdmUgS2NvbmZpZyBvcHRpb24gQ09O RklHX1g4Nl9JTlRFTF9OT05fQUNQSSBmcm9tDQo+ID4gICAgICAgICAgIFtQQVRDSCAyLzNdIHg4 Ni9wbGF0Zm9ybS9wMnNiOiBOZXcgUHJpbWFyeSB0byBTaWRlYmFuZCBicmlkZ2UNCj4gc3VwcG9y dCBkcml2ZXIgZm9yIEludGVsIFNPQydzDQo+ID4gICAgICAgICAgIHRvDQo+ID4gICAgICAgICAg IFtQQVRDSCAzLzNdIG1mZDogbHBjX2ljaDogQWRkIHN1cHBvcnQgZm9yIEludGVsIEFwb2xsbyBM YWtlIEdQSU8NCj4gcGluY3RybCBpbiBub24tQUNQSSBzeXN0ZW0NCj4gPiAgICAgICAgICAgc2lu Y2UgdGhlIGNvbmZpZyBpcyB1c2VkIGluIGxhdHRlciBwYXRjaC4NCj4gPg0KPiA+IENoYW5nZXMg aW4gVjM6DQo+ID4gICAgICAgICAtIE5vIGNoYW5nZQ0KPiA+DQo+ID4gQ2hhbmdlcyBpbiBWMjoN Cj4gPiAgICAgICAgIC0gQWRkIG5ldyBjb25maWcgb3B0aW9uIENPTkZJR19YODZfSU5URUxfTk9O X0FDUEkgYW5kICJzZWxlY3QNCj4gUElOQ1RSTCINCj4gPiAgICAgICAgICAgdG8gZml4IGtidWls ZGJvdCBlcnJvcg0KPiA+DQo+ID4gIGFyY2gveDg2L0tjb25maWcgICAgICAgICAgICAgICAgIHwg IDQgKysNCj4gPiAgYXJjaC94ODYvaW5jbHVkZS9hc20vcDJzYi5oICAgICAgfCAyNyArKysrKysr KysrKw0KPiA+ICBhcmNoL3g4Ni9wbGF0Zm9ybS9pbnRlbC9NYWtlZmlsZSB8ICAxICsNCj4gPiAg YXJjaC94ODYvcGxhdGZvcm0vaW50ZWwvcDJzYi5jICAgfCA5OQ0KPiArKysrKysrKysrKysrKysr KysrKysrKysrKysrKysrKysrKysrKysrDQo+ID4gIDQgZmlsZXMgY2hhbmdlZCwgMTMxIGluc2Vy dGlvbnMoKykNCj4gPiAgY3JlYXRlIG1vZGUgMTAwNjQ0IGFyY2gveDg2L2luY2x1ZGUvYXNtL3Ay c2IuaCAgY3JlYXRlIG1vZGUgMTAwNjQ0DQo+ID4gYXJjaC94ODYvcGxhdGZvcm0vaW50ZWwvcDJz Yi5jDQo+ID4NCj4gPiBkaWZmIC0tZ2l0IGEvYXJjaC94ODYvS2NvbmZpZyBiL2FyY2gveDg2L0tj b25maWcgaW5kZXgNCj4gPiBkOWE5NGRhLi5kMzA1ZDgxIDEwMDY0NA0KPiA+IC0tLSBhL2FyY2gv eDg2L0tjb25maWcNCj4gPiArKysgYi9hcmNoL3g4Ni9LY29uZmlnDQo+ID4gQEAgLTYwNCw2ICs2 MDQsMTAgQEAgY29uZmlnIElPU0ZfTUJJX0RFQlVHDQo+ID4NCj4gPiAgICAgICAgICAgSWYgeW91 IGRvbid0IHJlcXVpcmUgdGhlIG9wdGlvbiBvciBhcmUgaW4gZG91YnQsIHNheSBOLg0KPiA+DQo+ ID4gK2NvbmZpZyBQMlNCDQo+ID4gKyAgICAgICB0cmlzdGF0ZQ0KPiANCj4gT0ssIHRoaXMgaXMg dHJpc3RhdGUsIGJ1dCB0aGVuLi4uLg0KPiANClAyU0IgaXMgdHJpc3RhdGUgYXMgY3VycmVudGx5 IGl0IGlzIG9ubHkgdXNlZCBieSBMUENfSUNIIHRoYXQgaXMgdHJpc3RhdGUgdG9vLg0KLi4uDQpj b25maWcgTFBDX0lDSA0KCXRyaXN0YXRlICJJbnRlbCBJQ0ggTFBDIg0KCWRlcGVuZHMgb24gWDg2 ICYmIFBDSQ0KCXNlbGVjdCBNRkRfQ09SRQ0KCXNlbGVjdCBQMlNCDQouLi4NCj4gPiArICAgICAg IGRlcGVuZHMgb24gUENJDQo+ID4gKw0KPiA+ICBjb25maWcgWDg2X1JEQzMyMVgNCj4gPiAgICAg ICAgIGJvb2wgIlJEQyBSLTMyMXggU29DIg0KPiA+ICAgICAgICAgZGVwZW5kcyBvbiBYODZfMzIN Cj4gPiBkaWZmIC0tZ2l0IGEvYXJjaC94ODYvaW5jbHVkZS9hc20vcDJzYi5oIGIvYXJjaC94ODYv aW5jbHVkZS9hc20vcDJzYi5oDQo+ID4gbmV3IGZpbGUgbW9kZSAxMDA2NDQgaW5kZXggMDAwMDAw MC4uNjg2ZTA3Yg0KPiA+IC0tLSAvZGV2L251bGwNCj4gPiArKysgYi9hcmNoL3g4Ni9pbmNsdWRl L2FzbS9wMnNiLmgNCj4gPiBAQCAtMCwwICsxLDI3IEBADQo+ID4gKy8qDQo+ID4gKyAqIFByaW1h cnkgdG8gU2lkZWJhbmQgYnJpZGdlIChQMlNCKSBhY2Nlc3Mgc3VwcG9ydCAgKi8NCj4gPiArDQo+ ID4gKyNpZm5kZWYgUDJTQl9TWU1TX0gNCj4gPiArI2RlZmluZSBQMlNCX1NZTVNfSA0KPiA+ICsN Cj4gPiArI2luY2x1ZGUgPGxpbnV4L2lvcG9ydC5oPg0KPiA+ICsjaW5jbHVkZSA8bGludXgvcGNp Lmg+DQo+ID4gKw0KPiA+ICsjaWYgSVNfRU5BQkxFRChDT05GSUdfUDJTQikNCj4gPiArDQo+ID4g K2ludCBwMnNiX2JhcihzdHJ1Y3QgcGNpX2RldiAqcGRldiwgdW5zaWduZWQgaW50IGRldmZuLA0K PiA+ICsgICAgICAgc3RydWN0IHJlc291cmNlICpyZXMpOw0KPiA+ICsNCj4gPiArI2Vsc2UgLyog Q09ORklHX1AyU0IgaXMgbm90IHNldCAqLw0KPiA+ICsNCj4gPiArc3RhdGljIGlubGluZQ0KPiA+ ICtpbnQgcDJzYl9iYXIoc3RydWN0IHBjaV9kZXYgKnBkZXYsIHVuc2lnbmVkIGludCBkZXZmbiwN Cj4gPiArICAgICAgIHN0cnVjdCByZXNvdXJjZSAqcmVzKQ0KPiA+ICt7DQo+ID4gKyAgICAgICBy ZXR1cm4gLUVOT0RFVjsNCj4gPiArfQ0KPiA+ICsNCj4gPiArI2VuZGlmIC8qIENPTkZJR19QMlNC ICovDQo+ID4gKw0KPiA+ICsjZW5kaWYgLyogUDJTQl9TWU1TX0ggKi8NCj4gPiBkaWZmIC0tZ2l0 IGEvYXJjaC94ODYvcGxhdGZvcm0vaW50ZWwvTWFrZWZpbGUNCj4gPiBiL2FyY2gveDg2L3BsYXRm b3JtL2ludGVsL01ha2VmaWxlDQo+ID4gaW5kZXggYjg3ODAzMi4uZGJmOWYxMCAxMDA2NDQNCj4g PiAtLS0gYS9hcmNoL3g4Ni9wbGF0Zm9ybS9pbnRlbC9NYWtlZmlsZQ0KPiA+ICsrKyBiL2FyY2gv eDg2L3BsYXRmb3JtL2ludGVsL01ha2VmaWxlDQo+ID4gQEAgLTEgKzEsMiBAQA0KPiA+ICBvYmot JChDT05GSUdfSU9TRl9NQkkpICAgICAgICAgICAgICAgICArPSBpb3NmX21iaS5vDQo+ID4gK29i ai0kKENPTkZJR19QMlNCKSAgICAgICAgICAgICAgICAgICAgICs9IHAyc2Iubw0KPiA+IGRpZmYg LS1naXQgYS9hcmNoL3g4Ni9wbGF0Zm9ybS9pbnRlbC9wMnNiLmMNCj4gPiBiL2FyY2gveDg2L3Bs YXRmb3JtL2ludGVsL3Ayc2IuYyBuZXcgZmlsZSBtb2RlIDEwMDY0NCBpbmRleA0KPiA+IDAwMDAw MDAuLjhiZTQ3YTQNCj4gPiAtLS0gL2Rldi9udWxsDQo+ID4gKysrIGIvYXJjaC94ODYvcGxhdGZv cm0vaW50ZWwvcDJzYi5jDQo+ID4gQEAgLTAsMCArMSw5OSBAQA0KPiA+ICsvKg0KPiA+ICsgKiBQ cmltYXJ5IHRvIFNpZGViYW5kIGJyaWRnZSAoUDJTQikgZHJpdmVyDQo+ID4gKyAqDQo+ID4gKyAq IENvcHlyaWdodCAoYykgMjAxNiwgSW50ZWwgQ29ycG9yYXRpb24uDQo+ID4gKyAqDQo+ID4gKyAq IEF1dGhvcnM6IEFuZHkgU2hldmNoZW5rbyA8YW5kcml5LnNoZXZjaGVua29AbGludXguaW50ZWwu Y29tPg0KPiA+ICsgKiAgICAgICAgICAgICAgICAgICAgIEpvbmF0aGFuIFlvbmcgPGpvbmF0aGFu LnlvbmdAaW50ZWwuY29tPg0KPiA+ICsgKg0KPiA+ICsgKiBUaGlzIHByb2dyYW0gaXMgZnJlZSBz b2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yDQo+ID4gK21vZGlmeSBpdA0K PiA+ICsgKiB1bmRlciB0aGUgdGVybXMgYW5kIGNvbmRpdGlvbnMgb2YgdGhlIEdOVSBHZW5lcmFs IFB1YmxpYyBMaWNlbnNlLA0KPiA+ICsgKiB2ZXJzaW9uIDIsIGFzIHB1Ymxpc2hlZCBieSB0aGUg RnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLg0KPiA+ICsgKg0KPiA+ICsgKiBUaGlzIHByb2dyYW0g aXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgaXQgd2lsbCBiZSB1c2VmdWwsIGJ1dA0KPiA+ICtX SVRIT1VUDQo+ID4gKyAqIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdh cnJhbnR5IG9mDQo+IE1FUkNIQU5UQUJJTElUWQ0KPiA+ICtvcg0KPiA+ICsgKiBGSVRORVNTIEZP UiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUgR05VIEdlbmVyYWwgUHVibGljDQo+ID4g K0xpY2Vuc2UgZm9yDQo+ID4gKyAqIG1vcmUgZGV0YWlscy4NCj4gPiArICoNCj4gPiArICovDQo+ ID4gKw0KPiA+ICsjaW5jbHVkZSA8bGludXgvaW9wb3J0Lmg+DQo+ID4gKyNpbmNsdWRlIDxsaW51 eC9tb2R1bGUuaD4NCj4gDQo+IC4uLmFuZCBtb2R1bGUuaCBpcyBpbmNsdWRlZCwgYnV0IHlldC4u Lg0KPiANCj4gPiArI2luY2x1ZGUgPGxpbnV4L3BjaS5oPg0KPiA+ICsjaW5jbHVkZSA8bGludXgv c3BpbmxvY2suaD4NCj4gPiArDQo+ID4gKyNpbmNsdWRlIDxhc20vcDJzYi5oPg0KPiA+ICsNCj4g PiArI2RlZmluZSBTQlJFR19CQVIgICAgICAweDEwDQo+ID4gKyNkZWZpbmUgU0JSRUdfSElERSAg ICAgMHhlMQ0KPiA+ICsNCj4gPiArc3RhdGljIERFRklORV9TUElOTE9DSyhwMnNiX3NwaW5sb2Nr KTsNCj4gPiArDQo+ID4gKy8qDQo+ID4gKyAqIHAyc2JfYmFyIC0gR2V0IFByaW1hcnkgdG8gU2lk ZWJhbmQgYnJpZGdlIChQMlNCKSBCQVINCj4gPiArICogQHBkZXY6ICAgICAgUENJIGRldmljZSB0 byBnZXQgUENJIGJ1cyB0byBjb21tdW5pY2F0ZSB3aXRoDQo+ID4gKyAqIEBkZXZmbjogICAgIFBD SSBkZXZpY2UgYW5kIGZ1bmN0aW9uIHRvIGNvbW11bmljYXRlIHdpdGgNCj4gPiArICogQHJlczog ICAgICAgcmVzb3VyY2VzIHRvIGJlIGZpbGxlZCBpbg0KPiA+ICsgKg0KPiA+ICsgKiBUaGUgQklP UyBwcmV2ZW50cyB0aGUgUDJTQiBkZXZpY2UgZnJvbSBiZWluZyBlbnVtZXJhdGVkIGJ5IHRoZSBQ Q0kNCj4gPiArICogc3Vic3lzdGVtLCBzbyB3ZSBuZWVkIHRvIHVuaGlkZSBhbmQgaGlkZSBpdCBi YWNrIHRvIGxvb2t1cCB0aGUgUDJTQg0KPiBCQVIuDQo+ID4gKyAqDQo+ID4gKyAqIExvY2tpbmcg aXMgaGFuZGxlZCBieSBzcGlubG9jayAtIGNhbm5vdCBzbGVlcC4NCj4gPiArICoNCj4gPiArICog UmV0dXJuOg0KPiA+ICsgKiAwIG9uIHN1Y2Nlc3Mgb3IgYXBwcm9wcmlhdGUgZXJybm8gdmFsdWUg b24gZXJyb3IuDQo+ID4gKyAqLw0KPiA+ICtpbnQgcDJzYl9iYXIoc3RydWN0IHBjaV9kZXYgKnBk ZXYsIHVuc2lnbmVkIGludCBkZXZmbiwNCj4gPiArICAgICAgIHN0cnVjdCByZXNvdXJjZSAqcmVz KQ0KPiA+ICt7DQo+ID4gKyAgICAgICB1MzIgYmFzZV9hZGRyOw0KPiA+ICsgICAgICAgdTY0IGJh c2U2NF9hZGRyOw0KPiA+ICsgICAgICAgdW5zaWduZWQgbG9uZyBmbGFnczsNCj4gPiArDQo+ID4g KyAgICAgICBpZiAoIXJlcykNCj4gPiArICAgICAgICAgICAgICAgcmV0dXJuIC1FSU5WQUw7DQo+ ID4gKw0KPiA+ICsgICAgICAgc3Bpbl9sb2NrKCZwMnNiX3NwaW5sb2NrKTsNCj4gPiArDQo+ID4g KyAgICAgICAvKiBVbmhpZGUgdGhlIFAyU0IgZGV2aWNlICovDQo+ID4gKyAgICAgICBwY2lfYnVz X3dyaXRlX2NvbmZpZ19ieXRlKHBkZXYtPmJ1cywgZGV2Zm4sIFNCUkVHX0hJREUsIDB4MDApOw0K PiA+ICsNCj4gPiArICAgICAgIC8qIENoZWNrIGlmIGRldmljZSBwcmVzZW50ICovDQo+ID4gKyAg ICAgICBwY2lfYnVzX3JlYWRfY29uZmlnX2R3b3JkKHBkZXYtPmJ1cywgZGV2Zm4sIDAsICZiYXNl X2FkZHIpOw0KPiA+ICsgICAgICAgaWYgKGJhc2VfYWRkciA9PSAweGZmZmZmZmZmIHx8IGJhc2Vf YWRkciA9PSAweDAwMDAwMDAwKSB7DQo+ID4gKyAgICAgICAgICAgICAgIHNwaW5fdW5sb2NrKCZw MnNiX3NwaW5sb2NrKTsNCj4gPiArICAgICAgICAgICAgICAgZGV2X3dhcm4oJnBkZXYtPmRldiwg IlAyU0IgZGV2aWNlIGFjY2VzcyBkaXNhYmxlZCBieQ0KPiBCSU9TP1xuIik7DQo+ID4gKyAgICAg ICAgICAgICAgIHJldHVybiAtRU5PREVWOw0KPiA+ICsgICAgICAgfQ0KPiA+ICsNCj4gPiArICAg ICAgIC8qIEdldCBJTyBvciBNTUlPIEJBUiAqLw0KPiA+ICsgICAgICAgcGNpX2J1c19yZWFkX2Nv bmZpZ19kd29yZChwZGV2LT5idXMsIGRldmZuLCBTQlJFR19CQVIsDQo+ICZiYXNlX2FkZHIpOw0K PiA+ICsgICAgICAgaWYgKChiYXNlX2FkZHIgJiBQQ0lfQkFTRV9BRERSRVNTX1NQQUNFKSA9PQ0K PiBQQ0lfQkFTRV9BRERSRVNTX1NQQUNFX0lPKSB7DQo+ID4gKyAgICAgICAgICAgICAgIGZsYWdz ID0gSU9SRVNPVVJDRV9JTzsNCj4gPiArICAgICAgICAgICAgICAgYmFzZTY0X2FkZHIgPSBiYXNl X2FkZHIgJiBQQ0lfQkFTRV9BRERSRVNTX0lPX01BU0s7DQo+ID4gKyAgICAgICB9IGVsc2Ugew0K PiA+ICsgICAgICAgICAgICAgICBmbGFncyA9IElPUkVTT1VSQ0VfTUVNOw0KPiA+ICsgICAgICAg ICAgICAgICBiYXNlNjRfYWRkciA9IGJhc2VfYWRkciAmIFBDSV9CQVNFX0FERFJFU1NfTUVNX01B U0s7DQo+ID4gKyAgICAgICAgICAgICAgIGlmIChiYXNlX2FkZHIgJiBQQ0lfQkFTRV9BRERSRVNT X01FTV9UWVBFXzY0KSB7DQo+ID4gKyAgICAgICAgICAgICAgICAgICAgICAgZmxhZ3MgfD0gSU9S RVNPVVJDRV9NRU1fNjQ7DQo+ID4gKyAgICAgICAgICAgICAgICAgICAgICAgcGNpX2J1c19yZWFk X2NvbmZpZ19kd29yZChwZGV2LT5idXMsIGRldmZuLA0KPiA+ICsgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgU0JSRUdfQkFSICsgNCwgJmJhc2VfYWRkcik7DQo+ID4gKyAgICAgICAgICAg ICAgICAgICAgICAgYmFzZTY0X2FkZHIgfD0gKHU2NCliYXNlX2FkZHIgPDwgMzI7DQo+ID4gKyAg ICAgICAgICAgICAgIH0NCj4gPiArICAgICAgIH0NCj4gPiArDQo+ID4gKyAgICAgICAvKiBIaWRl IHRoZSBQMlNCIGRldmljZSAqLw0KPiA+ICsgICAgICAgcGNpX2J1c193cml0ZV9jb25maWdfYnl0 ZShwZGV2LT5idXMsIGRldmZuLCBTQlJFR19ISURFLCAweDAxKTsNCj4gPiArDQo+ID4gKyAgICAg ICBzcGluX3VubG9jaygmcDJzYl9zcGlubG9jayk7DQo+ID4gKw0KPiA+ICsgICAgICAgLyogVXNl ciBwcm92aWRlcyBwcmVmaWxsZWQgcmVzb3VyY2VzICovDQo+ID4gKyAgICAgICByZXMtPnN0YXJ0 ICs9IChyZXNvdXJjZV9zaXplX3QpYmFzZTY0X2FkZHI7DQo+ID4gKyAgICAgICByZXMtPmVuZCAr PSAocmVzb3VyY2Vfc2l6ZV90KWJhc2U2NF9hZGRyOw0KPiA+ICsgICAgICAgcmVzLT5mbGFncyA9 IGZsYWdzOw0KPiA+ICsNCj4gPiArICAgICAgIHJldHVybiAwOw0KPiA+ICt9DQo+ID4gK0VYUE9S VF9TWU1CT0wocDJzYl9iYXIpOw0KPiA+ICsNCj4gPiArTU9EVUxFX0xJQ0VOU0UoIkdQTCIpOw0K PiANCj4gLi4udGhlIGFib3ZlIGlzIHRoZSBvbmx5IG1vZHVsYXIgInVzZSIgdGhhdCBJIGNhbiBm aW5kLiAgU28gaXMgdGhlDQo+IHRyaXN0YXRlIGJvZ3VzPyAgIFdpdGhvdXQgYSBtb2R1bGVfaW5p dCBhbmQgYSBtb2R1bGVfZXhpdCBJIGFtDQo+IGNvbmZ1c2VkLi4uLg0KPiANCj4gSSBqdXN0IGZp bmlzaGVkIGFuIGF1ZGl0IG9mIGFyY2gveDg2IGZvciBib2d1cyB1c2VzIG9mIG1vZHVsZS5oIHNv IEknZCBsaWtlIHRvDQo+IGVuc3VyZSB3ZSBkb24ndCBhZGQgbW9yZS4NCj4gDQo+IFRoYW5rcywN Cj4gUGF1bC4NCj4gLS0NCj4gDQpQMlNCIGNvdWxkIGJlICJib29sIiBpbnN0ZWFkIG9mIHRyaXN0 YXRlLiANCk15IGNvbmNlcm4gaXMgaWYgTFBDX0lDSCBidWlsdCBhcyBtb2R1bGUgYW5kIG5vdCBs b2FkZWQsIFAyU0IgbWlnaHQNCmNvbnN1bWUgbWVtb3J5IHdoZW4gUDJTQiBpcyBub3QgYmVpbmcg dXNlZC4NCldoYXQgZG8geW91IHRoaW5rPyBJZiB0aGF0J3Mgb2sgZm9yIHlvdSwgbXkgbmV4dCBw YXRjaCB3aWxsIGJlIHNvbWV0aGluZyBsaWtlDQp0aGlzOg0KLi4uDQpjb25maWcgUDJTQg0KCWJv b2wNCglkZXBlbmRzIG9uIFBDSQ0KLi4uDQpJbiBwMnNiLmMsIG1vZHVsZS5oIGhlYWRlciBmaWxl IHdpbGwgYmUgcmVtb3ZlZCBhcyB3ZWxsLg0KSGkgQW5keSwgcGxlYXNlIHByb3ZpZGUgeW91ciBj b21tZW50cyBhbmQvb3IgY29uY2VybnMgaWYgYW55LiBUaGFua3MuDQo+ID4gLS0NCj4gPiAxLjku MQ0KPiA+DQo= From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1751799AbcGRDfa (ORCPT ); Sun, 17 Jul 2016 23:35:30 -0400 Received: from mga14.intel.com ([192.55.52.115]:55725 "EHLO mga14.intel.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751380AbcGRDf0 (ORCPT ); Sun, 17 Jul 2016 23:35:26 -0400 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.28,382,1464678000"; d="scan'208";a="1018741295" From: "Tan, Jui Nee" To: "Gortmaker, Paul (Wind River)" , "andriy.shevchenko@linux.intel.com" CC: "mika.westerberg@linux.intel.com" , "heikki.krogerus@linux.intel.com" , "tglx@linutronix.de" , "mingo@redhat.com" , "H. Peter Anvin" , X86 ML , "ptyser@xes-inc.com" , Lee Jones , Linus Walleij , "linux-gpio@vger.kernel.org" , LKML , "Yong, Jonathan" , "Yu, Ong Hock" , "Voon, Weifeng" , "Wan Mohamad, Wan Ahmad Zainie" Subject: RE: [PATCH v6 1/3] x86/platform/p2sb: New Primary to Sideband bridge support driver for Intel SOC's Thread-Topic: [PATCH v6 1/3] x86/platform/p2sb: New Primary to Sideband bridge support driver for Intel SOC's Thread-Index: AQHR3ad5+xYKcWB/M0C96d5YMVIB/6AYFoSAgAVim+A= Date: Mon, 18 Jul 2016 03:35:18 +0000 Message-ID: <0158A29DB680F54A88142ED28D55B1D00826E8AC@PGSMSX107.gar.corp.intel.com> References: <1468483919-31258-1-git-send-email-jui.nee.tan@intel.com> <1468483919-31258-2-git-send-email-jui.nee.tan@intel.com> In-Reply-To: Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: x-titus-metadata-40: eyJDYXRlZ29yeUxhYmVscyI6IiIsIk1ldGFkYXRhIjp7Im5zIjoiaHR0cDpcL1wvd3d3LnRpdHVzLmNvbVwvbnNcL0ludGVsMyIsImlkIjoiMTllYjAyYmYtNmFlMy00NDUwLTg4N2YtZjkyYmYzZTM4MTAxIiwicHJvcHMiOlt7Im4iOiJDVFBDbGFzc2lmaWNhdGlvbiIsInZhbHMiOlt7InZhbHVlIjoiQ1RQX0lDIn1dfV19LCJTdWJqZWN0TGFiZWxzIjpbXSwiVE1DVmVyc2lvbiI6IjE1LjkuNi42IiwiVHJ1c3RlZExhYmVsSGFzaCI6IkZPdVh3OGtCZExEZTdXT2g0ZTg4ZEdCWHZMV0pTWlNQTXFvcnNMZTZuRVE9In0= x-ctpclassification: CTP_IC x-originating-ip: [172.30.20.205] Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Transfer-Encoding: 8bit X-MIME-Autoconverted: from base64 to 8bit by mail.home.local id u6I3ZZ4U006605 > -----Original Message----- > From: paul.gortmaker@gmail.com [mailto:paul.gortmaker@gmail.com] On > Behalf Of Paul Gortmaker > Sent: Friday, July 15, 2016 8:01 AM > To: Tan, Jui Nee > Cc: mika.westerberg@linux.intel.com; heikki.krogerus@linux.intel.com; > andriy.shevchenko@linux.intel.com; tglx@linutronix.de; > mingo@redhat.com; H. Peter Anvin ; X86 ML > ; ptyser@xes-inc.com; Lee Jones ; > Linus Walleij ; linux-gpio@vger.kernel.org; LKML > ; Yong, Jonathan > ; Yu, Ong Hock ; Voon, > Weifeng ; Wan Mohamad, Wan Ahmad Zainie > > Subject: Re: [PATCH v6 1/3] x86/platform/p2sb: New Primary to Sideband > bridge support driver for Intel SOC's > > On Thu, Jul 14, 2016 at 4:11 AM, Tan Jui Nee wrote: > > From: Andy Shevchenko > > > > There is already one and at least one more user coming which require > > an access to Primary to Sideband bridge (P2SB) in order to get IO or > > MMIO bar hidden by BIOS. > > Create a driver to access P2SB for x86 devices. > > > > Signed-off-by: Yong, Jonathan > > Signed-off-by: Andy Shevchenko > > --- > > Changes in V6: > > - No change > > > > Changes in V5: > > - No change > > > > Changes in V4: > > - Move Kconfig option CONFIG_X86_INTEL_NON_ACPI from > > [PATCH 2/3] x86/platform/p2sb: New Primary to Sideband bridge > support driver for Intel SOC's > > to > > [PATCH 3/3] mfd: lpc_ich: Add support for Intel Apollo Lake GPIO > pinctrl in non-ACPI system > > since the config is used in latter patch. > > > > Changes in V3: > > - No change > > > > Changes in V2: > > - Add new config option CONFIG_X86_INTEL_NON_ACPI and "select > PINCTRL" > > to fix kbuildbot error > > > > arch/x86/Kconfig | 4 ++ > > arch/x86/include/asm/p2sb.h | 27 +++++++++++ > > arch/x86/platform/intel/Makefile | 1 + > > arch/x86/platform/intel/p2sb.c | 99 > ++++++++++++++++++++++++++++++++++++++++ > > 4 files changed, 131 insertions(+) > > create mode 100644 arch/x86/include/asm/p2sb.h create mode 100644 > > arch/x86/platform/intel/p2sb.c > > > > diff --git a/arch/x86/Kconfig b/arch/x86/Kconfig index > > d9a94da..d305d81 100644 > > --- a/arch/x86/Kconfig > > +++ b/arch/x86/Kconfig > > @@ -604,6 +604,10 @@ config IOSF_MBI_DEBUG > > > > If you don't require the option or are in doubt, say N. > > > > +config P2SB > > + tristate > > OK, this is tristate, but then.... > P2SB is tristate as currently it is only used by LPC_ICH that is tristate too. ... config LPC_ICH tristate "Intel ICH LPC" depends on X86 && PCI select MFD_CORE select P2SB ... > > + depends on PCI > > + > > config X86_RDC321X > > bool "RDC R-321x SoC" > > depends on X86_32 > > diff --git a/arch/x86/include/asm/p2sb.h b/arch/x86/include/asm/p2sb.h > > new file mode 100644 index 0000000..686e07b > > --- /dev/null > > +++ b/arch/x86/include/asm/p2sb.h > > @@ -0,0 +1,27 @@ > > +/* > > + * Primary to Sideband bridge (P2SB) access support */ > > + > > +#ifndef P2SB_SYMS_H > > +#define P2SB_SYMS_H > > + > > +#include > > +#include > > + > > +#if IS_ENABLED(CONFIG_P2SB) > > + > > +int p2sb_bar(struct pci_dev *pdev, unsigned int devfn, > > + struct resource *res); > > + > > +#else /* CONFIG_P2SB is not set */ > > + > > +static inline > > +int p2sb_bar(struct pci_dev *pdev, unsigned int devfn, > > + struct resource *res) > > +{ > > + return -ENODEV; > > +} > > + > > +#endif /* CONFIG_P2SB */ > > + > > +#endif /* P2SB_SYMS_H */ > > diff --git a/arch/x86/platform/intel/Makefile > > b/arch/x86/platform/intel/Makefile > > index b878032..dbf9f10 100644 > > --- a/arch/x86/platform/intel/Makefile > > +++ b/arch/x86/platform/intel/Makefile > > @@ -1 +1,2 @@ > > obj-$(CONFIG_IOSF_MBI) += iosf_mbi.o > > +obj-$(CONFIG_P2SB) += p2sb.o > > diff --git a/arch/x86/platform/intel/p2sb.c > > b/arch/x86/platform/intel/p2sb.c new file mode 100644 index > > 0000000..8be47a4 > > --- /dev/null > > +++ b/arch/x86/platform/intel/p2sb.c > > @@ -0,0 +1,99 @@ > > +/* > > + * Primary to Sideband bridge (P2SB) driver > > + * > > + * Copyright (c) 2016, Intel Corporation. > > + * > > + * Authors: Andy Shevchenko > > + * Jonathan Yong > > + * > > + * This program is free software; you can redistribute it and/or > > +modify it > > + * under the terms and conditions of the GNU General Public License, > > + * version 2, as published by the Free Software Foundation. > > + * > > + * This program is distributed in the hope it will be useful, but > > +WITHOUT > > + * ANY WARRANTY; without even the implied warranty of > MERCHANTABILITY > > +or > > + * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public > > +License for > > + * more details. > > + * > > + */ > > + > > +#include > > +#include > > ...and module.h is included, but yet... > > > +#include > > +#include > > + > > +#include > > + > > +#define SBREG_BAR 0x10 > > +#define SBREG_HIDE 0xe1 > > + > > +static DEFINE_SPINLOCK(p2sb_spinlock); > > + > > +/* > > + * p2sb_bar - Get Primary to Sideband bridge (P2SB) BAR > > + * @pdev: PCI device to get PCI bus to communicate with > > + * @devfn: PCI device and function to communicate with > > + * @res: resources to be filled in > > + * > > + * The BIOS prevents the P2SB device from being enumerated by the PCI > > + * subsystem, so we need to unhide and hide it back to lookup the P2SB > BAR. > > + * > > + * Locking is handled by spinlock - cannot sleep. > > + * > > + * Return: > > + * 0 on success or appropriate errno value on error. > > + */ > > +int p2sb_bar(struct pci_dev *pdev, unsigned int devfn, > > + struct resource *res) > > +{ > > + u32 base_addr; > > + u64 base64_addr; > > + unsigned long flags; > > + > > + if (!res) > > + return -EINVAL; > > + > > + spin_lock(&p2sb_spinlock); > > + > > + /* Unhide the P2SB device */ > > + pci_bus_write_config_byte(pdev->bus, devfn, SBREG_HIDE, 0x00); > > + > > + /* Check if device present */ > > + pci_bus_read_config_dword(pdev->bus, devfn, 0, &base_addr); > > + if (base_addr == 0xffffffff || base_addr == 0x00000000) { > > + spin_unlock(&p2sb_spinlock); > > + dev_warn(&pdev->dev, "P2SB device access disabled by > BIOS?\n"); > > + return -ENODEV; > > + } > > + > > + /* Get IO or MMIO BAR */ > > + pci_bus_read_config_dword(pdev->bus, devfn, SBREG_BAR, > &base_addr); > > + if ((base_addr & PCI_BASE_ADDRESS_SPACE) == > PCI_BASE_ADDRESS_SPACE_IO) { > > + flags = IORESOURCE_IO; > > + base64_addr = base_addr & PCI_BASE_ADDRESS_IO_MASK; > > + } else { > > + flags = IORESOURCE_MEM; > > + base64_addr = base_addr & PCI_BASE_ADDRESS_MEM_MASK; > > + if (base_addr & PCI_BASE_ADDRESS_MEM_TYPE_64) { > > + flags |= IORESOURCE_MEM_64; > > + pci_bus_read_config_dword(pdev->bus, devfn, > > + SBREG_BAR + 4, &base_addr); > > + base64_addr |= (u64)base_addr << 32; > > + } > > + } > > + > > + /* Hide the P2SB device */ > > + pci_bus_write_config_byte(pdev->bus, devfn, SBREG_HIDE, 0x01); > > + > > + spin_unlock(&p2sb_spinlock); > > + > > + /* User provides prefilled resources */ > > + res->start += (resource_size_t)base64_addr; > > + res->end += (resource_size_t)base64_addr; > > + res->flags = flags; > > + > > + return 0; > > +} > > +EXPORT_SYMBOL(p2sb_bar); > > + > > +MODULE_LICENSE("GPL"); > > ...the above is the only modular "use" that I can find. So is the > tristate bogus? Without a module_init and a module_exit I am > confused.... > > I just finished an audit of arch/x86 for bogus uses of module.h so I'd like to > ensure we don't add more. > > Thanks, > Paul. > -- > P2SB could be "bool" instead of tristate. My concern is if LPC_ICH built as module and not loaded, P2SB might consume memory when P2SB is not being used. What do you think? If that's ok for you, my next patch will be something like this: ... config P2SB bool depends on PCI ... In p2sb.c, module.h header file will be removed as well. Hi Andy, please provide your comments and/or concerns if any. Thanks. > > -- > > 1.9.1 > >