From mboxrd@z Thu Jan 1 00:00:00 1970 From: Neil Armstrong Subject: [PATCH v3 4/9] drm/meson: add RDMA module driver Date: Mon, 21 Oct 2019 11:15:04 +0200 Message-ID: <20191021091509.3864-5-narmstrong@baylibre.com> References: <20191021091509.3864-1-narmstrong@baylibre.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mail-wm1-x341.google.com (mail-wm1-x341.google.com [IPv6:2a00:1450:4864:20::341]) by gabe.freedesktop.org (Postfix) with ESMTPS id CE4E489C94 for ; Mon, 21 Oct 2019 09:15:16 +0000 (UTC) Received: by mail-wm1-x341.google.com with SMTP id r141so2360348wme.4 for ; Mon, 21 Oct 2019 02:15:16 -0700 (PDT) In-Reply-To: <20191021091509.3864-1-narmstrong@baylibre.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" To: dri-devel@lists.freedesktop.org Cc: khilman@baylibre.com, linux-amlogic@lists.infradead.org, ayan.halder@arm.com, linux-arm-kernel@lists.infradead.org, Neil Armstrong List-Id: dri-devel@lists.freedesktop.org VGhlIFZQVSBlbWJlZHMgYSAiUmVnaXN0ZXIgRE1BIiB0aGF0IGNhbiB3cml0ZSBhIHNlcXVlbmNl IG9mIHJlZ2lzdGVycwpvbiB0aGUgVlBVIEFIQiBidXMsIGVpdGhlciBtYW51YWxseSBvciB0cmln Z2VyZWQgYnkgYW4gaW50ZXJuYWwgSVJRCmV2ZW50IGxpa2UgVlNZTkMgb3IgYSBsaW5lIGlucHV0 IGNvdW50ZXIuCgpUaGUgaW5pdGlhbCBpbXBsZW1lbnRhdGlvbiBoYW5kbGVzIGEgc2luZ2xlIGNo YW5uZWwgKG92ZXIgOCksIHRyaWdnZXJlZApieSB0aGUgVlNZTkMgaXJxIGFuZCBkb2VzIG5vdCBo YW5kbGUgdGhlIFJETUEgaXJxLgoKVGhlIFJETUEgd2lsbCBiZSB1c2VmdWxsIHRvIHJlc2V0IGFu ZCBwcm9ncmFtIHRoZSBBRkJDIGRlY29kZXIgdW5pdApvbiBlYWNoIHZzeW5jIHdpdGhvdXQgaW52 b2x2aW5nIHRoZSBpbnRlcnJ1cHQgaGFuZGxlciB0aGF0IGNhbgpiZSBtYXNrZWQgZm9yIGEgbG9n IHBlcmlvZCBvZiB0aW1lLCBwcm9kdWNpbmcgZGlzcGxheSBnbGl0Y2hlcy4KClNpZ25lZC1vZmYt Ynk6IE5laWwgQXJtc3Ryb25nIDxuYXJtc3Ryb25nQGJheWxpYnJlLmNvbT4KLS0tCiBkcml2ZXJz L2dwdS9kcm0vbWVzb24vTWFrZWZpbGUgICAgIHwgICAxICsKIGRyaXZlcnMvZ3B1L2RybS9tZXNv bi9tZXNvbl9kcnYuaCAgfCAgIDYgKysKIGRyaXZlcnMvZ3B1L2RybS9tZXNvbi9tZXNvbl9yZG1h LmMgfCAxMzUgKysrKysrKysrKysrKysrKysrKysrKysrKysrKysKIGRyaXZlcnMvZ3B1L2RybS9t ZXNvbi9tZXNvbl9yZG1hLmggfCAgMjEgKysrKysKIDQgZmlsZXMgY2hhbmdlZCwgMTYzIGluc2Vy dGlvbnMoKykKIGNyZWF0ZSBtb2RlIDEwMDY0NCBkcml2ZXJzL2dwdS9kcm0vbWVzb24vbWVzb25f cmRtYS5jCiBjcmVhdGUgbW9kZSAxMDA2NDQgZHJpdmVycy9ncHUvZHJtL21lc29uL21lc29uX3Jk bWEuaAoKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9tZXNvbi9NYWtlZmlsZSBiL2RyaXZl cnMvZ3B1L2RybS9tZXNvbi9NYWtlZmlsZQppbmRleCBjMzg5ZTIzOTkxMzMuLmZiN2Y1NDQwZmU1 NyAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL21lc29uL01ha2VmaWxlCisrKyBiL2RyaXZl cnMvZ3B1L2RybS9tZXNvbi9NYWtlZmlsZQpAQCAtMSw2ICsxLDcgQEAKICMgU1BEWC1MaWNlbnNl LUlkZW50aWZpZXI6IEdQTC0yLjAtb25seQogbWVzb24tZHJtLXkgOj0gbWVzb25fZHJ2Lm8gbWVz b25fcGxhbmUubyBtZXNvbl9jcnRjLm8gbWVzb25fdmVuY19jdmJzLm8KIG1lc29uLWRybS15ICs9 IG1lc29uX3ZpdS5vIG1lc29uX3ZwcC5vIG1lc29uX3ZlbmMubyBtZXNvbl92Y2xrLm8gbWVzb25f b3ZlcmxheS5vCittZXNvbi1kcm0teSArPSBtZXNvbl9yZG1hLm8KIAogb2JqLSQoQ09ORklHX0RS TV9NRVNPTikgKz0gbWVzb24tZHJtLm8KIG9iai0kKENPTkZJR19EUk1fTUVTT05fRFdfSERNSSkg Kz0gbWVzb25fZHdfaGRtaS5vCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vbWVzb24vbWVz b25fZHJ2LmggYi9kcml2ZXJzL2dwdS9kcm0vbWVzb24vbWVzb25fZHJ2LmgKaW5kZXggMzI4NzI4 MjQ1MGE5Li5lYTM5YmU5MTNjMGYgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9tZXNvbi9t ZXNvbl9kcnYuaAorKysgYi9kcml2ZXJzL2dwdS9kcm0vbWVzb24vbWVzb25fZHJ2LmgKQEAgLTEy Myw2ICsxMjMsMTIgQEAgc3RydWN0IG1lc29uX2RybSB7CiAJCWJvb2wgdmVuY19yZXBlYXQ7CiAJ CWJvb2wgaGRtaV91c2VfZW5jaTsKIAl9IHZlbmM7CisKKwlzdHJ1Y3QgeworCQlkbWFfYWRkcl90 IGFkZHJfcGh5czsKKwkJdWludDMyX3QgKmFkZHI7CisJCXVuc2lnbmVkIGludCBvZmZzZXQ7CisJ fSByZG1hOwogfTsKIAogc3RhdGljIGlubGluZSBpbnQgbWVzb25fdnB1X2lzX2NvbXBhdGlibGUo c3RydWN0IG1lc29uX2RybSAqcHJpdiwKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9tZXNv bi9tZXNvbl9yZG1hLmMgYi9kcml2ZXJzL2dwdS9kcm0vbWVzb24vbWVzb25fcmRtYS5jCm5ldyBm aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMC4uMjViMzRiMWU3MmE3Ci0tLSAvZGV2 L251bGwKKysrIGIvZHJpdmVycy9ncHUvZHJtL21lc29uL21lc29uX3JkbWEuYwpAQCAtMCwwICsx LDEzNSBAQAorLy8gU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEdQTC0yLjArCisvKgorICogQ29w eXJpZ2h0IChDKSAyMDE5IEJheUxpYnJlLCBTQVMKKyAqIEF1dGhvcjogTmVpbCBBcm1zdHJvbmcg PG5hcm1zdHJvbmdAYmF5bGlicmUuY29tPgorICovCisKKyNpbmNsdWRlIDxsaW51eC9iaXRmaWVs ZC5oPgorI2luY2x1ZGUgPGxpbnV4L2RtYS1tYXBwaW5nLmg+CisKKyNpbmNsdWRlICJtZXNvbl9k cnYuaCIKKyNpbmNsdWRlICJtZXNvbl9yZWdpc3RlcnMuaCIKKyNpbmNsdWRlICJtZXNvbl9yZG1h LmgiCisKKy8qCisgKiBUaGUgVlBVIGVtYmVkcyBhICJSZWdpc3RlciBETUEiIHRoYXQgY2FuIHdy aXRlIGEgc2VxdWVuY2Ugb2YgcmVnaXN0ZXJzCisgKiBvbiB0aGUgVlBVIEFIQiBidXMsIGVpdGhl ciBtYW51YWxseSBvciB0cmlnZ2VyZWQgYnkgYW4gaW50ZXJuYWwgSVJRCisgKiBldmVudCBsaWtl IFZTWU5DIG9yIGEgbGluZSBpbnB1dCBjb3VudGVyLgorICogVGhlIGluaXRpYWwgaW1wbGVtZW50 YXRpb24gaGFuZGxlcyBhIHNpbmdsZSBjaGFubmVsIChvdmVyIDgpLCB0cmlnZ2VyZWQKKyAqIGJ5 IHRoZSBWU1lOQyBpcnEgYW5kIGRvZXMgbm90IGhhbmRsZSB0aGUgUkRNQSBpcnEuCisgKi8KKwor I2RlZmluZSBSRE1BX0RFU0NfU0laRQkoc2l6ZW9mKHVpbnQzMl90KSAqIDIpCisKK2ludCBtZXNv bl9yZG1hX2luaXQoc3RydWN0IG1lc29uX2RybSAqcHJpdikKK3sKKwlpZiAoIXByaXYtPnJkbWEu YWRkcikgeworCQkvKiBBbGxvY2F0ZSBhIFBBR0UgYnVmZmVyICovCisJCXByaXYtPnJkbWEuYWRk ciA9CisJCQlkbWFfYWxsb2NfY29oZXJlbnQocHJpdi0+ZGV2LCBTWl80SywKKwkJCQkJICAgJnBy aXYtPnJkbWEuYWRkcl9waHlzLAorCQkJCQkgICBHRlBfS0VSTkVMKTsKKwkJaWYgKCFwcml2LT5y ZG1hLmFkZHIpCisJCQlyZXR1cm4gLUVOT01FTTsKKwl9CisKKwlwcml2LT5yZG1hLm9mZnNldCA9 IDA7CisKKwl3cml0ZWxfcmVsYXhlZChSRE1BX0NUUkxfU1dfUkVTRVQsCisJCSAgICAgICBwcml2 LT5pb19iYXNlICsgX1JFRyhSRE1BX0NUUkwpKTsKKwl3cml0ZWxfcmVsYXhlZChSRE1BX0RFRkFV TFRfQ09ORklHIHwKKwkJICAgICAgIEZJRUxEX1BSRVAoUkRNQV9DVFJMX0FIQl9XUl9CVVJTVCwg MykgfAorCQkgICAgICAgRklFTERfUFJFUChSRE1BX0NUUkxfQUhCX1JEX0JVUlNULCAwKSwKKwkJ ICAgICAgIHByaXYtPmlvX2Jhc2UgKyBfUkVHKFJETUFfQ1RSTCkpOworCisJcmV0dXJuIDA7Cit9 CisKK3ZvaWQgbWVzb25fcmRtYV9mcmVlKHN0cnVjdCBtZXNvbl9kcm0gKnByaXYpCit7CisJaWYg KCFwcml2LT5yZG1hLmFkZHIgJiYgIXByaXYtPnJkbWEuYWRkcl9waHlzKQorCQlyZXR1cm47CisK KwltZXNvbl9yZG1hX3N0b3AocHJpdik7CisKKwlkbWFfZnJlZV9jb2hlcmVudChwcml2LT5kZXYs IFNaXzRLLAorCQkJICBwcml2LT5yZG1hLmFkZHIsIHByaXYtPnJkbWEuYWRkcl9waHlzKTsKKwor CXByaXYtPnJkbWEuYWRkciA9IE5VTEw7CisJcHJpdi0+cmRtYS5hZGRyX3BoeXMgPSAoZG1hX2Fk ZHJfdClOVUxMOworfQorCit2b2lkIG1lc29uX3JkbWFfc2V0dXAoc3RydWN0IG1lc29uX2RybSAq cHJpdikKK3sKKwkvKiBDaGFubmVsIDE6IFdyaXRlIEZsYWcsIE5vIEFkZHJlc3MgSW5jcmVtZW50 ICovCisJd3JpdGVsX2JpdHNfcmVsYXhlZChSRE1BX0FDQ0VTU19SV19GTEFHX0NIQU4xIHwKKwkJ CSAgICBSRE1BX0FDQ0VTU19BRERSX0lOQ19DSEFOMSwKKwkJCSAgICBSRE1BX0FDQ0VTU19SV19G TEFHX0NIQU4xLAorCQkJICAgIHByaXYtPmlvX2Jhc2UgKyBfUkVHKFJETUFfQUNDRVNTX0FVVE8p KTsKK30KKwordm9pZCBtZXNvbl9yZG1hX3N0b3Aoc3RydWN0IG1lc29uX2RybSAqcHJpdikKK3sK Kwl3cml0ZWxfYml0c19yZWxheGVkKFJETUFfSVJRX0NMRUFSX0NIQU4xLAorCQkJICAgIFJETUFf SVJRX0NMRUFSX0NIQU4xLAorCQkJICAgIHByaXYtPmlvX2Jhc2UgKyBfUkVHKFJETUFfQ1RSTCkp OworCisJLyogU3RvcCBDaGFubmVsIDEgKi8KKwl3cml0ZWxfYml0c19yZWxheGVkKFJETUFfQUND RVNTX1RSSUdHRVJfQ0hBTjEsCisJCQkgICAgRklFTERfUFJFUChSRE1BX0FDQ0VTU19BRERSX0lO Q19DSEFOMSwKKwkJCQkgICAgICAgUkRNQV9BQ0NFU1NfVFJJR0dFUl9TVE9QKSwKKwkJCSAgICBw cml2LT5pb19iYXNlICsgX1JFRyhSRE1BX0FDQ0VTU19BVVRPKSk7Cit9CisKK3ZvaWQgbWVzb25f cmRtYV9yZXNldChzdHJ1Y3QgbWVzb25fZHJtICpwcml2KQoreworCW1lc29uX3JkbWFfc3RvcChw cml2KTsKKworCXByaXYtPnJkbWEub2Zmc2V0ID0gMDsKK30KKworc3RhdGljIHZvaWQgbWVzb25f cmRtYV93cml0ZWwoc3RydWN0IG1lc29uX2RybSAqcHJpdiwgdWludDMyX3QgdmFsLAorCQkJICAg ICAgdWludDMyX3QgcmVnKQoreworCWlmIChwcml2LT5yZG1hLm9mZnNldCA+PSAoU1pfNEsgLyBS RE1BX0RFU0NfU0laRSkpIHsKKwkJZGV2X3dhcm5fb25jZShwcml2LT5kZXYsICIlczogb3ZlcmZs b3dcbiIsIF9fZnVuY19fKTsKKwkJcmV0dXJuOworCX0KKworCXByaXYtPnJkbWEuYWRkcltwcml2 LT5yZG1hLm9mZnNldCsrXSA9IHJlZzsKKwlwcml2LT5yZG1hLmFkZHJbcHJpdi0+cmRtYS5vZmZz ZXQrK10gPSB2YWw7Cit9CisKKy8qCisgKiBUaGlzIHdpbGwgYWRkIHRoZSByZWdpc3RlciB0byB0 aGUgUkRNQSBidWZmZXIgYW5kIHdyaXRlIGl0IHRvIHRoZQorICogaGFyZHdhcmUgYXQgdGhlIHNh bWUgdGltZS4KKyAqIFdoZW4gbWVzb25fcmRtYV9mbHVzaCBpcyBjYWxsZWQsIHRoZSBSRE1BIHdp bGwgcmVwbGF5IHRoZSByZWdpc3RlcgorICogd3JpdGVzIGluIG9yZGVyLgorICovCit2b2lkIG1l c29uX3JkbWFfd3JpdGVsX3N5bmMoc3RydWN0IG1lc29uX2RybSAqcHJpdiwgdWludDMyX3QgdmFs LCB1aW50MzJfdCByZWcpCit7CisJbWVzb25fcmRtYV93cml0ZWwocHJpdiwgdmFsLCByZWcpOwor CisJd3JpdGVsX3JlbGF4ZWQodmFsLCBwcml2LT5pb19iYXNlICsgX1JFRyhyZWcpKTsKK30KKwor dm9pZCBtZXNvbl9yZG1hX2ZsdXNoKHN0cnVjdCBtZXNvbl9kcm0gKnByaXYpCit7CisJbWVzb25f cmRtYV9zdG9wKHByaXYpOworCisJLyogU3RhcnQgb2YgQ2hhbm5lbCAxIHJlZ2lzdGVyIHdyaXRl cyBidWZmZXIgKi8KKwl3cml0ZWwocHJpdi0+cmRtYS5hZGRyX3BoeXMsCisJICAgICAgIHByaXYt PmlvX2Jhc2UgKyBfUkVHKFJETUFfQUhCX1NUQVJUX0FERFJfMSkpOworCisJLyogTGFzdCBieXRl IG9uIENoYW5uZWwgMSByZWdpc3RlciB3cml0ZXMgYnVmZmVyICovCisJd3JpdGVsKHByaXYtPnJk bWEuYWRkcl9waHlzICsgKHByaXYtPnJkbWEub2Zmc2V0ICogUkRNQV9ERVNDX1NJWkUpIC0gMSwK KwkgICAgICAgcHJpdi0+aW9fYmFzZSArIF9SRUcoUkRNQV9BSEJfRU5EX0FERFJfMSkpOworCisJ LyogVHJpZ2dlciBDaGFubmVsIDEgb24gVlNZTkMgZXZlbnQgKi8KKwl3cml0ZWxfYml0c19yZWxh eGVkKFJETUFfQUNDRVNTX1RSSUdHRVJfQ0hBTjEsCisJCQkgICAgRklFTERfUFJFUChSRE1BX0FD Q0VTU19UUklHR0VSX0NIQU4xLAorCQkJCSAgICAgICBSRE1BX0FDQ0VTU19UUklHR0VSX1ZTWU5D KSwKKwkJCSAgICBwcml2LT5pb19iYXNlICsgX1JFRyhSRE1BX0FDQ0VTU19BVVRPKSk7CisKKwlw cml2LT5yZG1hLm9mZnNldCA9IDA7Cit9CmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vbWVz b24vbWVzb25fcmRtYS5oIGIvZHJpdmVycy9ncHUvZHJtL21lc29uL21lc29uX3JkbWEuaApuZXcg ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAuLjM4NzBiZmY3YjQ3ZgotLS0gL2Rl di9udWxsCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9tZXNvbi9tZXNvbl9yZG1hLmgKQEAgLTAsMCAr MSwyMSBAQAorLyogU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEdQTC0yLjArICovCisvKgorICog Q29weXJpZ2h0IChDKSAyMDE5IEJheUxpYnJlLCBTQVMKKyAqIEF1dGhvcjogTmVpbCBBcm1zdHJv bmcgPG5hcm1zdHJvbmdAYmF5bGlicmUuY29tPgorICovCisKKyNpZm5kZWYgX19NRVNPTl9SRE1B X0gKKyNkZWZpbmUgX19NRVNPTl9SRE1BX0gKKworI2luY2x1ZGUgIm1lc29uX2Rydi5oIgorCitp bnQgbWVzb25fcmRtYV9pbml0KHN0cnVjdCBtZXNvbl9kcm0gKnByaXYpOwordm9pZCBtZXNvbl9y ZG1hX2ZyZWUoc3RydWN0IG1lc29uX2RybSAqcHJpdik7Cit2b2lkIG1lc29uX3JkbWFfc2V0dXAo c3RydWN0IG1lc29uX2RybSAqcHJpdik7Cit2b2lkIG1lc29uX3JkbWFfcmVzZXQoc3RydWN0IG1l c29uX2RybSAqcHJpdik7Cit2b2lkIG1lc29uX3JkbWFfc3RvcChzdHJ1Y3QgbWVzb25fZHJtICpw cml2KTsKKwordm9pZCBtZXNvbl9yZG1hX3dyaXRlbF9zeW5jKHN0cnVjdCBtZXNvbl9kcm0gKnBy aXYsIHVpbnQzMl90IHZhbCwgdWludDMyX3QgcmVnKTsKK3ZvaWQgbWVzb25fcmRtYV9mbHVzaChz dHJ1Y3QgbWVzb25fZHJtICpwcml2KTsKKworI2VuZGlmIC8qIF9fTUVTT05fUkRNQV9IICovCi0t IAoyLjIyLjAKCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f CmRyaS1kZXZlbCBtYWlsaW5nIGxpc3QKZHJpLWRldmVsQGxpc3RzLmZyZWVkZXNrdG9wLm9yZwpo dHRwczovL2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2RyaS1kZXZlbA==