From mboxrd@z Thu Jan 1 00:00:00 1970 From: John Stultz Subject: [PATCH v5 4/5] dma-buf: heaps: Add CMA heap to dmabuf heaps Date: Fri, 7 Jun 2019 03:07:18 +0000 Message-ID: <20190607030719.77286-5-john.stultz@linaro.org> References: <20190607030719.77286-1-john.stultz@linaro.org> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mail-pl1-x642.google.com (mail-pl1-x642.google.com [IPv6:2607:f8b0:4864:20::642]) by gabe.freedesktop.org (Postfix) with ESMTPS id 91EC389AA7 for ; Fri, 7 Jun 2019 03:07:31 +0000 (UTC) Received: by mail-pl1-x642.google.com with SMTP id bh12so246382plb.4 for ; Thu, 06 Jun 2019 20:07:31 -0700 (PDT) In-Reply-To: <20190607030719.77286-1-john.stultz@linaro.org> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" To: lkml Cc: Sudipto Paul , Vincent Donnefort , Chenbo Feng , Alistair Strachan , Liam Mark , Christoph Hellwig , dri-devel@lists.freedesktop.org, "Andrew F . Davis" , Pratik Patel List-Id: dri-devel@lists.freedesktop.org VGhpcyBhZGRzIGEgQ01BIGhlYXAsIHdoaWNoIGFsbG93cyB1c2Vyc3BhY2UgdG8gYWxsb2NhdGUK YSBkbWEtYnVmIG9mIGNvbnRpZ3VvdXMgbWVtb3J5IG91dCBvZiBhIENNQSByZWdpb24uCgpUaGlz IGNvZGUgaXMgYW4gZXZvbHV0aW9uIG9mIHRoZSBBbmRyb2lkIElPTiBpbXBsZW1lbnRhdGlvbiwg c28KdGhhbmtzIHRvIGl0cyBvcmlnaW5hbCBhdXRob3IgYW5kIG1haW50YWludGVyczoKICBCZW5q YW1pbiBHYWlnbmFyZCwgTGF1cmEgQWJib3R0LCBhbmQgb3RoZXJzIQoKQ2M6IExhdXJhIEFiYm90 dCA8bGFiYm90dEByZWRoYXQuY29tPgpDYzogQmVuamFtaW4gR2FpZ25hcmQgPGJlbmphbWluLmdh aWduYXJkQGxpbmFyby5vcmc+CkNjOiBTdW1pdCBTZW13YWwgPHN1bWl0LnNlbXdhbEBsaW5hcm8u b3JnPgpDYzogTGlhbSBNYXJrIDxsbWFya0Bjb2RlYXVyb3JhLm9yZz4KQ2M6IFByYXRpayBQYXRl bCA8cHJhdGlrcEBjb2RlYXVyb3JhLm9yZz4KQ2M6IEJyaWFuIFN0YXJrZXkgPEJyaWFuLlN0YXJr ZXlAYXJtLmNvbT4KQ2M6IFZpbmNlbnQgRG9ubmVmb3J0IDxWaW5jZW50LkRvbm5lZm9ydEBhcm0u Y29tPgpDYzogU3VkaXB0byBQYXVsIDxTdWRpcHRvLlBhdWxAYXJtLmNvbT4KQ2M6IEFuZHJldyBG LiBEYXZpcyA8YWZkQHRpLmNvbT4KQ2M6IENocmlzdG9waCBIZWxsd2lnIDxoY2hAaW5mcmFkZWFk Lm9yZz4KQ2M6IENoZW5ibyBGZW5nIDxmZW5nY0Bnb29nbGUuY29tPgpDYzogQWxpc3RhaXIgU3Ry YWNoYW4gPGFzdHJhY2hhbkBnb29nbGUuY29tPgpDYzogZHJpLWRldmVsQGxpc3RzLmZyZWVkZXNr dG9wLm9yZwpSZXZpZXdlZC1ieTogQmVuamFtaW4gR2FpZ25hcmQgPGJlbmphbWluLmdhaWduYXJk QGxpbmFyby5vcmc+ClNpZ25lZC1vZmYtYnk6IEpvaG4gU3R1bHR6IDxqb2huLnN0dWx0ekBsaW5h cm8ub3JnPgpDaGFuZ2UtSWQ6IEljMmIwYzVkZmMwZGJhZmY1MjQ1YmQxYzUwMTcwYzY0YjA2Yzcz MDUxCi0tLQp2MjoKKiBTd2l0Y2ggYWxsb2NhdGUgdG8gcmV0dXJuIGRtYWJ1ZiBmZAoqIFNpbXBs aWZ5IGluaXQgY29kZQoqIENoZWNrcGF0Y2ggZml4dXBzCnYzOgoqIFN3aXRjaCB0byBpbmxpbmUg ZnVuY3Rpb24gZm9yIHRvX2NtYV9oZWFwKCkKKiBNaW5vciBjbGVhbnVwcyBzdWdnZXN0ZWQgYnkg QnJpYW4KKiBGb2xkIGluIG5ldyByZWdpc3RyYXRpb24gc3R5bGUgZnJvbSBBbmRyZXcKKiBGb2xk ZWQgaW4gY2hhbmdlcyBmcm9tIEFuZHJldyB0byB1c2Ugc2ltcGxpZmllZCBwYWdlIGxpc3QKICBm cm9tIHRoZSBoZWFwIGhlbHBlcnMKdjQ6CiogVXNlIHRoZSBmZF9mbGFncyB3aGVuIGNyZWF0aW5n IGRtYWJ1ZiBmZCAoU3VnZ2VzdGVkIGJ5CiAgQmVuamFtaW4pCiogVXNlIHByZWNhbGN1bGF0ZWQg cGFnZWNvdW50IChTdWdnZXN0ZWQgYnkgQW5kcmV3KQotLS0KIGRyaXZlcnMvZG1hLWJ1Zi9oZWFw cy9LY29uZmlnICAgIHwgICA4ICsrCiBkcml2ZXJzL2RtYS1idWYvaGVhcHMvTWFrZWZpbGUgICB8 ICAgMSArCiBkcml2ZXJzL2RtYS1idWYvaGVhcHMvY21hX2hlYXAuYyB8IDE2OSArKysrKysrKysr KysrKysrKysrKysrKysrKysrKysrCiAzIGZpbGVzIGNoYW5nZWQsIDE3OCBpbnNlcnRpb25zKCsp CiBjcmVhdGUgbW9kZSAxMDA2NDQgZHJpdmVycy9kbWEtYnVmL2hlYXBzL2NtYV9oZWFwLmMKCmRp ZmYgLS1naXQgYS9kcml2ZXJzL2RtYS1idWYvaGVhcHMvS2NvbmZpZyBiL2RyaXZlcnMvZG1hLWJ1 Zi9oZWFwcy9LY29uZmlnCmluZGV4IDIwNTA1Mjc0NDE2OS4uYTVlZWYwNmM0MjI2IDEwMDY0NAot LS0gYS9kcml2ZXJzL2RtYS1idWYvaGVhcHMvS2NvbmZpZworKysgYi9kcml2ZXJzL2RtYS1idWYv aGVhcHMvS2NvbmZpZwpAQCAtNCwzICs0LDExIEBAIGNvbmZpZyBETUFCVUZfSEVBUFNfU1lTVEVN CiAJaGVscAogCSAgQ2hvb3NlIHRoaXMgb3B0aW9uIHRvIGVuYWJsZSB0aGUgc3lzdGVtIGRtYWJ1 ZiBoZWFwLiBUaGUgc3lzdGVtIGhlYXAKIAkgIGlzIGJhY2tlZCBieSBwYWdlcyBmcm9tIHRoZSBi dWRkeSBhbGxvY2F0b3IuIElmIGluIGRvdWJ0LCBzYXkgWS4KKworY29uZmlnIERNQUJVRl9IRUFQ U19DTUEKKwlib29sICJETUEtQlVGIENNQSBIZWFwIgorCWRlcGVuZHMgb24gRE1BQlVGX0hFQVBT ICYmIERNQV9DTUEKKwloZWxwCisJICBDaG9vc2UgdGhpcyBvcHRpb24gdG8gZW5hYmxlIGRtYS1i dWYgQ01BIGhlYXAuIFRoaXMgaGVhcCBpcyBiYWNrZWQKKwkgIGJ5IHRoZSBDb250aWd1b3VzIE1l bW9yeSBBbGxvY2F0b3IgKENNQSkuIElmIHlvdXIgc3lzdGVtIGhhcyB0aGVzZQorCSAgcmVnaW9u cywgeW91IHNob3VsZCBzYXkgWSBoZXJlLgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9kbWEtYnVmL2hl YXBzL01ha2VmaWxlIGIvZHJpdmVycy9kbWEtYnVmL2hlYXBzL01ha2VmaWxlCmluZGV4IGQxODA4 ZWNhMjU4MS4uNmU1NGNkZWMzZGEwIDEwMDY0NAotLS0gYS9kcml2ZXJzL2RtYS1idWYvaGVhcHMv TWFrZWZpbGUKKysrIGIvZHJpdmVycy9kbWEtYnVmL2hlYXBzL01ha2VmaWxlCkBAIC0xLDMgKzEs NCBAQAogIyBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogR1BMLTIuMAogb2JqLXkJCQkJCSs9IGhl YXAtaGVscGVycy5vCiBvYmotJChDT05GSUdfRE1BQlVGX0hFQVBTX1NZU1RFTSkJKz0gc3lzdGVt X2hlYXAubworb2JqLSQoQ09ORklHX0RNQUJVRl9IRUFQU19DTUEpCQkrPSBjbWFfaGVhcC5vCmRp ZmYgLS1naXQgYS9kcml2ZXJzL2RtYS1idWYvaGVhcHMvY21hX2hlYXAuYyBiL2RyaXZlcnMvZG1h LWJ1Zi9oZWFwcy9jbWFfaGVhcC5jCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAw MDAwMC4uM2QwZmZiYmQwYTM0Ci0tLSAvZGV2L251bGwKKysrIGIvZHJpdmVycy9kbWEtYnVmL2hl YXBzL2NtYV9oZWFwLmMKQEAgLTAsMCArMSwxNjkgQEAKKy8vIFNQRFgtTGljZW5zZS1JZGVudGlm aWVyOiBHUEwtMi4wCisvKgorICogRE1BQlVGIENNQSBoZWFwIGV4cG9ydGVyCisgKgorICogQ29w eXJpZ2h0IChDKSAyMDEyLCAyMDE5IExpbmFybyBMdGQuCisgKiBBdXRob3I6IDxiZW5qYW1pbi5n YWlnbmFyZEBsaW5hcm8ub3JnPiBmb3IgU1QtRXJpY3Nzb24uCisgKi8KKworI2luY2x1ZGUgPGxp bnV4L2RldmljZS5oPgorI2luY2x1ZGUgPGxpbnV4L2RtYS1idWYuaD4KKyNpbmNsdWRlIDxsaW51 eC9kbWEtaGVhcC5oPgorI2luY2x1ZGUgPGxpbnV4L3NsYWIuaD4KKyNpbmNsdWRlIDxsaW51eC9l cnJuby5oPgorI2luY2x1ZGUgPGxpbnV4L2Vyci5oPgorI2luY2x1ZGUgPGxpbnV4L2NtYS5oPgor I2luY2x1ZGUgPGxpbnV4L3NjYXR0ZXJsaXN0Lmg+CisjaW5jbHVkZSA8bGludXgvaGlnaG1lbS5o PgorCisjaW5jbHVkZSAiaGVhcC1oZWxwZXJzLmgiCisKK3N0cnVjdCBjbWFfaGVhcCB7CisJc3Ry dWN0IGRtYV9oZWFwICpoZWFwOworCXN0cnVjdCBjbWEgKmNtYTsKK307CisKK3N0YXRpYyB2b2lk IGNtYV9oZWFwX2ZyZWUoc3RydWN0IGhlYXBfaGVscGVyX2J1ZmZlciAqYnVmZmVyKQoreworCXN0 cnVjdCBjbWFfaGVhcCAqY21hX2hlYXAgPSBkbWFfaGVhcF9nZXRfZGF0YShidWZmZXItPmhlYXBf YnVmZmVyLmhlYXApOworCXVuc2lnbmVkIGxvbmcgbnJfcGFnZXMgPSBidWZmZXItPnBhZ2Vjb3Vu dDsKKwlzdHJ1Y3QgcGFnZSAqcGFnZXMgPSBidWZmZXItPnByaXZfdmlydDsKKworCS8qIGZyZWUg cGFnZSBsaXN0ICovCisJa2ZyZWUoYnVmZmVyLT5wYWdlcyk7CisJLyogcmVsZWFzZSBtZW1vcnkg Ki8KKwljbWFfcmVsZWFzZShjbWFfaGVhcC0+Y21hLCBwYWdlcywgbnJfcGFnZXMpOworCWtmcmVl KGJ1ZmZlcik7Cit9CisKKy8qIGRtYWJ1ZiBoZWFwIENNQSBvcGVyYXRpb25zIGZ1bmN0aW9ucyAq Lworc3RhdGljIGludCBjbWFfaGVhcF9hbGxvY2F0ZShzdHJ1Y3QgZG1hX2hlYXAgKmhlYXAsCisJ CQkJdW5zaWduZWQgbG9uZyBsZW4sCisJCQkJdW5zaWduZWQgbG9uZyBmZF9mbGFncywKKwkJCQl1 bnNpZ25lZCBsb25nIGhlYXBfZmxhZ3MpCit7CisJc3RydWN0IGNtYV9oZWFwICpjbWFfaGVhcCA9 IGRtYV9oZWFwX2dldF9kYXRhKGhlYXApOworCXN0cnVjdCBoZWFwX2hlbHBlcl9idWZmZXIgKmhl bHBlcl9idWZmZXI7CisJc3RydWN0IHBhZ2UgKnBhZ2VzOworCXNpemVfdCBzaXplID0gUEFHRV9B TElHTihsZW4pOworCXVuc2lnbmVkIGxvbmcgbnJfcGFnZXMgPSBzaXplID4+IFBBR0VfU0hJRlQ7 CisJdW5zaWduZWQgbG9uZyBhbGlnbiA9IGdldF9vcmRlcihzaXplKTsKKwlERUZJTkVfRE1BX0JV Rl9FWFBPUlRfSU5GTyhleHBfaW5mbyk7CisJc3RydWN0IGRtYV9idWYgKmRtYWJ1ZjsKKwlpbnQg cmV0ID0gLUVOT01FTTsKKwlwZ29mZl90IHBnOworCisJaWYgKGFsaWduID4gQ09ORklHX0NNQV9B TElHTk1FTlQpCisJCWFsaWduID0gQ09ORklHX0NNQV9BTElHTk1FTlQ7CisKKwloZWxwZXJfYnVm ZmVyID0ga3phbGxvYyhzaXplb2YoKmhlbHBlcl9idWZmZXIpLCBHRlBfS0VSTkVMKTsKKwlpZiAo IWhlbHBlcl9idWZmZXIpCisJCXJldHVybiAtRU5PTUVNOworCisJSU5JVF9IRUFQX0hFTFBFUl9C VUZGRVIoaGVscGVyX2J1ZmZlciwgY21hX2hlYXBfZnJlZSk7CisJaGVscGVyX2J1ZmZlci0+aGVh cF9idWZmZXIuZmxhZ3MgPSBoZWFwX2ZsYWdzOworCWhlbHBlcl9idWZmZXItPmhlYXBfYnVmZmVy LmhlYXAgPSBoZWFwOworCWhlbHBlcl9idWZmZXItPmhlYXBfYnVmZmVyLnNpemUgPSBsZW47CisK KwlwYWdlcyA9IGNtYV9hbGxvYyhjbWFfaGVhcC0+Y21hLCBucl9wYWdlcywgYWxpZ24sIGZhbHNl KTsKKwlpZiAoIXBhZ2VzKQorCQlnb3RvIGZyZWVfYnVmOworCisJaWYgKFBhZ2VIaWdoTWVtKHBh Z2VzKSkgeworCQl1bnNpZ25lZCBsb25nIG5yX2NsZWFyX3BhZ2VzID0gbnJfcGFnZXM7CisJCXN0 cnVjdCBwYWdlICpwYWdlID0gcGFnZXM7CisKKwkJd2hpbGUgKG5yX2NsZWFyX3BhZ2VzID4gMCkg eworCQkJdm9pZCAqdmFkZHIgPSBrbWFwX2F0b21pYyhwYWdlKTsKKworCQkJbWVtc2V0KHZhZGRy LCAwLCBQQUdFX1NJWkUpOworCQkJa3VubWFwX2F0b21pYyh2YWRkcik7CisJCQlwYWdlKys7CisJ CQlucl9jbGVhcl9wYWdlcy0tOworCQl9CisJfSBlbHNlIHsKKwkJbWVtc2V0KHBhZ2VfYWRkcmVz cyhwYWdlcyksIDAsIHNpemUpOworCX0KKworCWhlbHBlcl9idWZmZXItPnBhZ2Vjb3VudCA9IG5y X3BhZ2VzOworCWhlbHBlcl9idWZmZXItPnBhZ2VzID0ga21hbGxvY19hcnJheShoZWxwZXJfYnVm ZmVyLT5wYWdlY291bnQsCisJCQkJCSAgICAgc2l6ZW9mKCpoZWxwZXJfYnVmZmVyLT5wYWdlcyks CisJCQkJCSAgICAgR0ZQX0tFUk5FTCk7CisJaWYgKCFoZWxwZXJfYnVmZmVyLT5wYWdlcykgewor CQlyZXQgPSAtRU5PTUVNOworCQlnb3RvIGZyZWVfY21hOworCX0KKworCWZvciAocGcgPSAwOyBw ZyA8IGhlbHBlcl9idWZmZXItPnBhZ2Vjb3VudDsgcGcrKykgeworCQloZWxwZXJfYnVmZmVyLT5w YWdlc1twZ10gPSAmcGFnZXNbcGddOworCQlpZiAoIWhlbHBlcl9idWZmZXItPnBhZ2VzW3BnXSkK KwkJCWdvdG8gZnJlZV9wYWdlczsKKwl9CisKKwkvKiBjcmVhdGUgdGhlIGRtYWJ1ZiAqLworCWV4 cF9pbmZvLm9wcyA9ICZoZWFwX2hlbHBlcl9vcHM7CisJZXhwX2luZm8uc2l6ZSA9IGxlbjsKKwll eHBfaW5mby5mbGFncyA9IGZkX2ZsYWdzOworCWV4cF9pbmZvLnByaXYgPSAmaGVscGVyX2J1ZmZl ci0+aGVhcF9idWZmZXI7CisJZG1hYnVmID0gZG1hX2J1Zl9leHBvcnQoJmV4cF9pbmZvKTsKKwlp ZiAoSVNfRVJSKGRtYWJ1ZikpIHsKKwkJcmV0ID0gUFRSX0VSUihkbWFidWYpOworCQlnb3RvIGZy ZWVfcGFnZXM7CisJfQorCisJaGVscGVyX2J1ZmZlci0+aGVhcF9idWZmZXIuZG1hYnVmID0gZG1h YnVmOworCWhlbHBlcl9idWZmZXItPnByaXZfdmlydCA9IHBhZ2VzOworCisJcmV0ID0gZG1hX2J1 Zl9mZChkbWFidWYsIGZkX2ZsYWdzKTsKKwlpZiAocmV0IDwgMCkgeworCQlkbWFfYnVmX3B1dChk bWFidWYpOworCQkvKiBqdXN0IHJldHVybiwgYXMgcHV0IHdpbGwgY2FsbCByZWxlYXNlIGFuZCB0 aGF0IHdpbGwgZnJlZSAqLworCQlyZXR1cm4gcmV0OworCX0KKworCXJldHVybiByZXQ7CisKK2Zy ZWVfcGFnZXM6CisJa2ZyZWUoaGVscGVyX2J1ZmZlci0+cGFnZXMpOworZnJlZV9jbWE6CisJY21h X3JlbGVhc2UoY21hX2hlYXAtPmNtYSwgcGFnZXMsIG5yX3BhZ2VzKTsKK2ZyZWVfYnVmOgorCWtm cmVlKGhlbHBlcl9idWZmZXIpOworCXJldHVybiByZXQ7Cit9CisKK3N0YXRpYyBzdHJ1Y3QgZG1h X2hlYXBfb3BzIGNtYV9oZWFwX29wcyA9IHsKKwkuYWxsb2NhdGUgPSBjbWFfaGVhcF9hbGxvY2F0 ZSwKK307CisKK3N0YXRpYyBpbnQgX19hZGRfY21hX2hlYXAoc3RydWN0IGNtYSAqY21hLCB2b2lk ICpkYXRhKQoreworCXN0cnVjdCBjbWFfaGVhcCAqY21hX2hlYXA7CisJc3RydWN0IGRtYV9oZWFw X2V4cG9ydF9pbmZvIGV4cF9pbmZvOworCisJY21hX2hlYXAgPSBremFsbG9jKHNpemVvZigqY21h X2hlYXApLCBHRlBfS0VSTkVMKTsKKwlpZiAoIWNtYV9oZWFwKQorCQlyZXR1cm4gLUVOT01FTTsK KwljbWFfaGVhcC0+Y21hID0gY21hOworCisJZXhwX2luZm8ubmFtZSA9IGNtYV9nZXRfbmFtZShj bWEpOworCWV4cF9pbmZvLm9wcyA9ICZjbWFfaGVhcF9vcHM7CisJZXhwX2luZm8ucHJpdiA9IGNt YV9oZWFwOworCisJY21hX2hlYXAtPmhlYXAgPSBkbWFfaGVhcF9hZGQoJmV4cF9pbmZvKTsKKwlp ZiAoSVNfRVJSKGNtYV9oZWFwLT5oZWFwKSkgeworCQlpbnQgcmV0ID0gUFRSX0VSUihjbWFfaGVh cC0+aGVhcCk7CisKKwkJa2ZyZWUoY21hX2hlYXApOworCQlyZXR1cm4gcmV0OworCX0KKworCXJl dHVybiAwOworfQorCitzdGF0aWMgaW50IGFkZF9jbWFfaGVhcHModm9pZCkKK3sKKwljbWFfZm9y X2VhY2hfYXJlYShfX2FkZF9jbWFfaGVhcCwgTlVMTCk7CisJcmV0dXJuIDA7Cit9CitkZXZpY2Vf aW5pdGNhbGwoYWRkX2NtYV9oZWFwcyk7Ci0tIAoyLjE3LjEKCl9fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fCmRyaS1kZXZlbCBtYWlsaW5nIGxpc3QKZHJpLWRl dmVsQGxpc3RzLmZyZWVkZXNrdG9wLm9yZwpodHRwczovL2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9t YWlsbWFuL2xpc3RpbmZvL2RyaS1kZXZlbA==