From mboxrd@z Thu Jan 1 00:00:00 1970 From: Alistair Strachan Subject: [PATCH 3/3] drm_hwcomposer: Add platform backend for minigbm Date: Wed, 2 May 2018 16:56:48 -0700 Message-ID: <20180502235648.105267-1-astrachan@google.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mail-pf0-x241.google.com (mail-pf0-x241.google.com [IPv6:2607:f8b0:400e:c00::241]) by gabe.freedesktop.org (Postfix) with ESMTPS id B96CC890B6 for ; Wed, 2 May 2018 23:57:00 +0000 (UTC) Received: by mail-pf0-x241.google.com with SMTP id z9so13132200pfe.6 for ; Wed, 02 May 2018 16:57:00 -0700 (PDT) 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: Rob Herring , Greg Hartman , Alistair Strachan , Sean Paul List-Id: dri-devel@lists.freedesktop.org VGhpcyBhZGRzIHN1cHBvcnQgZm9yIHRoZSBjaHJvbWl1bW9zIChub3QgQU9TUCkgdmVyc2lvbiBv ZiBtaW5pZ2JtLiBMaWtlCmhpc2ksIHRoZSBncmFsbG9jIGhhbmRsZSBpcyBub3QgdGhlIHNhbWUg YXMgdGhlIGNvbW1vbiBsaWJkcm0gaGFuZGxlCihqdXN0IHlldCksIHNvIHdlIGRvIG5lZWQgYSBz ZXBhcmF0ZSBiYWNrZW5kLgoKVGVzdGVkIHdpdGggYSBwZW5kaW5nIGNoYW5nZSB0byB0aGUgJ2N1 dHRsZWZpc2gnIGFuZHJvaWQgdmlydHVhbCBkZXZpY2UKaW4gQU9TUCB3aXRoIGl0cyBjdXN0b20g Z3JhbGxvYyBzd2l0Y2hlZCB0byBtaW5pZ2JtLgoKQ2M6IEpvaG4gU3R1bHR6IDxqb2huLnN0dWx0 ekBsaW5hcm8ub3JnPgpDYzogUm9iIEhlcnJpbmcgPHJvYi5oZXJyaW5nQGxpbmFyby5vcmc+CkNj OiBTZWFuIFBhdWwgPHNlYW5wYXVsQGdvb2dsZS5jb20+CkNjOiBHcmVnIEhhcnRtYW4gPGdoYXJ0 bWFuQGdvb2dsZS5jb20+ClNpZ25lZC1vZmYtYnk6IEFsaXN0YWlyIFN0cmFjaGFuIDxhc3RyYWNo YW5AZ29vZ2xlLmNvbT4KLS0tCiBBbmRyb2lkLm1rICAgICAgICAgIHwgICA4ICstLQogcGxhdGZv cm1taW5pZ2JtLmNwcCB8IDEyMiArKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysr KysrKysrKwogcGxhdGZvcm1taW5pZ2JtLmggICB8ICA0NiArKysrKysrKysrKysrKysrKwogMyBm aWxlcyBjaGFuZ2VkLCAxNzMgaW5zZXJ0aW9ucygrKSwgMyBkZWxldGlvbnMoLSkKIGNyZWF0ZSBt b2RlIDEwMDY0NCBwbGF0Zm9ybW1pbmlnYm0uY3BwCiBjcmVhdGUgbW9kZSAxMDA2NDQgcGxhdGZv cm1taW5pZ2JtLmgKCmRpZmYgLS1naXQgYS9BbmRyb2lkLm1rIGIvQW5kcm9pZC5tawppbmRleCA3 NDdiZjI3Li41NDlmYzdjIDEwMDY0NAotLS0gYS9BbmRyb2lkLm1rCisrKyBiL0FuZHJvaWQubWsK QEAgLTEwMSwxNCArMTAxLDE2IEBAIGlmZXEgKCQoVEFSR0VUX1BST0RVQ1QpLGhpa2V5OTYwKQog TE9DQUxfQ1BQRkxBR1MgKz0gLURVU0VfSElTSV9JTVBPUlRFUgogTE9DQUxfU1JDX0ZJTEVTICs9 IHBsYXRmb3JtaGlzaS5jcHAKIExPQ0FMX0NfSU5DTFVERVMgKz0gZGV2aWNlL2xpbmFyby9oaWtl eS9ncmFsbG9jOTYwLwotZWxzZQotaWZlcSAoJChUQVJHRVRfUFJPRFVDVCksaGlrZXkpCitlbHNl IGlmZXEgKCQoVEFSR0VUX1BST0RVQ1QpLGhpa2V5KQogTE9DQUxfQ1BQRkxBR1MgKz0gLURVU0Vf SElTSV9JTVBPUlRFUgogTE9DQUxfU1JDX0ZJTEVTICs9IHBsYXRmb3JtaGlzaS5jcHAKIExPQ0FM X0NfSU5DTFVERVMgKz0gZGV2aWNlL2xpbmFyby9oaWtleS9ncmFsbG9jLworZWxzZSBpZmVxICgk KHN0cmlwICQoQk9BUkRfRFJNX0hXQ09NUE9TRVJfQlVGRkVSX0lNUE9SVEVSKSksbWluaWdibSkK K0xPQ0FMX1NSQ19GSUxFUyArPSBwbGF0Zm9ybW1pbmlnYm0uY3BwCitMT0NBTF9DX0lOQ0xVREVT ICs9IGV4dGVybmFsL21pbmlnYm0vY3Jvc19ncmFsbG9jLwogZWxzZQogTE9DQUxfQ1BQRkxBR1Mg Kz0gLURVU0VfRFJNX0dFTkVSSUNfSU1QT1JURVIKLWVuZGlmCitMT0NBTF9DX0lOQ0xVREVTICs9 IGV4dGVybmFsL2RybV9ncmFsbG9jCiBlbmRpZgogCiBMT0NBTF9NT0RVTEUgOj0gaHdjb21wb3Nl ci5kcm0KZGlmZiAtLWdpdCBhL3BsYXRmb3JtbWluaWdibS5jcHAgYi9wbGF0Zm9ybW1pbmlnYm0u Y3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjgwZTJjMGYKLS0tIC9kZXYv bnVsbAorKysgYi9wbGF0Zm9ybW1pbmlnYm0uY3BwCkBAIC0wLDAgKzEsMTIyIEBACisvKgorICog Q29weXJpZ2h0IChDKSAyMDE4IFRoZSBBbmRyb2lkIE9wZW4gU291cmNlIFByb2plY3QKKyAqCisg KiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxp Y2Vuc2UiKTsKKyAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFu Y2Ugd2l0aCB0aGUgTGljZW5zZS4KKyAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGlj ZW5zZSBhdAorICoKKyAqICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VO U0UtMi4wCisgKgorICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVl ZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQorICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vu c2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKKyAqIFdJVEhPVVQgV0FSUkFO VElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVk LgorICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5n IHBlcm1pc3Npb25zIGFuZAorICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCisgKi8K KworI2RlZmluZSBMT0dfVEFHICJod2MtcGxhdGZvcm0tZHJtLW1pbmlnYm0iCisKKyNpbmNsdWRl ICJkcm1yZXNvdXJjZXMuaCIKKyNpbmNsdWRlICJwbGF0Zm9ybS5oIgorI2luY2x1ZGUgInBsYXRm b3JtbWluaWdibS5oIgorCisjaW5jbHVkZSA8ZHJtL2RybV9mb3VyY2MuaD4KKyNpbmNsdWRlIDx4 Zjg2ZHJtLmg+CisjaW5jbHVkZSA8eGY4NmRybU1vZGUuaD4KKworI2luY2x1ZGUgPGxvZy9sb2cu aD4KKyNpbmNsdWRlIDxoYXJkd2FyZS9ncmFsbG9jLmg+CisKKyNpbmNsdWRlICJjcm9zX2dyYWxs b2NfaGFuZGxlLmgiCisKK25hbWVzcGFjZSBhbmRyb2lkIHsKKworSW1wb3J0ZXIgKkltcG9ydGVy OjpDcmVhdGVJbnN0YW5jZShEcm1SZXNvdXJjZXMgKmRybSkgeworICBEcm1NaW5pZ2JtSW1wb3J0 ZXIgKmltcG9ydGVyID0gbmV3IERybU1pbmlnYm1JbXBvcnRlcihkcm0pOworICBpZiAoIWltcG9y dGVyKQorICAgIHJldHVybiBOVUxMOworCisgIGludCByZXQgPSBpbXBvcnRlci0+SW5pdCgpOwor ICBpZiAocmV0KSB7CisgICAgQUxPR0UoIkZhaWxlZCB0byBpbml0aWFsaXplIHRoZSBtaW5pZ2Jt IGltcG9ydGVyICVkIiwgcmV0KTsKKyAgICBkZWxldGUgaW1wb3J0ZXI7CisgICAgcmV0dXJuIE5V TEw7CisgIH0KKyAgcmV0dXJuIGltcG9ydGVyOworfQorCitEcm1NaW5pZ2JtSW1wb3J0ZXI6OkRy bU1pbmlnYm1JbXBvcnRlcihEcm1SZXNvdXJjZXMgKmRybSkgOiBEcm1HZW5lcmljSW1wb3J0ZXIo ZHJtKSwgZHJtXyhkcm0pIHsKK30KKworRHJtTWluaWdibUltcG9ydGVyOjp+RHJtTWluaWdibUlt cG9ydGVyKCkgeworfQorCitpbnQgRHJtTWluaWdibUltcG9ydGVyOjpJbml0KCkgeworICBpbnQg cmV0ID0gaHdfZ2V0X21vZHVsZShHUkFMTE9DX0hBUkRXQVJFX01PRFVMRV9JRCwKKyAgICAgICAg ICAgICAgICAgICAgICAgICAgKGNvbnN0IGh3X21vZHVsZV90ICoqKSZncmFsbG9jXyk7CisgIGlm IChyZXQpIHsKKyAgICBBTE9HRSgiRmFpbGVkIHRvIG9wZW4gZ3JhbGxvYyBtb2R1bGUgJWQiLCBy ZXQpOworICAgIHJldHVybiByZXQ7CisgIH0KKworICBpZiAoc3RyY2FzZWNtcChncmFsbG9jXy0+ Y29tbW9uLmF1dGhvciwgIkNocm9tZSBPUyIpKQorICAgIEFMT0dXKCJVc2luZyBub24tbWluaWdi bSBncmFsbG9jIG1vZHVsZTogJXMvJXNcbiIsIGdyYWxsb2NfLT5jb21tb24ubmFtZSwKKyAgICAg ICAgICBncmFsbG9jXy0+Y29tbW9uLmF1dGhvcik7CisKKyAgcmV0dXJuIDA7Cit9CisKK0VHTElt YWdlS0hSIERybU1pbmlnYm1JbXBvcnRlcjo6SW1wb3J0SW1hZ2UoRUdMRGlzcGxheSBlZ2xfZGlz cGxheSwgYnVmZmVyX2hhbmRsZV90IGhhbmRsZSkgeworICBjcm9zX2dyYWxsb2NfaGFuZGxlICpn cl9oYW5kbGUgPSAoY3Jvc19ncmFsbG9jX2hhbmRsZSAqKWhhbmRsZTsKKyAgaWYgKCFncl9oYW5k bGUpCisgICAgcmV0dXJuIE5VTEw7CisgIEVHTGludCBhdHRyW10gPSB7CisgICAgRUdMX1dJRFRI LCAoRUdMaW50KWdyX2hhbmRsZS0+d2lkdGgsCisgICAgRUdMX0hFSUdIVCwgKEVHTGludClncl9o YW5kbGUtPmhlaWdodCwKKyAgICBFR0xfTElOVVhfRFJNX0ZPVVJDQ19FWFQsIChFR0xpbnQpZ3Jf aGFuZGxlLT5mb3JtYXQsCisgICAgRUdMX0RNQV9CVUZfUExBTkUwX0ZEX0VYVCwgZ3JfaGFuZGxl LT5mZHNbMF0sCisgICAgRUdMX0RNQV9CVUZfUExBTkUwX1BJVENIX0VYVCwgKEVHTGludClncl9o YW5kbGUtPnN0cmlkZXNbMF0sCisgICAgRUdMX0RNQV9CVUZfUExBTkUwX09GRlNFVF9FWFQsIChF R0xpbnQpZ3JfaGFuZGxlLT5vZmZzZXRzWzBdLAorICAgIEVHTF9OT05FLAorICB9OworICByZXR1 cm4gZWdsQ3JlYXRlSW1hZ2VLSFIoZWdsX2Rpc3BsYXksIEVHTF9OT19DT05URVhULCBFR0xfTElO VVhfRE1BX0JVRl9FWFQsIE5VTEwsIGF0dHIpOworfQorCitpbnQgRHJtTWluaWdibUltcG9ydGVy OjpJbXBvcnRCdWZmZXIoYnVmZmVyX2hhbmRsZV90IGhhbmRsZSwgaHdjX2RybV9ib190ICpibykg eworICBjcm9zX2dyYWxsb2NfaGFuZGxlICpncl9oYW5kbGUgPSAoY3Jvc19ncmFsbG9jX2hhbmRs ZSAqKWhhbmRsZTsKKyAgaWYgKCFncl9oYW5kbGUpCisgICAgcmV0dXJuIC1FSU5WQUw7CisKKyAg dWludDMyX3QgZ2VtX2hhbmRsZTsKKyAgaW50IHJldCA9IGRybVByaW1lRkRUb0hhbmRsZShkcm1f LT5mZCgpLCBncl9oYW5kbGUtPmZkc1swXSwgJmdlbV9oYW5kbGUpOworICBpZiAocmV0KSB7Cisg ICAgQUxPR0UoImZhaWxlZCB0byBpbXBvcnQgcHJpbWUgZmQgJWQgcmV0PSVkIiwgZ3JfaGFuZGxl LT5mZHNbMF0sIHJldCk7CisgICAgcmV0dXJuIHJldDsKKyAgfQorCisgIG1lbXNldChibywgMCwg c2l6ZW9mKGh3Y19kcm1fYm9fdCkpOworICBiby0+d2lkdGggPSBncl9oYW5kbGUtPndpZHRoOwor ICBiby0+aGVpZ2h0ID0gZ3JfaGFuZGxlLT5oZWlnaHQ7CisgIGJvLT5mb3JtYXQgPSBncl9oYW5k bGUtPmZvcm1hdDsKKyAgYm8tPnVzYWdlID0gZ3JfaGFuZGxlLT51c2FnZTsKKyAgYm8tPnBpdGNo ZXNbMF0gPSBncl9oYW5kbGUtPnN0cmlkZXNbMF07CisgIGJvLT5vZmZzZXRzWzBdID0gZ3JfaGFu ZGxlLT5vZmZzZXRzWzBdOworICBiby0+Z2VtX2hhbmRsZXNbMF0gPSBnZW1faGFuZGxlOworCisg IHJldCA9IGRybU1vZGVBZGRGQjIoZHJtXy0+ZmQoKSwgYm8tPndpZHRoLCBiby0+aGVpZ2h0LCBi by0+Zm9ybWF0LAorICAgICAgICAgICAgICAgICAgICAgIGJvLT5nZW1faGFuZGxlcywgYm8tPnBp dGNoZXMsIGJvLT5vZmZzZXRzLCAmYm8tPmZiX2lkLCAwKTsKKyAgaWYgKHJldCkgeworICAgIEFM T0dFKCJjb3VsZCBub3QgY3JlYXRlIGRybSBmYiAlZCIsIHJldCk7CisgICAgcmV0dXJuIHJldDsK KyAgfQorCisgIHJldHVybiByZXQ7Cit9CisKK3N0ZDo6dW5pcXVlX3B0cjxQbGFubmVyPiBQbGFu bmVyOjpDcmVhdGVJbnN0YW5jZShEcm1SZXNvdXJjZXMgKikgeworICBzdGQ6OnVuaXF1ZV9wdHI8 UGxhbm5lcj4gcGxhbm5lcihuZXcgUGxhbm5lcik7CisgIHBsYW5uZXItPkFkZFN0YWdlPFBsYW5T dGFnZUdyZWVkeT4oKTsKKyAgcmV0dXJuIHBsYW5uZXI7Cit9CisKK30KZGlmZiAtLWdpdCBhL3Bs YXRmb3JtbWluaWdibS5oIGIvcGxhdGZvcm1taW5pZ2JtLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQK aW5kZXggMDAwMDAwMC4uZGVkNGMwNwotLS0gL2Rldi9udWxsCisrKyBiL3BsYXRmb3JtbWluaWdi bS5oCkBAIC0wLDAgKzEsNDYgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTggVGhlIEFuZHJv aWQgT3BlbiBTb3VyY2UgUHJvamVjdAorICoKKyAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUg TGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOworICogeW91IG1heSBub3QgdXNl IHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLgorICogWW91 IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0CisgKgorICogICAgICBodHRwOi8v d3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKKyAqCisgKiBVbmxlc3MgcmVxdWly ZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCisg KiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMg SVMiIEJBU0lTLAorICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJ TkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuCisgKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRo ZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCisgKiBsaW1pdGF0 aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KKyAqLworCisjaWZuZGVmIEFORFJPSURfUExBVEZPUk1f RFJNX01JTklHQk1fSF8KKyNkZWZpbmUgQU5EUk9JRF9QTEFURk9STV9EUk1fTUlOSUdCTV9IXwor CisjaW5jbHVkZSAiZHJtcmVzb3VyY2VzLmgiCisjaW5jbHVkZSAicGxhdGZvcm0uaCIKKyNpbmNs dWRlICJwbGF0Zm9ybWRybWdlbmVyaWMuaCIKKworI2luY2x1ZGUgPGhhcmR3YXJlL2dyYWxsb2Mu aD4KKworbmFtZXNwYWNlIGFuZHJvaWQgeworCitjbGFzcyBEcm1NaW5pZ2JtSW1wb3J0ZXIgOiBw dWJsaWMgRHJtR2VuZXJpY0ltcG9ydGVyIHsKKyBwdWJsaWM6CisgIERybU1pbmlnYm1JbXBvcnRl cihEcm1SZXNvdXJjZXMgKmRybSk7CisgIH5Ecm1NaW5pZ2JtSW1wb3J0ZXIoKSBvdmVycmlkZTsK KworICBpbnQgSW5pdCgpOworCisgIEVHTEltYWdlS0hSIEltcG9ydEltYWdlKEVHTERpc3BsYXkg ZWdsX2Rpc3BsYXksIGJ1ZmZlcl9oYW5kbGVfdCBoYW5kbGUpIG92ZXJyaWRlOworICBpbnQgSW1w b3J0QnVmZmVyKGJ1ZmZlcl9oYW5kbGVfdCBoYW5kbGUsIGh3Y19kcm1fYm9fdCAqYm8pIG92ZXJy aWRlOworCisgcHJpdmF0ZToKKyAgRHJtUmVzb3VyY2VzICpkcm1fOworCisgIGNvbnN0IGdyYWxs b2NfbW9kdWxlX3QgKmdyYWxsb2NfOworfTsKKworfQorCisjZW5kaWYKLS0gCjIuMTcuMC40NDEu Z2I0NmZlNjBlMWQtZ29vZwoKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX18KZHJpLWRldmVsIG1haWxpbmcgbGlzdApkcmktZGV2ZWxAbGlzdHMuZnJlZWRlc2t0 b3Aub3JnCmh0dHBzOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3JnL21haWxtYW4vbGlzdGluZm8vZHJp LWRldmVsCg==