From mboxrd@z Thu Jan 1 00:00:00 1970 From: Oleksandr Andrushchenko Subject: [PATCH 2/2] xen/input: add multi-touch support Date: Thu, 13 Apr 2017 14:38:04 +0300 Message-ID: <1492083484-31786-3-git-send-email-andr2000__29024.1030314521$1492083552$gmane$org@gmail.com> References: <1492083484-31786-1-git-send-email-andr2000@gmail.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mail6.bemta6.messagelabs.com ([193.109.254.103]) by lists.xenproject.org with esmtp (Exim 4.84_2) (envelope-from ) id 1cyd4r-0007wO-IZ for xen-devel@lists.xenproject.org; Thu, 13 Apr 2017 11:38:17 +0000 Received: by mail-lf0-f66.google.com with SMTP id i3so6490646lfh.2 for ; Thu, 13 Apr 2017 04:38:15 -0700 (PDT) In-Reply-To: <1492083484-31786-1-git-send-email-andr2000@gmail.com> List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Errors-To: xen-devel-bounces@lists.xen.org Sender: "Xen-devel" To: xen-devel@lists.xenproject.org, linux-kernel@vger.kernel.org, linux-input@vger.kernel.org Cc: jgross@suse.com, Oleksandr Andrushchenko , vlad.babchuk@gmail.com, dmitry.torokhov@gmail.com, andrii.anisov@gmail.com, olekstysh@gmail.com, andr2000@gmail.com, al1img@gmail.com, boris.ostrovsky@oracle.com, joculator@gmail.com List-Id: xen-devel@lists.xenproject.org RnJvbTogT2xla3NhbmRyIEFuZHJ1c2hjaGVua28gPG9sZWtzYW5kcl9hbmRydXNoY2hlbmtvQGVw YW0uY29tPgoKRXh0ZW5kIHhlbl9rYmRmcm9udCB0byBwcm92aWRlIG11bHRpLXRvdWNoIHN1cHBv cnQKdG8gdW5wcml2aWxlZ2VkIGRvbWFpbnMuCgpTaWduZWQtb2ZmLWJ5OiBPbGVrc2FuZHIgQW5k cnVzaGNoZW5rbyA8b2xla3NhbmRyX2FuZHJ1c2hjaGVua29AZXBhbS5jb20+Ci0tLQogZHJpdmVy cy9pbnB1dC9taXNjL3hlbi1rYmRmcm9udC5jIHwgMTQyICsrKysrKysrKysrKysrKysrKysrKysr KysrKysrKysrKysrKystCiAxIGZpbGUgY2hhbmdlZCwgMTQwIGluc2VydGlvbnMoKyksIDIgZGVs ZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9pbnB1dC9taXNjL3hlbi1rYmRmcm9udC5j IGIvZHJpdmVycy9pbnB1dC9taXNjL3hlbi1rYmRmcm9udC5jCmluZGV4IDAxYzI3YjRjMzI4OC4u ZTVkMDY0YWFhMjM3IDEwMDY0NAotLS0gYS9kcml2ZXJzL2lucHV0L21pc2MveGVuLWtiZGZyb250 LmMKKysrIGIvZHJpdmVycy9pbnB1dC9taXNjL3hlbi1rYmRmcm9udC5jCkBAIC0xNyw2ICsxNyw3 IEBACiAjaW5jbHVkZSA8bGludXgvZXJybm8uaD4KICNpbmNsdWRlIDxsaW51eC9tb2R1bGUuaD4K ICNpbmNsdWRlIDxsaW51eC9pbnB1dC5oPgorI2luY2x1ZGUgPGxpbnV4L2lucHV0L210Lmg+CiAj aW5jbHVkZSA8bGludXgvc2xhYi5oPgogCiAjaW5jbHVkZSA8YXNtL3hlbi9oeXBlcnZpc29yLmg+ CkBAIC0zNCwxMSArMzUsMTQgQEAKIHN0cnVjdCB4ZW5rYmRfaW5mbyB7CiAJc3RydWN0IGlucHV0 X2RldiAqa2JkOwogCXN0cnVjdCBpbnB1dF9kZXYgKnB0cjsKKwlzdHJ1Y3QgaW5wdXRfZGV2ICpt dG91Y2g7CiAJc3RydWN0IHhlbmtiZF9wYWdlICpwYWdlOwogCWludCBncmVmOwogCWludCBpcnE7 CiAJc3RydWN0IHhlbmJ1c19kZXZpY2UgKnhiZGV2OwogCWNoYXIgcGh5c1szMl07CisJLyogY3Vy cmVudCBNVCBzbG90L2NvbnRhY3QgSUQgd2UgYXJlIGluamVjdGluZyBldmVudHMgaW4gKi8KKwlp bnQgbXRvdWNoX2N1cl9jb250YWN0X2lkOwogfTsKIAogZW51bSB7IEtQQVJBTV9YLCBLUEFSQU1f WSwgS1BBUkFNX0NOVCB9OwpAQCAtNDcsNiArNTEsMTIgQEAgbW9kdWxlX3BhcmFtX2FycmF5KHB0 cl9zaXplLCBpbnQsIE5VTEwsIDA0NDQpOwogTU9EVUxFX1BBUk1fREVTQyhwdHJfc2l6ZSwKIAki UG9pbnRpbmcgZGV2aWNlIHdpZHRoLCBoZWlnaHQgaW4gcGl4ZWxzIChkZWZhdWx0IDgwMCw2MDAp Iik7CiAKK2VudW0geyBLUEFSQU1fTVRfWCwgS1BBUkFNX01UX1ksIEtQQVJBTV9NVF9DTlQgfTsK K3N0YXRpYyBpbnQgbXRvdWNoX3NpemVbS1BBUkFNX01UX0NOVF0gPSB7IFhFTkZCX1dJRFRILCBY RU5GQl9IRUlHSFQgfTsKK21vZHVsZV9wYXJhbV9hcnJheShtdG91Y2hfc2l6ZSwgaW50LCBOVUxM LCAwNDQ0KTsKK01PRFVMRV9QQVJNX0RFU0MocHRyX3NpemUsCisJIk11bHRpLXRvdWNoIGRldmlj ZSB3aWR0aCwgaGVpZ2h0IGluIHBpeGVscyAoZGVmYXVsdCA4MDAsNjAwKSIpOworCiBzdGF0aWMg aW50IHhlbmtiZF9yZW1vdmUoc3RydWN0IHhlbmJ1c19kZXZpY2UgKik7CiBzdGF0aWMgaW50IHhl bmtiZF9jb25uZWN0X2JhY2tlbmQoc3RydWN0IHhlbmJ1c19kZXZpY2UgKiwgc3RydWN0IHhlbmti ZF9pbmZvICopOwogc3RhdGljIHZvaWQgeGVua2JkX2Rpc2Nvbm5lY3RfYmFja2VuZChzdHJ1Y3Qg eGVua2JkX2luZm8gKik7CkBAIC0xMDAsNiArMTEwLDYwIEBAIHN0YXRpYyBpcnFyZXR1cm5fdCBp bnB1dF9oYW5kbGVyKGludCBycSwgdm9pZCAqZGV2X2lkKQogCQkJCWlucHV0X3JlcG9ydF9yZWwo ZGV2LCBSRUxfV0hFRUwsCiAJCQkJCQkgLWV2ZW50LT5wb3MucmVsX3opOwogCQkJYnJlYWs7CisJ CWNhc2UgWEVOS0JEX1RZUEVfTVRPVUNIOgorCQkJZGV2ID0gaW5mby0+bXRvdWNoOworCQkJaWYg KHVubGlrZWx5KCFkZXYpKQorCQkJCWJyZWFrOworCQkJaWYgKHVubGlrZWx5KGV2ZW50LT5tdG91 Y2guY29udGFjdF9pZCAhPQorCQkJCQlpbmZvLT5tdG91Y2hfY3VyX2NvbnRhY3RfaWQpKSB7CisJ CQkJaW5mby0+bXRvdWNoX2N1cl9jb250YWN0X2lkID0KKwkJCQkJZXZlbnQtPm10b3VjaC5jb250 YWN0X2lkOworCQkJCWlucHV0X210X3Nsb3QoZGV2LCBldmVudC0+bXRvdWNoLmNvbnRhY3RfaWQp OworCQkJfQorCQkJc3dpdGNoIChldmVudC0+bXRvdWNoLmV2ZW50X3R5cGUpIHsKKwkJCWNhc2Ug WEVOS0JEX01UX0VWX0RPV046CisJCQkJaW5wdXRfbXRfcmVwb3J0X3Nsb3Rfc3RhdGUoZGV2LCBN VF9UT09MX0ZJTkdFUiwKKwkJCQkJCQkgICB0cnVlKTsKKwkJCQlpbnB1dF9ldmVudChkZXYsIEVW X0FCUywgQUJTX01UX1BPU0lUSU9OX1gsCisJCQkJCSAgICBldmVudC0+bXRvdWNoLnUucG9zLmFi c194KTsKKwkJCQlpbnB1dF9ldmVudChkZXYsIEVWX0FCUywgQUJTX01UX1BPU0lUSU9OX1ksCisJ CQkJCSAgICBldmVudC0+bXRvdWNoLnUucG9zLmFic195KTsKKwkJCQlpbnB1dF9ldmVudChkZXYs IEVWX0FCUywgQUJTX1gsCisJCQkJCSAgICBldmVudC0+bXRvdWNoLnUucG9zLmFic194KTsKKwkJ CQlpbnB1dF9ldmVudChkZXYsIEVWX0FCUywgQUJTX1ksCisJCQkJCSAgICBldmVudC0+bXRvdWNo LnUucG9zLmFic195KTsKKwkJCQlicmVhazsKKwkJCWNhc2UgWEVOS0JEX01UX0VWX1VQOgorCQkJ CWlucHV0X210X3JlcG9ydF9zbG90X3N0YXRlKGRldiwgTVRfVE9PTF9GSU5HRVIsCisJCQkJCQkJ ICAgZmFsc2UpOworCQkJCWJyZWFrOworCQkJY2FzZSBYRU5LQkRfTVRfRVZfTU9USU9OOgorCQkJ CWlucHV0X2V2ZW50KGRldiwgRVZfQUJTLCBBQlNfTVRfUE9TSVRJT05fWCwKKwkJCQkJICAgIGV2 ZW50LT5tdG91Y2gudS5wb3MuYWJzX3gpOworCQkJCWlucHV0X2V2ZW50KGRldiwgRVZfQUJTLCBB QlNfTVRfUE9TSVRJT05fWSwKKwkJCQkJICAgIGV2ZW50LT5tdG91Y2gudS5wb3MuYWJzX3kpOwor CQkJCWlucHV0X2V2ZW50KGRldiwgRVZfQUJTLCBBQlNfWCwKKwkJCQkJICAgIGV2ZW50LT5tdG91 Y2gudS5wb3MuYWJzX3gpOworCQkJCWlucHV0X2V2ZW50KGRldiwgRVZfQUJTLCBBQlNfWSwKKwkJ CQkJICAgIGV2ZW50LT5tdG91Y2gudS5wb3MuYWJzX3kpOworCQkJCWJyZWFrOworCQkJY2FzZSBY RU5LQkRfTVRfRVZfU1lOOgorCQkJCWlucHV0X210X3N5bmNfZnJhbWUoZGV2KTsKKwkJCQlicmVh azsKKwkJCWNhc2UgWEVOS0JEX01UX0VWX1NIQVBFOgorCQkJCWlucHV0X2V2ZW50KGRldiwgRVZf QUJTLCBBQlNfTVRfVE9VQ0hfTUFKT1IsCisJCQkJCSAgICBldmVudC0+bXRvdWNoLnUuc2hhcGUu bWFqb3IpOworCQkJCWlucHV0X2V2ZW50KGRldiwgRVZfQUJTLCBBQlNfTVRfVE9VQ0hfTUlOT1Is CisJCQkJCSAgICBldmVudC0+bXRvdWNoLnUuc2hhcGUubWlub3IpOworCQkJCWJyZWFrOworCQkJ Y2FzZSBYRU5LQkRfTVRfRVZfT1JJRU5UOgorCQkJCWlucHV0X2V2ZW50KGRldiwgRVZfQUJTLCBB QlNfTVRfT1JJRU5UQVRJT04sCisJCQkJCSAgICBldmVudC0+bXRvdWNoLnUub3JpZW50YXRpb24p OworCQkJCWJyZWFrOworCQkJfQorCQkJLyogb25seSByZXBvcnQgc3luIHdoZW4gcmVxdWVzdGVk ICovCisJCQlpZiAoZXZlbnQtPm10b3VjaC5ldmVudF90eXBlICE9IFhFTktCRF9NVF9FVl9TWU4p CisJCQkJZGV2ID0gTlVMTDsKIAkJfQogCQlpZiAoZGV2KQogCQkJaW5wdXRfc3luYyhkZXYpOwpA QCAtMTE1LDkgKzE3OSw5IEBAIHN0YXRpYyBpbnQgeGVua2JkX3Byb2JlKHN0cnVjdCB4ZW5idXNf ZGV2aWNlICpkZXYsCiAJCQkJICBjb25zdCBzdHJ1Y3QgeGVuYnVzX2RldmljZV9pZCAqaWQpCiB7 CiAJaW50IHJldCwgaTsKLQl1bnNpZ25lZCBpbnQgYWJzOworCXVuc2lnbmVkIGludCBhYnMsIHRv dWNoOwogCXN0cnVjdCB4ZW5rYmRfaW5mbyAqaW5mbzsKLQlzdHJ1Y3QgaW5wdXRfZGV2ICprYmQs ICpwdHI7CisJc3RydWN0IGlucHV0X2RldiAqa2JkLCAqcHRyLCAqbXRvdWNoOwogCiAJaW5mbyA9 IGt6YWxsb2Moc2l6ZW9mKCppbmZvKSwgR0ZQX0tFUk5FTCk7CiAJaWYgKCFpbmZvKSB7CkBAIC0x NTIsNiArMjE2LDE3IEBAIHN0YXRpYyBpbnQgeGVua2JkX3Byb2JlKHN0cnVjdCB4ZW5idXNfZGV2 aWNlICpkZXYsCiAJCX0KIAl9CiAKKwl0b3VjaCA9IHhlbmJ1c19yZWFkX3Vuc2lnbmVkKGRldi0+ bm9kZW5hbWUsCisJCQkJICAgICBYRU5LQkRfRklFTERfRkVBVF9NVE9VQ0gsIDApOworCWlmICh0 b3VjaCkgeworCQlyZXQgPSB4ZW5idXNfd3JpdGUoWEJUX05JTCwgZGV2LT5ub2RlbmFtZSwKKwkJ CQkgICBYRU5LQkRfRklFTERfUkVRX01UT1VDSCwgIjEiKTsKKwkJaWYgKHJldCkgeworCQkJcHJf d2FybmluZygieGVua2JkOiBjYW4ndCByZXF1ZXN0IG11bHRpLXRvdWNoIik7CisJCQl0b3VjaCA9 IDA7CisJCX0KKwl9CisKIAkvKiBrZXlib2FyZCAqLwogCWtiZCA9IGlucHV0X2FsbG9jYXRlX2Rl dmljZSgpOwogCWlmICgha2JkKQpAQCAtMjA4LDYgKzI4Myw2NyBAQCBzdGF0aWMgaW50IHhlbmti ZF9wcm9iZShzdHJ1Y3QgeGVuYnVzX2RldmljZSAqZGV2LAogCX0KIAlpbmZvLT5wdHIgPSBwdHI7 CiAKKwkvKiBtdWx0aS10b3VjaCBkZXZpY2UgKi8KKwlpZiAodG91Y2gpIHsKKwkJaW50IG51bV9j b250LCB3aWR0aCwgaGVpZ2h0OworCisJCW10b3VjaCA9IGlucHV0X2FsbG9jYXRlX2RldmljZSgp OworCQlpZiAoIW10b3VjaCkKKwkJCWdvdG8gZXJyb3Jfbm9tZW07CisKKwkJbnVtX2NvbnQgPSB4 ZW5idXNfcmVhZF91bnNpZ25lZChpbmZvLT54YmRldi0+bm9kZW5hbWUsCisJCQkJCQlYRU5LQkRf RklFTERfTVRfTlVNX0NPTlRBQ1RTLAorCQkJCQkJMSk7CisJCXdpZHRoID0geGVuYnVzX3JlYWRf dW5zaWduZWQoaW5mby0+eGJkZXYtPm5vZGVuYW1lLAorCQkJCQkgICAgIFhFTktCRF9GSUVMRF9N VF9XSURUSCwKKwkJCQkJICAgICBYRU5GQl9XSURUSCk7CisJCWhlaWdodCA9IHhlbmJ1c19yZWFk X3Vuc2lnbmVkKGluZm8tPnhiZGV2LT5ub2RlbmFtZSwKKwkJCQkJICAgICAgWEVOS0JEX0ZJRUxE X01UX0hFSUdIVCwKKwkJCQkJICAgICAgWEVORkJfSEVJR0hUKTsKKworCQltdG91Y2gtPm5hbWUg PSAiWGVuIFZpcnR1YWwgTXVsdGktdG91Y2giOworCQltdG91Y2gtPnBoeXMgPSBpbmZvLT5waHlz OworCQltdG91Y2gtPmlkLmJ1c3R5cGUgPSBCVVNfUENJOworCQltdG91Y2gtPmlkLnZlbmRvciA9 IDB4NTg1MzsKKwkJbXRvdWNoLT5pZC5wcm9kdWN0ID0gMHhmZmZkOworCisJCV9fc2V0X2JpdChF Vl9BQlMsIG10b3VjaC0+ZXZiaXQpOworCQlfX3NldF9iaXQoRVZfS0VZLCBtdG91Y2gtPmV2Yml0 KTsKKwkJX19zZXRfYml0KEJUTl9UT1VDSCwgbXRvdWNoLT5rZXliaXQpOworCisJCWlucHV0X3Nl dF9hYnNfcGFyYW1zKG10b3VjaCwgQUJTX1gsCisJCQkJICAgICAwLCB3aWR0aCwgMCwgMCk7CisJ CWlucHV0X3NldF9hYnNfcGFyYW1zKG10b3VjaCwgQUJTX1ksCisJCQkJICAgICAwLCBoZWlnaHQs IDAsIDApOworCQlpbnB1dF9zZXRfYWJzX3BhcmFtcyhtdG91Y2gsIEFCU19QUkVTU1VSRSwKKwkJ CQkgICAgIDAsIDI1NSwgMCwgMCk7CisKKwkJaW5wdXRfc2V0X2Fic19wYXJhbXMobXRvdWNoLCBB QlNfTVRfVE9VQ0hfTUFKT1IsCisJCQkJICAgICAwLCAyNTUsIDAsIDApOworCQlpbnB1dF9zZXRf YWJzX3BhcmFtcyhtdG91Y2gsIEFCU19NVF9QT1NJVElPTl9YLAorCQkJCSAgICAgMCwgd2lkdGgs IDAsIDApOworCQlpbnB1dF9zZXRfYWJzX3BhcmFtcyhtdG91Y2gsIEFCU19NVF9QT1NJVElPTl9Z LAorCQkJCSAgICAgMCwgaGVpZ2h0LCAwLCAwKTsKKwkJaW5wdXRfc2V0X2Fic19wYXJhbXMobXRv dWNoLCBBQlNfTVRfUFJFU1NVUkUsCisJCQkJICAgICAwLCAyNTUsIDAsIDApOworCisJCWlucHV0 X210X2luaXRfc2xvdHMobXRvdWNoLCBudW1fY29udCwgMCk7CisKKwkJbXRvdWNoX3NpemVbS1BB UkFNX01UX1hdID0gd2lkdGg7CisJCW10b3VjaF9zaXplW0tQQVJBTV9NVF9ZXSA9IGhlaWdodDsK KwkJaW5mby0+bXRvdWNoX2N1cl9jb250YWN0X2lkID0gLTE7CisKKwkJcmV0ID0gaW5wdXRfcmVn aXN0ZXJfZGV2aWNlKG10b3VjaCk7CisJCWlmIChyZXQpIHsKKwkJCWlucHV0X2ZyZWVfZGV2aWNl KG10b3VjaCk7CisJCQl4ZW5idXNfZGV2X2ZhdGFsKGluZm8tPnhiZGV2LCByZXQsCisJCQkJCSAi aW5wdXRfcmVnaXN0ZXJfZGV2aWNlKG10b3VjaCkiKTsKKwkJCWdvdG8gZXJyb3I7CisJCX0KKwkJ aW5mby0+bXRvdWNoX2N1cl9jb250YWN0X2lkID0gLTE7CisJCWluZm8tPm10b3VjaCA9IG10b3Vj aDsKKwl9CisKIAlyZXQgPSB4ZW5rYmRfY29ubmVjdF9iYWNrZW5kKGRldiwgaW5mbyk7CiAJaWYg KHJldCA8IDApCiAJCWdvdG8gZXJyb3I7CkBAIC0yNDAsNiArMzc2LDggQEAgc3RhdGljIGludCB4 ZW5rYmRfcmVtb3ZlKHN0cnVjdCB4ZW5idXNfZGV2aWNlICpkZXYpCiAJCWlucHV0X3VucmVnaXN0 ZXJfZGV2aWNlKGluZm8tPmtiZCk7CiAJaWYgKGluZm8tPnB0cikKIAkJaW5wdXRfdW5yZWdpc3Rl cl9kZXZpY2UoaW5mby0+cHRyKTsKKwlpZiAoaW5mby0+bXRvdWNoKQorCQlpbnB1dF91bnJlZ2lz dGVyX2RldmljZShpbmZvLT5tdG91Y2gpOwogCWZyZWVfcGFnZSgodW5zaWduZWQgbG9uZylpbmZv LT5wYWdlKTsKIAlrZnJlZShpbmZvKTsKIAlyZXR1cm4gMDsKLS0gCjIuNy40CgoKX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KWGVuLWRldmVsIG1haWxpbmcg bGlzdApYZW4tZGV2ZWxAbGlzdHMueGVuLm9yZwpodHRwczovL2xpc3RzLnhlbi5vcmcveGVuLWRl dmVsCg==