From mboxrd@z Thu Jan 1 00:00:00 1970 From: John Stultz Subject: [PATCH v7 4/5] dma-buf: heaps: Add CMA heap to dmabuf heaps Date: Wed, 24 Jul 2019 00:36:55 +0000 Message-ID: <20190724003656.59780-5-john.stultz@linaro.org> References: <20190724003656.59780-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-pg1-x541.google.com (mail-pg1-x541.google.com [IPv6:2607:f8b0:4864:20::541]) by gabe.freedesktop.org (Postfix) with ESMTPS id 865CA6E40C for ; Wed, 24 Jul 2019 00:37:11 +0000 (UTC) Received: by mail-pg1-x541.google.com with SMTP id w10so20250217pgj.7 for ; Tue, 23 Jul 2019 17:37:11 -0700 (PDT) In-Reply-To: <20190724003656.59780-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" , Hridya Valsaraju , Pratik Patel List-Id: dri-devel@lists.freedesktop.org VGhpcyBhZGRzIGEgQ01BIGhlYXAsIHdoaWNoIGFsbG93cyB1c2Vyc3BhY2UgdG8gYWxsb2NhdGUK YSBkbWEtYnVmIG9mIGNvbnRpZ3VvdXMgbWVtb3J5IG91dCBvZiBhIENNQSByZWdpb24uCgpUaGlz IGNvZGUgaXMgYW4gZXZvbHV0aW9uIG9mIHRoZSBBbmRyb2lkIElPTiBpbXBsZW1lbnRhdGlvbiwg c28KdGhhbmtzIHRvIGl0cyBvcmlnaW5hbCBhdXRob3IgYW5kIG1haW50YWludGVyczoKICBCZW5q YW1pbiBHYWlnbmFyZCwgTGF1cmEgQWJib3R0LCBhbmQgb3RoZXJzIQoKQ2M6IExhdXJhIEFiYm90 dCA8bGFiYm90dEByZWRoYXQuY29tPgpDYzogQmVuamFtaW4gR2FpZ25hcmQgPGJlbmphbWluLmdh aWduYXJkQGxpbmFyby5vcmc+CkNjOiBTdW1pdCBTZW13YWwgPHN1bWl0LnNlbXdhbEBsaW5hcm8u b3JnPgpDYzogTGlhbSBNYXJrIDxsbWFya0Bjb2RlYXVyb3JhLm9yZz4KQ2M6IFByYXRpayBQYXRl bCA8cHJhdGlrcEBjb2RlYXVyb3JhLm9yZz4KQ2M6IEJyaWFuIFN0YXJrZXkgPEJyaWFuLlN0YXJr ZXlAYXJtLmNvbT4KQ2M6IFZpbmNlbnQgRG9ubmVmb3J0IDxWaW5jZW50LkRvbm5lZm9ydEBhcm0u Y29tPgpDYzogU3VkaXB0byBQYXVsIDxTdWRpcHRvLlBhdWxAYXJtLmNvbT4KQ2M6IEFuZHJldyBG LiBEYXZpcyA8YWZkQHRpLmNvbT4KQ2M6IENocmlzdG9waCBIZWxsd2lnIDxoY2hAaW5mcmFkZWFk Lm9yZz4KQ2M6IENoZW5ibyBGZW5nIDxmZW5nY0Bnb29nbGUuY29tPgpDYzogQWxpc3RhaXIgU3Ry YWNoYW4gPGFzdHJhY2hhbkBnb29nbGUuY29tPgpDYzogSHJpZHlhIFZhbHNhcmFqdSA8aHJpZHlh QGdvb2dsZS5jb20+CkNjOiBkcmktZGV2ZWxAbGlzdHMuZnJlZWRlc2t0b3Aub3JnClJldmlld2Vk LWJ5OiBCZW5qYW1pbiBHYWlnbmFyZCA8YmVuamFtaW4uZ2FpZ25hcmRAbGluYXJvLm9yZz4KU2ln bmVkLW9mZi1ieTogSm9obiBTdHVsdHogPGpvaG4uc3R1bHR6QGxpbmFyby5vcmc+Ci0tLQp2MjoK KiBTd2l0Y2ggYWxsb2NhdGUgdG8gcmV0dXJuIGRtYWJ1ZiBmZAoqIFNpbXBsaWZ5IGluaXQgY29k ZQoqIENoZWNrcGF0Y2ggZml4dXBzCnYzOgoqIFN3aXRjaCB0byBpbmxpbmUgZnVuY3Rpb24gZm9y IHRvX2NtYV9oZWFwKCkKKiBNaW5vciBjbGVhbnVwcyBzdWdnZXN0ZWQgYnkgQnJpYW4KKiBGb2xk IGluIG5ldyByZWdpc3RyYXRpb24gc3R5bGUgZnJvbSBBbmRyZXcKKiBGb2xkZWQgaW4gY2hhbmdl cyBmcm9tIEFuZHJldyB0byB1c2Ugc2ltcGxpZmllZCBwYWdlIGxpc3QKICBmcm9tIHRoZSBoZWFw IGhlbHBlcnMKdjQ6CiogVXNlIHRoZSBmZF9mbGFncyB3aGVuIGNyZWF0aW5nIGRtYWJ1ZiBmZCAo U3VnZ2VzdGVkIGJ5CiAgQmVuamFtaW4pCiogVXNlIHByZWNhbGN1bGF0ZWQgcGFnZWNvdW50IChT dWdnZXN0ZWQgYnkgQW5kcmV3KQp2NjoKKiBDaGFuZ2VkIHZhcmlhYmxlIG5hbWVzIHRvIGltcHJv dmUgY2xhcml0eSwgYXMgc3VnZ2VzdGVkCiAgYnkgQnJpYW4Kdjc6CiogVXNlIG5ld2x5IGxvd2Vy LWNhc2VkIGluaXRfaGVhcF9oZWxwZXJfYnVmZmVyIGhlbHBlcgoqIFVzZSBuZXcgZG1hYnVmIGV4 cG9ydCBoZWxwZXIKLS0tCiBkcml2ZXJzL2RtYS1idWYvaGVhcHMvS2NvbmZpZyAgICB8ICAgOCAr KwogZHJpdmVycy9kbWEtYnVmL2hlYXBzL01ha2VmaWxlICAgfCAgIDEgKwogZHJpdmVycy9kbWEt YnVmL2hlYXBzL2NtYV9oZWFwLmMgfCAxNjQgKysrKysrKysrKysrKysrKysrKysrKysrKysrKysr KwogMyBmaWxlcyBjaGFuZ2VkLCAxNzMgaW5zZXJ0aW9ucygrKQogY3JlYXRlIG1vZGUgMTAwNjQ0 IGRyaXZlcnMvZG1hLWJ1Zi9oZWFwcy9jbWFfaGVhcC5jCgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9k bWEtYnVmL2hlYXBzL0tjb25maWcgYi9kcml2ZXJzL2RtYS1idWYvaGVhcHMvS2NvbmZpZwppbmRl eCAyMDUwNTI3NDQxNjkuLmE1ZWVmMDZjNDIyNiAxMDA2NDQKLS0tIGEvZHJpdmVycy9kbWEtYnVm L2hlYXBzL0tjb25maWcKKysrIGIvZHJpdmVycy9kbWEtYnVmL2hlYXBzL0tjb25maWcKQEAgLTQs MyArNCwxMSBAQCBjb25maWcgRE1BQlVGX0hFQVBTX1NZU1RFTQogCWhlbHAKIAkgIENob29zZSB0 aGlzIG9wdGlvbiB0byBlbmFibGUgdGhlIHN5c3RlbSBkbWFidWYgaGVhcC4gVGhlIHN5c3RlbSBo ZWFwCiAJICBpcyBiYWNrZWQgYnkgcGFnZXMgZnJvbSB0aGUgYnVkZHkgYWxsb2NhdG9yLiBJZiBp biBkb3VidCwgc2F5IFkuCisKK2NvbmZpZyBETUFCVUZfSEVBUFNfQ01BCisJYm9vbCAiRE1BLUJV RiBDTUEgSGVhcCIKKwlkZXBlbmRzIG9uIERNQUJVRl9IRUFQUyAmJiBETUFfQ01BCisJaGVscAor CSAgQ2hvb3NlIHRoaXMgb3B0aW9uIHRvIGVuYWJsZSBkbWEtYnVmIENNQSBoZWFwLiBUaGlzIGhl YXAgaXMgYmFja2VkCisJICBieSB0aGUgQ29udGlndW91cyBNZW1vcnkgQWxsb2NhdG9yIChDTUEp LiBJZiB5b3VyIHN5c3RlbSBoYXMgdGhlc2UKKwkgIHJlZ2lvbnMsIHlvdSBzaG91bGQgc2F5IFkg aGVyZS4KZGlmZiAtLWdpdCBhL2RyaXZlcnMvZG1hLWJ1Zi9oZWFwcy9NYWtlZmlsZSBiL2RyaXZl cnMvZG1hLWJ1Zi9oZWFwcy9NYWtlZmlsZQppbmRleCBkMTgwOGVjYTI1ODEuLjZlNTRjZGVjM2Rh MCAxMDA2NDQKLS0tIGEvZHJpdmVycy9kbWEtYnVmL2hlYXBzL01ha2VmaWxlCisrKyBiL2RyaXZl cnMvZG1hLWJ1Zi9oZWFwcy9NYWtlZmlsZQpAQCAtMSwzICsxLDQgQEAKICMgU1BEWC1MaWNlbnNl LUlkZW50aWZpZXI6IEdQTC0yLjAKIG9iai15CQkJCQkrPSBoZWFwLWhlbHBlcnMubwogb2JqLSQo Q09ORklHX0RNQUJVRl9IRUFQU19TWVNURU0pCSs9IHN5c3RlbV9oZWFwLm8KK29iai0kKENPTkZJ R19ETUFCVUZfSEVBUFNfQ01BKQkJKz0gY21hX2hlYXAubwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9k bWEtYnVmL2hlYXBzL2NtYV9oZWFwLmMgYi9kcml2ZXJzL2RtYS1idWYvaGVhcHMvY21hX2hlYXAu YwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAuLmNjNjU3MzgwYWQ2MAot LS0gL2Rldi9udWxsCisrKyBiL2RyaXZlcnMvZG1hLWJ1Zi9oZWFwcy9jbWFfaGVhcC5jCkBAIC0w LDAgKzEsMTY0IEBACisvLyBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogR1BMLTIuMAorLyoKKyAq IERNQUJVRiBDTUEgaGVhcCBleHBvcnRlcgorICoKKyAqIENvcHlyaWdodCAoQykgMjAxMiwgMjAx OSBMaW5hcm8gTHRkLgorICogQXV0aG9yOiA8YmVuamFtaW4uZ2FpZ25hcmRAbGluYXJvLm9yZz4g Zm9yIFNULUVyaWNzc29uLgorICovCisKKyNpbmNsdWRlIDxsaW51eC9kZXZpY2UuaD4KKyNpbmNs dWRlIDxsaW51eC9kbWEtYnVmLmg+CisjaW5jbHVkZSA8bGludXgvZG1hLWhlYXAuaD4KKyNpbmNs dWRlIDxsaW51eC9zbGFiLmg+CisjaW5jbHVkZSA8bGludXgvZXJybm8uaD4KKyNpbmNsdWRlIDxs aW51eC9lcnIuaD4KKyNpbmNsdWRlIDxsaW51eC9jbWEuaD4KKyNpbmNsdWRlIDxsaW51eC9zY2F0 dGVybGlzdC5oPgorI2luY2x1ZGUgPGxpbnV4L2hpZ2htZW0uaD4KKworI2luY2x1ZGUgImhlYXAt aGVscGVycy5oIgorCitzdHJ1Y3QgY21hX2hlYXAgeworCXN0cnVjdCBkbWFfaGVhcCAqaGVhcDsK KwlzdHJ1Y3QgY21hICpjbWE7Cit9OworCitzdGF0aWMgdm9pZCBjbWFfaGVhcF9mcmVlKHN0cnVj dCBoZWFwX2hlbHBlcl9idWZmZXIgKmJ1ZmZlcikKK3sKKwlzdHJ1Y3QgY21hX2hlYXAgKmNtYV9o ZWFwID0gZG1hX2hlYXBfZ2V0X2RhdGEoYnVmZmVyLT5oZWFwX2J1ZmZlci5oZWFwKTsKKwl1bnNp Z25lZCBsb25nIG5yX3BhZ2VzID0gYnVmZmVyLT5wYWdlY291bnQ7CisJc3RydWN0IHBhZ2UgKmNt YV9wYWdlcyA9IGJ1ZmZlci0+cHJpdl92aXJ0OworCisJLyogZnJlZSBwYWdlIGxpc3QgKi8KKwlr ZnJlZShidWZmZXItPnBhZ2VzKTsKKwkvKiByZWxlYXNlIG1lbW9yeSAqLworCWNtYV9yZWxlYXNl KGNtYV9oZWFwLT5jbWEsIGNtYV9wYWdlcywgbnJfcGFnZXMpOworCWtmcmVlKGJ1ZmZlcik7Cit9 CisKKy8qIGRtYWJ1ZiBoZWFwIENNQSBvcGVyYXRpb25zIGZ1bmN0aW9ucyAqLworc3RhdGljIGlu dCBjbWFfaGVhcF9hbGxvY2F0ZShzdHJ1Y3QgZG1hX2hlYXAgKmhlYXAsCisJCQkJdW5zaWduZWQg bG9uZyBsZW4sCisJCQkJdW5zaWduZWQgbG9uZyBmZF9mbGFncywKKwkJCQl1bnNpZ25lZCBsb25n IGhlYXBfZmxhZ3MpCit7CisJc3RydWN0IGNtYV9oZWFwICpjbWFfaGVhcCA9IGRtYV9oZWFwX2dl dF9kYXRhKGhlYXApOworCXN0cnVjdCBoZWFwX2hlbHBlcl9idWZmZXIgKmhlbHBlcl9idWZmZXI7 CisJc3RydWN0IHBhZ2UgKmNtYV9wYWdlczsKKwlzaXplX3Qgc2l6ZSA9IFBBR0VfQUxJR04obGVu KTsKKwl1bnNpZ25lZCBsb25nIG5yX3BhZ2VzID0gc2l6ZSA+PiBQQUdFX1NISUZUOworCXVuc2ln bmVkIGxvbmcgYWxpZ24gPSBnZXRfb3JkZXIoc2l6ZSk7CisJc3RydWN0IGRtYV9idWYgKmRtYWJ1 ZjsKKwlpbnQgcmV0ID0gLUVOT01FTTsKKwlwZ29mZl90IHBnOworCisJaWYgKGFsaWduID4gQ09O RklHX0NNQV9BTElHTk1FTlQpCisJCWFsaWduID0gQ09ORklHX0NNQV9BTElHTk1FTlQ7CisKKwlo ZWxwZXJfYnVmZmVyID0ga3phbGxvYyhzaXplb2YoKmhlbHBlcl9idWZmZXIpLCBHRlBfS0VSTkVM KTsKKwlpZiAoIWhlbHBlcl9idWZmZXIpCisJCXJldHVybiAtRU5PTUVNOworCisJaW5pdF9oZWFw X2hlbHBlcl9idWZmZXIoaGVscGVyX2J1ZmZlciwgY21hX2hlYXBfZnJlZSk7CisJaGVscGVyX2J1 ZmZlci0+aGVhcF9idWZmZXIuZmxhZ3MgPSBoZWFwX2ZsYWdzOworCWhlbHBlcl9idWZmZXItPmhl YXBfYnVmZmVyLmhlYXAgPSBoZWFwOworCWhlbHBlcl9idWZmZXItPmhlYXBfYnVmZmVyLnNpemUg PSBsZW47CisKKwljbWFfcGFnZXMgPSBjbWFfYWxsb2MoY21hX2hlYXAtPmNtYSwgbnJfcGFnZXMs IGFsaWduLCBmYWxzZSk7CisJaWYgKCFjbWFfcGFnZXMpCisJCWdvdG8gZnJlZV9idWY7CisKKwlp ZiAoUGFnZUhpZ2hNZW0oY21hX3BhZ2VzKSkgeworCQl1bnNpZ25lZCBsb25nIG5yX2NsZWFyX3Bh Z2VzID0gbnJfcGFnZXM7CisJCXN0cnVjdCBwYWdlICpwYWdlID0gY21hX3BhZ2VzOworCisJCXdo aWxlIChucl9jbGVhcl9wYWdlcyA+IDApIHsKKwkJCXZvaWQgKnZhZGRyID0ga21hcF9hdG9taWMo cGFnZSk7CisKKwkJCW1lbXNldCh2YWRkciwgMCwgUEFHRV9TSVpFKTsKKwkJCWt1bm1hcF9hdG9t aWModmFkZHIpOworCQkJcGFnZSsrOworCQkJbnJfY2xlYXJfcGFnZXMtLTsKKwkJfQorCX0gZWxz ZSB7CisJCW1lbXNldChwYWdlX2FkZHJlc3MoY21hX3BhZ2VzKSwgMCwgc2l6ZSk7CisJfQorCisJ aGVscGVyX2J1ZmZlci0+cGFnZWNvdW50ID0gbnJfcGFnZXM7CisJaGVscGVyX2J1ZmZlci0+cGFn ZXMgPSBrbWFsbG9jX2FycmF5KGhlbHBlcl9idWZmZXItPnBhZ2Vjb3VudCwKKwkJCQkJICAgICBz aXplb2YoKmhlbHBlcl9idWZmZXItPnBhZ2VzKSwKKwkJCQkJICAgICBHRlBfS0VSTkVMKTsKKwlp ZiAoIWhlbHBlcl9idWZmZXItPnBhZ2VzKSB7CisJCXJldCA9IC1FTk9NRU07CisJCWdvdG8gZnJl ZV9jbWE7CisJfQorCisJZm9yIChwZyA9IDA7IHBnIDwgaGVscGVyX2J1ZmZlci0+cGFnZWNvdW50 OyBwZysrKSB7CisJCWhlbHBlcl9idWZmZXItPnBhZ2VzW3BnXSA9ICZjbWFfcGFnZXNbcGddOwor CQlpZiAoIWhlbHBlcl9idWZmZXItPnBhZ2VzW3BnXSkKKwkJCWdvdG8gZnJlZV9wYWdlczsKKwl9 CisKKwkvKiBjcmVhdGUgdGhlIGRtYWJ1ZiAqLworCWRtYWJ1ZiA9IGhlYXBfaGVscGVyX2V4cG9y dF9kbWFidWYoaGVscGVyX2J1ZmZlciwgZmRfZmxhZ3MpOworCWlmIChJU19FUlIoZG1hYnVmKSkg eworCQlyZXQgPSBQVFJfRVJSKGRtYWJ1Zik7CisJCWdvdG8gZnJlZV9wYWdlczsKKwl9CisKKwlo ZWxwZXJfYnVmZmVyLT5oZWFwX2J1ZmZlci5kbWFidWYgPSBkbWFidWY7CisJaGVscGVyX2J1ZmZl ci0+cHJpdl92aXJ0ID0gY21hX3BhZ2VzOworCisJcmV0ID0gZG1hX2J1Zl9mZChkbWFidWYsIGZk X2ZsYWdzKTsKKwlpZiAocmV0IDwgMCkgeworCQlkbWFfYnVmX3B1dChkbWFidWYpOworCQkvKiBq dXN0IHJldHVybiwgYXMgcHV0IHdpbGwgY2FsbCByZWxlYXNlIGFuZCB0aGF0IHdpbGwgZnJlZSAq LworCQlyZXR1cm4gcmV0OworCX0KKworCXJldHVybiByZXQ7CisKK2ZyZWVfcGFnZXM6CisJa2Zy ZWUoaGVscGVyX2J1ZmZlci0+cGFnZXMpOworZnJlZV9jbWE6CisJY21hX3JlbGVhc2UoY21hX2hl YXAtPmNtYSwgY21hX3BhZ2VzLCBucl9wYWdlcyk7CitmcmVlX2J1ZjoKKwlrZnJlZShoZWxwZXJf YnVmZmVyKTsKKwlyZXR1cm4gcmV0OworfQorCitzdGF0aWMgc3RydWN0IGRtYV9oZWFwX29wcyBj bWFfaGVhcF9vcHMgPSB7CisJLmFsbG9jYXRlID0gY21hX2hlYXBfYWxsb2NhdGUsCit9OworCitz dGF0aWMgaW50IF9fYWRkX2NtYV9oZWFwKHN0cnVjdCBjbWEgKmNtYSwgdm9pZCAqZGF0YSkKK3sK KwlzdHJ1Y3QgY21hX2hlYXAgKmNtYV9oZWFwOworCXN0cnVjdCBkbWFfaGVhcF9leHBvcnRfaW5m byBleHBfaW5mbzsKKworCWNtYV9oZWFwID0ga3phbGxvYyhzaXplb2YoKmNtYV9oZWFwKSwgR0ZQ X0tFUk5FTCk7CisJaWYgKCFjbWFfaGVhcCkKKwkJcmV0dXJuIC1FTk9NRU07CisJY21hX2hlYXAt PmNtYSA9IGNtYTsKKworCWV4cF9pbmZvLm5hbWUgPSBjbWFfZ2V0X25hbWUoY21hKTsKKwlleHBf aW5mby5vcHMgPSAmY21hX2hlYXBfb3BzOworCWV4cF9pbmZvLnByaXYgPSBjbWFfaGVhcDsKKwor CWNtYV9oZWFwLT5oZWFwID0gZG1hX2hlYXBfYWRkKCZleHBfaW5mbyk7CisJaWYgKElTX0VSUihj bWFfaGVhcC0+aGVhcCkpIHsKKwkJaW50IHJldCA9IFBUUl9FUlIoY21hX2hlYXAtPmhlYXApOwor CisJCWtmcmVlKGNtYV9oZWFwKTsKKwkJcmV0dXJuIHJldDsKKwl9CisKKwlyZXR1cm4gMDsKK30K Kworc3RhdGljIGludCBhZGRfY21hX2hlYXBzKHZvaWQpCit7CisJY21hX2Zvcl9lYWNoX2FyZWEo X19hZGRfY21hX2hlYXAsIE5VTEwpOworCXJldHVybiAwOworfQorZGV2aWNlX2luaXRjYWxsKGFk ZF9jbWFfaGVhcHMpOwotLSAKMi4xNy4xCgpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fXwpkcmktZGV2ZWwgbWFpbGluZyBsaXN0CmRyaS1kZXZlbEBsaXN0cy5m cmVlZGVza3RvcC5vcmcKaHR0cHM6Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0 aW5mby9kcmktZGV2ZWw=