From mboxrd@z Thu Jan 1 00:00:00 1970 From: Lee Jones Subject: Re: [RESEND v2 07/10] gpio: stmpe: rework registers access Date: Wed, 10 Aug 2016 09:29:54 +0100 Message-ID: <20160810082954.GM1581@dell> References: <1470814755-19447-1-git-send-email-patrice.chotard@st.com> <1470814755-19447-8-git-send-email-patrice.chotard@st.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Content-Disposition: inline In-Reply-To: <1470814755-19447-8-git-send-email-patrice.chotard@st.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: "linux-arm-kernel" Errors-To: linux-arm-kernel-bounces+linux-arm-kernel=m.gmane.org@lists.infradead.org To: patrice.chotard@st.com Cc: gnurou@gmail.com, amelie.delaunay@st.com, vireshk@kernel.org, linus.walleij@linaro.org, linux-gpio@vger.kernel.org, thierry.reding@gmail.com, kernel@pengutronix.de, dinguyen@opensource.altera.com, shawnguo@kernel.org, shiraz.linux.kernel@gmail.com, linux-arm-kernel@lists.infradead.org List-Id: linux-gpio@vger.kernel.org T24gV2VkLCAxMCBBdWcgMjAxNiwgcGF0cmljZS5jaG90YXJkQHN0LmNvbSB3cm90ZToKCj4gRnJv bTogUGF0cmljZSBDaG90YXJkIDxwYXRyaWNlLmNob3RhcmRAc3QuY29tPgo+IAo+IFRoaXMgdXBk YXRlIGFsbG93cyB0byB1c2UgcmVnaXN0ZXJzIG1hcCBhcyBmb2xsb3dpbmcgOgo+IHJlZ3NbcmVn X2luZGV4ICsgb2Zmc2V0XSBpbnN0ZWFkIG9mCj4gcmVnc1tyZWdfaW5kZXhdICsgb2Zmc2V0Cj4g Cj4gVGhpcyBtYWtlcyBjb2RlIGNsZWFyZXIgYW5kIHdpbGwgZmFjaWxpdGF0ZSB0aGUgYWRkaXRp b24gb2YgU1RNUEUxNjAwCj4gb24gd2hpY2ggTFNCIGFuZCBNU0IgcmVnaXN0ZXJzIGFyZSByZXNw ZWN0aXZlbHkgbG9jYXRlZCBhdCBhZGRyIGFuZCBhZGRyICsgMS4KPiBEZXNwaXRlIGZvciBhbGwg b3RoZXJzIFNUTVBFIHZhcmlhbnQsIExTQiBhbmQgTVNCIHJlZ2lzdGVycyBhcmUgcmVzcGVjdGl2 ZWx5Cj4gbG9jYXRlZCBpbiByZXZlcnNlIG9yZGVyIGF0IGFkZHIgKyAxIGFuZCBhZGRyLgo+IAo+ IEZvciB2YXJpYW50IHdoaWNoIGhhdmUgMyByZWdpc3RlcnMncyBiYW5rLCB3ZSB1c2UgTFNCLENT QiBhbmQgTVNCIGluZGV4ZXMKPiB3aGljaCBjb250YWlucyByZXNwZWN0aXZlbHkgTFNCIChvciBM T1cpLCBDU0IgKG9yIE1JRCkgYW5kIE1TQiAob3IgSElHSCkKPiByZWdpc3RlciBhZGRyZXNzZXMg KFNUTVBFMTgwMS9TVE1QRTI0eHgpLgo+IEZvciB2YXJpYW50IHdoaWNoIGhhdmUgMiByZWdpc3Rl cnMncyBiYW5rLCB3ZSB1c2UgTFNCIGFuZCBDU0IgaW5kZXhlcyBvbmx5Lgo+IEluIHRoaXMgY2Fz ZSB0aGUgQ1NCIGluZGV4IGNvbnRhaW5zIHRoZSBNU0IgcmVncyBhZGRyZXNzIChTVE1QRSAxNjAx KS4KPiAKPiBTaWduZWQtb2ZmLWJ5OiBQYXRyaWNlIENob3RhcmQgPHBhdHJpY2UuY2hvdGFyZEBz dC5jb20+Cj4gUmV2aWV3ZWQtYnk6IExpbnVzIFdhbGxlaWogPGxpbnVzLndhbGxlaWpAbGluYXJv Lm9yZz4KPiAtLS0KPiAgZHJpdmVycy9ncGlvL2dwaW8tc3RtcGUuYyB8IDQ4ICsrKysrKysrKysr KysrKysrKysrKysrKysrLS0tLS0tLS0tLS0tLS0tLS0tLS0tCj4gIDEgZmlsZSBjaGFuZ2VkLCAy NyBpbnNlcnRpb25zKCspLCAyMSBkZWxldGlvbnMoLSkKCkFwcGxpZWQsIHRoYW5rcy4KCj4gZGlm ZiAtLWdpdCBhL2RyaXZlcnMvZ3Bpby9ncGlvLXN0bXBlLmMgYi9kcml2ZXJzL2dwaW8vZ3Bpby1z dG1wZS5jCj4gaW5kZXggMjc4OWJkYy4uNmQ2ZDc2YSAxMDA2NDQKPiAtLS0gYS9kcml2ZXJzL2dw aW8vZ3Bpby1zdG1wZS5jCj4gKysrIGIvZHJpdmVycy9ncGlvL2dwaW8tc3RtcGUuYwo+IEBAIC0y MSw2ICsyMSw4IEBACj4gICAqLwo+ICBlbnVtIHsgUkVHX1JFLCBSRUdfRkUsIFJFR19JRSB9Owo+ ICAKPiArZW51bSB7IExTQiwgQ1NCLCBNU0IgfTsKPiArCj4gICNkZWZpbmUgQ0FDSEVfTlJfUkVH UwkzCj4gIC8qIE5vIHZhcmlhbnQgaGFzIG1vcmUgdGhhbiAyNCBHUElPcyAqLwo+ICAjZGVmaW5l IENBQ0hFX05SX0JBTktTCSgyNCAvIDgpCj4gQEAgLTQwLDcgKzQyLDcgQEAgc3RhdGljIGludCBz dG1wZV9ncGlvX2dldChzdHJ1Y3QgZ3Bpb19jaGlwICpjaGlwLCB1bnNpZ25lZCBvZmZzZXQpCj4g IHsKPiAgCXN0cnVjdCBzdG1wZV9ncGlvICpzdG1wZV9ncGlvID0gZ3Bpb2NoaXBfZ2V0X2RhdGEo Y2hpcCk7Cj4gIAlzdHJ1Y3Qgc3RtcGUgKnN0bXBlID0gc3RtcGVfZ3Bpby0+c3RtcGU7Cj4gLQl1 OCByZWcgPSBzdG1wZS0+cmVnc1tTVE1QRV9JRFhfR1BNUl9MU0JdIC0gKG9mZnNldCAvIDgpOwo+ ICsJdTggcmVnID0gc3RtcGUtPnJlZ3NbU1RNUEVfSURYX0dQTVJfTFNCICsgKG9mZnNldCAvIDgp XTsKPiAgCXU4IG1hc2sgPSAxIDw8IChvZmZzZXQgJSA4KTsKPiAgCWludCByZXQ7Cj4gIAo+IEBA IC01Niw3ICs1OCw3IEBAIHN0YXRpYyB2b2lkIHN0bXBlX2dwaW9fc2V0KHN0cnVjdCBncGlvX2No aXAgKmNoaXAsIHVuc2lnbmVkIG9mZnNldCwgaW50IHZhbCkKPiAgCXN0cnVjdCBzdG1wZV9ncGlv ICpzdG1wZV9ncGlvID0gZ3Bpb2NoaXBfZ2V0X2RhdGEoY2hpcCk7Cj4gIAlzdHJ1Y3Qgc3RtcGUg KnN0bXBlID0gc3RtcGVfZ3Bpby0+c3RtcGU7Cj4gIAlpbnQgd2hpY2ggPSB2YWwgPyBTVE1QRV9J RFhfR1BTUl9MU0IgOiBTVE1QRV9JRFhfR1BDUl9MU0I7Cj4gLQl1OCByZWcgPSBzdG1wZS0+cmVn c1t3aGljaF0gLSAob2Zmc2V0IC8gOCk7Cj4gKwl1OCByZWcgPSBzdG1wZS0+cmVnc1t3aGljaCAr IChvZmZzZXQgLyA4KV07Cj4gIAl1OCBtYXNrID0gMSA8PCAob2Zmc2V0ICUgOCk7Cj4gIAo+ICAJ LyoKPiBAQCAtNzQsNyArNzYsNyBAQCBzdGF0aWMgaW50IHN0bXBlX2dwaW9fZGlyZWN0aW9uX291 dHB1dChzdHJ1Y3QgZ3Bpb19jaGlwICpjaGlwLAo+ICB7Cj4gIAlzdHJ1Y3Qgc3RtcGVfZ3BpbyAq c3RtcGVfZ3BpbyA9IGdwaW9jaGlwX2dldF9kYXRhKGNoaXApOwo+ICAJc3RydWN0IHN0bXBlICpz dG1wZSA9IHN0bXBlX2dwaW8tPnN0bXBlOwo+IC0JdTggcmVnID0gc3RtcGUtPnJlZ3NbU1RNUEVf SURYX0dQRFJfTFNCXSAtIChvZmZzZXQgLyA4KTsKPiArCXU4IHJlZyA9IHN0bXBlLT5yZWdzW1NU TVBFX0lEWF9HUERSX0xTQiArIChvZmZzZXQgLyA4KV07Cj4gIAl1OCBtYXNrID0gMSA8PCAob2Zm c2V0ICUgOCk7Cj4gIAo+ICAJc3RtcGVfZ3Bpb19zZXQoY2hpcCwgb2Zmc2V0LCB2YWwpOwo+IEBA IC04Nyw3ICs4OSw3IEBAIHN0YXRpYyBpbnQgc3RtcGVfZ3Bpb19kaXJlY3Rpb25faW5wdXQoc3Ry dWN0IGdwaW9fY2hpcCAqY2hpcCwKPiAgewo+ICAJc3RydWN0IHN0bXBlX2dwaW8gKnN0bXBlX2dw aW8gPSBncGlvY2hpcF9nZXRfZGF0YShjaGlwKTsKPiAgCXN0cnVjdCBzdG1wZSAqc3RtcGUgPSBz dG1wZV9ncGlvLT5zdG1wZTsKPiAtCXU4IHJlZyA9IHN0bXBlLT5yZWdzW1NUTVBFX0lEWF9HUERS X0xTQl0gLSAob2Zmc2V0IC8gOCk7Cj4gKwl1OCByZWcgPSBzdG1wZS0+cmVnc1tTVE1QRV9JRFhf R1BEUl9MU0IgKyAob2Zmc2V0IC8gOCldOwo+ICAJdTggbWFzayA9IDEgPDwgKG9mZnNldCAlIDgp Owo+ICAKPiAgCXJldHVybiBzdG1wZV9zZXRfYml0cyhzdG1wZSwgcmVnLCBtYXNrLCAwKTsKPiBA QCAtMTU3LDEwICsxNTksMTYgQEAgc3RhdGljIHZvaWQgc3RtcGVfZ3Bpb19pcnFfc3luY191bmxv Y2soc3RydWN0IGlycV9kYXRhICpkKQo+ICAJc3RydWN0IHN0bXBlX2dwaW8gKnN0bXBlX2dwaW8g PSBncGlvY2hpcF9nZXRfZGF0YShnYyk7Cj4gIAlzdHJ1Y3Qgc3RtcGUgKnN0bXBlID0gc3RtcGVf Z3Bpby0+c3RtcGU7Cj4gIAlpbnQgbnVtX2JhbmtzID0gRElWX1JPVU5EX1VQKHN0bXBlLT5udW1f Z3Bpb3MsIDgpOwo+IC0Jc3RhdGljIGNvbnN0IHU4IHJlZ21hcFtdID0gewo+IC0JCVtSRUdfUkVd CT0gU1RNUEVfSURYX0dQUkVSX0xTQiwKPiAtCQlbUkVHX0ZFXQk9IFNUTVBFX0lEWF9HUEZFUl9M U0IsCj4gLQkJW1JFR19JRV0JPSBTVE1QRV9JRFhfSUVHUElPUl9MU0IsCj4gKwlzdGF0aWMgY29u c3QgdTggcmVnbWFwW0NBQ0hFX05SX1JFR1NdW0NBQ0hFX05SX0JBTktTXSA9IHsKPiArCQlbUkVH X1JFXVtMU0JdID0gU1RNUEVfSURYX0dQUkVSX0xTQiwKPiArCQlbUkVHX1JFXVtDU0JdID0gU1RN UEVfSURYX0dQUkVSX0NTQiwKPiArCQlbUkVHX1JFXVtNU0JdID0gU1RNUEVfSURYX0dQUkVSX01T QiwKPiArCQlbUkVHX0ZFXVtMU0JdID0gU1RNUEVfSURYX0dQRkVSX0xTQiwKPiArCQlbUkVHX0ZF XVtDU0JdID0gU1RNUEVfSURYX0dQRkVSX0NTQiwKPiArCQlbUkVHX0ZFXVtNU0JdID0gU1RNUEVf SURYX0dQRkVSX01TQiwKPiArCQlbUkVHX0lFXVtMU0JdID0gU1RNUEVfSURYX0lFR1BJT1JfTFNC LAo+ICsJCVtSRUdfSUVdW0NTQl0gPSBTVE1QRV9JRFhfSUVHUElPUl9DU0IsCj4gKwkJW1JFR19J RV1bTVNCXSA9IFNUTVBFX0lEWF9JRUdQSU9SX01TQiwKPiAgCX07Cj4gIAlpbnQgaSwgajsKPiAg Cj4gQEAgLTE3OCw3ICsxODYsNyBAQCBzdGF0aWMgdm9pZCBzdG1wZV9ncGlvX2lycV9zeW5jX3Vu bG9jayhzdHJ1Y3QgaXJxX2RhdGEgKmQpCj4gIAkJCQljb250aW51ZTsKPiAgCj4gIAkJCXN0bXBl X2dwaW8tPm9sZHJlZ3NbaV1bal0gPSBuZXc7Cj4gLQkJCXN0bXBlX3JlZ193cml0ZShzdG1wZSwg c3RtcGUtPnJlZ3NbcmVnbWFwW2ldXSAtIGosIG5ldyk7Cj4gKwkJCXN0bXBlX3JlZ193cml0ZShz dG1wZSwgc3RtcGUtPnJlZ3NbcmVnbWFwW2ldW2pdXSwgbmV3KTsKPiAgCQl9Cj4gIAl9Cj4gIAo+ IEBAIC0yMTQsOSArMjIyLDkgQEAgc3RhdGljIHZvaWQgc3RtcGVfZGJnX3Nob3dfb25lKHN0cnVj dCBzZXFfZmlsZSAqcywKPiAgCXN0cnVjdCBzdG1wZV9ncGlvICpzdG1wZV9ncGlvID0gZ3Bpb2No aXBfZ2V0X2RhdGEoZ2MpOwo+ICAJc3RydWN0IHN0bXBlICpzdG1wZSA9IHN0bXBlX2dwaW8tPnN0 bXBlOwo+ICAJY29uc3QgY2hhciAqbGFiZWwgPSBncGlvY2hpcF9pc19yZXF1ZXN0ZWQoZ2MsIG9m ZnNldCk7Cj4gLQlpbnQgbnVtX2JhbmtzID0gRElWX1JPVU5EX1VQKHN0bXBlLT5udW1fZ3Bpb3Ms IDgpOwo+ICAJYm9vbCB2YWwgPSAhIXN0bXBlX2dwaW9fZ2V0KGdjLCBvZmZzZXQpOwo+IC0JdTgg ZGlyX3JlZyA9IHN0bXBlLT5yZWdzW1NUTVBFX0lEWF9HUERSX0xTQl0gLSAob2Zmc2V0IC8gOCk7 Cj4gKwl1OCBiYW5rID0gb2Zmc2V0IC8gODsKPiArCXU4IGRpcl9yZWcgPSBzdG1wZS0+cmVnc1tT VE1QRV9JRFhfR1BEUl9MU0IgKyBiYW5rXTsKPiAgCXU4IG1hc2sgPSAxIDw8IChvZmZzZXQgJSA4 KTsKPiAgCWludCByZXQ7Cj4gIAl1OCBkaXI7Cj4gQEAgLTI1NywxOCArMjY1LDE2IEBAIHN0YXRp YyB2b2lkIHN0bXBlX2RiZ19zaG93X29uZShzdHJ1Y3Qgc2VxX2ZpbGUgKnMsCj4gIAkJY2FzZSBT VE1QRTE2MDE6Cj4gIAkJY2FzZSBTVE1QRTI0MDE6Cj4gIAkJY2FzZSBTVE1QRTI0MDM6Cj4gLQkJ CWVkZ2VfZGV0X3JlZyA9IHN0bXBlLT5yZWdzW1NUTVBFX0lEWF9HUEVEUl9NU0JdICsKPiAtCQkJ CSAgICAgICBudW1fYmFua3MgLSAxIC0gKG9mZnNldCAvIDgpOwo+ICsJCQllZGdlX2RldF9yZWcg PSBzdG1wZS0+cmVnc1tTVE1QRV9JRFhfR1BFRFJfTFNCICsgYmFua107Cj4gIAkJCXJldCA9IHN0 bXBlX3JlZ19yZWFkKHN0bXBlLCBlZGdlX2RldF9yZWcpOwo+ICAJCQlpZiAocmV0IDwgMCkKPiAg CQkJCXJldHVybjsKPiAgCQkJZWRnZV9kZXQgPSAhIShyZXQgJiBtYXNrKTsKPiAgCj4gIAkJY2Fz ZSBTVE1QRTE4MDE6Cj4gLQkJCXJpc2VfcmVnID0gc3RtcGUtPnJlZ3NbU1RNUEVfSURYX0dQUkVS X0xTQl0gLQo+IC0JCQkJICAgKG9mZnNldCAvIDgpOwo+IC0JCQlmYWxsX3JlZyA9IHN0bXBlLT5y ZWdzW1NUTVBFX0lEWF9HUEZFUl9MU0JdIC0KPiAtCQkJCSAgIChvZmZzZXQgLyA4KTsKPiArCQkJ cmlzZV9yZWcgPSBzdG1wZS0+cmVnc1tTVE1QRV9JRFhfR1BSRVJfTFNCICsgYmFua107Cj4gKwkJ CWZhbGxfcmVnID0gc3RtcGUtPnJlZ3NbU1RNUEVfSURYX0dQRkVSX0xTQiArIGJhbmtdOwo+ICsK PiAgCQkJcmV0ID0gc3RtcGVfcmVnX3JlYWQoc3RtcGUsIHJpc2VfcmVnKTsKPiAgCQkJaWYgKHJl dCA8IDApCj4gIAkJCQlyZXR1cm47Cj4gQEAgLTI3OSw4ICsyODUsNyBAQCBzdGF0aWMgdm9pZCBz dG1wZV9kYmdfc2hvd19vbmUoc3RydWN0IHNlcV9maWxlICpzLAo+ICAJCQlmYWxsID0gISEocmV0 ICYgbWFzayk7Cj4gIAo+ICAJCWNhc2UgU1RNUEU4MDE6Cj4gLQkJCWlycWVuX3JlZyA9IHN0bXBl LT5yZWdzW1NUTVBFX0lEWF9JRUdQSU9SX0xTQl0gLQo+IC0JCQkJICAgIChvZmZzZXQgLyA4KTsK PiArCQkJaXJxZW5fcmVnID0gc3RtcGUtPnJlZ3NbU1RNUEVfSURYX0lFR1BJT1JfTFNCICsgYmFu a107Cj4gIAkJCWJyZWFrOwo+ICAKPiAgCQlkZWZhdWx0Ogo+IEBAIC0zNjIsOCArMzY3LDkgQEAg c3RhdGljIGlycXJldHVybl90IHN0bXBlX2dwaW9faXJxKGludCBpcnEsIHZvaWQgKmRldikKPiAg CQkgKi8KPiAgCQlpZiAoc3RtcGUtPnBhcnRudW0gIT0gU1RNUEU4MDEgfHwgc3RtcGUtPnBhcnRu dW0gIT0gU1RNUEUxODAxKSB7Cj4gIAkJCXN0bXBlX3JlZ193cml0ZShzdG1wZSwgc3RhdG1zYnJl ZyArIGksIHN0YXR1c1tpXSk7Cj4gLQkJCXN0bXBlX3JlZ193cml0ZShzdG1wZSwgc3RtcGUtPnJl Z3NbU1RNUEVfSURYX0dQRURSX01TQl0KPiAtCQkJCQkrIGksIHN0YXR1c1tpXSk7Cj4gKwkJCXN0 bXBlX3JlZ193cml0ZShzdG1wZSwKPiArCQkJCQlzdG1wZS0+cmVnc1tTVE1QRV9JRFhfR1BFRFJf TFNCICsgaV0sCj4gKwkJCQkJc3RhdHVzW2ldKTsKPiAgCQl9Cj4gIAl9Cj4gIAoKLS0gCkxlZSBK b25lcwpMaW5hcm8gU1RNaWNyb2VsZWN0cm9uaWNzIExhbmRpbmcgVGVhbSBMZWFkCkxpbmFyby5v cmcg4pSCIE9wZW4gc291cmNlIHNvZnR3YXJlIGZvciBBUk0gU29DcwpGb2xsb3cgTGluYXJvOiBG YWNlYm9vayB8IFR3aXR0ZXIgfCBCbG9nCgpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fXwpsaW51eC1hcm0ta2VybmVsIG1haWxpbmcgbGlzdApsaW51eC1hcm0t a2VybmVsQGxpc3RzLmluZnJhZGVhZC5vcmcKaHR0cDovL2xpc3RzLmluZnJhZGVhZC5vcmcvbWFp bG1hbi9saXN0aW5mby9saW51eC1hcm0ta2VybmVsCg==