From mboxrd@z Thu Jan 1 00:00:00 1970 From: Thierry Reding Subject: [PATCH v4 08/16] drm/dsi: Implement some standard DCS commands Date: Mon, 3 Nov 2014 10:13:33 +0100 Message-ID: <1415006021-29313-8-git-send-email-thierry.reding@gmail.com> References: <1415006021-29313-1-git-send-email-thierry.reding@gmail.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mail-pd0-f170.google.com (mail-pd0-f170.google.com [209.85.192.170]) by gabe.freedesktop.org (Postfix) with ESMTP id C1D526E3FA for ; Mon, 3 Nov 2014 01:14:28 -0800 (PST) Received: by mail-pd0-f170.google.com with SMTP id z10so11202378pdj.1 for ; Mon, 03 Nov 2014 01:14:28 -0800 (PST) In-Reply-To: <1415006021-29313-1-git-send-email-thierry.reding@gmail.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" To: Thierry Reding Cc: Andrzej Hajda , dri-devel@lists.freedesktop.org List-Id: dri-devel@lists.freedesktop.org RnJvbTogWW91bmdKdW4gQ2hvIDx5ajQ0LmNob0BzYW1zdW5nLmNvbT4KCkFkZCBoZWxwZXJzIGZv ciB0aGUge2VudGVyLGV4aXR9X3NsZWVwX21vZGUsIHNldF9kaXNwbGF5X3tvbixvZmZ9IGFuZApz ZXRfdGVhcl97b24sb2ZmfSBEQ1MgY29tbWFuZHMuCgpTaWduZWQtb2ZmLWJ5OiBZb3VuZ0p1biBD aG8gPHlqNDQuY2hvQHNhbXN1bmcuY29tPgpbdHJlZGluZzoga2VybmVsZG9jIGFuZCBvdGhlciBt aW5vciBjbGVhbnVwXQpTaWduZWQtb2ZmLWJ5OiBUaGllcnJ5IFJlZGluZyA8dHJlZGluZ0Budmlk aWEuY29tPgotLS0KIGRyaXZlcnMvZ3B1L2RybS9kcm1fbWlwaV9kc2kuYyB8IDExOCArKysrKysr KysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKwogaW5jbHVkZS9kcm0vZHJtX21pcGlf ZHNpLmggICAgIHwgIDE5ICsrKysrKysKIDIgZmlsZXMgY2hhbmdlZCwgMTM3IGluc2VydGlvbnMo KykKCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vZHJtX21pcGlfZHNpLmMgYi9kcml2ZXJz L2dwdS9kcm0vZHJtX21pcGlfZHNpLmMKaW5kZXggYWVlNzk2MjQwMWZkLi43YTcyMTdlZTAzYWYg MTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9kcm1fbWlwaV9kc2kuYworKysgYi9kcml2ZXJz L2dwdS9kcm0vZHJtX21pcGlfZHNpLmMKQEAgLTQ4MSw2ICs0ODEsMTI0IEBAIHNzaXplX3QgbWlw aV9kc2lfZGNzX3JlYWQoc3RydWN0IG1pcGlfZHNpX2RldmljZSAqZHNpLCB1OCBjbWQsIHZvaWQg KmRhdGEsCiB9CiBFWFBPUlRfU1lNQk9MKG1pcGlfZHNpX2Rjc19yZWFkKTsKIAorLyoqCisgKiBt aXBpX2RzaV9kY3NfZW50ZXJfc2xlZXBfbW9kZSgpIC0gZGlzYWJsZSBhbGwgdW5uZWNlc3Nhcnkg YmxvY2tzIGluc2lkZSB0aGUKKyAqICAgIGRpc3BsYXkgbW9kdWxlIGV4Y2VwdCBpbnRlcmZhY2Ug Y29tbXVuaWNhdGlvbgorICogQGRzaTogRFNJIHBlcmlwaGVyYWwgZGV2aWNlCisgKgorICogUmV0 dXJuOiAwIG9uIHN1Y2Nlc3Mgb3IgYSBuZWdhdGl2ZSBlcnJvciBjb2RlIG9uIGZhaWx1cmUuCisg Ki8KK2ludCBtaXBpX2RzaV9kY3NfZW50ZXJfc2xlZXBfbW9kZShzdHJ1Y3QgbWlwaV9kc2lfZGV2 aWNlICpkc2kpCit7CisJc3NpemVfdCBlcnI7CisKKwllcnIgPSBtaXBpX2RzaV9kY3Nfd3JpdGUo ZHNpLCBNSVBJX0RDU19FTlRFUl9TTEVFUF9NT0RFLCBOVUxMLCAwKTsKKwlpZiAoZXJyIDwgMCkK KwkJcmV0dXJuIGVycjsKKworCXJldHVybiAwOworfQorRVhQT1JUX1NZTUJPTChtaXBpX2RzaV9k Y3NfZW50ZXJfc2xlZXBfbW9kZSk7CisKKy8qKgorICogbWlwaV9kc2lfZGNzX2V4aXRfc2xlZXBf bW9kZSgpIC0gZW5hYmxlIGFsbCBibG9ja3MgaW5zaWRlIHRoZSBkaXNwbGF5CisgKiAgICBtb2R1 bGUKKyAqIEBkc2k6IERTSSBwZXJpcGhlcmFsIGRldmljZQorICoKKyAqIFJldHVybjogMCBvbiBz dWNjZXNzIG9yIGEgbmVnYXRpdmUgZXJyb3IgY29kZSBvbiBmYWlsdXJlLgorICovCitpbnQgbWlw aV9kc2lfZGNzX2V4aXRfc2xlZXBfbW9kZShzdHJ1Y3QgbWlwaV9kc2lfZGV2aWNlICpkc2kpCit7 CisJc3NpemVfdCBlcnI7CisKKwllcnIgPSBtaXBpX2RzaV9kY3Nfd3JpdGUoZHNpLCBNSVBJX0RD U19FWElUX1NMRUVQX01PREUsIE5VTEwsIDApOworCWlmIChlcnIgPCAwKQorCQlyZXR1cm4gZXJy OworCisJcmV0dXJuIDA7Cit9CitFWFBPUlRfU1lNQk9MKG1pcGlfZHNpX2Rjc19leGl0X3NsZWVw X21vZGUpOworCisvKioKKyAqIG1pcGlfZHNpX2Rjc19zZXRfZGlzcGxheV9vZmYoKSAtIHN0b3Ag ZGlzcGxheWluZyB0aGUgaW1hZ2UgZGF0YSBvbiB0aGUKKyAqICAgIGRpc3BsYXkgZGV2aWNlCisg KiBAZHNpOiBEU0kgcGVyaXBoZXJhbCBkZXZpY2UKKyAqCisgKiBSZXR1cm46IDAgb24gc3VjY2Vz cyBvciBhIG5lZ2F0aXZlIGVycm9yIGNvZGUgb24gZmFpbHVyZS4KKyAqLworaW50IG1pcGlfZHNp X2Rjc19zZXRfZGlzcGxheV9vZmYoc3RydWN0IG1pcGlfZHNpX2RldmljZSAqZHNpKQoreworCXNz aXplX3QgZXJyOworCisJZXJyID0gbWlwaV9kc2lfZGNzX3dyaXRlKGRzaSwgTUlQSV9EQ1NfU0VU X0RJU1BMQVlfT0ZGLCBOVUxMLCAwKTsKKwlpZiAoZXJyIDwgMCkKKwkJcmV0dXJuIGVycjsKKwor CXJldHVybiAwOworfQorRVhQT1JUX1NZTUJPTChtaXBpX2RzaV9kY3Nfc2V0X2Rpc3BsYXlfb2Zm KTsKKworLyoqCisgKiBtaXBpX2RzaV9kY3Nfc2V0X2Rpc3BsYXlfb24oKSAtIHN0YXJ0IGRpc3Bs YXlpbmcgdGhlIGltYWdlIGRhdGEgb24gdGhlCisgKiAgICBkaXNwbGF5IGRldmljZQorICogQGRz aTogRFNJIHBlcmlwaGVyYWwgZGV2aWNlCisgKgorICogUmV0dXJuOiAwIG9uIHN1Y2Nlc3Mgb3Ig YSBuZWdhdGl2ZSBlcnJvciBjb2RlIG9uIGZhaWx1cmUKKyAqLworaW50IG1pcGlfZHNpX2Rjc19z ZXRfZGlzcGxheV9vbihzdHJ1Y3QgbWlwaV9kc2lfZGV2aWNlICpkc2kpCit7CisJc3NpemVfdCBl cnI7CisKKwllcnIgPSBtaXBpX2RzaV9kY3Nfd3JpdGUoZHNpLCBNSVBJX0RDU19TRVRfRElTUExB WV9PTiwgTlVMTCwgMCk7CisJaWYgKGVyciA8IDApCisJCXJldHVybiBlcnI7CisKKwlyZXR1cm4g MDsKK30KK0VYUE9SVF9TWU1CT0wobWlwaV9kc2lfZGNzX3NldF9kaXNwbGF5X29uKTsKKworLyoq CisgKiBtaXBpX2RzaV9kY3Nfc2V0X3RlYXJfb2ZmKCkgLSB0dXJuIG9mZiB0aGUgZGlzcGxheSBt b2R1bGUncyBUZWFyaW5nIEVmZmVjdAorICogICAgb3V0cHV0IHNpZ25hbCBvbiB0aGUgVEUgc2ln bmFsIGxpbmUKKyAqIEBkc2k6IERTSSBwZXJpcGhlcmFsIGRldmljZQorICoKKyAqIFJldHVybjog MCBvbiBzdWNjZXNzIG9yIGEgbmVnYXRpdmUgZXJyb3IgY29kZSBvbiBmYWlsdXJlCisgKi8KK2lu dCBtaXBpX2RzaV9kY3Nfc2V0X3RlYXJfb2ZmKHN0cnVjdCBtaXBpX2RzaV9kZXZpY2UgKmRzaSkK K3sKKwlzc2l6ZV90IGVycjsKKworCWVyciA9IG1pcGlfZHNpX2Rjc193cml0ZShkc2ksIE1JUElf RENTX1NFVF9URUFSX09GRiwgTlVMTCwgMCk7CisJaWYgKGVyciA8IDApCisJCXJldHVybiBlcnI7 CisKKwlyZXR1cm4gMDsKK30KK0VYUE9SVF9TWU1CT0wobWlwaV9kc2lfZGNzX3NldF90ZWFyX29m Zik7CisKKy8qKgorICogbWlwaV9kc2lfZGNzX3NldF90ZWFyX29uKCkgLSB0dXJuIG9uIHRoZSBk aXNwbGF5IG1vZHVsZSdzIFRlYXJpbmcgRWZmZWN0CisgKiAgICBvdXRwdXQgc2lnbmFsIG9uIHRo ZSBURSBzaWduYWwgbGluZS4KKyAqIEBkc2k6IERTSSBwZXJpcGhlcmFsIGRldmljZQorICogQG1v ZGU6IHRoZSBUZWFyaW5nIEVmZmVjdCBPdXRwdXQgTGluZSBtb2RlCisgKgorICogUmV0dXJuOiAw IG9uIHN1Y2Nlc3Mgb3IgYSBuZWdhdGl2ZSBlcnJvciBjb2RlIG9uIGZhaWx1cmUKKyAqLworaW50 IG1pcGlfZHNpX2Rjc19zZXRfdGVhcl9vbihzdHJ1Y3QgbWlwaV9kc2lfZGV2aWNlICpkc2ksCisJ CQkgICAgIGVudW0gbWlwaV9kc2lfZGNzX3RlYXJfbW9kZSBtb2RlKQoreworCXU4IHZhbHVlID0g bW9kZTsKKwlzc2l6ZV90IGVycjsKKworCWVyciA9IG1pcGlfZHNpX2Rjc193cml0ZShkc2ksIE1J UElfRENTX1NFVF9URUFSX09OLCAmdmFsdWUsCisJCQkJIHNpemVvZih2YWx1ZSkpOworCWlmIChl cnIgPCAwKQorCQlyZXR1cm4gZXJyOworCisJcmV0dXJuIDA7Cit9CitFWFBPUlRfU1lNQk9MKG1p cGlfZHNpX2Rjc19zZXRfdGVhcl9vbik7CisKIHN0YXRpYyBpbnQgbWlwaV9kc2lfZHJ2X3Byb2Jl KHN0cnVjdCBkZXZpY2UgKmRldikKIHsKIAlzdHJ1Y3QgbWlwaV9kc2lfZHJpdmVyICpkcnYgPSB0 b19taXBpX2RzaV9kcml2ZXIoZGV2LT5kcml2ZXIpOwpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9kcm0v ZHJtX21pcGlfZHNpLmggYi9pbmNsdWRlL2RybS9kcm1fbWlwaV9kc2kuaAppbmRleCA3YjdiZjg5 NWUxYjIuLmQ4NDQyOTExMWFjNCAxMDA2NDQKLS0tIGEvaW5jbHVkZS9kcm0vZHJtX21pcGlfZHNp LmgKKysrIGIvaW5jbHVkZS9kcm0vZHJtX21pcGlfZHNpLmgKQEAgLTE1OCwxMiArMTU4LDMxIEBA IHNzaXplX3QgbWlwaV9kc2lfZ2VuZXJpY193cml0ZShzdHJ1Y3QgbWlwaV9kc2lfZGV2aWNlICpk c2ksIGNvbnN0IHZvaWQgKnBheWxvYWQsCiBzc2l6ZV90IG1pcGlfZHNpX2dlbmVyaWNfcmVhZChz dHJ1Y3QgbWlwaV9kc2lfZGV2aWNlICpkc2ksIGNvbnN0IHZvaWQgKnBhcmFtcywKIAkJCSAgICAg IHNpemVfdCBudW1fcGFyYW1zLCB2b2lkICpkYXRhLCBzaXplX3Qgc2l6ZSk7CiAKKy8qKgorICog ZW51bSBtaXBpX2RzaV9kY3NfdGVhcl9tb2RlIC0gVGVhcmluZyBFZmZlY3QgT3V0cHV0IExpbmUg bW9kZQorICogQE1JUElfRFNJX0RDU19URUFSX01PREVfVkJMQU5LOiB0aGUgVEUgb3V0cHV0IGxp bmUgY29uc2lzdHMgb2YgVi1CbGFua2luZworICogICAgaW5mb3JtYXRpb24gb25seQorICogQE1J UElfRFNJX0RDU19URUFSX01PREVfVkhCTEFOSyA6IHRoZSBURSBvdXRwdXQgbGluZSBjb25zaXN0 cyBvZiBib3RoCisgKiAgICBWLUJsYW5raW5nIGFuZCBILUJsYW5raW5nIGluZm9ybWF0aW9uCisg Ki8KK2VudW0gbWlwaV9kc2lfZGNzX3RlYXJfbW9kZSB7CisJTUlQSV9EU0lfRENTX1RFQVJfTU9E RV9WQkxBTkssCisJTUlQSV9EU0lfRENTX1RFQVJfTU9ERV9WSEJMQU5LLAorfTsKKwogc3NpemVf dCBtaXBpX2RzaV9kY3Nfd3JpdGVfYnVmZmVyKHN0cnVjdCBtaXBpX2RzaV9kZXZpY2UgKmRzaSwK IAkJCQkgIGNvbnN0IHZvaWQgKmRhdGEsIHNpemVfdCBsZW4pOwogc3NpemVfdCBtaXBpX2RzaV9k Y3Nfd3JpdGUoc3RydWN0IG1pcGlfZHNpX2RldmljZSAqZHNpLCB1OCBjbWQsCiAJCQkgICBjb25z dCB2b2lkICpkYXRhLCBzaXplX3QgbGVuKTsKIHNzaXplX3QgbWlwaV9kc2lfZGNzX3JlYWQoc3Ry dWN0IG1pcGlfZHNpX2RldmljZSAqZHNpLCB1OCBjbWQsIHZvaWQgKmRhdGEsCiAJCQkgIHNpemVf dCBsZW4pOworaW50IG1pcGlfZHNpX2Rjc19lbnRlcl9zbGVlcF9tb2RlKHN0cnVjdCBtaXBpX2Rz aV9kZXZpY2UgKmRzaSk7CitpbnQgbWlwaV9kc2lfZGNzX2V4aXRfc2xlZXBfbW9kZShzdHJ1Y3Qg bWlwaV9kc2lfZGV2aWNlICpkc2kpOworaW50IG1pcGlfZHNpX2Rjc19zZXRfZGlzcGxheV9vZmYo c3RydWN0IG1pcGlfZHNpX2RldmljZSAqZHNpKTsKK2ludCBtaXBpX2RzaV9kY3Nfc2V0X2Rpc3Bs YXlfb24oc3RydWN0IG1pcGlfZHNpX2RldmljZSAqZHNpKTsKK2ludCBtaXBpX2RzaV9kY3Nfc2V0 X3RlYXJfb2ZmKHN0cnVjdCBtaXBpX2RzaV9kZXZpY2UgKmRzaSk7CitpbnQgbWlwaV9kc2lfZGNz X3NldF90ZWFyX29uKHN0cnVjdCBtaXBpX2RzaV9kZXZpY2UgKmRzaSwKKwkJCSAgICAgZW51bSBt aXBpX2RzaV9kY3NfdGVhcl9tb2RlIG1vZGUpOwogCiAvKioKICAqIHN0cnVjdCBtaXBpX2RzaV9k cml2ZXIgLSBEU0kgZHJpdmVyCi0tIAoyLjEuMgoKX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX18KZHJpLWRldmVsIG1haWxpbmcgbGlzdApkcmktZGV2ZWxAbGlz dHMuZnJlZWRlc2t0b3Aub3JnCmh0dHA6Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1hbi9s aXN0aW5mby9kcmktZGV2ZWwK