From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-6.5 required=3.0 tests=DKIM_INVALID,DKIM_SIGNED, HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_PATCH,MAILING_LIST_MULTI,SIGNED_OFF_BY, SPF_HELO_NONE,SPF_PASS autolearn=ham autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id D59F3C433DF for ; Sun, 7 Jun 2020 19:13:28 +0000 (UTC) Received: from gabe.freedesktop.org (gabe.freedesktop.org [131.252.210.177]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPS id A7F26206D5 for ; Sun, 7 Jun 2020 19:13:28 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=fail reason="signature verification failed" (1024-bit key) header.d=crapouillou.net header.i=@crapouillou.net header.b="P2uLhfqG" DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org A7F26206D5 Authentication-Results: mail.kernel.org; dmarc=fail (p=none dis=none) header.from=crapouillou.net Authentication-Results: mail.kernel.org; spf=none smtp.mailfrom=dri-devel-bounces@lists.freedesktop.org Received: from gabe.freedesktop.org (localhost [127.0.0.1]) by gabe.freedesktop.org (Postfix) with ESMTP id D36D66E391; Sun, 7 Jun 2020 19:13:02 +0000 (UTC) Received: from crapouillou.net (outils.crapouillou.net [89.234.176.41]) by gabe.freedesktop.org (Postfix) with ESMTPS id 3EFA16E123 for ; Sun, 7 Jun 2020 13:39:10 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=crapouillou.net; s=mail; t=1591537135; h=from:from:sender:reply-to:subject:subject:date:date: message-id:message-id:to:to:cc:cc:mime-version:mime-version: content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=KzRVUml0maXfgFVq+MitCsYwSMuF5r+FxpSe47uLMi8=; b=P2uLhfqGzC9wEIm/6Szi8vmSZW6nCycQu4lIb1AehFYyY/ld0I99gKnqWNC3bomoL73c2v QntrwuI0Q7jR0Ot+gD1UQRkutMu4/4eaeeZRj6r+wba1E+kLkC9xDNhRbrrOiwu4Kpo9tC b3+cRS9Ch9kAhG6VlgV8FA1WQPB8Llk= From: Paul Cercueil To: =?UTF-8?q?Noralf=20Tr=C3=B8nnes?= , Emil Velikov , Daniel Vetter , Sam Ravnborg Subject: [RFC PATCH 2/4] gpu/drm: Add SPI DBI host driver Date: Sun, 7 Jun 2020 15:38:30 +0200 Message-Id: <20200607133832.1730288-3-paul@crapouillou.net> In-Reply-To: <20200607133832.1730288-1-paul@crapouillou.net> References: <20200607133832.1730288-1-paul@crapouillou.net> MIME-Version: 1.0 X-Mailman-Approved-At: Sun, 07 Jun 2020 19:13:00 +0000 X-BeenThere: dri-devel@lists.freedesktop.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Direct Rendering Infrastructure - Development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: Paul Cercueil , od@zcrc.me, dri-devel Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" VGhpcyBkcml2ZXIgd2lsbCByZWdpc3RlciBhIERCSSBob3N0IGRyaXZlciBmb3IgcGFuZWxzIGNv bm5lY3RlZCBvdmVyClNQSS4KCkZvciBub3csIG9ubHkgREJJIHR5cGUgYzMgaXMgc3VwcG9ydGVk LCB3aGljaCBpcyBhIFNQSSBwcm90b2NvbCB3aXRoIDgKYml0cyBwZXIgd29yZCwgd2l0aCB0aGUg ZGF0YS9jb21tYW5kIGluZm9ybWF0aW9uIGNhcnJpZWQgYnkgYSBzZXBhcmF0ZQpHUElPLgoKU2ln bmVkLW9mZi1ieTogUGF1bCBDZXJjdWVpbCA8cGF1bEBjcmFwb3VpbGxvdS5uZXQ+Ci0tLQogZHJp dmVycy9ncHUvZHJtL2JyaWRnZS9LY29uZmlnICAgfCAgIDggKysKIGRyaXZlcnMvZ3B1L2RybS9i cmlkZ2UvTWFrZWZpbGUgIHwgICAxICsKIGRyaXZlcnMvZ3B1L2RybS9icmlkZ2UvZGJpLXNwaS5j IHwgMTU5ICsrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysKIDMgZmlsZXMgY2hhbmdlZCwg MTY4IGluc2VydGlvbnMoKykKIGNyZWF0ZSBtb2RlIDEwMDY0NCBkcml2ZXJzL2dwdS9kcm0vYnJp ZGdlL2RiaS1zcGkuYwoKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9icmlkZ2UvS2NvbmZp ZyBiL2RyaXZlcnMvZ3B1L2RybS9icmlkZ2UvS2NvbmZpZwppbmRleCBhYWVkMjM0N2FjZTkuLjYx NTg3YmM0ZDZlNiAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2JyaWRnZS9LY29uZmlnCisr KyBiL2RyaXZlcnMvZ3B1L2RybS9icmlkZ2UvS2NvbmZpZwpAQCAtMTgwLDYgKzE4MCwxNCBAQCBj b25maWcgRFJNX1RJX1RQRDEyUzAxNQogCSAgVGV4YXMgSW5zdHJ1bWVudHMgVFBEMTJTMDE1IEhE TUkgbGV2ZWwgc2hpZnRlciBhbmQgRVNEIHByb3RlY3Rpb24KIAkgIGRyaXZlci4KIAorY29uZmln IERSTV9NSVBJX0RCSV9TUEkKKwl0cmlzdGF0ZSAiU1BJIGhvc3Qgc3VwcG9ydCBmb3IgTUlQSSBE QkkiCisJZGVwZW5kcyBvbiBPRiAmJiBTUEkKKwlzZWxlY3QgRFJNX01JUElfRFNJCisJc2VsZWN0 IERSTV9NSVBJX0RCSQorCWhlbHAKKwkgIERyaXZlciB0byBzdXBwb3J0IERCSSBvdmVyIFNQSS4K Kwogc291cmNlICJkcml2ZXJzL2dwdS9kcm0vYnJpZGdlL2FuYWxvZ2l4L0tjb25maWciCiAKIHNv dXJjZSAiZHJpdmVycy9ncHUvZHJtL2JyaWRnZS9hZHY3NTExL0tjb25maWciCmRpZmYgLS1naXQg YS9kcml2ZXJzL2dwdS9kcm0vYnJpZGdlL01ha2VmaWxlIGIvZHJpdmVycy9ncHUvZHJtL2JyaWRn ZS9NYWtlZmlsZQppbmRleCA2ZmIwNjJiNWIwZjAuLjE3ZmRmN2RlNDk4ZCAxMDA2NDQKLS0tIGEv ZHJpdmVycy9ncHUvZHJtL2JyaWRnZS9NYWtlZmlsZQorKysgYi9kcml2ZXJzL2dwdS9kcm0vYnJp ZGdlL01ha2VmaWxlCkBAIC0xOCw2ICsxOCw3IEBAIG9iai0kKENPTkZJR19EUk1fSTJDX0FEVjc1 MTEpICs9IGFkdjc1MTEvCiBvYmotJChDT05GSUdfRFJNX1RJX1NONjVEU0k4NikgKz0gdGktc242 NWRzaTg2Lm8KIG9iai0kKENPTkZJR19EUk1fVElfVEZQNDEwKSArPSB0aS10ZnA0MTAubwogb2Jq LSQoQ09ORklHX0RSTV9USV9UUEQxMlMwMTUpICs9IHRpLXRwZDEyczAxNS5vCitvYmotJChDT05G SUdfRFJNX01JUElfREJJX1NQSSkgKz0gZGJpLXNwaS5vCiAKIG9iai15ICs9IGFuYWxvZ2l4Lwog b2JqLXkgKz0gc3lub3BzeXMvCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vYnJpZGdlL2Ri aS1zcGkuYyBiL2RyaXZlcnMvZ3B1L2RybS9icmlkZ2UvZGJpLXNwaS5jCm5ldyBmaWxlIG1vZGUg MTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMC4uYzc5MDUxNGI3MzcyCi0tLSAvZGV2L251bGwKKysr IGIvZHJpdmVycy9ncHUvZHJtL2JyaWRnZS9kYmktc3BpLmMKQEAgLTAsMCArMSwxNTkgQEAKKy8v IFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBHUEwtMi4wLW9yLWxhdGVyCisvKgorICogTUlQSSBE aXNwbGF5IEJ1cyBJbnRlcmZhY2UgKERCSSkgU1BJIHN1cHBvcnQKKyAqCisgKiBDb3B5cmlnaHQg MjAxNiBOb3JhbGYgVHLDuG5uZXMKKyAqIENvcHlyaWdodCAyMDIwIFBhdWwgQ2VyY3VlaWwgPHBh dWxAY3JhcG91aWxsb3UubmV0PgorICovCisKKyNpbmNsdWRlIDxsaW51eC9ncGlvL2NvbnN1bWVy Lmg+CisjaW5jbHVkZSA8bGludXgvbW9kdWxlLmg+CisjaW5jbHVkZSA8bGludXgvc3BpL3NwaS5o PgorCisjaW5jbHVkZSA8ZHJtL2RybV9taXBpX2RiaS5oPgorI2luY2x1ZGUgPGRybS9kcm1fbWlw aV9kc2kuaD4KKworI2luY2x1ZGUgPHZpZGVvL21pcGlfZGlzcGxheS5oPgorCitzdHJ1Y3QgZGJp X3NwaSB7CisJc3RydWN0IG1pcGlfZHNpX2hvc3QgaG9zdDsKKwlzdHJ1Y3QgbWlwaV9kc2lfaG9z dF9vcHMgaG9zdF9vcHM7CisKKwlzdHJ1Y3Qgc3BpX2RldmljZSAqc3BpOworCXN0cnVjdCBncGlv X2Rlc2MgKmRjOworCXN0cnVjdCBtdXRleCBjbWRsb2NrOworfTsKKworc3RhdGljIGlubGluZSBz dHJ1Y3QgZGJpX3NwaSAqaG9zdF90b19kYmlfc3BpKHN0cnVjdCBtaXBpX2RzaV9ob3N0ICpob3N0 KQoreworCXJldHVybiBjb250YWluZXJfb2YoaG9zdCwgc3RydWN0IGRiaV9zcGksIGhvc3QpOwor fQorCitzdGF0aWMgc3NpemVfdCBkYmlfc3BpX3RyYW5zZmVyKHN0cnVjdCBtaXBpX2RzaV9ob3N0 ICpob3N0LAorCQkJCWNvbnN0IHN0cnVjdCBtaXBpX2RzaV9tc2cgKm1zZykKK3sKKwlzdHJ1Y3Qg ZGJpX3NwaSAqZGJpID0gaG9zdF90b19kYmlfc3BpKGhvc3QpOworCXN0cnVjdCBzcGlfZGV2aWNl ICpzcGkgPSBkYmktPnNwaTsKKwljb25zdCB1OCAqYnVmID0gbXNnLT50eF9idWY7CisJdW5zaWdu ZWQgaW50IGJwdyA9IDg7CisJdTMyIHNwZWVkX2h6OworCXNzaXplX3QgcmV0OworCisJLyogZm9y IG5vdyB3ZSBvbmx5IHN1cHBvcnQgc2VuZGluZyBtZXNzYWdlcywgbm90IHJlY2VpdmluZyAqLwor CWlmIChtc2ctPnJ4X2xlbikKKwkJcmV0dXJuIC1FTk9UU1VQUDsKKworCWdwaW9kX3NldF92YWx1 ZV9jYW5zbGVlcChkYmktPmRjLCAwKTsKKworCXNwZWVkX2h6ID0gbWlwaV9kYmlfc3BpX2NtZF9t YXhfc3BlZWQoc3BpLCAxKTsKKwlyZXQgPSBtaXBpX2RiaV9zcGlfdHJhbnNmZXIoc3BpLCBzcGVl ZF9oeiwgOCwgYnVmLCAxKTsKKwlpZiAocmV0IHx8IG1zZy0+dHhfbGVuID09IDEpCisJCXJldHVy biByZXQ7CisKKwlpZiAoYnVmWzBdID09IE1JUElfRENTX1dSSVRFX01FTU9SWV9TVEFSVCkKKwkJ YnB3ID0gMTY7CisKKwlncGlvZF9zZXRfdmFsdWVfY2Fuc2xlZXAoZGJpLT5kYywgMSk7CisJc3Bl ZWRfaHogPSBtaXBpX2RiaV9zcGlfY21kX21heF9zcGVlZChzcGksIG1zZy0+dHhfbGVuIC0gMSk7 CisKKwlyZXQgPSBtaXBpX2RiaV9zcGlfdHJhbnNmZXIoc3BpLCBzcGVlZF9oeiwgYnB3LAorCQkJ CSAgICAmYnVmWzFdLCBtc2ctPnR4X2xlbiAtIDEpOworCWlmIChyZXQpCisJCXJldHVybiByZXQ7 CisKKwlyZXR1cm4gbXNnLT50eF9sZW47Cit9CisKK3N0YXRpYyBpbnQgZGJpX3NwaV9hdHRhY2go c3RydWN0IG1pcGlfZHNpX2hvc3QgKmhvc3QsCisJCQkgIHN0cnVjdCBtaXBpX2RzaV9kZXZpY2Ug KmRzaSkKK3sKKwlyZXR1cm4gMDsgLyogTm90aGluZyB0byBkbyAqLworfQorCitzdGF0aWMgaW50 IGRiaV9zcGlfZGV0YWNoKHN0cnVjdCBtaXBpX2RzaV9ob3N0ICpob3N0LAorCQkJICBzdHJ1Y3Qg bWlwaV9kc2lfZGV2aWNlICpkc2kpCit7CisJcmV0dXJuIDA7IC8qIE5vdGhpbmcgdG8gZG8gKi8K K30KKworc3RhdGljIHZvaWQgZGJpX3NwaV9ob3N0X3VucmVnaXN0ZXIodm9pZCAqZCkKK3sKKwlt aXBpX2RzaV9ob3N0X3VucmVnaXN0ZXIoZCk7Cit9CisKK3N0YXRpYyBpbnQgZGJpX3NwaV9wcm9i ZShzdHJ1Y3Qgc3BpX2RldmljZSAqc3BpKQoreworCXN0cnVjdCBkZXZpY2UgKmRldiA9ICZzcGkt PmRldjsKKwlzdHJ1Y3QgbWlwaV9kc2lfZGV2aWNlX2luZm8gaW5mbyA9IHsgfTsKKwlzdHJ1Y3Qg bWlwaV9kc2lfZGV2aWNlICpkc2k7CisJc3RydWN0IGRiaV9zcGkgKmRiaTsKKwlpbnQgcmV0Owor CisJZGJpID0gZGV2bV9remFsbG9jKGRldiwgc2l6ZW9mKCpkYmkpLCBHRlBfS0VSTkVMKTsKKwlp ZiAoIWRiaSkKKwkJcmV0dXJuIC1FTk9NRU07CisKKwkvKiBPbmx5IERCSSBUeXBlIEMzIHN1cHBv cnRlZCBmb3Igbm93ICovCisJZGJpLT5ob3N0LmJ1c190eXBlcyA9IE1JUElfREVWSUNFX1RZUEVf REJJX1NQSV9NT0RFMzsKKworCWRiaS0+aG9zdC5kZXYgPSBkZXY7CisJZGJpLT5ob3N0Lm9wcyA9 ICZkYmktPmhvc3Rfb3BzOworCWRiaS0+c3BpID0gc3BpOworCXNwaV9zZXRfZHJ2ZGF0YShzcGks IGRiaSk7CisKKwlkYmktPmRjID0gZGV2bV9ncGlvZF9nZXQoZGV2LCAiZGMiLCBHUElPRF9PVVRf TE9XKTsKKwlpZiAoSVNfRVJSKGRiaS0+ZGMpKSB7CisJCWRldl9lcnIoZGV2LCAiRmFpbGVkIHRv IGdldCBncGlvICdkYydcbiIpOworCQlyZXR1cm4gUFRSX0VSUihkYmktPmRjKTsKKwl9CisKKwlk YmktPmhvc3Rfb3BzLnRyYW5zZmVyID0gZGJpX3NwaV90cmFuc2ZlcjsKKwlkYmktPmhvc3Rfb3Bz LmF0dGFjaCA9IGRiaV9zcGlfYXR0YWNoOworCWRiaS0+aG9zdF9vcHMuZGV0YWNoID0gZGJpX3Nw aV9kZXRhY2g7CisKKwltdXRleF9pbml0KCZkYmktPmNtZGxvY2spOworCisJcmV0ID0gbWlwaV9k c2lfaG9zdF9yZWdpc3RlcigmZGJpLT5ob3N0KTsKKwlpZiAocmV0KSB7CisJCWRldl9lcnIoZGV2 LCAiVW5hYmxlIHRvIHJlZ2lzdGVyIERTSSBob3N0XG4iKTsKKwkJcmV0dXJuIHJldDsKKwl9CisK KwlyZXQgPSBkZXZtX2FkZF9hY3Rpb25fb3JfcmVzZXQoZGV2LCBkYmlfc3BpX2hvc3RfdW5yZWdp c3RlciwgJmRiaS0+aG9zdCk7CisJaWYgKHJldCkKKwkJcmV0dXJuIHJldDsKKworCS8qCisJICog UmVnaXN0ZXIgb3VyIG93biBub2RlIGFzIGEgTUlQSSBEU0kgZGV2aWNlLgorCSAqIFRoaXMgZW5z dXJlcyB0aGF0IHRoZSBwYW5lbCBkcml2ZXIgd2lsbCBiZSBwcm9iZWQuCisJICovCisJaW5mby5j aGFubmVsID0gMDsKKwlpbmZvLm5vZGUgPSBvZl9ub2RlX2dldChkZXYtPm9mX25vZGUpOworCisJ ZHNpID0gbWlwaV9kc2lfZGV2aWNlX3JlZ2lzdGVyX2Z1bGwoJmRiaS0+aG9zdCwgJmluZm8pOwor CWlmIChJU19FUlIoZHNpKSkgeworCQlkZXZfZXJyKGRldiwgIkZhaWxlZCB0byBhZGQgRFNJIGRl dmljZVxuIik7CisJCXJldHVybiBQVFJfRVJSKGRzaSk7CisJfQorCisJcmV0dXJuIDA7Cit9CisK K3N0YXRpYyBjb25zdCBzdHJ1Y3Qgb2ZfZGV2aWNlX2lkIGRiaV9zcGlfb2ZfbWF0Y2hbXSA9IHsK Kwl7IC5jb21wYXRpYmxlID0gImFkYWZydWl0LHl4MjQwcXYyOSIgfSwKKwl7IH0KK307CitNT0RV TEVfREVWSUNFX1RBQkxFKG9mLCBkYmlfc3BpX29mX21hdGNoKTsKKworc3RhdGljIHN0cnVjdCBz cGlfZHJpdmVyIGRiaV9zcGlfZHJpdmVyID0geworCS5kcml2ZXIgPSB7CisJCS5uYW1lID0gImRi aS1zcGkiLAorCQkub2ZfbWF0Y2hfdGFibGUgPSBkYmlfc3BpX29mX21hdGNoLAorCX0sCisJLnBy b2JlID0gZGJpX3NwaV9wcm9iZSwKK307Cittb2R1bGVfc3BpX2RyaXZlcihkYmlfc3BpX2RyaXZl cik7CisKK01PRFVMRV9ERVNDUklQVElPTigiREJJIFNQSSBidXMgZHJpdmVyIik7CitNT0RVTEVf QVVUSE9SKCJQYXVsIENlcmN1ZWlsIDxwYXVsQGNyYXBvdWlsbG91Lm5ldD4iKTsKK01PRFVMRV9M SUNFTlNFKCJHUEwiKTsKLS0gCjIuMjYuMgoKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX18KZHJpLWRldmVsIG1haWxpbmcgbGlzdApkcmktZGV2ZWxAbGlzdHMu ZnJlZWRlc2t0b3Aub3JnCmh0dHBzOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3JnL21haWxtYW4vbGlz dGluZm8vZHJpLWRldmVsCg==