From mboxrd@z Thu Jan 1 00:00:00 1970 From: "Shevchenko, Andriy" Subject: Re: [PATCH 2/3 v2] GPIO: gpio-dwapb: Support Debounce Date: Fri, 5 Sep 2014 09:23:19 +0000 Message-ID: <1409908999.30155.85.camel@intel.com> References: <1409928798-31895-1-git-send-email-alvin.chen@intel.com> <1409928798-31895-3-git-send-email-alvin.chen@intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: <1409928798-31895-3-git-send-email-alvin.chen@intel.com> Content-Language: en-US Content-ID: <4C922FB006FE914981ECEA44D67094E8@intel.com> Sender: linux-gpio-owner@vger.kernel.org To: "Chen, Alvin" Cc: "linux-kernel@vger.kernel.org" , "robh+dt@kernel.org" , "Kweh, Hock Leong" , "sebastian@breakpoint.cc" , "devicetree@vger.kernel.org" , "Ong, Boon Leong" , "gnurou@gmail.com" , "linus.walleij@linaro.org" , "linux-gpio@vger.kernel.org" , "grant.likely@linaro.org" , "Westerberg, Mika" , "dvhart@linux.intel.com" , "atull@opensource.altera.com" List-Id: devicetree@vger.kernel.org T24gRnJpLCAyMDE0LTA5LTA1IGF0IDA3OjUzIC0wNzAwLCBXZWlrZSBDaGVuIHdyb3RlOg0KPiBU aGlzIHBhdGNoIGVuYWJsZXMgJ2RlYm91bmNlJyBmb3IgdGhlIGRlc2lnbndhcmUgR1BJTywgYW5k DQo+IGl0IGlzIGJhc2VkIG9uIEpvc2VmIEFobWFkJ3MgcHJldmlvdXMgd29yay4NCg0KQ2FuIHdl IHNwbGl0IGR3YXBiX3JlYWQvd3JpdGUgaW50cm9kdWNpbmcgYW5kIGNoYW5naW5nIGZyb20gdGhp cyBwYXRjaA0KdG8gYSBzZXBhcmF0ZSBvbmU/DQoNCg0KPiBSZXZpZXdlZC1ieTogSG9jayBMZW9u ZyBLd2VoIDxob2NrLmxlb25nLmt3ZWhAaW50ZWwuY29tPg0KPiBSZXZpZXdlZC1ieTogU2hldmNo ZW5rbywgQW5kcml5IDxhbmRyaXkuc2hldmNoZW5rb0BpbnRlbC5jb20+DQoNCg0KPiBTaWduZWQt b2ZmLWJ5OiBXZWlrZSBDaGVuIDxhbHZpbi5jaGVuQGludGVsLmNvbT4NCj4gLS0tDQo+ICBkcml2 ZXJzL2dwaW8vZ3Bpby1kd2FwYi5jIHwgICA2MiArKysrKysrKysrKysrKysrKysrKysrKysrKysr KysrKysrKysrLS0tLS0tLS0NCj4gIDEgZmlsZSBjaGFuZ2VkLCA1MiBpbnNlcnRpb25zKCspLCAx MCBkZWxldGlvbnMoLSkNCj4gDQo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwaW8vZ3Bpby1kd2Fw Yi5jIGIvZHJpdmVycy9ncGlvL2dwaW8tZHdhcGIuYw0KPiBpbmRleCBmMjI2NGEyLi42ZGI3NTAx IDEwMDY0NA0KPiAtLS0gYS9kcml2ZXJzL2dwaW8vZ3Bpby1kd2FwYi5jDQo+ICsrKyBiL2RyaXZl cnMvZ3Bpby9ncGlvLWR3YXBiLmMNCj4gQEAgLTM2LDYgKzM2LDcgQEANCj4gICNkZWZpbmUgR1BJ T19JTlRUWVBFX0xFVkVMCTB4MzgNCj4gICNkZWZpbmUgR1BJT19JTlRfUE9MQVJJVFkJMHgzYw0K PiAgI2RlZmluZSBHUElPX0lOVFNUQVRVUwkJMHg0MA0KPiArI2RlZmluZSBHUElPX1BPUlRBX0RF Qk9VTkNFCTB4NDgNCj4gICNkZWZpbmUgR1BJT19QT1JUQV9FT0kJCTB4NGMNCj4gICNkZWZpbmUg R1BJT19FWFRfUE9SVEEJCTB4NTANCj4gICNkZWZpbmUgR1BJT19FWFRfUE9SVEIJCTB4NTQNCj4g QEAgLTYzLDYgKzY0LDIzIEBAIHN0cnVjdCBkd2FwYl9ncGlvIHsNCj4gIAlzdHJ1Y3QgaXJxX2Rv bWFpbgkqZG9tYWluOw0KPiAgfTsNCj4gIA0KPiArc3RhdGljIGlubGluZSB1MzIgZHdhcGJfcmVh ZChzdHJ1Y3QgZHdhcGJfZ3BpbyAqZ3BpbywgdW5zaWduZWQgaW50IG9mZnNldCkNCj4gK3sNCj4g KwlzdHJ1Y3QgYmdwaW9fY2hpcCAqYmdjCT0gJmdwaW8tPnBvcnRzWzBdLmJnYzsNCj4gKwl2b2lk IF9faW9tZW0gKnJlZ19iYXNlCT0gZ3Bpby0+cmVnczsNCj4gKw0KPiArCXJldHVybiBiZ2MtPnJl YWRfcmVnKHJlZ19iYXNlICsgb2Zmc2V0KTsNCj4gK30NCj4gKw0KPiArc3RhdGljIGlubGluZSB2 b2lkIGR3YXBiX3dyaXRlKHN0cnVjdCBkd2FwYl9ncGlvICpncGlvLCB1bnNpZ25lZCBpbnQgb2Zm c2V0LA0KPiArCQkJICAgICAgIHUzMiB2YWwpDQo+ICt7DQo+ICsJc3RydWN0IGJncGlvX2NoaXAg KmJnYwk9ICZncGlvLT5wb3J0c1swXS5iZ2M7DQo+ICsJdm9pZCBfX2lvbWVtICpyZWdfYmFzZQk9 IGdwaW8tPnJlZ3M7DQo+ICsNCj4gKwliZ2MtPndyaXRlX3JlZyhyZWdfYmFzZSArIG9mZnNldCwg dmFsKTsNCj4gK30NCj4gKw0KPiAgc3RhdGljIGludCBkd2FwYl9ncGlvX3RvX2lycShzdHJ1Y3Qg Z3Bpb19jaGlwICpnYywgdW5zaWduZWQgb2Zmc2V0KQ0KPiAgew0KPiAgCXN0cnVjdCBiZ3Bpb19j aGlwICpiZ2MgPSB0b19iZ3Bpb19jaGlwKGdjKTsNCj4gQEAgLTc1LDE0ICs5MywxNCBAQCBzdGF0 aWMgaW50IGR3YXBiX2dwaW9fdG9faXJxKHN0cnVjdCBncGlvX2NoaXAgKmdjLCB1bnNpZ25lZCBv ZmZzZXQpDQo+ICANCj4gIHN0YXRpYyB2b2lkIGR3YXBiX3RvZ2dsZV90cmlnZ2VyKHN0cnVjdCBk d2FwYl9ncGlvICpncGlvLCB1bnNpZ25lZCBpbnQgb2ZmcykNCj4gIHsNCj4gLQl1MzIgdiA9IHJl YWRsKGdwaW8tPnJlZ3MgKyBHUElPX0lOVF9QT0xBUklUWSk7DQo+ICsJdTMyIHYgPSBkd2FwYl9y ZWFkKGdwaW8sIEdQSU9fSU5UX1BPTEFSSVRZKTsNCj4gIA0KPiAgCWlmIChncGlvX2dldF92YWx1 ZShncGlvLT5wb3J0c1swXS5iZ2MuZ2MuYmFzZSArIG9mZnMpKQ0KPiAgCQl2ICY9IH5CSVQob2Zm cyk7DQo+ICAJZWxzZQ0KPiAgCQl2IHw9IEJJVChvZmZzKTsNCj4gIA0KPiAtCXdyaXRlbCh2LCBn cGlvLT5yZWdzICsgR1BJT19JTlRfUE9MQVJJVFkpOw0KPiArCWR3YXBiX3dyaXRlKGdwaW8sIEdQ SU9fSU5UX1BPTEFSSVRZLCB2KTsNCj4gIH0NCj4gIA0KPiAgc3RhdGljIHUzMiBfZHdhcGJfaXJx X2hhbmRsZXIoc3RydWN0IGR3YXBiX2dwaW8gKmdwaW8pDQo+IEBAIC0xMjUsOSArMTQzLDkgQEAg c3RhdGljIHZvaWQgZHdhcGJfaXJxX2VuYWJsZShzdHJ1Y3QgaXJxX2RhdGEgKmQpDQo+ICAJdTMy IHZhbDsNCj4gIA0KPiAgCXNwaW5fbG9ja19pcnFzYXZlKCZiZ2MtPmxvY2ssIGZsYWdzKTsNCj4g LQl2YWwgPSByZWFkbChncGlvLT5yZWdzICsgR1BJT19JTlRFTik7DQo+ICsJdmFsID0gZHdhcGJf cmVhZChncGlvLCBHUElPX0lOVEVOKTsNCj4gIAl2YWwgfD0gQklUKGQtPmh3aXJxKTsNCj4gLQl3 cml0ZWwodmFsLCBncGlvLT5yZWdzICsgR1BJT19JTlRFTik7DQo+ICsJZHdhcGJfd3JpdGUoZ3Bp bywgR1BJT19JTlRFTiwgdmFsKTsNCj4gIAlzcGluX3VubG9ja19pcnFyZXN0b3JlKCZiZ2MtPmxv Y2ssIGZsYWdzKTsNCj4gIH0NCj4gIA0KPiBAQCAtMTQwLDkgKzE1OCw5IEBAIHN0YXRpYyB2b2lk IGR3YXBiX2lycV9kaXNhYmxlKHN0cnVjdCBpcnFfZGF0YSAqZCkNCj4gIAl1MzIgdmFsOw0KPiAg DQo+ICAJc3Bpbl9sb2NrX2lycXNhdmUoJmJnYy0+bG9jaywgZmxhZ3MpOw0KPiAtCXZhbCA9IHJl YWRsKGdwaW8tPnJlZ3MgKyBHUElPX0lOVEVOKTsNCj4gKwl2YWwgPSBkd2FwYl9yZWFkKGdwaW8s IEdQSU9fSU5URU4pOw0KPiAgCXZhbCAmPSB+QklUKGQtPmh3aXJxKTsNCj4gLQl3cml0ZWwodmFs LCBncGlvLT5yZWdzICsgR1BJT19JTlRFTik7DQo+ICsJZHdhcGJfd3JpdGUoZ3BpbywgR1BJT19J TlRFTiwgdmFsKTsNCj4gIAlzcGluX3VubG9ja19pcnFyZXN0b3JlKCZiZ2MtPmxvY2ssIGZsYWdz KTsNCj4gIH0NCj4gIA0KPiBAQCAtMTgyLDggKzIwMCw4IEBAIHN0YXRpYyBpbnQgZHdhcGJfaXJx X3NldF90eXBlKHN0cnVjdCBpcnFfZGF0YSAqZCwgdTMyIHR5cGUpDQo+ICAJCXJldHVybiAtRUlO VkFMOw0KPiAgDQo+ICAJc3Bpbl9sb2NrX2lycXNhdmUoJmJnYy0+bG9jaywgZmxhZ3MpOw0KPiAt CWxldmVsID0gcmVhZGwoZ3Bpby0+cmVncyArIEdQSU9fSU5UVFlQRV9MRVZFTCk7DQo+IC0JcG9s YXJpdHkgPSByZWFkbChncGlvLT5yZWdzICsgR1BJT19JTlRfUE9MQVJJVFkpOw0KPiArCWxldmVs ID0gZHdhcGJfcmVhZChncGlvLCBHUElPX0lOVFRZUEVfTEVWRUwpOw0KPiArCXBvbGFyaXR5ID0g ZHdhcGJfcmVhZChncGlvLCBHUElPX0lOVF9QT0xBUklUWSk7DQo+ICANCj4gIAlzd2l0Y2ggKHR5 cGUpIHsNCj4gIAljYXNlIElSUV9UWVBFX0VER0VfQk9USDoNCj4gQEAgLTIxMCw4ICsyMjgsMzEg QEAgc3RhdGljIGludCBkd2FwYl9pcnFfc2V0X3R5cGUoc3RydWN0IGlycV9kYXRhICpkLCB1MzIg dHlwZSkNCj4gIA0KPiAgCWlycV9zZXR1cF9hbHRfY2hpcChkLCB0eXBlKTsNCj4gIA0KPiAtCXdy aXRlbChsZXZlbCwgZ3Bpby0+cmVncyArIEdQSU9fSU5UVFlQRV9MRVZFTCk7DQo+IC0Jd3JpdGVs KHBvbGFyaXR5LCBncGlvLT5yZWdzICsgR1BJT19JTlRfUE9MQVJJVFkpOw0KPiArCWR3YXBiX3dy aXRlKGdwaW8sIEdQSU9fSU5UVFlQRV9MRVZFTCwgbGV2ZWwpOw0KPiArCWR3YXBiX3dyaXRlKGdw aW8sIEdQSU9fSU5UX1BPTEFSSVRZLCBwb2xhcml0eSk7DQo+ICsJc3Bpbl91bmxvY2tfaXJxcmVz dG9yZSgmYmdjLT5sb2NrLCBmbGFncyk7DQo+ICsNCj4gKwlyZXR1cm4gMDsNCj4gK30NCj4gKw0K PiArc3RhdGljIGludCBkd2FwYl9ncGlvX3NldF9kZWJvdW5jZShzdHJ1Y3QgZ3Bpb19jaGlwICpn YywNCj4gKwkJCQkgICB1bnNpZ25lZCBvZmZzZXQsIHVuc2lnbmVkIGRlYm91bmNlKQ0KPiArew0K PiArCXN0cnVjdCBiZ3Bpb19jaGlwICpiZ2MgPSB0b19iZ3Bpb19jaGlwKGdjKTsNCj4gKwlzdHJ1 Y3QgZHdhcGJfZ3Bpb19wb3J0ICpwb3J0ID0NCj4gKwkJCWNvbnRhaW5lcl9vZihiZ2MsIHN0cnVj dCBkd2FwYl9ncGlvX3BvcnQsIGJnYyk7DQo+ICsJc3RydWN0IGR3YXBiX2dwaW8gKmdwaW8gPSBw b3J0LT5ncGlvOw0KPiArCXVuc2lnbmVkIGxvbmcgZmxhZ3MsIHZhbF9kZWI7DQo+ICsJdW5zaWdu ZWQgbG9uZyBtYXNrID0gYmdjLT5waW4ybWFzayhiZ2MsIG9mZnNldCk7DQo+ICsNCj4gKwlzcGlu X2xvY2tfaXJxc2F2ZSgmYmdjLT5sb2NrLCBmbGFncyk7DQo+ICsNCj4gKwl2YWxfZGViID0gZHdh cGJfcmVhZChncGlvLCBHUElPX1BPUlRBX0RFQk9VTkNFKTsNCj4gKwlpZiAoZGVib3VuY2UpDQo+ ICsJCWR3YXBiX3dyaXRlKGdwaW8sIEdQSU9fUE9SVEFfREVCT1VOQ0UsIG1hc2sgfCB2YWxfZGVi KTsNCj4gKwllbHNlDQo+ICsJCWR3YXBiX3dyaXRlKGdwaW8sIEdQSU9fUE9SVEFfREVCT1VOQ0Us IH5tYXNrICYgdmFsX2RlYik7DQo+ICsNCj4gIAlzcGluX3VubG9ja19pcnFyZXN0b3JlKCZiZ2Mt PmxvY2ssIGZsYWdzKTsNCj4gIA0KPiAgCXJldHVybiAwOw0KPiBAQCAtMzU0LDYgKzM5NSw3IEBA IHN0YXRpYyBpbnQgZHdhcGJfZ3Bpb19hZGRfcG9ydChzdHJ1Y3QgZHdhcGJfZ3BpbyAqZ3BpbywN Cj4gICNlbmRpZg0KPiAgCXBvcnQtPmJnYy5nYy5uZ3BpbyA9IHBwLT5uZ3BpbzsNCj4gIAlwb3J0 LT5iZ2MuZ2MuYmFzZSA9IHBwLT5ncGlvX2Jhc2U7DQo+ICsJcG9ydC0+YmdjLmdjLnNldF9kZWJv dW5jZSA9IGR3YXBiX2dwaW9fc2V0X2RlYm91bmNlOw0KPiAgDQo+ICAJaWYgKHBwLT5pcnEpDQo+ ICAJCWR3YXBiX2NvbmZpZ3VyZV9pcnFzKGdwaW8sIHBvcnQsIHBwKTsNCg0KDQotLSANCkFuZHkg U2hldmNoZW5rbyA8YW5kcml5LnNoZXZjaGVua29AaW50ZWwuY29tPg0KSW50ZWwgRmlubGFuZCBP eQ0KLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tCkludGVsIEZpbmxhbmQgT3kKUmVnaXN0ZXJlZCBBZGRyZXNzOiBQTCAy ODEsIDAwMTgxIEhlbHNpbmtpIApCdXNpbmVzcyBJZGVudGl0eSBDb2RlOiAwMzU3NjA2IC0gNCAK RG9taWNpbGVkIGluIEhlbHNpbmtpIAoKVGhpcyBlLW1haWwgYW5kIGFueSBhdHRhY2htZW50cyBt YXkgY29udGFpbiBjb25maWRlbnRpYWwgbWF0ZXJpYWwgZm9yCnRoZSBzb2xlIHVzZSBvZiB0aGUg aW50ZW5kZWQgcmVjaXBpZW50KHMpLiBBbnkgcmV2aWV3IG9yIGRpc3RyaWJ1dGlvbgpieSBvdGhl cnMgaXMgc3RyaWN0bHkgcHJvaGliaXRlZC4gSWYgeW91IGFyZSBub3QgdGhlIGludGVuZGVkCnJl Y2lwaWVudCwgcGxlYXNlIGNvbnRhY3QgdGhlIHNlbmRlciBhbmQgZGVsZXRlIGFsbCBjb3BpZXMu Cg==