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.8 required=3.0 tests=HEADER_FROM_DIFFERENT_DOMAINS, INCLUDES_PATCH,MAILING_LIST_MULTI,SIGNED_OFF_BY,SPF_HELO_NONE,SPF_PASS, URIBL_BLOCKED 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 374C3C3F2D1 for ; Thu, 5 Mar 2020 10:01:54 +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 13780208CD for ; Thu, 5 Mar 2020 10:01:54 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 13780208CD Authentication-Results: mail.kernel.org; dmarc=fail (p=none dis=none) header.from=linux.intel.com 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 6CEB46E181; Thu, 5 Mar 2020 10:01:53 +0000 (UTC) Received: from mga17.intel.com (mga17.intel.com [192.55.52.151]) by gabe.freedesktop.org (Postfix) with ESMTPS id 382EB6E181; Thu, 5 Mar 2020 10:01:52 +0000 (UTC) X-Amp-Result: SKIPPED(no attachment in message) X-Amp-File-Uploaded: False Received: from orsmga008.jf.intel.com ([10.7.209.65]) by fmsmga107.fm.intel.com with ESMTP/TLS/DHE-RSA-AES256-GCM-SHA384; 05 Mar 2020 02:01:51 -0800 X-IronPort-AV: E=Sophos;i="5.70,517,1574150400"; d="scan'208";a="234367503" Received: from bennur-mobl1.ger.corp.intel.com (HELO localhost) ([10.249.38.13]) by orsmga008-auth.jf.intel.com with ESMTP/TLS/DHE-RSA-AES256-GCM-SHA384; 05 Mar 2020 02:01:43 -0800 From: Jani Nikula To: Rajat Jain , Maarten Lankhorst , Maxime Ripard , Sean Paul , David Airlie , Daniel Vetter , Joonas Lahtinen , Rodrigo Vivi , Ville =?utf-8?B?U3lyasOkbMOk?= , Chris Wilson , Imre Deak , =?utf-8?Q?Jo?= =?utf-8?Q?s=C3=A9?= Roberto de Souza , linux-kernel@vger.kernel.org, dri-devel@lists.freedesktop.org, intel-gfx@lists.freedesktop.org, gregkh@linuxfoundation.org, mathewk@google.com, Daniel Thompson , Jonathan Corbet , Pavel Machek , seanpaul@google.com, Duncan Laurie , jsbarnes@google.com, Thierry Reding , mpearson@lenovo.com, Nitin Joshi1 , Sugumaran Lacshiminarayanan , Tomoki Maruichi , groeck@google.com Subject: Re: [PATCH v6 3/3] drm/i915: Add support for integrated privacy screens In-Reply-To: <20200305012338.219746-4-rajatja@google.com> Organization: Intel Finland Oy - BIC 0357606-4 - Westendinkatu 7, 02160 Espoo References: <20200305012338.219746-1-rajatja@google.com> <20200305012338.219746-4-rajatja@google.com> Date: Thu, 05 Mar 2020 12:01:43 +0200 Message-ID: <87k13znmrc.fsf@intel.com> MIME-Version: 1.0 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: Rajat Jain , rajatxjain@gmail.com Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" T24gV2VkLCAwNCBNYXIgMjAyMCwgUmFqYXQgSmFpbiA8cmFqYXRqYUBnb29nbGUuY29tPiB3cm90 ZToKPiBDZXJ0YWluIGxhcHRvcHMgbm93IGNvbWUgd2l0aCBwYW5lbHMgdGhhdCBoYXZlIGludGVn cmF0ZWQgcHJpdmFjeQo+IHNjcmVlbnMgb24gdGhlbS4gVGhpcyBwYXRjaCBhZGRzIHN1cHBvcnQg Zm9yIHN1Y2ggcGFuZWxzIGJ5IGFkZGluZwo+IGEgcHJpdmFjeS1zY3JlZW4gcHJvcGVydHkgdG8g dGhlIGludGVsX2Nvbm5lY3RvciBmb3IgdGhlIHBhbmVsLCB0aGF0Cj4gdGhlIHVzZXJzcGFjZSBj YW4gdGhlbiB1c2UgdG8gY29udHJvbCBhbmQgY2hlY2sgdGhlIHN0YXR1cy4KPgo+IElkZW50aWZ5 aW5nIHRoZSBwcmVzZW5jZSBvZiBwcml2YWN5IHNjcmVlbiwgYW5kIGNvbnRyb2xsaW5nIGl0LCBp cyBkb25lCj4gdmlhIEFDUEkgX0RTTSBtZXRob2RzLgo+Cj4gQ3VycmVudGx5LCB0aGlzIGlzIGRv bmUgb25seSBmb3IgdGhlIEludGVsIGRpc3BsYXkgcG9ydHMuIEJ1dCBpbiBmdXR1cmUsCj4gdGhp cyBjYW4gYmUgZG9uZSBmb3IgYW55IG90aGVyIHBvcnRzIGlmIHRoZSBoYXJkd2FyZSBiZWNvbWVz IGF2YWlsYWJsZQo+IChlLmcuIGV4dGVybmFsIG1vbml0b3JzIHN1cHBvcnRpbmcgaW50ZWdyYXRl ZCBwcml2YWN5IHNjcmVlbnM/KS4KCkkgdGhpbmsgeW91IHNob3VsZCBhZGQgdGhlIHByb3BlcnR5 IGF0IHRoZSBkcm0gY29yZSBsZXZlbCBpbgpkcm1fY29ubmVjdG9yLmMsIG5vdCBpbiBpOTE1LCB0 byBlbnN1cmUgd2UgaGF2ZSB0aGUgc2FtZSBwcm9wZXJ0eSBhY3Jvc3MKZHJpdmVycy4gRXZlbiBp ZiwgZm9yIG5vdywgeW91IGxlYXZlIHRoZSBhY3BpIGltcGxlbWVudGF0aW9uIHBhcnQgaW4KaTkx NS4KCk1vcmUgY29tbWVudHMgaW5saW5lLgoKPgo+IFNpZ25lZC1vZmYtYnk6IFJhamF0IEphaW4g PHJhamF0amFAZ29vZ2xlLmNvbT4KPiAtLS0KPiB2NjogQWx3YXlzIGluaXRpYWxpemUgcHJvcCBp biBpbnRlbF9hdHRhY2hfcHJpdmFjeV9zY3JlZW5fcHJvcGVydHkoKQo+IHY1OiBmaXggYSBjb3Nt ZXRpYyBjaGVja3BhdGNoIHdhcm5pbmcKPiB2NDogRml4IGEgdHlwbyBpbiBpbnRlbF9wcml2YWN5 X3NjcmVlbi5oCj4gdjM6ICogQ2hhbmdlIGxpY2Vuc2UgdG8gR1BMLTIuMCBPUiBNSVQKPiAgICAg KiBNb3ZlIHByaXZhY3kgc2NyZWVuIGVudW0gZnJvbSBVQVBJIHRvIGludGVsX2Rpc3BsYXlfdHlw ZXMuaAo+ICAgICAqIFJlbmFtZSBwYXJhbWV0ZXIgbmFtZSBhbmQgc29tZSBvdGhlciBtaW5vciBj aGFuZ2VzLgo+IHYyOiBGb3JtZWQgYnkgc3BsaXR0aW5nIHRoZSBvcmlnaW5hbCBwYXRjaCBpbnRv IG11bHRpcGxlIHBhdGNoZXMuCj4gICAgIC0gQWxsIGNvZGUgaGFzIGJlZW4gbW92ZWQgaW50byBp OTE1IG5vdy4KPiAgICAgLSBQcml2YWN5IHNjcmVlbiBpcyBhIGk5MTUgcHJvcGVydHkKPiAgICAg LSBIYXZlIGEgbG9jYWwgc3RhdGUgdmFyaWFibGUgdG8gc3RvcmUgdGhlIHBydmFjeSBzY3JlZW4u IERvbid0IHJlYWQKPiAgICAgICBpdCBmcm9tIGhhcmR3YXJlLgo+Cj4gIGRyaXZlcnMvZ3B1L2Ry bS9pOTE1L01ha2VmaWxlICAgICAgICAgICAgICAgICB8ICAzICstCj4gIGRyaXZlcnMvZ3B1L2Ry bS9pOTE1L2Rpc3BsYXkvaW50ZWxfYXRvbWljLmMgICB8IDEzICsrKy0KPiAgLi4uL2dwdS9kcm0v aTkxNS9kaXNwbGF5L2ludGVsX2Nvbm5lY3Rvci5jICAgIHwgMzUgKysrKysrKysrCj4gIC4uLi9n cHUvZHJtL2k5MTUvZGlzcGxheS9pbnRlbF9jb25uZWN0b3IuaCAgICB8ICAxICsKPiAgLi4uL2Ry bS9pOTE1L2Rpc3BsYXkvaW50ZWxfZGlzcGxheV90eXBlcy5oICAgIHwgMTggKysrKysKPiAgZHJp dmVycy9ncHUvZHJtL2k5MTUvZGlzcGxheS9pbnRlbF9kcC5jICAgICAgIHwgIDYgKysKPiAgLi4u L2RybS9pOTE1L2Rpc3BsYXkvaW50ZWxfcHJpdmFjeV9zY3JlZW4uYyAgIHwgNzIgKysrKysrKysr KysrKysrKysrKwo+ICAuLi4vZHJtL2k5MTUvZGlzcGxheS9pbnRlbF9wcml2YWN5X3NjcmVlbi5o ICAgfCAyNyArKysrKysrCj4gIDggZmlsZXMgY2hhbmdlZCwgMTcxIGluc2VydGlvbnMoKyksIDQg ZGVsZXRpb25zKC0pCj4gIGNyZWF0ZSBtb2RlIDEwMDY0NCBkcml2ZXJzL2dwdS9kcm0vaTkxNS9k aXNwbGF5L2ludGVsX3ByaXZhY3lfc2NyZWVuLmMKPiAgY3JlYXRlIG1vZGUgMTAwNjQ0IGRyaXZl cnMvZ3B1L2RybS9pOTE1L2Rpc3BsYXkvaW50ZWxfcHJpdmFjeV9zY3JlZW4uaAo+Cj4gZGlmZiAt LWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L01ha2VmaWxlIGIvZHJpdmVycy9ncHUvZHJtL2k5 MTUvTWFrZWZpbGUKPiBpbmRleCA5OTFhOGM1MzdkMTIzLi44MjU5NTFiNGNkMDA2IDEwMDY0NAo+ IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L01ha2VmaWxlCj4gKysrIGIvZHJpdmVycy9ncHUv ZHJtL2k5MTUvTWFrZWZpbGUKPiBAQCAtMjA4LDcgKzIwOCw4IEBAIGk5MTUteSArPSBcCj4gIAlk aXNwbGF5L2ludGVsX3ZnYS5vCj4gIGk5MTUtJChDT05GSUdfQUNQSSkgKz0gXAo+ICAJZGlzcGxh eS9pbnRlbF9hY3BpLm8gXAo+IC0JZGlzcGxheS9pbnRlbF9vcHJlZ2lvbi5vCj4gKwlkaXNwbGF5 L2ludGVsX29wcmVnaW9uLm8gXAo+ICsJZGlzcGxheS9pbnRlbF9wcml2YWN5X3NjcmVlbi5vCj4g IGk5MTUtJChDT05GSUdfRFJNX0ZCREVWX0VNVUxBVElPTikgKz0gXAo+ICAJZGlzcGxheS9pbnRl bF9mYmRldi5vCj4gIAo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9kaXNwbGF5 L2ludGVsX2F0b21pYy5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvZGlzcGxheS9pbnRlbF9hdG9t aWMuYwo+IGluZGV4IGQwNDMwNTdkMmZhMDMuLjRlZDUzN2M4Nzc3NzcgMTAwNjQ0Cj4gLS0tIGEv ZHJpdmVycy9ncHUvZHJtL2k5MTUvZGlzcGxheS9pbnRlbF9hdG9taWMuYwo+ICsrKyBiL2RyaXZl cnMvZ3B1L2RybS9pOTE1L2Rpc3BsYXkvaW50ZWxfYXRvbWljLmMKPiBAQCAtNDAsNiArNDAsNyBA QAo+ICAjaW5jbHVkZSAiaW50ZWxfZ2xvYmFsX3N0YXRlLmgiCj4gICNpbmNsdWRlICJpbnRlbF9o ZGNwLmgiCj4gICNpbmNsdWRlICJpbnRlbF9wc3IuaCIKPiArI2luY2x1ZGUgImludGVsX3ByaXZh Y3lfc2NyZWVuLmgiCj4gICNpbmNsdWRlICJpbnRlbF9zcHJpdGUuaCIKPiAgCj4gIC8qKgo+IEBA IC02MCwxMSArNjEsMTQgQEAgaW50IGludGVsX2RpZ2l0YWxfY29ubmVjdG9yX2F0b21pY19nZXRf cHJvcGVydHkoc3RydWN0IGRybV9jb25uZWN0b3IgKmNvbm5lY3RvciwKPiAgCXN0cnVjdCBkcm1f aTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IHRvX2k5MTUoZGV2KTsKPiAgCXN0cnVjdCBpbnRlbF9k aWdpdGFsX2Nvbm5lY3Rvcl9zdGF0ZSAqaW50ZWxfY29ubl9zdGF0ZSA9Cj4gIAkJdG9faW50ZWxf ZGlnaXRhbF9jb25uZWN0b3Jfc3RhdGUoc3RhdGUpOwo+ICsJc3RydWN0IGludGVsX2Nvbm5lY3Rv ciAqaW50ZWxfY29ubmVjdG9yID0gdG9faW50ZWxfY29ubmVjdG9yKGNvbm5lY3Rvcik7Cj4gIAo+ ICAJaWYgKHByb3BlcnR5ID09IGRldl9wcml2LT5mb3JjZV9hdWRpb19wcm9wZXJ0eSkKPiAgCQkq dmFsID0gaW50ZWxfY29ubl9zdGF0ZS0+Zm9yY2VfYXVkaW87Cj4gIAllbHNlIGlmIChwcm9wZXJ0 eSA9PSBkZXZfcHJpdi0+YnJvYWRjYXN0X3JnYl9wcm9wZXJ0eSkKPiAgCQkqdmFsID0gaW50ZWxf Y29ubl9zdGF0ZS0+YnJvYWRjYXN0X3JnYjsKPiArCWVsc2UgaWYgKHByb3BlcnR5ID09IGludGVs X2Nvbm5lY3Rvci0+cHJpdmFjeV9zY3JlZW5fcHJvcGVydHkpCj4gKwkJKnZhbCA9IGludGVsX2Nv bm5fc3RhdGUtPnByaXZhY3lfc2NyZWVuX3N0YXR1czsKPiAgCWVsc2Ugewo+ICAJCWRybV9kYmdf YXRvbWljKCZkZXZfcHJpdi0+ZHJtLAo+ICAJCQkgICAgICAgIlVua25vd24gcHJvcGVydHkgW1BS T1A6JWQ6JXNdXG4iLAo+IEBAIC05MywxNSArOTcsMTggQEAgaW50IGludGVsX2RpZ2l0YWxfY29u bmVjdG9yX2F0b21pY19zZXRfcHJvcGVydHkoc3RydWN0IGRybV9jb25uZWN0b3IgKmNvbm5lY3Rv ciwKPiAgCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IHRvX2k5MTUoZGV2KTsK PiAgCXN0cnVjdCBpbnRlbF9kaWdpdGFsX2Nvbm5lY3Rvcl9zdGF0ZSAqaW50ZWxfY29ubl9zdGF0 ZSA9Cj4gIAkJdG9faW50ZWxfZGlnaXRhbF9jb25uZWN0b3Jfc3RhdGUoc3RhdGUpOwo+ICsJc3Ry dWN0IGludGVsX2Nvbm5lY3RvciAqaW50ZWxfY29ubmVjdG9yID0gdG9faW50ZWxfY29ubmVjdG9y KGNvbm5lY3Rvcik7Cj4gIAo+ICAJaWYgKHByb3BlcnR5ID09IGRldl9wcml2LT5mb3JjZV9hdWRp b19wcm9wZXJ0eSkgewo+ICAJCWludGVsX2Nvbm5fc3RhdGUtPmZvcmNlX2F1ZGlvID0gdmFsOwo+ ICAJCXJldHVybiAwOwo+IC0JfQo+IC0KPiAtCWlmIChwcm9wZXJ0eSA9PSBkZXZfcHJpdi0+YnJv YWRjYXN0X3JnYl9wcm9wZXJ0eSkgewo+ICsJfSBlbHNlIGlmIChwcm9wZXJ0eSA9PSBkZXZfcHJp di0+YnJvYWRjYXN0X3JnYl9wcm9wZXJ0eSkgewo+ICAJCWludGVsX2Nvbm5fc3RhdGUtPmJyb2Fk Y2FzdF9yZ2IgPSB2YWw7Cj4gIAkJcmV0dXJuIDA7Cj4gKwl9IGVsc2UgaWYgKHByb3BlcnR5ID09 IGludGVsX2Nvbm5lY3Rvci0+cHJpdmFjeV9zY3JlZW5fcHJvcGVydHkpIHsKPiArCQlpbnRlbF9w cml2YWN5X3NjcmVlbl9zZXRfdmFsKGludGVsX2Nvbm5lY3RvciwgdmFsKTsKCkkgdGhpbmsgdGhp cyBwYXJ0IHNob3VsZCBvbmx5IGNoYW5nZSB0aGUgY29ubmVjdG9yIHN0YXRlLiBUaGUgZHJpdmVy CndvdWxkIHRoZW4gZG8gdGhlIG1hZ2ljIGF0IGNvbW1pdCBzdGFnZSBhY2NvcmRpbmcgdG8gdGhl IHByb3BlcnR5IHZhbHVlLgoKPiArCQlpbnRlbF9jb25uX3N0YXRlLT5wcml2YWN5X3NjcmVlbl9z dGF0dXMgPSB2YWw7Cj4gKwkJcmV0dXJuIDA7Cj4gIAl9Cj4gIAo+ICAJZHJtX2RiZ19hdG9taWMo JmRldl9wcml2LT5kcm0sICJVbmtub3duIHByb3BlcnR5IFtQUk9QOiVkOiVzXVxuIiwKPiBkaWZm IC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvZGlzcGxheS9pbnRlbF9jb25uZWN0b3IuYyBi L2RyaXZlcnMvZ3B1L2RybS9pOTE1L2Rpc3BsYXkvaW50ZWxfY29ubmVjdG9yLmMKPiBpbmRleCA5 MDNlNDk2NTlmNTYxLi41NWY4MDIxOWNiMjY5IDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMvZ3B1L2Ry bS9pOTE1L2Rpc3BsYXkvaW50ZWxfY29ubmVjdG9yLmMKPiArKysgYi9kcml2ZXJzL2dwdS9kcm0v aTkxNS9kaXNwbGF5L2ludGVsX2Nvbm5lY3Rvci5jCj4gQEAgLTI5NywzICsyOTcsMzggQEAgaW50 ZWxfYXR0YWNoX2NvbG9yc3BhY2VfcHJvcGVydHkoc3RydWN0IGRybV9jb25uZWN0b3IgKmNvbm5l Y3RvcikKPiAgCWRybV9vYmplY3RfYXR0YWNoX3Byb3BlcnR5KCZjb25uZWN0b3ItPmJhc2UsCj4g IAkJCQkgICBjb25uZWN0b3ItPmNvbG9yc3BhY2VfcHJvcGVydHksIDApOwo+ICB9Cj4gKwo+ICtz dGF0aWMgY29uc3Qgc3RydWN0IGRybV9wcm9wX2VudW1fbGlzdCBwcml2YWN5X3NjcmVlbl9lbnVt W10gPSB7Cj4gKwl7IFBSSVZBQ1lfU0NSRUVOX0RJU0FCTEVELCAiRGlzYWJsZWQiIH0sCj4gKwl7 IFBSSVZBQ1lfU0NSRUVOX0VOQUJMRUQsICJFbmFibGVkIiB9LAo+ICt9Owo+ICsKPiArLyoqCj4g KyAqIGludGVsX2F0dGFjaF9wcml2YWN5X3NjcmVlbl9wcm9wZXJ0eSAtCj4gKyAqICAgICBjcmVh dGUgYW5kIGF0dGFjaCB0aGUgY29ubmVjdGVyJ3MgcHJpdmFjeS1zY3JlZW4gcHJvcGVydHkuICoK PiArICogQGNvbm5lY3RvcjogY29ubmVjdG9yIGZvciB3aGljaCB0byBpbml0IHRoZSBwcml2YWN5 LXNjcmVlbiBwcm9wZXJ0eQo+ICsgKgo+ICsgKiBUaGlzIGZ1bmN0aW9uIGNyZWF0ZXMgYW5kIGF0 dGFjaGVzIHRoZSAicHJpdmFjeS1zY3JlZW4iIHByb3BlcnR5IHRvIHRoZQo+ICsgKiBjb25uZWN0 b3IuIEluaXRpYWwgc3RhdGUgb2YgcHJpdmFjeS1zY3JlZW4gaXMgc2V0IHRvIGRpc2FibGVkLgo+ ICsgKi8KPiArdm9pZAo+ICtpbnRlbF9hdHRhY2hfcHJpdmFjeV9zY3JlZW5fcHJvcGVydHkoc3Ry dWN0IGRybV9jb25uZWN0b3IgKmNvbm5lY3RvcikKPiArewo+ICsJc3RydWN0IGludGVsX2Nvbm5l Y3RvciAqaW50ZWxfY29ubmVjdG9yID0gdG9faW50ZWxfY29ubmVjdG9yKGNvbm5lY3Rvcik7Cj4g KwlzdHJ1Y3QgZHJtX3Byb3BlcnR5ICpwcm9wID0gaW50ZWxfY29ubmVjdG9yLT5wcml2YWN5X3Nj cmVlbl9wcm9wZXJ0eTsKPiArCj4gKwlpZiAoIXByb3ApIHsKPiArCQlwcm9wID0gZHJtX3Byb3Bl cnR5X2NyZWF0ZV9lbnVtKGNvbm5lY3Rvci0+ZGV2LAo+ICsJCQkJCQlEUk1fTU9ERV9QUk9QX0VO VU0sCj4gKwkJCQkJCSJwcml2YWN5LXNjcmVlbiIsCj4gKwkJCQkJCXByaXZhY3lfc2NyZWVuX2Vu dW0sCj4gKwkJCQkJICAgIEFSUkFZX1NJWkUocHJpdmFjeV9zY3JlZW5fZW51bSkpOwo+ICsJCWlm ICghcHJvcCkKPiArCQkJcmV0dXJuOwo+ICsKPiArCQlpbnRlbF9jb25uZWN0b3ItPnByaXZhY3lf c2NyZWVuX3Byb3BlcnR5ID0gcHJvcDsKPiArCX0KPiArCj4gKwlkcm1fb2JqZWN0X2F0dGFjaF9w cm9wZXJ0eSgmY29ubmVjdG9yLT5iYXNlLCBwcm9wLAo+ICsJCQkJICAgUFJJVkFDWV9TQ1JFRU5f RElTQUJMRUQpOwo+ICt9CgpUaGlzIGxvb2tzIGFib3V0IHJpZ2h0LCBleGNlcHQgSU1PIHNob3Vs ZCBiZSBwYXJ0IG9mIGRybV9jb25uZWN0b3IgYW5kCm1vdmVkIHRvIGRybV9jb25uZWN0b3IuYy4K Cj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2Rpc3BsYXkvaW50ZWxfY29ubmVj dG9yLmggYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9kaXNwbGF5L2ludGVsX2Nvbm5lY3Rvci5oCj4g aW5kZXggOTNhNzM3NWM4MTk2ZC4uNjEwMDVmMzdhMzM4NSAxMDA2NDQKPiAtLS0gYS9kcml2ZXJz L2dwdS9kcm0vaTkxNS9kaXNwbGF5L2ludGVsX2Nvbm5lY3Rvci5oCj4gKysrIGIvZHJpdmVycy9n cHUvZHJtL2k5MTUvZGlzcGxheS9pbnRlbF9jb25uZWN0b3IuaAo+IEBAIC0zMSw1ICszMSw2IEBA IHZvaWQgaW50ZWxfYXR0YWNoX2ZvcmNlX2F1ZGlvX3Byb3BlcnR5KHN0cnVjdCBkcm1fY29ubmVj dG9yICpjb25uZWN0b3IpOwo+ICB2b2lkIGludGVsX2F0dGFjaF9icm9hZGNhc3RfcmdiX3Byb3Bl cnR5KHN0cnVjdCBkcm1fY29ubmVjdG9yICpjb25uZWN0b3IpOwo+ICB2b2lkIGludGVsX2F0dGFj aF9hc3BlY3RfcmF0aW9fcHJvcGVydHkoc3RydWN0IGRybV9jb25uZWN0b3IgKmNvbm5lY3Rvcik7 Cj4gIHZvaWQgaW50ZWxfYXR0YWNoX2NvbG9yc3BhY2VfcHJvcGVydHkoc3RydWN0IGRybV9jb25u ZWN0b3IgKmNvbm5lY3Rvcik7Cj4gK3ZvaWQgaW50ZWxfYXR0YWNoX3ByaXZhY3lfc2NyZWVuX3By b3BlcnR5KHN0cnVjdCBkcm1fY29ubmVjdG9yICpjb25uZWN0b3IpOwo+ICAKPiAgI2VuZGlmIC8q IF9fSU5URUxfQ09OTkVDVE9SX0hfXyAqLwo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0v aTkxNS9kaXNwbGF5L2ludGVsX2Rpc3BsYXlfdHlwZXMuaCBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1 L2Rpc3BsYXkvaW50ZWxfZGlzcGxheV90eXBlcy5oCj4gaW5kZXggZDcwNjEyY2MxYmEyYS4uZGUy MGVmZmIzZTA3MyAxMDA2NDQKPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9kaXNwbGF5L2lu dGVsX2Rpc3BsYXlfdHlwZXMuaAo+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2Rpc3BsYXkv aW50ZWxfZGlzcGxheV90eXBlcy5oCj4gQEAgLTQ0Miw2ICs0NDIsMjMgQEAgc3RydWN0IGludGVs X2Nvbm5lY3RvciB7Cj4gIAlzdHJ1Y3Qgd29ya19zdHJ1Y3QgbW9kZXNldF9yZXRyeV93b3JrOwo+ ICAKPiAgCXN0cnVjdCBpbnRlbF9oZGNwIGhkY3A7Cj4gKwo+ICsJLyogT3B0aW9uYWwgInByaXZh Y3ktc2NyZWVuIiBwcm9wZXJ0eSBmb3IgdGhlIGNvbm5lY3RvciBwYW5lbCAqLwo+ICsJc3RydWN0 IGRybV9wcm9wZXJ0eSAqcHJpdmFjeV9zY3JlZW5fcHJvcGVydHk7Cj4gK307Cj4gKwo+ICsvKioK PiArICogZW51bSBpbnRlbF9wcml2YWN5X3NjcmVlbl9zdGF0dXMgLSBwcml2YWN5X3NjcmVlbiBz dGF0dXMKPiArICoKPiArICogVGhpcyBlbnVtIGlzIHVzZWQgdG8gdHJhY2sgYW5kIGNvbnRyb2wg dGhlIHN0YXRlIG9mIHRoZSBpbnRlZ3JhdGVkIHByaXZhY3kKPiArICogc2NyZWVuIHByZXNlbnQg b24gc29tZSBkaXNwbGF5IHBhbmVscywgdmlhIHRoZSAicHJpdmFjeS1zY3JlZW4iIHByb3BlcnR5 Lgo+ICsgKgo+ICsgKiBAUFJJVkFDWV9TQ1JFRU5fRElTQUJMRUQ6IFRoZSBwcml2YWN5LXNjcmVl biBvbiB0aGUgcGFuZWwgaXMgZGlzYWJsZWQKPiArICogQFBSSVZBQ1lfU0NSRUVOX0VOQUJMRUQ6 ICBUaGUgcHJpdmFjeS1zY3JlZW4gb24gdGhlIHBhbmVsIGlzIGVuYWJsZWQKPiArICoqLwo+ICtl bnVtIGludGVsX3ByaXZhY3lfc2NyZWVuX3N0YXR1cyB7Cj4gKwlQUklWQUNZX1NDUkVFTl9ESVNB QkxFRCA9IDAsCj4gKwlQUklWQUNZX1NDUkVFTl9FTkFCTEVEID0gMSwKPiAgfTsKPiAgCj4gIHN0 cnVjdCBpbnRlbF9kaWdpdGFsX2Nvbm5lY3Rvcl9zdGF0ZSB7Cj4gQEAgLTQ0OSw2ICs0NjYsNyBA QCBzdHJ1Y3QgaW50ZWxfZGlnaXRhbF9jb25uZWN0b3Jfc3RhdGUgewo+ICAKPiAgCWVudW0gaGRt aV9mb3JjZV9hdWRpbyBmb3JjZV9hdWRpbzsKPiAgCWludCBicm9hZGNhc3RfcmdiOwo+ICsJZW51 bSBpbnRlbF9wcml2YWN5X3NjcmVlbl9zdGF0dXMgcHJpdmFjeV9zY3JlZW5fc3RhdHVzOwo+ICB9 Owo+ICAKPiAgI2RlZmluZSB0b19pbnRlbF9kaWdpdGFsX2Nvbm5lY3Rvcl9zdGF0ZSh4KSBjb250 YWluZXJfb2YoeCwgc3RydWN0IGludGVsX2RpZ2l0YWxfY29ubmVjdG9yX3N0YXRlLCBiYXNlKQo+ IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9kaXNwbGF5L2ludGVsX2RwLmMgYi9k cml2ZXJzL2dwdS9kcm0vaTkxNS9kaXNwbGF5L2ludGVsX2RwLmMKPiBpbmRleCAxNzE4MjExMTNk MzYyLi5mZjc2Yzc5OTM2NGQwIDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2Rp c3BsYXkvaW50ZWxfZHAuYwo+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2Rpc3BsYXkvaW50 ZWxfZHAuYwo+IEBAIC02Miw2ICs2Miw3IEBACj4gICNpbmNsdWRlICJpbnRlbF9sc3Bjb24uaCIK PiAgI2luY2x1ZGUgImludGVsX2x2ZHMuaCIKPiAgI2luY2x1ZGUgImludGVsX3BhbmVsLmgiCj4g KyNpbmNsdWRlICJpbnRlbF9wcml2YWN5X3NjcmVlbi5oIgo+ICAjaW5jbHVkZSAiaW50ZWxfcHNy LmgiCj4gICNpbmNsdWRlICJpbnRlbF9zaWRlYmFuZC5oIgo+ICAjaW5jbHVkZSAiaW50ZWxfdGMu aCIKPiBAQCAtNjg0MSw2ICs2ODQyLDcgQEAgaW50ZWxfZHBfYWRkX3Byb3BlcnRpZXMoc3RydWN0 IGludGVsX2RwICppbnRlbF9kcCwgc3RydWN0IGRybV9jb25uZWN0b3IgKmNvbm5lY3QKPiAgewo+ ICAJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gdG9faTkxNShjb25uZWN0b3It PmRldik7Cj4gIAllbnVtIHBvcnQgcG9ydCA9IGRwX3RvX2RpZ19wb3J0KGludGVsX2RwKS0+YmFz ZS5wb3J0Owo+ICsJc3RydWN0IGludGVsX2Nvbm5lY3RvciAqaW50ZWxfY29ubmVjdG9yID0gdG9f aW50ZWxfY29ubmVjdG9yKGNvbm5lY3Rvcik7Cj4gIAo+ICAJaWYgKCFJU19HNFgoZGV2X3ByaXYp ICYmIHBvcnQgIT0gUE9SVF9BKQo+ICAJCWludGVsX2F0dGFjaF9mb3JjZV9hdWRpb19wcm9wZXJ0 eShjb25uZWN0b3IpOwo+IEBAIC02ODcxLDYgKzY4NzMsMTAgQEAgaW50ZWxfZHBfYWRkX3Byb3Bl cnRpZXMoc3RydWN0IGludGVsX2RwICppbnRlbF9kcCwgc3RydWN0IGRybV9jb25uZWN0b3IgKmNv bm5lY3QKPiAgCj4gIAkJLyogTG9va3VwIHRoZSBBQ1BJIG5vZGUgY29ycmVzcG9uZGluZyB0byB0 aGUgY29ubmVjdG9yICovCj4gIAkJaW50ZWxfYWNwaV9kZXZpY2VfaWRfdXBkYXRlKGRldl9wcml2 KTsKPiArCj4gKwkJLyogQ2hlY2sgZm9yIGludGVncmF0ZWQgUHJpdmFjeSBzY3JlZW4gc3VwcG9y dCAqLwo+ICsJCWlmIChpbnRlbF9wcml2YWN5X3NjcmVlbl9wcmVzZW50KGludGVsX2Nvbm5lY3Rv cikpCj4gKwkJCWludGVsX2F0dGFjaF9wcml2YWN5X3NjcmVlbl9wcm9wZXJ0eShjb25uZWN0b3Ip OwoKQXMgc2FpZCBpbiByZXBseSB0byBwYXRjaCAyLCB3ZSBuZWVkIHRvIGZpZ3VyZSB0aGlzIHBh cnQgb3V0LgoKPiAgCX0KPiAgfQo+ICAKPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5 MTUvZGlzcGxheS9pbnRlbF9wcml2YWN5X3NjcmVlbi5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUv ZGlzcGxheS9pbnRlbF9wcml2YWN5X3NjcmVlbi5jCj4gbmV3IGZpbGUgbW9kZSAxMDA2NDQKPiBp bmRleCAwMDAwMDAwMDAwMDAwLi5jOGE1YjY0Zjk0ZmI3Cj4gLS0tIC9kZXYvbnVsbAo+ICsrKyBi L2RyaXZlcnMvZ3B1L2RybS9pOTE1L2Rpc3BsYXkvaW50ZWxfcHJpdmFjeV9zY3JlZW4uYwo+IEBA IC0wLDAgKzEsNzIgQEAKPiArLy8gU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEdQTC0yLjAgT1Ig TUlUCj4gKy8qCj4gKyAqIEludGVsIEFDUEkgcHJpdmFjeSBzY3JlZW4gY29kZQo+ICsgKgo+ICsg KiBDb3B5cmlnaHQgwqkgMjAxOSBHb29nbGUgSW5jLgo+ICsgKi8KPiArCj4gKyNpbmNsdWRlIDxs aW51eC9hY3BpLmg+Cj4gKwo+ICsjaW5jbHVkZSAiaW50ZWxfcHJpdmFjeV9zY3JlZW4uaCIKPiAr Cj4gKyNkZWZpbmUgQ09OTkVDVE9SX0RTTV9SRVZJRCAxCj4gKwo+ICsjZGVmaW5lIENPTk5FQ1RP Ul9EU01fRk5fUFJJVkFDWV9FTkFCTEUJCTIKPiArI2RlZmluZSBDT05ORUNUT1JfRFNNX0ZOX1BS SVZBQ1lfRElTQUJMRQkJMwo+ICsKPiArc3RhdGljIGNvbnN0IGd1aWRfdCBkcm1fY29ubl9kc21f Z3VpZCA9Cj4gKwlHVUlEX0lOSVQoMHhDNzAzMzExMywgMHg4NzIwLCAweDRDRUIsCj4gKwkJICAw eDkwLCAweDkwLCAweDlELCAweDUyLCAweEIzLCAweEU1LCAweDJELCAweDczKTsKPiArCj4gKy8q IE1ha2VzIF9EU00gY2FsbCB0byBzZXQgcHJpdmFjeSBzY3JlZW4gc3RhdHVzICovCj4gK3N0YXRp YyB2b2lkIGFjcGlfcHJpdmFjeV9zY3JlZW5fY2FsbF9kc20oYWNwaV9oYW5kbGUgY29ubl9oYW5k bGUsIHU2NCBmdW5jKQo+ICt7Cj4gKwl1bmlvbiBhY3BpX29iamVjdCAqb2JqOwo+ICsKPiArCW9i aiA9IGFjcGlfZXZhbHVhdGVfZHNtKGNvbm5faGFuZGxlLCAmZHJtX2Nvbm5fZHNtX2d1aWQsCj4g KwkJCQlDT05ORUNUT1JfRFNNX1JFVklELCBmdW5jLCBOVUxMKTsKPiArCWlmICghb2JqKSB7Cj4g KwkJRFJNX0RFQlVHX0RSSVZFUigiZmFpbGVkIHRvIGV2YWx1YXRlIF9EU00gZm9yIGZuICVsbHhc biIsIGZ1bmMpOwo+ICsJCXJldHVybjsKPiArCX0KPiArCj4gKwlBQ1BJX0ZSRUUob2JqKTsKPiAr fQo+ICsKPiArdm9pZCBpbnRlbF9wcml2YWN5X3NjcmVlbl9zZXRfdmFsKHN0cnVjdCBpbnRlbF9j b25uZWN0b3IgKmNvbm5lY3RvciwKPiArCQkJCSAgZW51bSBpbnRlbF9wcml2YWN5X3NjcmVlbl9z dGF0dXMgdmFsKQo+ICt7Cj4gKwlhY3BpX2hhbmRsZSBhY3BpX2hhbmRsZSA9IGNvbm5lY3Rvci0+ YWNwaV9oYW5kbGU7Cj4gKwo+ICsJaWYgKCFhY3BpX2hhbmRsZSkKPiArCQlyZXR1cm47Cj4gKwo+ ICsJaWYgKHZhbCA9PSBQUklWQUNZX1NDUkVFTl9ESVNBQkxFRCkKPiArCQlhY3BpX3ByaXZhY3lf c2NyZWVuX2NhbGxfZHNtKGFjcGlfaGFuZGxlLAo+ICsJCQkJCSAgICAgQ09OTkVDVE9SX0RTTV9G Tl9QUklWQUNZX0RJU0FCTEUpOwo+ICsJZWxzZSBpZiAodmFsID09IFBSSVZBQ1lfU0NSRUVOX0VO QUJMRUQpCj4gKwkJYWNwaV9wcml2YWN5X3NjcmVlbl9jYWxsX2RzbShhY3BpX2hhbmRsZSwKPiAr CQkJCQkgICAgIENPTk5FQ1RPUl9EU01fRk5fUFJJVkFDWV9FTkFCTEUpOwo+ICsJZWxzZQo+ICsJ CURSTV9XQVJOKCIlczogQ2Fubm90IHNldCBwcml2YWN5IHNjcmVlbiB0byBpbnZhbGlkIHZhbCAl dVxuIiwKPiArCQkJIGRldl9uYW1lKGNvbm5lY3Rvci0+YmFzZS5kZXYtPmRldiksIHZhbCk7Cj4g K30KPiArCj4gK2Jvb2wgaW50ZWxfcHJpdmFjeV9zY3JlZW5fcHJlc2VudChzdHJ1Y3QgaW50ZWxf Y29ubmVjdG9yICpjb25uZWN0b3IpCj4gK3sKPiArCWFjcGlfaGFuZGxlIGhhbmRsZSA9IGNvbm5l Y3Rvci0+YWNwaV9oYW5kbGU7Cj4gKwo+ICsJaWYgKCFoYW5kbGUpCj4gKwkJcmV0dXJuIGZhbHNl Owo+ICsKPiArCWlmICghYWNwaV9jaGVja19kc20oaGFuZGxlLCAmZHJtX2Nvbm5fZHNtX2d1aWQs Cj4gKwkJCSAgICBDT05ORUNUT1JfRFNNX1JFVklELAo+ICsJCQkgICAgMSA8PCBDT05ORUNUT1Jf RFNNX0ZOX1BSSVZBQ1lfRU5BQkxFIHwKPiArCQkJICAgIDEgPDwgQ09OTkVDVE9SX0RTTV9GTl9Q UklWQUNZX0RJU0FCTEUpKSB7Cj4gKwkJRFJNX1dBUk4oIiVzOiBPZGQsIGNvbm5lY3RvciBBQ1BJ IG5vZGUgYnV0IG5vIHByaXZhY3kgc2Nybj9cbiIsCj4gKwkJCSBkZXZfbmFtZShjb25uZWN0b3It PmJhc2UuZGV2LT5kZXYpKTsKPiArCQlyZXR1cm4gZmFsc2U7Cj4gKwl9Cj4gKwlEUk1fREVWX0lO Rk8oY29ubmVjdG9yLT5iYXNlLmRldi0+ZGV2LCAic3VwcG9ydHMgcHJpdmFjeSBzY3JlZW5cbiIp Owo+ICsJcmV0dXJuIHRydWU7Cj4gK30KCkkgZG9uJ3QgaGF2ZSBtdWNoIHRvIHNheSBhYm91dCB0 aGUgQUNQSSBwYXJ0cywgZXhjZXB0IHBsZWFzZSB1c2UgdGhlIG5ldwpkcm1fZGJnX2ttcyBhbmQg ZHJtX2luZm8gaGVscGVycyBmb3IgbG9nZ2luZy4KCkJSLApKYW5pLgoKCj4gZGlmZiAtLWdpdCBh L2RyaXZlcnMvZ3B1L2RybS9pOTE1L2Rpc3BsYXkvaW50ZWxfcHJpdmFjeV9zY3JlZW4uaCBiL2Ry aXZlcnMvZ3B1L2RybS9pOTE1L2Rpc3BsYXkvaW50ZWxfcHJpdmFjeV9zY3JlZW4uaAo+IG5ldyBm aWxlIG1vZGUgMTAwNjQ0Cj4gaW5kZXggMDAwMDAwMDAwMDAwMC4uNzQwMTNhNzg4NWM3MAo+IC0t LSAvZGV2L251bGwKPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9kaXNwbGF5L2ludGVsX3By aXZhY3lfc2NyZWVuLmgKPiBAQCAtMCwwICsxLDI3IEBACj4gKy8qIFNQRFgtTGljZW5zZS1JZGVu dGlmaWVyOiBHUEwtMi4wIE9SIE1JVCAqLwo+ICsvKgo+ICsgKiBDb3B5cmlnaHQgwqkgMjAxOSBH b29nbGUgSW5jLgo+ICsgKi8KPiArCj4gKyNpZm5kZWYgX19EUk1fUFJJVkFDWV9TQ1JFRU5fSF9f Cj4gKyNkZWZpbmUgX19EUk1fUFJJVkFDWV9TQ1JFRU5fSF9fCj4gKwo+ICsjaW5jbHVkZSAiaW50 ZWxfZGlzcGxheV90eXBlcy5oIgo+ICsKPiArI2lmZGVmIENPTkZJR19BQ1BJCj4gK2Jvb2wgaW50 ZWxfcHJpdmFjeV9zY3JlZW5fcHJlc2VudChzdHJ1Y3QgaW50ZWxfY29ubmVjdG9yICpjb25uZWN0 b3IpOwo+ICt2b2lkIGludGVsX3ByaXZhY3lfc2NyZWVuX3NldF92YWwoc3RydWN0IGludGVsX2Nv bm5lY3RvciAqY29ubmVjdG9yLAo+ICsJCQkJICBlbnVtIGludGVsX3ByaXZhY3lfc2NyZWVuX3N0 YXR1cyB2YWwpOwo+ICsjZWxzZQo+ICtzdGF0aWMgYm9vbCBpbnRlbF9wcml2YWN5X3NjcmVlbl9w cmVzZW50KHN0cnVjdCBpbnRlbF9jb25uZWN0b3IgKmNvbm5lY3RvcikKPiArewo+ICsJcmV0dXJu IGZhbHNlOwo+ICt9Cj4gKwo+ICtzdGF0aWMgdm9pZAo+ICtpbnRlbF9wcml2YWN5X3NjcmVlbl9z ZXRfdmFsKHN0cnVjdCBpbnRlbF9jb25uZWN0b3IgKmNvbm5lY3RvciwKPiArCQkJICAgICBlbnVt IGludGVsX3ByaXZhY3lfc2NyZWVuX3N0YXR1cyB2YWwpCj4gK3sgfQo+ICsjZW5kaWYgLyogQ09O RklHX0FDUEkgKi8KPiArCj4gKyNlbmRpZiAvKiBfX0RSTV9QUklWQUNZX1NDUkVFTl9IX18gKi8K Ci0tIApKYW5pIE5pa3VsYSwgSW50ZWwgT3BlbiBTb3VyY2UgR3JhcGhpY3MgQ2VudGVyCl9fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCmRyaS1kZXZlbCBtYWls aW5nIGxpc3QKZHJpLWRldmVsQGxpc3RzLmZyZWVkZXNrdG9wLm9yZwpodHRwczovL2xpc3RzLmZy ZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2RyaS1kZXZlbAo= 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.8 required=3.0 tests=HEADER_FROM_DIFFERENT_DOMAINS, INCLUDES_PATCH,MAILING_LIST_MULTI,SIGNED_OFF_BY,SPF_HELO_NONE,SPF_PASS, URIBL_BLOCKED autolearn=unavailable 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 2EE07C3F2D7 for ; Thu, 5 Mar 2020 10:01:58 +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 0E922208CD for ; Thu, 5 Mar 2020 10:01:57 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 0E922208CD Authentication-Results: mail.kernel.org; dmarc=fail (p=none dis=none) header.from=linux.intel.com Authentication-Results: mail.kernel.org; spf=none smtp.mailfrom=intel-gfx-bounces@lists.freedesktop.org Received: from gabe.freedesktop.org (localhost [127.0.0.1]) by gabe.freedesktop.org (Postfix) with ESMTP id 103F46EBB0; Thu, 5 Mar 2020 10:01:54 +0000 (UTC) Received: from mga17.intel.com (mga17.intel.com [192.55.52.151]) by gabe.freedesktop.org (Postfix) with ESMTPS id 382EB6E181; Thu, 5 Mar 2020 10:01:52 +0000 (UTC) X-Amp-Result: SKIPPED(no attachment in message) X-Amp-File-Uploaded: False Received: from orsmga008.jf.intel.com ([10.7.209.65]) by fmsmga107.fm.intel.com with ESMTP/TLS/DHE-RSA-AES256-GCM-SHA384; 05 Mar 2020 02:01:51 -0800 X-IronPort-AV: E=Sophos;i="5.70,517,1574150400"; d="scan'208";a="234367503" Received: from bennur-mobl1.ger.corp.intel.com (HELO localhost) ([10.249.38.13]) by orsmga008-auth.jf.intel.com with ESMTP/TLS/DHE-RSA-AES256-GCM-SHA384; 05 Mar 2020 02:01:43 -0800 From: Jani Nikula To: Rajat Jain , Maarten Lankhorst , Maxime Ripard , Sean Paul , David Airlie , Daniel Vetter , Joonas Lahtinen , Rodrigo Vivi , Ville =?utf-8?B?U3lyasOkbMOk?= , Chris Wilson , Imre Deak , =?utf-8?Q?Jo?= =?utf-8?Q?s=C3=A9?= Roberto de Souza , linux-kernel@vger.kernel.org, dri-devel@lists.freedesktop.org, intel-gfx@lists.freedesktop.org, gregkh@linuxfoundation.org, mathewk@google.com, Daniel Thompson , Jonathan Corbet , Pavel Machek , seanpaul@google.com, Duncan Laurie , jsbarnes@google.com, Thierry Reding , mpearson@lenovo.com, Nitin Joshi1 , Sugumaran Lacshiminarayanan , Tomoki Maruichi , groeck@google.com In-Reply-To: <20200305012338.219746-4-rajatja@google.com> Organization: Intel Finland Oy - BIC 0357606-4 - Westendinkatu 7, 02160 Espoo References: <20200305012338.219746-1-rajatja@google.com> <20200305012338.219746-4-rajatja@google.com> Date: Thu, 05 Mar 2020 12:01:43 +0200 Message-ID: <87k13znmrc.fsf@intel.com> MIME-Version: 1.0 Subject: Re: [Intel-gfx] [PATCH v6 3/3] drm/i915: Add support for integrated privacy screens X-BeenThere: intel-gfx@lists.freedesktop.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Intel graphics driver community testing & development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: rajatxjain@gmail.com Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" T24gV2VkLCAwNCBNYXIgMjAyMCwgUmFqYXQgSmFpbiA8cmFqYXRqYUBnb29nbGUuY29tPiB3cm90 ZToKPiBDZXJ0YWluIGxhcHRvcHMgbm93IGNvbWUgd2l0aCBwYW5lbHMgdGhhdCBoYXZlIGludGVn cmF0ZWQgcHJpdmFjeQo+IHNjcmVlbnMgb24gdGhlbS4gVGhpcyBwYXRjaCBhZGRzIHN1cHBvcnQg Zm9yIHN1Y2ggcGFuZWxzIGJ5IGFkZGluZwo+IGEgcHJpdmFjeS1zY3JlZW4gcHJvcGVydHkgdG8g dGhlIGludGVsX2Nvbm5lY3RvciBmb3IgdGhlIHBhbmVsLCB0aGF0Cj4gdGhlIHVzZXJzcGFjZSBj YW4gdGhlbiB1c2UgdG8gY29udHJvbCBhbmQgY2hlY2sgdGhlIHN0YXR1cy4KPgo+IElkZW50aWZ5 aW5nIHRoZSBwcmVzZW5jZSBvZiBwcml2YWN5IHNjcmVlbiwgYW5kIGNvbnRyb2xsaW5nIGl0LCBp cyBkb25lCj4gdmlhIEFDUEkgX0RTTSBtZXRob2RzLgo+Cj4gQ3VycmVudGx5LCB0aGlzIGlzIGRv bmUgb25seSBmb3IgdGhlIEludGVsIGRpc3BsYXkgcG9ydHMuIEJ1dCBpbiBmdXR1cmUsCj4gdGhp cyBjYW4gYmUgZG9uZSBmb3IgYW55IG90aGVyIHBvcnRzIGlmIHRoZSBoYXJkd2FyZSBiZWNvbWVz IGF2YWlsYWJsZQo+IChlLmcuIGV4dGVybmFsIG1vbml0b3JzIHN1cHBvcnRpbmcgaW50ZWdyYXRl ZCBwcml2YWN5IHNjcmVlbnM/KS4KCkkgdGhpbmsgeW91IHNob3VsZCBhZGQgdGhlIHByb3BlcnR5 IGF0IHRoZSBkcm0gY29yZSBsZXZlbCBpbgpkcm1fY29ubmVjdG9yLmMsIG5vdCBpbiBpOTE1LCB0 byBlbnN1cmUgd2UgaGF2ZSB0aGUgc2FtZSBwcm9wZXJ0eSBhY3Jvc3MKZHJpdmVycy4gRXZlbiBp ZiwgZm9yIG5vdywgeW91IGxlYXZlIHRoZSBhY3BpIGltcGxlbWVudGF0aW9uIHBhcnQgaW4KaTkx NS4KCk1vcmUgY29tbWVudHMgaW5saW5lLgoKPgo+IFNpZ25lZC1vZmYtYnk6IFJhamF0IEphaW4g PHJhamF0amFAZ29vZ2xlLmNvbT4KPiAtLS0KPiB2NjogQWx3YXlzIGluaXRpYWxpemUgcHJvcCBp biBpbnRlbF9hdHRhY2hfcHJpdmFjeV9zY3JlZW5fcHJvcGVydHkoKQo+IHY1OiBmaXggYSBjb3Nt ZXRpYyBjaGVja3BhdGNoIHdhcm5pbmcKPiB2NDogRml4IGEgdHlwbyBpbiBpbnRlbF9wcml2YWN5 X3NjcmVlbi5oCj4gdjM6ICogQ2hhbmdlIGxpY2Vuc2UgdG8gR1BMLTIuMCBPUiBNSVQKPiAgICAg KiBNb3ZlIHByaXZhY3kgc2NyZWVuIGVudW0gZnJvbSBVQVBJIHRvIGludGVsX2Rpc3BsYXlfdHlw ZXMuaAo+ICAgICAqIFJlbmFtZSBwYXJhbWV0ZXIgbmFtZSBhbmQgc29tZSBvdGhlciBtaW5vciBj aGFuZ2VzLgo+IHYyOiBGb3JtZWQgYnkgc3BsaXR0aW5nIHRoZSBvcmlnaW5hbCBwYXRjaCBpbnRv IG11bHRpcGxlIHBhdGNoZXMuCj4gICAgIC0gQWxsIGNvZGUgaGFzIGJlZW4gbW92ZWQgaW50byBp OTE1IG5vdy4KPiAgICAgLSBQcml2YWN5IHNjcmVlbiBpcyBhIGk5MTUgcHJvcGVydHkKPiAgICAg LSBIYXZlIGEgbG9jYWwgc3RhdGUgdmFyaWFibGUgdG8gc3RvcmUgdGhlIHBydmFjeSBzY3JlZW4u IERvbid0IHJlYWQKPiAgICAgICBpdCBmcm9tIGhhcmR3YXJlLgo+Cj4gIGRyaXZlcnMvZ3B1L2Ry bS9pOTE1L01ha2VmaWxlICAgICAgICAgICAgICAgICB8ICAzICstCj4gIGRyaXZlcnMvZ3B1L2Ry bS9pOTE1L2Rpc3BsYXkvaW50ZWxfYXRvbWljLmMgICB8IDEzICsrKy0KPiAgLi4uL2dwdS9kcm0v aTkxNS9kaXNwbGF5L2ludGVsX2Nvbm5lY3Rvci5jICAgIHwgMzUgKysrKysrKysrCj4gIC4uLi9n cHUvZHJtL2k5MTUvZGlzcGxheS9pbnRlbF9jb25uZWN0b3IuaCAgICB8ICAxICsKPiAgLi4uL2Ry bS9pOTE1L2Rpc3BsYXkvaW50ZWxfZGlzcGxheV90eXBlcy5oICAgIHwgMTggKysrKysKPiAgZHJp dmVycy9ncHUvZHJtL2k5MTUvZGlzcGxheS9pbnRlbF9kcC5jICAgICAgIHwgIDYgKysKPiAgLi4u L2RybS9pOTE1L2Rpc3BsYXkvaW50ZWxfcHJpdmFjeV9zY3JlZW4uYyAgIHwgNzIgKysrKysrKysr KysrKysrKysrKwo+ICAuLi4vZHJtL2k5MTUvZGlzcGxheS9pbnRlbF9wcml2YWN5X3NjcmVlbi5o ICAgfCAyNyArKysrKysrCj4gIDggZmlsZXMgY2hhbmdlZCwgMTcxIGluc2VydGlvbnMoKyksIDQg ZGVsZXRpb25zKC0pCj4gIGNyZWF0ZSBtb2RlIDEwMDY0NCBkcml2ZXJzL2dwdS9kcm0vaTkxNS9k aXNwbGF5L2ludGVsX3ByaXZhY3lfc2NyZWVuLmMKPiAgY3JlYXRlIG1vZGUgMTAwNjQ0IGRyaXZl cnMvZ3B1L2RybS9pOTE1L2Rpc3BsYXkvaW50ZWxfcHJpdmFjeV9zY3JlZW4uaAo+Cj4gZGlmZiAt LWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L01ha2VmaWxlIGIvZHJpdmVycy9ncHUvZHJtL2k5 MTUvTWFrZWZpbGUKPiBpbmRleCA5OTFhOGM1MzdkMTIzLi44MjU5NTFiNGNkMDA2IDEwMDY0NAo+ IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L01ha2VmaWxlCj4gKysrIGIvZHJpdmVycy9ncHUv ZHJtL2k5MTUvTWFrZWZpbGUKPiBAQCAtMjA4LDcgKzIwOCw4IEBAIGk5MTUteSArPSBcCj4gIAlk aXNwbGF5L2ludGVsX3ZnYS5vCj4gIGk5MTUtJChDT05GSUdfQUNQSSkgKz0gXAo+ICAJZGlzcGxh eS9pbnRlbF9hY3BpLm8gXAo+IC0JZGlzcGxheS9pbnRlbF9vcHJlZ2lvbi5vCj4gKwlkaXNwbGF5 L2ludGVsX29wcmVnaW9uLm8gXAo+ICsJZGlzcGxheS9pbnRlbF9wcml2YWN5X3NjcmVlbi5vCj4g IGk5MTUtJChDT05GSUdfRFJNX0ZCREVWX0VNVUxBVElPTikgKz0gXAo+ICAJZGlzcGxheS9pbnRl bF9mYmRldi5vCj4gIAo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9kaXNwbGF5 L2ludGVsX2F0b21pYy5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvZGlzcGxheS9pbnRlbF9hdG9t aWMuYwo+IGluZGV4IGQwNDMwNTdkMmZhMDMuLjRlZDUzN2M4Nzc3NzcgMTAwNjQ0Cj4gLS0tIGEv ZHJpdmVycy9ncHUvZHJtL2k5MTUvZGlzcGxheS9pbnRlbF9hdG9taWMuYwo+ICsrKyBiL2RyaXZl cnMvZ3B1L2RybS9pOTE1L2Rpc3BsYXkvaW50ZWxfYXRvbWljLmMKPiBAQCAtNDAsNiArNDAsNyBA QAo+ICAjaW5jbHVkZSAiaW50ZWxfZ2xvYmFsX3N0YXRlLmgiCj4gICNpbmNsdWRlICJpbnRlbF9o ZGNwLmgiCj4gICNpbmNsdWRlICJpbnRlbF9wc3IuaCIKPiArI2luY2x1ZGUgImludGVsX3ByaXZh Y3lfc2NyZWVuLmgiCj4gICNpbmNsdWRlICJpbnRlbF9zcHJpdGUuaCIKPiAgCj4gIC8qKgo+IEBA IC02MCwxMSArNjEsMTQgQEAgaW50IGludGVsX2RpZ2l0YWxfY29ubmVjdG9yX2F0b21pY19nZXRf cHJvcGVydHkoc3RydWN0IGRybV9jb25uZWN0b3IgKmNvbm5lY3RvciwKPiAgCXN0cnVjdCBkcm1f aTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IHRvX2k5MTUoZGV2KTsKPiAgCXN0cnVjdCBpbnRlbF9k aWdpdGFsX2Nvbm5lY3Rvcl9zdGF0ZSAqaW50ZWxfY29ubl9zdGF0ZSA9Cj4gIAkJdG9faW50ZWxf ZGlnaXRhbF9jb25uZWN0b3Jfc3RhdGUoc3RhdGUpOwo+ICsJc3RydWN0IGludGVsX2Nvbm5lY3Rv ciAqaW50ZWxfY29ubmVjdG9yID0gdG9faW50ZWxfY29ubmVjdG9yKGNvbm5lY3Rvcik7Cj4gIAo+ ICAJaWYgKHByb3BlcnR5ID09IGRldl9wcml2LT5mb3JjZV9hdWRpb19wcm9wZXJ0eSkKPiAgCQkq dmFsID0gaW50ZWxfY29ubl9zdGF0ZS0+Zm9yY2VfYXVkaW87Cj4gIAllbHNlIGlmIChwcm9wZXJ0 eSA9PSBkZXZfcHJpdi0+YnJvYWRjYXN0X3JnYl9wcm9wZXJ0eSkKPiAgCQkqdmFsID0gaW50ZWxf Y29ubl9zdGF0ZS0+YnJvYWRjYXN0X3JnYjsKPiArCWVsc2UgaWYgKHByb3BlcnR5ID09IGludGVs X2Nvbm5lY3Rvci0+cHJpdmFjeV9zY3JlZW5fcHJvcGVydHkpCj4gKwkJKnZhbCA9IGludGVsX2Nv bm5fc3RhdGUtPnByaXZhY3lfc2NyZWVuX3N0YXR1czsKPiAgCWVsc2Ugewo+ICAJCWRybV9kYmdf YXRvbWljKCZkZXZfcHJpdi0+ZHJtLAo+ICAJCQkgICAgICAgIlVua25vd24gcHJvcGVydHkgW1BS T1A6JWQ6JXNdXG4iLAo+IEBAIC05MywxNSArOTcsMTggQEAgaW50IGludGVsX2RpZ2l0YWxfY29u bmVjdG9yX2F0b21pY19zZXRfcHJvcGVydHkoc3RydWN0IGRybV9jb25uZWN0b3IgKmNvbm5lY3Rv ciwKPiAgCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IHRvX2k5MTUoZGV2KTsK PiAgCXN0cnVjdCBpbnRlbF9kaWdpdGFsX2Nvbm5lY3Rvcl9zdGF0ZSAqaW50ZWxfY29ubl9zdGF0 ZSA9Cj4gIAkJdG9faW50ZWxfZGlnaXRhbF9jb25uZWN0b3Jfc3RhdGUoc3RhdGUpOwo+ICsJc3Ry dWN0IGludGVsX2Nvbm5lY3RvciAqaW50ZWxfY29ubmVjdG9yID0gdG9faW50ZWxfY29ubmVjdG9y KGNvbm5lY3Rvcik7Cj4gIAo+ICAJaWYgKHByb3BlcnR5ID09IGRldl9wcml2LT5mb3JjZV9hdWRp b19wcm9wZXJ0eSkgewo+ICAJCWludGVsX2Nvbm5fc3RhdGUtPmZvcmNlX2F1ZGlvID0gdmFsOwo+ ICAJCXJldHVybiAwOwo+IC0JfQo+IC0KPiAtCWlmIChwcm9wZXJ0eSA9PSBkZXZfcHJpdi0+YnJv YWRjYXN0X3JnYl9wcm9wZXJ0eSkgewo+ICsJfSBlbHNlIGlmIChwcm9wZXJ0eSA9PSBkZXZfcHJp di0+YnJvYWRjYXN0X3JnYl9wcm9wZXJ0eSkgewo+ICAJCWludGVsX2Nvbm5fc3RhdGUtPmJyb2Fk Y2FzdF9yZ2IgPSB2YWw7Cj4gIAkJcmV0dXJuIDA7Cj4gKwl9IGVsc2UgaWYgKHByb3BlcnR5ID09 IGludGVsX2Nvbm5lY3Rvci0+cHJpdmFjeV9zY3JlZW5fcHJvcGVydHkpIHsKPiArCQlpbnRlbF9w cml2YWN5X3NjcmVlbl9zZXRfdmFsKGludGVsX2Nvbm5lY3RvciwgdmFsKTsKCkkgdGhpbmsgdGhp cyBwYXJ0IHNob3VsZCBvbmx5IGNoYW5nZSB0aGUgY29ubmVjdG9yIHN0YXRlLiBUaGUgZHJpdmVy CndvdWxkIHRoZW4gZG8gdGhlIG1hZ2ljIGF0IGNvbW1pdCBzdGFnZSBhY2NvcmRpbmcgdG8gdGhl IHByb3BlcnR5IHZhbHVlLgoKPiArCQlpbnRlbF9jb25uX3N0YXRlLT5wcml2YWN5X3NjcmVlbl9z dGF0dXMgPSB2YWw7Cj4gKwkJcmV0dXJuIDA7Cj4gIAl9Cj4gIAo+ICAJZHJtX2RiZ19hdG9taWMo JmRldl9wcml2LT5kcm0sICJVbmtub3duIHByb3BlcnR5IFtQUk9QOiVkOiVzXVxuIiwKPiBkaWZm IC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvZGlzcGxheS9pbnRlbF9jb25uZWN0b3IuYyBi L2RyaXZlcnMvZ3B1L2RybS9pOTE1L2Rpc3BsYXkvaW50ZWxfY29ubmVjdG9yLmMKPiBpbmRleCA5 MDNlNDk2NTlmNTYxLi41NWY4MDIxOWNiMjY5IDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMvZ3B1L2Ry bS9pOTE1L2Rpc3BsYXkvaW50ZWxfY29ubmVjdG9yLmMKPiArKysgYi9kcml2ZXJzL2dwdS9kcm0v aTkxNS9kaXNwbGF5L2ludGVsX2Nvbm5lY3Rvci5jCj4gQEAgLTI5NywzICsyOTcsMzggQEAgaW50 ZWxfYXR0YWNoX2NvbG9yc3BhY2VfcHJvcGVydHkoc3RydWN0IGRybV9jb25uZWN0b3IgKmNvbm5l Y3RvcikKPiAgCWRybV9vYmplY3RfYXR0YWNoX3Byb3BlcnR5KCZjb25uZWN0b3ItPmJhc2UsCj4g IAkJCQkgICBjb25uZWN0b3ItPmNvbG9yc3BhY2VfcHJvcGVydHksIDApOwo+ICB9Cj4gKwo+ICtz dGF0aWMgY29uc3Qgc3RydWN0IGRybV9wcm9wX2VudW1fbGlzdCBwcml2YWN5X3NjcmVlbl9lbnVt W10gPSB7Cj4gKwl7IFBSSVZBQ1lfU0NSRUVOX0RJU0FCTEVELCAiRGlzYWJsZWQiIH0sCj4gKwl7 IFBSSVZBQ1lfU0NSRUVOX0VOQUJMRUQsICJFbmFibGVkIiB9LAo+ICt9Owo+ICsKPiArLyoqCj4g KyAqIGludGVsX2F0dGFjaF9wcml2YWN5X3NjcmVlbl9wcm9wZXJ0eSAtCj4gKyAqICAgICBjcmVh dGUgYW5kIGF0dGFjaCB0aGUgY29ubmVjdGVyJ3MgcHJpdmFjeS1zY3JlZW4gcHJvcGVydHkuICoK PiArICogQGNvbm5lY3RvcjogY29ubmVjdG9yIGZvciB3aGljaCB0byBpbml0IHRoZSBwcml2YWN5 LXNjcmVlbiBwcm9wZXJ0eQo+ICsgKgo+ICsgKiBUaGlzIGZ1bmN0aW9uIGNyZWF0ZXMgYW5kIGF0 dGFjaGVzIHRoZSAicHJpdmFjeS1zY3JlZW4iIHByb3BlcnR5IHRvIHRoZQo+ICsgKiBjb25uZWN0 b3IuIEluaXRpYWwgc3RhdGUgb2YgcHJpdmFjeS1zY3JlZW4gaXMgc2V0IHRvIGRpc2FibGVkLgo+ ICsgKi8KPiArdm9pZAo+ICtpbnRlbF9hdHRhY2hfcHJpdmFjeV9zY3JlZW5fcHJvcGVydHkoc3Ry dWN0IGRybV9jb25uZWN0b3IgKmNvbm5lY3RvcikKPiArewo+ICsJc3RydWN0IGludGVsX2Nvbm5l Y3RvciAqaW50ZWxfY29ubmVjdG9yID0gdG9faW50ZWxfY29ubmVjdG9yKGNvbm5lY3Rvcik7Cj4g KwlzdHJ1Y3QgZHJtX3Byb3BlcnR5ICpwcm9wID0gaW50ZWxfY29ubmVjdG9yLT5wcml2YWN5X3Nj cmVlbl9wcm9wZXJ0eTsKPiArCj4gKwlpZiAoIXByb3ApIHsKPiArCQlwcm9wID0gZHJtX3Byb3Bl cnR5X2NyZWF0ZV9lbnVtKGNvbm5lY3Rvci0+ZGV2LAo+ICsJCQkJCQlEUk1fTU9ERV9QUk9QX0VO VU0sCj4gKwkJCQkJCSJwcml2YWN5LXNjcmVlbiIsCj4gKwkJCQkJCXByaXZhY3lfc2NyZWVuX2Vu dW0sCj4gKwkJCQkJICAgIEFSUkFZX1NJWkUocHJpdmFjeV9zY3JlZW5fZW51bSkpOwo+ICsJCWlm ICghcHJvcCkKPiArCQkJcmV0dXJuOwo+ICsKPiArCQlpbnRlbF9jb25uZWN0b3ItPnByaXZhY3lf c2NyZWVuX3Byb3BlcnR5ID0gcHJvcDsKPiArCX0KPiArCj4gKwlkcm1fb2JqZWN0X2F0dGFjaF9w cm9wZXJ0eSgmY29ubmVjdG9yLT5iYXNlLCBwcm9wLAo+ICsJCQkJICAgUFJJVkFDWV9TQ1JFRU5f RElTQUJMRUQpOwo+ICt9CgpUaGlzIGxvb2tzIGFib3V0IHJpZ2h0LCBleGNlcHQgSU1PIHNob3Vs ZCBiZSBwYXJ0IG9mIGRybV9jb25uZWN0b3IgYW5kCm1vdmVkIHRvIGRybV9jb25uZWN0b3IuYy4K Cj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2Rpc3BsYXkvaW50ZWxfY29ubmVj dG9yLmggYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9kaXNwbGF5L2ludGVsX2Nvbm5lY3Rvci5oCj4g aW5kZXggOTNhNzM3NWM4MTk2ZC4uNjEwMDVmMzdhMzM4NSAxMDA2NDQKPiAtLS0gYS9kcml2ZXJz L2dwdS9kcm0vaTkxNS9kaXNwbGF5L2ludGVsX2Nvbm5lY3Rvci5oCj4gKysrIGIvZHJpdmVycy9n cHUvZHJtL2k5MTUvZGlzcGxheS9pbnRlbF9jb25uZWN0b3IuaAo+IEBAIC0zMSw1ICszMSw2IEBA IHZvaWQgaW50ZWxfYXR0YWNoX2ZvcmNlX2F1ZGlvX3Byb3BlcnR5KHN0cnVjdCBkcm1fY29ubmVj dG9yICpjb25uZWN0b3IpOwo+ICB2b2lkIGludGVsX2F0dGFjaF9icm9hZGNhc3RfcmdiX3Byb3Bl cnR5KHN0cnVjdCBkcm1fY29ubmVjdG9yICpjb25uZWN0b3IpOwo+ICB2b2lkIGludGVsX2F0dGFj aF9hc3BlY3RfcmF0aW9fcHJvcGVydHkoc3RydWN0IGRybV9jb25uZWN0b3IgKmNvbm5lY3Rvcik7 Cj4gIHZvaWQgaW50ZWxfYXR0YWNoX2NvbG9yc3BhY2VfcHJvcGVydHkoc3RydWN0IGRybV9jb25u ZWN0b3IgKmNvbm5lY3Rvcik7Cj4gK3ZvaWQgaW50ZWxfYXR0YWNoX3ByaXZhY3lfc2NyZWVuX3By b3BlcnR5KHN0cnVjdCBkcm1fY29ubmVjdG9yICpjb25uZWN0b3IpOwo+ICAKPiAgI2VuZGlmIC8q IF9fSU5URUxfQ09OTkVDVE9SX0hfXyAqLwo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0v aTkxNS9kaXNwbGF5L2ludGVsX2Rpc3BsYXlfdHlwZXMuaCBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1 L2Rpc3BsYXkvaW50ZWxfZGlzcGxheV90eXBlcy5oCj4gaW5kZXggZDcwNjEyY2MxYmEyYS4uZGUy MGVmZmIzZTA3MyAxMDA2NDQKPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9kaXNwbGF5L2lu dGVsX2Rpc3BsYXlfdHlwZXMuaAo+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2Rpc3BsYXkv aW50ZWxfZGlzcGxheV90eXBlcy5oCj4gQEAgLTQ0Miw2ICs0NDIsMjMgQEAgc3RydWN0IGludGVs X2Nvbm5lY3RvciB7Cj4gIAlzdHJ1Y3Qgd29ya19zdHJ1Y3QgbW9kZXNldF9yZXRyeV93b3JrOwo+ ICAKPiAgCXN0cnVjdCBpbnRlbF9oZGNwIGhkY3A7Cj4gKwo+ICsJLyogT3B0aW9uYWwgInByaXZh Y3ktc2NyZWVuIiBwcm9wZXJ0eSBmb3IgdGhlIGNvbm5lY3RvciBwYW5lbCAqLwo+ICsJc3RydWN0 IGRybV9wcm9wZXJ0eSAqcHJpdmFjeV9zY3JlZW5fcHJvcGVydHk7Cj4gK307Cj4gKwo+ICsvKioK PiArICogZW51bSBpbnRlbF9wcml2YWN5X3NjcmVlbl9zdGF0dXMgLSBwcml2YWN5X3NjcmVlbiBz dGF0dXMKPiArICoKPiArICogVGhpcyBlbnVtIGlzIHVzZWQgdG8gdHJhY2sgYW5kIGNvbnRyb2wg dGhlIHN0YXRlIG9mIHRoZSBpbnRlZ3JhdGVkIHByaXZhY3kKPiArICogc2NyZWVuIHByZXNlbnQg b24gc29tZSBkaXNwbGF5IHBhbmVscywgdmlhIHRoZSAicHJpdmFjeS1zY3JlZW4iIHByb3BlcnR5 Lgo+ICsgKgo+ICsgKiBAUFJJVkFDWV9TQ1JFRU5fRElTQUJMRUQ6IFRoZSBwcml2YWN5LXNjcmVl biBvbiB0aGUgcGFuZWwgaXMgZGlzYWJsZWQKPiArICogQFBSSVZBQ1lfU0NSRUVOX0VOQUJMRUQ6 ICBUaGUgcHJpdmFjeS1zY3JlZW4gb24gdGhlIHBhbmVsIGlzIGVuYWJsZWQKPiArICoqLwo+ICtl bnVtIGludGVsX3ByaXZhY3lfc2NyZWVuX3N0YXR1cyB7Cj4gKwlQUklWQUNZX1NDUkVFTl9ESVNB QkxFRCA9IDAsCj4gKwlQUklWQUNZX1NDUkVFTl9FTkFCTEVEID0gMSwKPiAgfTsKPiAgCj4gIHN0 cnVjdCBpbnRlbF9kaWdpdGFsX2Nvbm5lY3Rvcl9zdGF0ZSB7Cj4gQEAgLTQ0OSw2ICs0NjYsNyBA QCBzdHJ1Y3QgaW50ZWxfZGlnaXRhbF9jb25uZWN0b3Jfc3RhdGUgewo+ICAKPiAgCWVudW0gaGRt aV9mb3JjZV9hdWRpbyBmb3JjZV9hdWRpbzsKPiAgCWludCBicm9hZGNhc3RfcmdiOwo+ICsJZW51 bSBpbnRlbF9wcml2YWN5X3NjcmVlbl9zdGF0dXMgcHJpdmFjeV9zY3JlZW5fc3RhdHVzOwo+ICB9 Owo+ICAKPiAgI2RlZmluZSB0b19pbnRlbF9kaWdpdGFsX2Nvbm5lY3Rvcl9zdGF0ZSh4KSBjb250 YWluZXJfb2YoeCwgc3RydWN0IGludGVsX2RpZ2l0YWxfY29ubmVjdG9yX3N0YXRlLCBiYXNlKQo+ IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9kaXNwbGF5L2ludGVsX2RwLmMgYi9k cml2ZXJzL2dwdS9kcm0vaTkxNS9kaXNwbGF5L2ludGVsX2RwLmMKPiBpbmRleCAxNzE4MjExMTNk MzYyLi5mZjc2Yzc5OTM2NGQwIDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2Rp c3BsYXkvaW50ZWxfZHAuYwo+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2Rpc3BsYXkvaW50 ZWxfZHAuYwo+IEBAIC02Miw2ICs2Miw3IEBACj4gICNpbmNsdWRlICJpbnRlbF9sc3Bjb24uaCIK PiAgI2luY2x1ZGUgImludGVsX2x2ZHMuaCIKPiAgI2luY2x1ZGUgImludGVsX3BhbmVsLmgiCj4g KyNpbmNsdWRlICJpbnRlbF9wcml2YWN5X3NjcmVlbi5oIgo+ICAjaW5jbHVkZSAiaW50ZWxfcHNy LmgiCj4gICNpbmNsdWRlICJpbnRlbF9zaWRlYmFuZC5oIgo+ICAjaW5jbHVkZSAiaW50ZWxfdGMu aCIKPiBAQCAtNjg0MSw2ICs2ODQyLDcgQEAgaW50ZWxfZHBfYWRkX3Byb3BlcnRpZXMoc3RydWN0 IGludGVsX2RwICppbnRlbF9kcCwgc3RydWN0IGRybV9jb25uZWN0b3IgKmNvbm5lY3QKPiAgewo+ ICAJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gdG9faTkxNShjb25uZWN0b3It PmRldik7Cj4gIAllbnVtIHBvcnQgcG9ydCA9IGRwX3RvX2RpZ19wb3J0KGludGVsX2RwKS0+YmFz ZS5wb3J0Owo+ICsJc3RydWN0IGludGVsX2Nvbm5lY3RvciAqaW50ZWxfY29ubmVjdG9yID0gdG9f aW50ZWxfY29ubmVjdG9yKGNvbm5lY3Rvcik7Cj4gIAo+ICAJaWYgKCFJU19HNFgoZGV2X3ByaXYp ICYmIHBvcnQgIT0gUE9SVF9BKQo+ICAJCWludGVsX2F0dGFjaF9mb3JjZV9hdWRpb19wcm9wZXJ0 eShjb25uZWN0b3IpOwo+IEBAIC02ODcxLDYgKzY4NzMsMTAgQEAgaW50ZWxfZHBfYWRkX3Byb3Bl cnRpZXMoc3RydWN0IGludGVsX2RwICppbnRlbF9kcCwgc3RydWN0IGRybV9jb25uZWN0b3IgKmNv bm5lY3QKPiAgCj4gIAkJLyogTG9va3VwIHRoZSBBQ1BJIG5vZGUgY29ycmVzcG9uZGluZyB0byB0 aGUgY29ubmVjdG9yICovCj4gIAkJaW50ZWxfYWNwaV9kZXZpY2VfaWRfdXBkYXRlKGRldl9wcml2 KTsKPiArCj4gKwkJLyogQ2hlY2sgZm9yIGludGVncmF0ZWQgUHJpdmFjeSBzY3JlZW4gc3VwcG9y dCAqLwo+ICsJCWlmIChpbnRlbF9wcml2YWN5X3NjcmVlbl9wcmVzZW50KGludGVsX2Nvbm5lY3Rv cikpCj4gKwkJCWludGVsX2F0dGFjaF9wcml2YWN5X3NjcmVlbl9wcm9wZXJ0eShjb25uZWN0b3Ip OwoKQXMgc2FpZCBpbiByZXBseSB0byBwYXRjaCAyLCB3ZSBuZWVkIHRvIGZpZ3VyZSB0aGlzIHBh cnQgb3V0LgoKPiAgCX0KPiAgfQo+ICAKPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5 MTUvZGlzcGxheS9pbnRlbF9wcml2YWN5X3NjcmVlbi5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUv ZGlzcGxheS9pbnRlbF9wcml2YWN5X3NjcmVlbi5jCj4gbmV3IGZpbGUgbW9kZSAxMDA2NDQKPiBp bmRleCAwMDAwMDAwMDAwMDAwLi5jOGE1YjY0Zjk0ZmI3Cj4gLS0tIC9kZXYvbnVsbAo+ICsrKyBi L2RyaXZlcnMvZ3B1L2RybS9pOTE1L2Rpc3BsYXkvaW50ZWxfcHJpdmFjeV9zY3JlZW4uYwo+IEBA IC0wLDAgKzEsNzIgQEAKPiArLy8gU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEdQTC0yLjAgT1Ig TUlUCj4gKy8qCj4gKyAqIEludGVsIEFDUEkgcHJpdmFjeSBzY3JlZW4gY29kZQo+ICsgKgo+ICsg KiBDb3B5cmlnaHQgwqkgMjAxOSBHb29nbGUgSW5jLgo+ICsgKi8KPiArCj4gKyNpbmNsdWRlIDxs aW51eC9hY3BpLmg+Cj4gKwo+ICsjaW5jbHVkZSAiaW50ZWxfcHJpdmFjeV9zY3JlZW4uaCIKPiAr Cj4gKyNkZWZpbmUgQ09OTkVDVE9SX0RTTV9SRVZJRCAxCj4gKwo+ICsjZGVmaW5lIENPTk5FQ1RP Ul9EU01fRk5fUFJJVkFDWV9FTkFCTEUJCTIKPiArI2RlZmluZSBDT05ORUNUT1JfRFNNX0ZOX1BS SVZBQ1lfRElTQUJMRQkJMwo+ICsKPiArc3RhdGljIGNvbnN0IGd1aWRfdCBkcm1fY29ubl9kc21f Z3VpZCA9Cj4gKwlHVUlEX0lOSVQoMHhDNzAzMzExMywgMHg4NzIwLCAweDRDRUIsCj4gKwkJICAw eDkwLCAweDkwLCAweDlELCAweDUyLCAweEIzLCAweEU1LCAweDJELCAweDczKTsKPiArCj4gKy8q IE1ha2VzIF9EU00gY2FsbCB0byBzZXQgcHJpdmFjeSBzY3JlZW4gc3RhdHVzICovCj4gK3N0YXRp YyB2b2lkIGFjcGlfcHJpdmFjeV9zY3JlZW5fY2FsbF9kc20oYWNwaV9oYW5kbGUgY29ubl9oYW5k bGUsIHU2NCBmdW5jKQo+ICt7Cj4gKwl1bmlvbiBhY3BpX29iamVjdCAqb2JqOwo+ICsKPiArCW9i aiA9IGFjcGlfZXZhbHVhdGVfZHNtKGNvbm5faGFuZGxlLCAmZHJtX2Nvbm5fZHNtX2d1aWQsCj4g KwkJCQlDT05ORUNUT1JfRFNNX1JFVklELCBmdW5jLCBOVUxMKTsKPiArCWlmICghb2JqKSB7Cj4g KwkJRFJNX0RFQlVHX0RSSVZFUigiZmFpbGVkIHRvIGV2YWx1YXRlIF9EU00gZm9yIGZuICVsbHhc biIsIGZ1bmMpOwo+ICsJCXJldHVybjsKPiArCX0KPiArCj4gKwlBQ1BJX0ZSRUUob2JqKTsKPiAr fQo+ICsKPiArdm9pZCBpbnRlbF9wcml2YWN5X3NjcmVlbl9zZXRfdmFsKHN0cnVjdCBpbnRlbF9j b25uZWN0b3IgKmNvbm5lY3RvciwKPiArCQkJCSAgZW51bSBpbnRlbF9wcml2YWN5X3NjcmVlbl9z dGF0dXMgdmFsKQo+ICt7Cj4gKwlhY3BpX2hhbmRsZSBhY3BpX2hhbmRsZSA9IGNvbm5lY3Rvci0+ YWNwaV9oYW5kbGU7Cj4gKwo+ICsJaWYgKCFhY3BpX2hhbmRsZSkKPiArCQlyZXR1cm47Cj4gKwo+ ICsJaWYgKHZhbCA9PSBQUklWQUNZX1NDUkVFTl9ESVNBQkxFRCkKPiArCQlhY3BpX3ByaXZhY3lf c2NyZWVuX2NhbGxfZHNtKGFjcGlfaGFuZGxlLAo+ICsJCQkJCSAgICAgQ09OTkVDVE9SX0RTTV9G Tl9QUklWQUNZX0RJU0FCTEUpOwo+ICsJZWxzZSBpZiAodmFsID09IFBSSVZBQ1lfU0NSRUVOX0VO QUJMRUQpCj4gKwkJYWNwaV9wcml2YWN5X3NjcmVlbl9jYWxsX2RzbShhY3BpX2hhbmRsZSwKPiAr CQkJCQkgICAgIENPTk5FQ1RPUl9EU01fRk5fUFJJVkFDWV9FTkFCTEUpOwo+ICsJZWxzZQo+ICsJ CURSTV9XQVJOKCIlczogQ2Fubm90IHNldCBwcml2YWN5IHNjcmVlbiB0byBpbnZhbGlkIHZhbCAl dVxuIiwKPiArCQkJIGRldl9uYW1lKGNvbm5lY3Rvci0+YmFzZS5kZXYtPmRldiksIHZhbCk7Cj4g K30KPiArCj4gK2Jvb2wgaW50ZWxfcHJpdmFjeV9zY3JlZW5fcHJlc2VudChzdHJ1Y3QgaW50ZWxf Y29ubmVjdG9yICpjb25uZWN0b3IpCj4gK3sKPiArCWFjcGlfaGFuZGxlIGhhbmRsZSA9IGNvbm5l Y3Rvci0+YWNwaV9oYW5kbGU7Cj4gKwo+ICsJaWYgKCFoYW5kbGUpCj4gKwkJcmV0dXJuIGZhbHNl Owo+ICsKPiArCWlmICghYWNwaV9jaGVja19kc20oaGFuZGxlLCAmZHJtX2Nvbm5fZHNtX2d1aWQs Cj4gKwkJCSAgICBDT05ORUNUT1JfRFNNX1JFVklELAo+ICsJCQkgICAgMSA8PCBDT05ORUNUT1Jf RFNNX0ZOX1BSSVZBQ1lfRU5BQkxFIHwKPiArCQkJICAgIDEgPDwgQ09OTkVDVE9SX0RTTV9GTl9Q UklWQUNZX0RJU0FCTEUpKSB7Cj4gKwkJRFJNX1dBUk4oIiVzOiBPZGQsIGNvbm5lY3RvciBBQ1BJ IG5vZGUgYnV0IG5vIHByaXZhY3kgc2Nybj9cbiIsCj4gKwkJCSBkZXZfbmFtZShjb25uZWN0b3It PmJhc2UuZGV2LT5kZXYpKTsKPiArCQlyZXR1cm4gZmFsc2U7Cj4gKwl9Cj4gKwlEUk1fREVWX0lO Rk8oY29ubmVjdG9yLT5iYXNlLmRldi0+ZGV2LCAic3VwcG9ydHMgcHJpdmFjeSBzY3JlZW5cbiIp Owo+ICsJcmV0dXJuIHRydWU7Cj4gK30KCkkgZG9uJ3QgaGF2ZSBtdWNoIHRvIHNheSBhYm91dCB0 aGUgQUNQSSBwYXJ0cywgZXhjZXB0IHBsZWFzZSB1c2UgdGhlIG5ldwpkcm1fZGJnX2ttcyBhbmQg ZHJtX2luZm8gaGVscGVycyBmb3IgbG9nZ2luZy4KCkJSLApKYW5pLgoKCj4gZGlmZiAtLWdpdCBh L2RyaXZlcnMvZ3B1L2RybS9pOTE1L2Rpc3BsYXkvaW50ZWxfcHJpdmFjeV9zY3JlZW4uaCBiL2Ry aXZlcnMvZ3B1L2RybS9pOTE1L2Rpc3BsYXkvaW50ZWxfcHJpdmFjeV9zY3JlZW4uaAo+IG5ldyBm aWxlIG1vZGUgMTAwNjQ0Cj4gaW5kZXggMDAwMDAwMDAwMDAwMC4uNzQwMTNhNzg4NWM3MAo+IC0t LSAvZGV2L251bGwKPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9kaXNwbGF5L2ludGVsX3By aXZhY3lfc2NyZWVuLmgKPiBAQCAtMCwwICsxLDI3IEBACj4gKy8qIFNQRFgtTGljZW5zZS1JZGVu dGlmaWVyOiBHUEwtMi4wIE9SIE1JVCAqLwo+ICsvKgo+ICsgKiBDb3B5cmlnaHQgwqkgMjAxOSBH b29nbGUgSW5jLgo+ICsgKi8KPiArCj4gKyNpZm5kZWYgX19EUk1fUFJJVkFDWV9TQ1JFRU5fSF9f Cj4gKyNkZWZpbmUgX19EUk1fUFJJVkFDWV9TQ1JFRU5fSF9fCj4gKwo+ICsjaW5jbHVkZSAiaW50 ZWxfZGlzcGxheV90eXBlcy5oIgo+ICsKPiArI2lmZGVmIENPTkZJR19BQ1BJCj4gK2Jvb2wgaW50 ZWxfcHJpdmFjeV9zY3JlZW5fcHJlc2VudChzdHJ1Y3QgaW50ZWxfY29ubmVjdG9yICpjb25uZWN0 b3IpOwo+ICt2b2lkIGludGVsX3ByaXZhY3lfc2NyZWVuX3NldF92YWwoc3RydWN0IGludGVsX2Nv bm5lY3RvciAqY29ubmVjdG9yLAo+ICsJCQkJICBlbnVtIGludGVsX3ByaXZhY3lfc2NyZWVuX3N0 YXR1cyB2YWwpOwo+ICsjZWxzZQo+ICtzdGF0aWMgYm9vbCBpbnRlbF9wcml2YWN5X3NjcmVlbl9w cmVzZW50KHN0cnVjdCBpbnRlbF9jb25uZWN0b3IgKmNvbm5lY3RvcikKPiArewo+ICsJcmV0dXJu IGZhbHNlOwo+ICt9Cj4gKwo+ICtzdGF0aWMgdm9pZAo+ICtpbnRlbF9wcml2YWN5X3NjcmVlbl9z ZXRfdmFsKHN0cnVjdCBpbnRlbF9jb25uZWN0b3IgKmNvbm5lY3RvciwKPiArCQkJICAgICBlbnVt IGludGVsX3ByaXZhY3lfc2NyZWVuX3N0YXR1cyB2YWwpCj4gK3sgfQo+ICsjZW5kaWYgLyogQ09O RklHX0FDUEkgKi8KPiArCj4gKyNlbmRpZiAvKiBfX0RSTV9QUklWQUNZX1NDUkVFTl9IX18gKi8K Ci0tIApKYW5pIE5pa3VsYSwgSW50ZWwgT3BlbiBTb3VyY2UgR3JhcGhpY3MgQ2VudGVyCl9fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCkludGVsLWdmeCBtYWls aW5nIGxpc3QKSW50ZWwtZ2Z4QGxpc3RzLmZyZWVkZXNrdG9wLm9yZwpodHRwczovL2xpc3RzLmZy ZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2ludGVsLWdmeAo= 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.8 required=3.0 tests=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 58F4EC3F2CD for ; Thu, 5 Mar 2020 10:01:54 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by mail.kernel.org (Postfix) with ESMTP id 29E5021741 for ; Thu, 5 Mar 2020 10:01:54 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1727384AbgCEKBx convert rfc822-to-8bit (ORCPT ); Thu, 5 Mar 2020 05:01:53 -0500 Received: from mga03.intel.com ([134.134.136.65]:7658 "EHLO mga03.intel.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1725816AbgCEKBw (ORCPT ); Thu, 5 Mar 2020 05:01:52 -0500 X-Amp-Result: SKIPPED(no attachment in message) X-Amp-File-Uploaded: False Received: from orsmga008.jf.intel.com ([10.7.209.65]) by orsmga103.jf.intel.com with ESMTP/TLS/DHE-RSA-AES256-GCM-SHA384; 05 Mar 2020 02:01:51 -0800 X-IronPort-AV: E=Sophos;i="5.70,517,1574150400"; d="scan'208";a="234367503" Received: from bennur-mobl1.ger.corp.intel.com (HELO localhost) ([10.249.38.13]) by orsmga008-auth.jf.intel.com with ESMTP/TLS/DHE-RSA-AES256-GCM-SHA384; 05 Mar 2020 02:01:43 -0800 From: Jani Nikula To: Rajat Jain , Maarten Lankhorst , Maxime Ripard , Sean Paul , David Airlie , Daniel Vetter , Joonas Lahtinen , Rodrigo Vivi , Ville =?utf-8?B?U3lyasOkbMOk?= , Chris Wilson , Imre Deak , =?utf-8?Q?Jo?= =?utf-8?Q?s=C3=A9?= Roberto de Souza , linux-kernel@vger.kernel.org, dri-devel@lists.freedesktop.org, intel-gfx@lists.freedesktop.org, gregkh@linuxfoundation.org, mathewk@google.com, Daniel Thompson , Jonathan Corbet , Pavel Machek , seanpaul@google.com, Duncan Laurie , jsbarnes@google.com, Thierry Reding , mpearson@lenovo.com, Nitin Joshi1 , Sugumaran Lacshiminarayanan , Tomoki Maruichi , groeck@google.com Cc: Rajat Jain , rajatxjain@gmail.com Subject: Re: [PATCH v6 3/3] drm/i915: Add support for integrated privacy screens In-Reply-To: <20200305012338.219746-4-rajatja@google.com> Organization: Intel Finland Oy - BIC 0357606-4 - Westendinkatu 7, 02160 Espoo References: <20200305012338.219746-1-rajatja@google.com> <20200305012338.219746-4-rajatja@google.com> Date: Thu, 05 Mar 2020 12:01:43 +0200 Message-ID: <87k13znmrc.fsf@intel.com> MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8BIT Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On Wed, 04 Mar 2020, Rajat Jain wrote: > Certain laptops now come with panels that have integrated privacy > screens on them. This patch adds support for such panels by adding > a privacy-screen property to the intel_connector for the panel, that > the userspace can then use to control and check the status. > > Identifying the presence of privacy screen, and controlling it, is done > via ACPI _DSM methods. > > Currently, this is done only for the Intel display ports. But in future, > this can be done for any other ports if the hardware becomes available > (e.g. external monitors supporting integrated privacy screens?). I think you should add the property at the drm core level in drm_connector.c, not in i915, to ensure we have the same property across drivers. Even if, for now, you leave the acpi implementation part in i915. More comments inline. > > Signed-off-by: Rajat Jain > --- > v6: Always initialize prop in intel_attach_privacy_screen_property() > v5: fix a cosmetic checkpatch warning > v4: Fix a typo in intel_privacy_screen.h > v3: * Change license to GPL-2.0 OR MIT > * Move privacy screen enum from UAPI to intel_display_types.h > * Rename parameter name and some other minor changes. > v2: Formed by splitting the original patch into multiple patches. > - All code has been moved into i915 now. > - Privacy screen is a i915 property > - Have a local state variable to store the prvacy screen. Don't read > it from hardware. > > drivers/gpu/drm/i915/Makefile | 3 +- > drivers/gpu/drm/i915/display/intel_atomic.c | 13 +++- > .../gpu/drm/i915/display/intel_connector.c | 35 +++++++++ > .../gpu/drm/i915/display/intel_connector.h | 1 + > .../drm/i915/display/intel_display_types.h | 18 +++++ > drivers/gpu/drm/i915/display/intel_dp.c | 6 ++ > .../drm/i915/display/intel_privacy_screen.c | 72 +++++++++++++++++++ > .../drm/i915/display/intel_privacy_screen.h | 27 +++++++ > 8 files changed, 171 insertions(+), 4 deletions(-) > create mode 100644 drivers/gpu/drm/i915/display/intel_privacy_screen.c > create mode 100644 drivers/gpu/drm/i915/display/intel_privacy_screen.h > > diff --git a/drivers/gpu/drm/i915/Makefile b/drivers/gpu/drm/i915/Makefile > index 991a8c537d123..825951b4cd006 100644 > --- a/drivers/gpu/drm/i915/Makefile > +++ b/drivers/gpu/drm/i915/Makefile > @@ -208,7 +208,8 @@ i915-y += \ > display/intel_vga.o > i915-$(CONFIG_ACPI) += \ > display/intel_acpi.o \ > - display/intel_opregion.o > + display/intel_opregion.o \ > + display/intel_privacy_screen.o > i915-$(CONFIG_DRM_FBDEV_EMULATION) += \ > display/intel_fbdev.o > > diff --git a/drivers/gpu/drm/i915/display/intel_atomic.c b/drivers/gpu/drm/i915/display/intel_atomic.c > index d043057d2fa03..4ed537c877777 100644 > --- a/drivers/gpu/drm/i915/display/intel_atomic.c > +++ b/drivers/gpu/drm/i915/display/intel_atomic.c > @@ -40,6 +40,7 @@ > #include "intel_global_state.h" > #include "intel_hdcp.h" > #include "intel_psr.h" > +#include "intel_privacy_screen.h" > #include "intel_sprite.h" > > /** > @@ -60,11 +61,14 @@ int intel_digital_connector_atomic_get_property(struct drm_connector *connector, > struct drm_i915_private *dev_priv = to_i915(dev); > struct intel_digital_connector_state *intel_conn_state = > to_intel_digital_connector_state(state); > + struct intel_connector *intel_connector = to_intel_connector(connector); > > if (property == dev_priv->force_audio_property) > *val = intel_conn_state->force_audio; > else if (property == dev_priv->broadcast_rgb_property) > *val = intel_conn_state->broadcast_rgb; > + else if (property == intel_connector->privacy_screen_property) > + *val = intel_conn_state->privacy_screen_status; > else { > drm_dbg_atomic(&dev_priv->drm, > "Unknown property [PROP:%d:%s]\n", > @@ -93,15 +97,18 @@ int intel_digital_connector_atomic_set_property(struct drm_connector *connector, > struct drm_i915_private *dev_priv = to_i915(dev); > struct intel_digital_connector_state *intel_conn_state = > to_intel_digital_connector_state(state); > + struct intel_connector *intel_connector = to_intel_connector(connector); > > if (property == dev_priv->force_audio_property) { > intel_conn_state->force_audio = val; > return 0; > - } > - > - if (property == dev_priv->broadcast_rgb_property) { > + } else if (property == dev_priv->broadcast_rgb_property) { > intel_conn_state->broadcast_rgb = val; > return 0; > + } else if (property == intel_connector->privacy_screen_property) { > + intel_privacy_screen_set_val(intel_connector, val); I think this part should only change the connector state. The driver would then do the magic at commit stage according to the property value. > + intel_conn_state->privacy_screen_status = val; > + return 0; > } > > drm_dbg_atomic(&dev_priv->drm, "Unknown property [PROP:%d:%s]\n", > diff --git a/drivers/gpu/drm/i915/display/intel_connector.c b/drivers/gpu/drm/i915/display/intel_connector.c > index 903e49659f561..55f80219cb269 100644 > --- a/drivers/gpu/drm/i915/display/intel_connector.c > +++ b/drivers/gpu/drm/i915/display/intel_connector.c > @@ -297,3 +297,38 @@ intel_attach_colorspace_property(struct drm_connector *connector) > drm_object_attach_property(&connector->base, > connector->colorspace_property, 0); > } > + > +static const struct drm_prop_enum_list privacy_screen_enum[] = { > + { PRIVACY_SCREEN_DISABLED, "Disabled" }, > + { PRIVACY_SCREEN_ENABLED, "Enabled" }, > +}; > + > +/** > + * intel_attach_privacy_screen_property - > + * create and attach the connecter's privacy-screen property. * > + * @connector: connector for which to init the privacy-screen property > + * > + * This function creates and attaches the "privacy-screen" property to the > + * connector. Initial state of privacy-screen is set to disabled. > + */ > +void > +intel_attach_privacy_screen_property(struct drm_connector *connector) > +{ > + struct intel_connector *intel_connector = to_intel_connector(connector); > + struct drm_property *prop = intel_connector->privacy_screen_property; > + > + if (!prop) { > + prop = drm_property_create_enum(connector->dev, > + DRM_MODE_PROP_ENUM, > + "privacy-screen", > + privacy_screen_enum, > + ARRAY_SIZE(privacy_screen_enum)); > + if (!prop) > + return; > + > + intel_connector->privacy_screen_property = prop; > + } > + > + drm_object_attach_property(&connector->base, prop, > + PRIVACY_SCREEN_DISABLED); > +} This looks about right, except IMO should be part of drm_connector and moved to drm_connector.c. > diff --git a/drivers/gpu/drm/i915/display/intel_connector.h b/drivers/gpu/drm/i915/display/intel_connector.h > index 93a7375c8196d..61005f37a3385 100644 > --- a/drivers/gpu/drm/i915/display/intel_connector.h > +++ b/drivers/gpu/drm/i915/display/intel_connector.h > @@ -31,5 +31,6 @@ void intel_attach_force_audio_property(struct drm_connector *connector); > void intel_attach_broadcast_rgb_property(struct drm_connector *connector); > void intel_attach_aspect_ratio_property(struct drm_connector *connector); > void intel_attach_colorspace_property(struct drm_connector *connector); > +void intel_attach_privacy_screen_property(struct drm_connector *connector); > > #endif /* __INTEL_CONNECTOR_H__ */ > diff --git a/drivers/gpu/drm/i915/display/intel_display_types.h b/drivers/gpu/drm/i915/display/intel_display_types.h > index d70612cc1ba2a..de20effb3e073 100644 > --- a/drivers/gpu/drm/i915/display/intel_display_types.h > +++ b/drivers/gpu/drm/i915/display/intel_display_types.h > @@ -442,6 +442,23 @@ struct intel_connector { > struct work_struct modeset_retry_work; > > struct intel_hdcp hdcp; > + > + /* Optional "privacy-screen" property for the connector panel */ > + struct drm_property *privacy_screen_property; > +}; > + > +/** > + * enum intel_privacy_screen_status - privacy_screen status > + * > + * This enum is used to track and control the state of the integrated privacy > + * screen present on some display panels, via the "privacy-screen" property. > + * > + * @PRIVACY_SCREEN_DISABLED: The privacy-screen on the panel is disabled > + * @PRIVACY_SCREEN_ENABLED: The privacy-screen on the panel is enabled > + **/ > +enum intel_privacy_screen_status { > + PRIVACY_SCREEN_DISABLED = 0, > + PRIVACY_SCREEN_ENABLED = 1, > }; > > struct intel_digital_connector_state { > @@ -449,6 +466,7 @@ struct intel_digital_connector_state { > > enum hdmi_force_audio force_audio; > int broadcast_rgb; > + enum intel_privacy_screen_status privacy_screen_status; > }; > > #define to_intel_digital_connector_state(x) container_of(x, struct intel_digital_connector_state, base) > diff --git a/drivers/gpu/drm/i915/display/intel_dp.c b/drivers/gpu/drm/i915/display/intel_dp.c > index 171821113d362..ff76c799364d0 100644 > --- a/drivers/gpu/drm/i915/display/intel_dp.c > +++ b/drivers/gpu/drm/i915/display/intel_dp.c > @@ -62,6 +62,7 @@ > #include "intel_lspcon.h" > #include "intel_lvds.h" > #include "intel_panel.h" > +#include "intel_privacy_screen.h" > #include "intel_psr.h" > #include "intel_sideband.h" > #include "intel_tc.h" > @@ -6841,6 +6842,7 @@ intel_dp_add_properties(struct intel_dp *intel_dp, struct drm_connector *connect > { > struct drm_i915_private *dev_priv = to_i915(connector->dev); > enum port port = dp_to_dig_port(intel_dp)->base.port; > + struct intel_connector *intel_connector = to_intel_connector(connector); > > if (!IS_G4X(dev_priv) && port != PORT_A) > intel_attach_force_audio_property(connector); > @@ -6871,6 +6873,10 @@ intel_dp_add_properties(struct intel_dp *intel_dp, struct drm_connector *connect > > /* Lookup the ACPI node corresponding to the connector */ > intel_acpi_device_id_update(dev_priv); > + > + /* Check for integrated Privacy screen support */ > + if (intel_privacy_screen_present(intel_connector)) > + intel_attach_privacy_screen_property(connector); As said in reply to patch 2, we need to figure this part out. > } > } > > diff --git a/drivers/gpu/drm/i915/display/intel_privacy_screen.c b/drivers/gpu/drm/i915/display/intel_privacy_screen.c > new file mode 100644 > index 0000000000000..c8a5b64f94fb7 > --- /dev/null > +++ b/drivers/gpu/drm/i915/display/intel_privacy_screen.c > @@ -0,0 +1,72 @@ > +// SPDX-License-Identifier: GPL-2.0 OR MIT > +/* > + * Intel ACPI privacy screen code > + * > + * Copyright © 2019 Google Inc. > + */ > + > +#include > + > +#include "intel_privacy_screen.h" > + > +#define CONNECTOR_DSM_REVID 1 > + > +#define CONNECTOR_DSM_FN_PRIVACY_ENABLE 2 > +#define CONNECTOR_DSM_FN_PRIVACY_DISABLE 3 > + > +static const guid_t drm_conn_dsm_guid = > + GUID_INIT(0xC7033113, 0x8720, 0x4CEB, > + 0x90, 0x90, 0x9D, 0x52, 0xB3, 0xE5, 0x2D, 0x73); > + > +/* Makes _DSM call to set privacy screen status */ > +static void acpi_privacy_screen_call_dsm(acpi_handle conn_handle, u64 func) > +{ > + union acpi_object *obj; > + > + obj = acpi_evaluate_dsm(conn_handle, &drm_conn_dsm_guid, > + CONNECTOR_DSM_REVID, func, NULL); > + if (!obj) { > + DRM_DEBUG_DRIVER("failed to evaluate _DSM for fn %llx\n", func); > + return; > + } > + > + ACPI_FREE(obj); > +} > + > +void intel_privacy_screen_set_val(struct intel_connector *connector, > + enum intel_privacy_screen_status val) > +{ > + acpi_handle acpi_handle = connector->acpi_handle; > + > + if (!acpi_handle) > + return; > + > + if (val == PRIVACY_SCREEN_DISABLED) > + acpi_privacy_screen_call_dsm(acpi_handle, > + CONNECTOR_DSM_FN_PRIVACY_DISABLE); > + else if (val == PRIVACY_SCREEN_ENABLED) > + acpi_privacy_screen_call_dsm(acpi_handle, > + CONNECTOR_DSM_FN_PRIVACY_ENABLE); > + else > + DRM_WARN("%s: Cannot set privacy screen to invalid val %u\n", > + dev_name(connector->base.dev->dev), val); > +} > + > +bool intel_privacy_screen_present(struct intel_connector *connector) > +{ > + acpi_handle handle = connector->acpi_handle; > + > + if (!handle) > + return false; > + > + if (!acpi_check_dsm(handle, &drm_conn_dsm_guid, > + CONNECTOR_DSM_REVID, > + 1 << CONNECTOR_DSM_FN_PRIVACY_ENABLE | > + 1 << CONNECTOR_DSM_FN_PRIVACY_DISABLE)) { > + DRM_WARN("%s: Odd, connector ACPI node but no privacy scrn?\n", > + dev_name(connector->base.dev->dev)); > + return false; > + } > + DRM_DEV_INFO(connector->base.dev->dev, "supports privacy screen\n"); > + return true; > +} I don't have much to say about the ACPI parts, except please use the new drm_dbg_kms and drm_info helpers for logging. BR, Jani. > diff --git a/drivers/gpu/drm/i915/display/intel_privacy_screen.h b/drivers/gpu/drm/i915/display/intel_privacy_screen.h > new file mode 100644 > index 0000000000000..74013a7885c70 > --- /dev/null > +++ b/drivers/gpu/drm/i915/display/intel_privacy_screen.h > @@ -0,0 +1,27 @@ > +/* SPDX-License-Identifier: GPL-2.0 OR MIT */ > +/* > + * Copyright © 2019 Google Inc. > + */ > + > +#ifndef __DRM_PRIVACY_SCREEN_H__ > +#define __DRM_PRIVACY_SCREEN_H__ > + > +#include "intel_display_types.h" > + > +#ifdef CONFIG_ACPI > +bool intel_privacy_screen_present(struct intel_connector *connector); > +void intel_privacy_screen_set_val(struct intel_connector *connector, > + enum intel_privacy_screen_status val); > +#else > +static bool intel_privacy_screen_present(struct intel_connector *connector) > +{ > + return false; > +} > + > +static void > +intel_privacy_screen_set_val(struct intel_connector *connector, > + enum intel_privacy_screen_status val) > +{ } > +#endif /* CONFIG_ACPI */ > + > +#endif /* __DRM_PRIVACY_SCREEN_H__ */ -- Jani Nikula, Intel Open Source Graphics Center