From mboxrd@z Thu Jan 1 00:00:00 1970 From: Thierry Reding Subject: [PATCH v4 07/16] drm/dsi: Implement generic read and write commands Date: Mon, 3 Nov 2014 10:13:32 +0100 Message-ID: <1415006021-29313-7-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-f174.google.com (mail-pd0-f174.google.com [209.85.192.174]) by gabe.freedesktop.org (Postfix) with ESMTP id 5004B6E3FE for ; Mon, 3 Nov 2014 01:14:23 -0800 (PST) Received: by mail-pd0-f174.google.com with SMTP id p10so11064371pdj.5 for ; Mon, 03 Nov 2014 01:14:23 -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 RnJvbTogVGhpZXJyeSBSZWRpbmcgPHRyZWRpbmdAbnZpZGlhLmNvbT4KCkltcGxlbWVudCBnZW5l cmljIHJlYWQgYW5kIHdyaXRlIGNvbW1hbmRzLiBTZWxlY3Rpb24gb2YgdGhlIHByb3BlciBkYXRh CnR5cGUgZm9yIHBhY2tldHMgaXMgZG9uZSBhdXRvbWF0aWNhbGx5IGJhc2VkIG9uIHRoZSBudW1i ZXIgb2YgcGFyYW1ldGVycwpvciBwYXlsb2FkIGxlbmd0aC4KClNpZ25lZC1vZmYtYnk6IFRoaWVy cnkgUmVkaW5nIDx0cmVkaW5nQG52aWRpYS5jb20+Ci0tLQpDaGFuZ2VzIGluIHY0OgotIGRvIG5v dCBoYW5kbGUgcHJvdG9jb2wtbGV2ZWwgZGV0YWlscyBpbiBnZW5lcmljIHJlYWQvd3JpdGUKCkNo YW5nZXMgaW4gdjM6Ci0gdXNlIGNvbW1vbiBoZWxwZXIgdG8gc2ltcGxpZnkgY29kZQoKIGRyaXZl cnMvZ3B1L2RybS9kcm1fbWlwaV9kc2kuYyB8IDg5ICsrKysrKysrKysrKysrKysrKysrKysrKysr KysrKysrKysrKysrKysrKwogaW5jbHVkZS9kcm0vZHJtX21pcGlfZHNpLmggICAgIHwgIDYgKysr CiAyIGZpbGVzIGNoYW5nZWQsIDk1IGluc2VydGlvbnMoKykKCmRpZmYgLS1naXQgYS9kcml2ZXJz L2dwdS9kcm0vZHJtX21pcGlfZHNpLmMgYi9kcml2ZXJzL2dwdS9kcm0vZHJtX21pcGlfZHNpLmMK aW5kZXggNjQwY2FiY2Q2YzFmLi5hZWU3OTYyNDAxZmQgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1 L2RybS9kcm1fbWlwaV9kc2kuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vZHJtX21pcGlfZHNpLmMK QEAgLTI4Miw2ICsyODIsOTUgQEAgaW50IG1pcGlfZHNpX3NldF9tYXhpbXVtX3JldHVybl9wYWNr ZXRfc2l6ZShzdHJ1Y3QgbWlwaV9kc2lfZGV2aWNlICpkc2ksCiBFWFBPUlRfU1lNQk9MKG1pcGlf ZHNpX3NldF9tYXhpbXVtX3JldHVybl9wYWNrZXRfc2l6ZSk7CiAKIC8qKgorICogbWlwaV9kc2lf Z2VuZXJpY193cml0ZSgpIC0gdHJhbnNtaXQgZGF0YSB1c2luZyBhIGdlbmVyaWMgd3JpdGUgcGFj a2V0CisgKiBAZHNpOiBEU0kgcGVyaXBoZXJhbCBkZXZpY2UKKyAqIEBwYXlsb2FkOiBidWZmZXIg Y29udGFpbmluZyB0aGUgcGF5bG9hZAorICogQHNpemU6IHNpemUgb2YgcGF5bG9hZCBidWZmZXIK KyAqCisgKiBUaGlzIGZ1bmN0aW9uIHdpbGwgYXV0b21hdGljYWxseSBjaG9vc2UgdGhlIHJpZ2h0 IGRhdGEgdHlwZSBkZXBlbmRpbmcgb24KKyAqIHRoZSBwYXlsb2FkIGxlbmd0aC4KKyAqCisgKiBS ZXR1cm46IFRoZSBudW1iZXIgb2YgYnl0ZXMgdHJhbnNtaXR0ZWQgb24gc3VjY2VzcyBvciBhIG5l Z2F0aXZlIGVycm9yIGNvZGUKKyAqIG9uIGZhaWx1cmUuCisgKi8KK3NzaXplX3QgbWlwaV9kc2lf Z2VuZXJpY193cml0ZShzdHJ1Y3QgbWlwaV9kc2lfZGV2aWNlICpkc2ksIGNvbnN0IHZvaWQgKnBh eWxvYWQsCisJCQkgICAgICAgc2l6ZV90IHNpemUpCit7CisJc3RydWN0IG1pcGlfZHNpX21zZyBt c2cgPSB7CisJCS5jaGFubmVsID0gZHNpLT5jaGFubmVsLAorCQkudHhfYnVmID0gcGF5bG9hZCwK KwkJLnR4X2xlbiA9IHNpemUKKwl9OworCisJc3dpdGNoIChzaXplKSB7CisJY2FzZSAwOgorCQlt c2cudHlwZSA9IE1JUElfRFNJX0dFTkVSSUNfU0hPUlRfV1JJVEVfMF9QQVJBTTsKKwkJYnJlYWs7 CisKKwljYXNlIDE6CisJCW1zZy50eXBlID0gTUlQSV9EU0lfR0VORVJJQ19TSE9SVF9XUklURV8x X1BBUkFNOworCQlicmVhazsKKworCWNhc2UgMjoKKwkJbXNnLnR5cGUgPSBNSVBJX0RTSV9HRU5F UklDX1NIT1JUX1dSSVRFXzJfUEFSQU07CisJCWJyZWFrOworCisJZGVmYXVsdDoKKwkJbXNnLnR5 cGUgPSBNSVBJX0RTSV9HRU5FUklDX0xPTkdfV1JJVEU7CisJCWJyZWFrOworCX0KKworCXJldHVy biBtaXBpX2RzaV9kZXZpY2VfdHJhbnNmZXIoZHNpLCAmbXNnKTsKK30KK0VYUE9SVF9TWU1CT0wo bWlwaV9kc2lfZ2VuZXJpY193cml0ZSk7CisKKy8qKgorICogbWlwaV9kc2lfZ2VuZXJpY19yZWFk KCkgLSByZWNlaXZlIGRhdGEgdXNpbmcgYSBnZW5lcmljIHJlYWQgcGFja2V0CisgKiBAZHNpOiBE U0kgcGVyaXBoZXJhbCBkZXZpY2UKKyAqIEBwYXJhbXM6IGJ1ZmZlciBjb250YWluaW5nIHRoZSBy ZXF1ZXN0IHBhcmFtZXRlcnMKKyAqIEBudW1fcGFyYW1zOiBudW1iZXIgb2YgcmVxdWVzdCBwYXJh bWV0ZXJzCisgKiBAZGF0YTogYnVmZmVyIGluIHdoaWNoIHRvIHJldHVybiB0aGUgcmVjZWl2ZWQg ZGF0YQorICogQHNpemU6IHNpemUgb2YgcmVjZWl2ZSBidWZmZXIKKyAqCisgKiBUaGlzIGZ1bmN0 aW9uIHdpbGwgYXV0b21hdGljYWxseSBjaG9vc2UgdGhlIHJpZ2h0IGRhdGEgdHlwZSBkZXBlbmRp bmcgb24KKyAqIHRoZSBudW1iZXIgb2YgcGFyYW1ldGVycyBwYXNzZWQgaW4uCisgKgorICogUmV0 dXJuOiBUaGUgbnVtYmVyIG9mIGJ5dGVzIHN1Y2Nlc3NmdWxseSByZWFkIG9yIGEgbmVnYXRpdmUg ZXJyb3IgY29kZSBvbgorICogZmFpbHVyZS4KKyAqLworc3NpemVfdCBtaXBpX2RzaV9nZW5lcmlj X3JlYWQoc3RydWN0IG1pcGlfZHNpX2RldmljZSAqZHNpLCBjb25zdCB2b2lkICpwYXJhbXMsCisJ CQkgICAgICBzaXplX3QgbnVtX3BhcmFtcywgdm9pZCAqZGF0YSwgc2l6ZV90IHNpemUpCit7CisJ c3RydWN0IG1pcGlfZHNpX21zZyBtc2cgPSB7CisJCS5jaGFubmVsID0gZHNpLT5jaGFubmVsLAor CQkudHhfbGVuID0gbnVtX3BhcmFtcywKKwkJLnR4X2J1ZiA9IHBhcmFtcywKKwkJLnJ4X2xlbiA9 IHNpemUsCisJCS5yeF9idWYgPSBkYXRhCisJfTsKKworCXN3aXRjaCAobnVtX3BhcmFtcykgewor CWNhc2UgMDoKKwkJbXNnLnR5cGUgPSBNSVBJX0RTSV9HRU5FUklDX1JFQURfUkVRVUVTVF8wX1BB UkFNOworCQlicmVhazsKKworCWNhc2UgMToKKwkJbXNnLnR5cGUgPSBNSVBJX0RTSV9HRU5FUklD X1JFQURfUkVRVUVTVF8xX1BBUkFNOworCQlicmVhazsKKworCWNhc2UgMjoKKwkJbXNnLnR5cGUg PSBNSVBJX0RTSV9HRU5FUklDX1JFQURfUkVRVUVTVF8yX1BBUkFNOworCQlicmVhazsKKworCWRl ZmF1bHQ6CisJCXJldHVybiAtRUlOVkFMOworCX0KKworCXJldHVybiBtaXBpX2RzaV9kZXZpY2Vf dHJhbnNmZXIoZHNpLCAmbXNnKTsKK30KK0VYUE9SVF9TWU1CT0wobWlwaV9kc2lfZ2VuZXJpY19y ZWFkKTsKKworLyoqCiAgKiBtaXBpX2RzaV9kY3Nfd3JpdGVfYnVmZmVyKCkgLSB0cmFuc21pdCBh IERDUyBjb21tYW5kIHdpdGggcGF5bG9hZAogICogQGRzaTogRFNJIHBlcmlwaGVyYWwgZGV2aWNl CiAgKiBAZGF0YTogYnVmZmVyIGNvbnRhaW5pbmcgZGF0YSB0byBiZSB0cmFuc21pdHRlZApkaWZm IC0tZ2l0IGEvaW5jbHVkZS9kcm0vZHJtX21pcGlfZHNpLmggYi9pbmNsdWRlL2RybS9kcm1fbWlw aV9kc2kuaAppbmRleCBiYWI2NzA5OTg3MmIuLjdiN2JmODk1ZTFiMiAxMDA2NDQKLS0tIGEvaW5j bHVkZS9kcm0vZHJtX21pcGlfZHNpLmgKKysrIGIvaW5jbHVkZS9kcm0vZHJtX21pcGlfZHNpLmgK QEAgLTE1Miw2ICsxNTIsMTIgQEAgaW50IG1pcGlfZHNpX2F0dGFjaChzdHJ1Y3QgbWlwaV9kc2lf ZGV2aWNlICpkc2kpOwogaW50IG1pcGlfZHNpX2RldGFjaChzdHJ1Y3QgbWlwaV9kc2lfZGV2aWNl ICpkc2kpOwogaW50IG1pcGlfZHNpX3NldF9tYXhpbXVtX3JldHVybl9wYWNrZXRfc2l6ZShzdHJ1 Y3QgbWlwaV9kc2lfZGV2aWNlICpkc2ksCiAJCQkJCSAgICB1MTYgdmFsdWUpOworCitzc2l6ZV90 IG1pcGlfZHNpX2dlbmVyaWNfd3JpdGUoc3RydWN0IG1pcGlfZHNpX2RldmljZSAqZHNpLCBjb25z dCB2b2lkICpwYXlsb2FkLAorCQkJICAgICAgIHNpemVfdCBzaXplKTsKK3NzaXplX3QgbWlwaV9k c2lfZ2VuZXJpY19yZWFkKHN0cnVjdCBtaXBpX2RzaV9kZXZpY2UgKmRzaSwgY29uc3Qgdm9pZCAq cGFyYW1zLAorCQkJICAgICAgc2l6ZV90IG51bV9wYXJhbXMsIHZvaWQgKmRhdGEsIHNpemVfdCBz aXplKTsKKwogc3NpemVfdCBtaXBpX2RzaV9kY3Nfd3JpdGVfYnVmZmVyKHN0cnVjdCBtaXBpX2Rz aV9kZXZpY2UgKmRzaSwKIAkJCQkgIGNvbnN0IHZvaWQgKmRhdGEsIHNpemVfdCBsZW4pOwogc3Np emVfdCBtaXBpX2RzaV9kY3Nfd3JpdGUoc3RydWN0IG1pcGlfZHNpX2RldmljZSAqZHNpLCB1OCBj bWQsCi0tIAoyLjEuMgoKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX18KZHJpLWRldmVsIG1haWxpbmcgbGlzdApkcmktZGV2ZWxAbGlzdHMuZnJlZWRlc2t0b3Au b3JnCmh0dHA6Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0aW5mby9kcmktZGV2 ZWwK