From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1752785AbcF2N6i (ORCPT ); Wed, 29 Jun 2016 09:58:38 -0400 Received: from mail-vk0-f43.google.com ([209.85.213.43]:35325 "EHLO mail-vk0-f43.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1752586AbcF2N6b (ORCPT ); Wed, 29 Jun 2016 09:58:31 -0400 MIME-Version: 1.0 In-Reply-To: <1467191726-17264-1-git-send-email-ykk@rock-chips.com> References: <1467191657-16941-1-git-send-email-ykk@rock-chips.com> <1467191726-17264-1-git-send-email-ykk@rock-chips.com> From: Sean Paul Date: Wed, 29 Jun 2016 09:52:11 -0400 X-Gmail-Original-Message-ID: Message-ID: Subject: Re: [PATCH v4 04/11] drm/rockchip: analogix_dp: add rk3399 eDP support To: Yakir Yang Cc: Mark Yao , Inki Dae , Jingoo Han , Heiko Stuebner , Javier Martinez Canillas , =?UTF-8?Q?St=C3=A9phane_Marchesin?= , Tomasz Figa , David Airlie , Daniel Vetter , Thierry Reding , Douglas Anderson , Krzysztof Kozlowski , Emil Velikov , Dan Carpenter , Linux Kernel Mailing List , dri-devel , linux-samsung-soc , linux-rockchip@lists.infradead.org Content-Type: text/plain; charset=UTF-8 Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On Wed, Jun 29, 2016 at 5:15 AM, Yakir Yang wrote: > RK3399 and RK3288 shared the same eDP IP controller, only some light > difference with VOP configure and GRF configure. > > Signed-off-by: Yakir Yang > Acked-by: Mark Yao > Reviewed-by: Tomasz Figa Reviewed-by: Sean Paul > --- > Changes in v4: > - Improved the overly complicated .atomic_check function. (Sean) > - Add reviewed flag from Tomasz > > Changes in v3: > - Give the "rk3399-edp" a separate line for clarity in document (Tomasz, reviewed at Google Gerrit) > [https://chromium-review.googlesource.com/#/c/346314/10/Documentation/devicetree/bindings/display/rockchip/analogix_dp-rockchip.txt@5] > - Move 'output_type' setting before the return statement (Tomasz, reviewed at Google Gerrit) > [https://chromium-review.googlesource.com/#/c/346314/10/drivers/gpu/drm/rockchip/analogix_dp-rockchip.c@154] > - Add the acked flag from Mark. > > .../bindings/display/bridge/analogix_dp.txt | 1 + > .../display/rockchip/analogix_dp-rockchip.txt | 3 ++- > drivers/gpu/drm/rockchip/analogix_dp-rockchip.c | 23 ++++++++++++++++++++++ > include/drm/bridge/analogix_dp.h | 3 ++- > 4 files changed, 28 insertions(+), 2 deletions(-) > > diff --git a/Documentation/devicetree/bindings/display/bridge/analogix_dp.txt b/Documentation/devicetree/bindings/display/bridge/analogix_dp.txt > index 4f2ba8c..4a0f4f7 100644 > --- a/Documentation/devicetree/bindings/display/bridge/analogix_dp.txt > +++ b/Documentation/devicetree/bindings/display/bridge/analogix_dp.txt > @@ -5,6 +5,7 @@ Required properties for dp-controller: > platform specific such as: > * "samsung,exynos5-dp" > * "rockchip,rk3288-dp" > + * "rockchip,rk3399-edp" > -reg: > physical base address of the controller and length > of memory mapped region. > diff --git a/Documentation/devicetree/bindings/display/rockchip/analogix_dp-rockchip.txt b/Documentation/devicetree/bindings/display/rockchip/analogix_dp-rockchip.txt > index e832ff9..726c945 100644 > --- a/Documentation/devicetree/bindings/display/rockchip/analogix_dp-rockchip.txt > +++ b/Documentation/devicetree/bindings/display/rockchip/analogix_dp-rockchip.txt > @@ -2,7 +2,8 @@ Rockchip RK3288 specific extensions to the Analogix Display Port > ================================ > > Required properties: > -- compatible: "rockchip,rk3288-edp"; > +- compatible: "rockchip,rk3288-edp", > + "rockchip,rk3399-edp"; > > - reg: physical base address of the controller and length > > diff --git a/drivers/gpu/drm/rockchip/analogix_dp-rockchip.c b/drivers/gpu/drm/rockchip/analogix_dp-rockchip.c > index 0a30931..8557a08 100644 > --- a/drivers/gpu/drm/rockchip/analogix_dp-rockchip.c > +++ b/drivers/gpu/drm/rockchip/analogix_dp-rockchip.c > @@ -36,6 +36,8 @@ > > #define RK3288_GRF_SOC_CON6 0x25c > #define RK3288_EDP_LCDC_SEL BIT(5) > +#define RK3399_GRF_SOC_CON20 0x6250 > +#define RK3399_EDP_LCDC_SEL BIT(5) > > #define HIWORD_UPDATE(val, mask) (val | (mask) << 16) > > @@ -159,6 +161,8 @@ rockchip_dp_drm_encoder_atomic_check(struct drm_encoder *encoder, > struct drm_connector_state *conn_state) > { > struct rockchip_crtc_state *s = to_rockchip_crtc_state(crtc_state); > + struct rockchip_dp_device *dp = to_dp(encoder); > + int ret; > > /* > * FIXME(Yakir): driver should configure the CRTC output video > @@ -173,8 +177,19 @@ rockchip_dp_drm_encoder_atomic_check(struct drm_encoder *encoder, > * But if I configure CTRC to RGBaaa, and eDP driver still keep > * RGB666 input video mode, then screen would works prefect. > */ > + > s->output_mode = ROCKCHIP_OUT_MODE_AAAA; > s->output_type = DRM_MODE_CONNECTOR_eDP; > + if (dp->data->chip_type == RK3399_EDP) { > + /* > + * For RK3399, VOP Lit must code the out mode to RGB888, > + * VOP Big must code the out mode to RGB10. > + */ > + ret = drm_of_encoder_active_endpoint_id(dp->dev->of_node, > + encoder); > + if (ret > 0) > + s->output_mode = ROCKCHIP_OUT_MODE_P888; > + } > > return 0; > } > @@ -378,6 +393,13 @@ static const struct dev_pm_ops rockchip_dp_pm_ops = { > #endif > }; > > +static const struct rockchip_dp_chip_data rk3399_edp = { > + .lcdsel_grf_reg = RK3399_GRF_SOC_CON20, > + .lcdsel_big = HIWORD_UPDATE(0, RK3399_EDP_LCDC_SEL), > + .lcdsel_lit = HIWORD_UPDATE(RK3399_EDP_LCDC_SEL, RK3399_EDP_LCDC_SEL), > + .chip_type = RK3399_EDP, > +}; > + > static const struct rockchip_dp_chip_data rk3288_dp = { > .lcdsel_grf_reg = RK3288_GRF_SOC_CON6, > .lcdsel_big = HIWORD_UPDATE(0, RK3288_EDP_LCDC_SEL), > @@ -387,6 +409,7 @@ static const struct rockchip_dp_chip_data rk3288_dp = { > > static const struct of_device_id rockchip_dp_dt_ids[] = { > {.compatible = "rockchip,rk3288-dp", .data = &rk3288_dp }, > + {.compatible = "rockchip,rk3399-edp", .data = &rk3399_edp }, > {} > }; > MODULE_DEVICE_TABLE(of, rockchip_dp_dt_ids); > diff --git a/include/drm/bridge/analogix_dp.h b/include/drm/bridge/analogix_dp.h > index 790ab5d..fc4aea3 100644 > --- a/include/drm/bridge/analogix_dp.h > +++ b/include/drm/bridge/analogix_dp.h > @@ -16,11 +16,12 @@ > enum analogix_dp_devtype { > EXYNOS_DP, > RK3288_DP, > + RK3399_EDP, > }; > > static inline bool is_rockchip(enum analogix_dp_devtype type) > { > - return type == RK3288_DP; > + return type == RK3288_DP || type == RK3399_EDP; > } > > struct analogix_dp_plat_data { > -- > 1.9.1 > > From mboxrd@z Thu Jan 1 00:00:00 1970 From: Sean Paul Subject: Re: [PATCH v4 04/11] drm/rockchip: analogix_dp: add rk3399 eDP support Date: Wed, 29 Jun 2016 09:52:11 -0400 Message-ID: References: <1467191657-16941-1-git-send-email-ykk@rock-chips.com> <1467191726-17264-1-git-send-email-ykk@rock-chips.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: <1467191726-17264-1-git-send-email-ykk@rock-chips.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" To: Yakir Yang Cc: Krzysztof Kozlowski , linux-samsung-soc , Linux Kernel Mailing List , linux-rockchip@lists.infradead.org, Mark Yao , Jingoo Han , Emil Velikov , Douglas Anderson , dri-devel , Tomasz Figa , Javier Martinez Canillas , Daniel Vetter , =?UTF-8?Q?St=C3=A9phane_Marchesin?= , Thierry Reding , Dan Carpenter List-Id: linux-samsung-soc@vger.kernel.org T24gV2VkLCBKdW4gMjksIDIwMTYgYXQgNToxNSBBTSwgWWFraXIgWWFuZyA8eWtrQHJvY2stY2hp cHMuY29tPiB3cm90ZToKPiBSSzMzOTkgYW5kIFJLMzI4OCBzaGFyZWQgdGhlIHNhbWUgZURQIElQ IGNvbnRyb2xsZXIsIG9ubHkgc29tZSBsaWdodAo+IGRpZmZlcmVuY2Ugd2l0aCBWT1AgY29uZmln dXJlIGFuZCBHUkYgY29uZmlndXJlLgo+Cj4gU2lnbmVkLW9mZi1ieTogWWFraXIgWWFuZyA8eWtr QHJvY2stY2hpcHMuY29tPgo+IEFja2VkLWJ5OiBNYXJrIFlhbyA8bWFyay55YW9Acm9jay1jaGlw cy5jb20+Cj4gUmV2aWV3ZWQtYnk6IFRvbWFzeiBGaWdhIDx0b21hc3ouZmlnYUBjaHJvbWl1bS5j b20+CgoKUmV2aWV3ZWQtYnk6IFNlYW4gUGF1bCA8c2VhbnBhdWxAY2hyb21pdW0ub3JnPgoKPiAt LS0KPiBDaGFuZ2VzIGluIHY0Ogo+IC0gSW1wcm92ZWQgdGhlIG92ZXJseSBjb21wbGljYXRlZCAu YXRvbWljX2NoZWNrIGZ1bmN0aW9uLiAoU2VhbikKPiAtIEFkZCByZXZpZXdlZCBmbGFnIGZyb20g VG9tYXN6Cj4KPiBDaGFuZ2VzIGluIHYzOgo+IC0gR2l2ZSB0aGUgInJrMzM5OS1lZHAiIGEgc2Vw YXJhdGUgbGluZSBmb3IgY2xhcml0eSBpbiBkb2N1bWVudCAoVG9tYXN6LCByZXZpZXdlZCBhdCBH b29nbGUgR2Vycml0KQo+ICAgICBbaHR0cHM6Ly9jaHJvbWl1bS1yZXZpZXcuZ29vZ2xlc291cmNl LmNvbS8jL2MvMzQ2MzE0LzEwL0RvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9kaXNw bGF5L3JvY2tjaGlwL2FuYWxvZ2l4X2RwLXJvY2tjaGlwLnR4dEA1XQo+IC0gTW92ZSAnb3V0cHV0 X3R5cGUnIHNldHRpbmcgYmVmb3JlIHRoZSByZXR1cm4gc3RhdGVtZW50IChUb21hc3osIHJldmll d2VkIGF0IEdvb2dsZSBHZXJyaXQpCj4gICAgIFtodHRwczovL2Nocm9taXVtLXJldmlldy5nb29n bGVzb3VyY2UuY29tLyMvYy8zNDYzMTQvMTAvZHJpdmVycy9ncHUvZHJtL3JvY2tjaGlwL2FuYWxv Z2l4X2RwLXJvY2tjaGlwLmNAMTU0XQo+IC0gQWRkIHRoZSBhY2tlZCBmbGFnIGZyb20gTWFyay4K Pgo+ICAuLi4vYmluZGluZ3MvZGlzcGxheS9icmlkZ2UvYW5hbG9naXhfZHAudHh0ICAgICAgICB8 ICAxICsKPiAgLi4uL2Rpc3BsYXkvcm9ja2NoaXAvYW5hbG9naXhfZHAtcm9ja2NoaXAudHh0ICAg ICAgfCAgMyArKy0KPiAgZHJpdmVycy9ncHUvZHJtL3JvY2tjaGlwL2FuYWxvZ2l4X2RwLXJvY2tj aGlwLmMgICAgfCAyMyArKysrKysrKysrKysrKysrKysrKysrCj4gIGluY2x1ZGUvZHJtL2JyaWRn ZS9hbmFsb2dpeF9kcC5oICAgICAgICAgICAgICAgICAgIHwgIDMgKystCj4gIDQgZmlsZXMgY2hh bmdlZCwgMjggaW5zZXJ0aW9ucygrKSwgMiBkZWxldGlvbnMoLSkKPgo+IGRpZmYgLS1naXQgYS9E b2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvZGlzcGxheS9icmlkZ2UvYW5hbG9naXhf ZHAudHh0IGIvRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL2Rpc3BsYXkvYnJpZGdl L2FuYWxvZ2l4X2RwLnR4dAo+IGluZGV4IDRmMmJhOGMuLjRhMGY0ZjcgMTAwNjQ0Cj4gLS0tIGEv RG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL2Rpc3BsYXkvYnJpZGdlL2FuYWxvZ2l4 X2RwLnR4dAo+ICsrKyBiL0RvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9kaXNwbGF5 L2JyaWRnZS9hbmFsb2dpeF9kcC50eHQKPiBAQCAtNSw2ICs1LDcgQEAgUmVxdWlyZWQgcHJvcGVy dGllcyBmb3IgZHAtY29udHJvbGxlcjoKPiAgICAgICAgICAgICAgICAgcGxhdGZvcm0gc3BlY2lm aWMgc3VjaCBhczoKPiAgICAgICAgICAgICAgICAgICogInNhbXN1bmcsZXh5bm9zNS1kcCIKPiAg ICAgICAgICAgICAgICAgICogInJvY2tjaGlwLHJrMzI4OC1kcCIKPiArICAgICAgICAgICAgICAg ICogInJvY2tjaGlwLHJrMzM5OS1lZHAiCj4gICAgICAgICAtcmVnOgo+ICAgICAgICAgICAgICAg ICBwaHlzaWNhbCBiYXNlIGFkZHJlc3Mgb2YgdGhlIGNvbnRyb2xsZXIgYW5kIGxlbmd0aAo+ICAg ICAgICAgICAgICAgICBvZiBtZW1vcnkgbWFwcGVkIHJlZ2lvbi4KPiBkaWZmIC0tZ2l0IGEvRG9j dW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL2Rpc3BsYXkvcm9ja2NoaXAvYW5hbG9naXhf ZHAtcm9ja2NoaXAudHh0IGIvRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL2Rpc3Bs YXkvcm9ja2NoaXAvYW5hbG9naXhfZHAtcm9ja2NoaXAudHh0Cj4gaW5kZXggZTgzMmZmOS4uNzI2 Yzk0NSAxMDA2NDQKPiAtLS0gYS9Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvZGlz cGxheS9yb2NrY2hpcC9hbmFsb2dpeF9kcC1yb2NrY2hpcC50eHQKPiArKysgYi9Eb2N1bWVudGF0 aW9uL2RldmljZXRyZWUvYmluZGluZ3MvZGlzcGxheS9yb2NrY2hpcC9hbmFsb2dpeF9kcC1yb2Nr Y2hpcC50eHQKPiBAQCAtMiw3ICsyLDggQEAgUm9ja2NoaXAgUkszMjg4IHNwZWNpZmljIGV4dGVu c2lvbnMgdG8gdGhlIEFuYWxvZ2l4IERpc3BsYXkgUG9ydAo+ICA9PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PQo+Cj4gIFJlcXVpcmVkIHByb3BlcnRpZXM6Cj4gLS0gY29tcGF0aWJsZTog InJvY2tjaGlwLHJrMzI4OC1lZHAiOwo+ICstIGNvbXBhdGlibGU6ICJyb2NrY2hpcCxyazMyODgt ZWRwIiwKPiArICAgICAgICAgICAgICJyb2NrY2hpcCxyazMzOTktZWRwIjsKPgo+ICAtIHJlZzog cGh5c2ljYWwgYmFzZSBhZGRyZXNzIG9mIHRoZSBjb250cm9sbGVyIGFuZCBsZW5ndGgKPgo+IGRp ZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vcm9ja2NoaXAvYW5hbG9naXhfZHAtcm9ja2NoaXAu YyBiL2RyaXZlcnMvZ3B1L2RybS9yb2NrY2hpcC9hbmFsb2dpeF9kcC1yb2NrY2hpcC5jCj4gaW5k ZXggMGEzMDkzMS4uODU1N2EwOCAxMDA2NDQKPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vcm9ja2No aXAvYW5hbG9naXhfZHAtcm9ja2NoaXAuYwo+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9yb2NrY2hp cC9hbmFsb2dpeF9kcC1yb2NrY2hpcC5jCj4gQEAgLTM2LDYgKzM2LDggQEAKPgo+ICAjZGVmaW5l IFJLMzI4OF9HUkZfU09DX0NPTjYgICAgICAgICAgICAweDI1Ywo+ICAjZGVmaW5lIFJLMzI4OF9F RFBfTENEQ19TRUwgICAgICAgICAgICBCSVQoNSkKPiArI2RlZmluZSBSSzMzOTlfR1JGX1NPQ19D T04yMCAgICAgICAgICAgMHg2MjUwCj4gKyNkZWZpbmUgUkszMzk5X0VEUF9MQ0RDX1NFTCAgICAg ICAgICAgIEJJVCg1KQo+Cj4gICNkZWZpbmUgSElXT1JEX1VQREFURSh2YWwsIG1hc2spICAgICAg ICh2YWwgfCAobWFzaykgPDwgMTYpCj4KPiBAQCAtMTU5LDYgKzE2MSw4IEBAIHJvY2tjaGlwX2Rw X2RybV9lbmNvZGVyX2F0b21pY19jaGVjayhzdHJ1Y3QgZHJtX2VuY29kZXIgKmVuY29kZXIsCj4g ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJ1Y3QgZHJtX2Nvbm5lY3Rv cl9zdGF0ZSAqY29ubl9zdGF0ZSkKPiAgewo+ICAgICAgICAgc3RydWN0IHJvY2tjaGlwX2NydGNf c3RhdGUgKnMgPSB0b19yb2NrY2hpcF9jcnRjX3N0YXRlKGNydGNfc3RhdGUpOwo+ICsgICAgICAg c3RydWN0IHJvY2tjaGlwX2RwX2RldmljZSAqZHAgPSB0b19kcChlbmNvZGVyKTsKPiArICAgICAg IGludCByZXQ7Cj4KPiAgICAgICAgIC8qCj4gICAgICAgICAgKiBGSVhNRShZYWtpcik6IGRyaXZl ciBzaG91bGQgY29uZmlndXJlIHRoZSBDUlRDIG91dHB1dCB2aWRlbwo+IEBAIC0xNzMsOCArMTc3 LDE5IEBAIHJvY2tjaGlwX2RwX2RybV9lbmNvZGVyX2F0b21pY19jaGVjayhzdHJ1Y3QgZHJtX2Vu Y29kZXIgKmVuY29kZXIsCj4gICAgICAgICAgKiBCdXQgaWYgSSBjb25maWd1cmUgQ1RSQyB0byBS R0JhYWEsIGFuZCBlRFAgZHJpdmVyIHN0aWxsIGtlZXAKPiAgICAgICAgICAqIFJHQjY2NiBpbnB1 dCB2aWRlbyBtb2RlLCB0aGVuIHNjcmVlbiB3b3VsZCB3b3JrcyBwcmVmZWN0Lgo+ICAgICAgICAg ICovCj4gKwo+ICAgICAgICAgcy0+b3V0cHV0X21vZGUgPSBST0NLQ0hJUF9PVVRfTU9ERV9BQUFB Owo+ICAgICAgICAgcy0+b3V0cHV0X3R5cGUgPSBEUk1fTU9ERV9DT05ORUNUT1JfZURQOwo+ICsg ICAgICAgaWYgKGRwLT5kYXRhLT5jaGlwX3R5cGUgPT0gUkszMzk5X0VEUCkgewo+ICsgICAgICAg ICAgICAgICAvKgo+ICsgICAgICAgICAgICAgICAgKiBGb3IgUkszMzk5LCBWT1AgTGl0IG11c3Qg Y29kZSB0aGUgb3V0IG1vZGUgdG8gUkdCODg4LAo+ICsgICAgICAgICAgICAgICAgKiBWT1AgQmln IG11c3QgY29kZSB0aGUgb3V0IG1vZGUgdG8gUkdCMTAuCj4gKyAgICAgICAgICAgICAgICAqLwo+ ICsgICAgICAgICAgICAgICByZXQgPSBkcm1fb2ZfZW5jb2Rlcl9hY3RpdmVfZW5kcG9pbnRfaWQo ZHAtPmRldi0+b2Zfbm9kZSwKPiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIGVuY29kZXIpOwo+ICsgICAgICAgICAgICAgICBpZiAocmV0ID4g MCkKPiArICAgICAgICAgICAgICAgICAgICAgICBzLT5vdXRwdXRfbW9kZSA9IFJPQ0tDSElQX09V VF9NT0RFX1A4ODg7Cj4gKyAgICAgICB9Cj4KPiAgICAgICAgIHJldHVybiAwOwo+ICB9Cj4gQEAg LTM3OCw2ICszOTMsMTMgQEAgc3RhdGljIGNvbnN0IHN0cnVjdCBkZXZfcG1fb3BzIHJvY2tjaGlw X2RwX3BtX29wcyA9IHsKPiAgI2VuZGlmCj4gIH07Cj4KPiArc3RhdGljIGNvbnN0IHN0cnVjdCBy b2NrY2hpcF9kcF9jaGlwX2RhdGEgcmszMzk5X2VkcCA9IHsKPiArICAgICAgIC5sY2RzZWxfZ3Jm X3JlZyA9IFJLMzM5OV9HUkZfU09DX0NPTjIwLAo+ICsgICAgICAgLmxjZHNlbF9iaWcgPSBISVdP UkRfVVBEQVRFKDAsIFJLMzM5OV9FRFBfTENEQ19TRUwpLAo+ICsgICAgICAgLmxjZHNlbF9saXQg PSBISVdPUkRfVVBEQVRFKFJLMzM5OV9FRFBfTENEQ19TRUwsIFJLMzM5OV9FRFBfTENEQ19TRUwp LAo+ICsgICAgICAgLmNoaXBfdHlwZSA9IFJLMzM5OV9FRFAsCj4gK307Cj4gKwo+ICBzdGF0aWMg Y29uc3Qgc3RydWN0IHJvY2tjaGlwX2RwX2NoaXBfZGF0YSByazMyODhfZHAgPSB7Cj4gICAgICAg ICAubGNkc2VsX2dyZl9yZWcgPSBSSzMyODhfR1JGX1NPQ19DT042LAo+ICAgICAgICAgLmxjZHNl bF9iaWcgPSBISVdPUkRfVVBEQVRFKDAsIFJLMzI4OF9FRFBfTENEQ19TRUwpLAo+IEBAIC0zODcs NiArNDA5LDcgQEAgc3RhdGljIGNvbnN0IHN0cnVjdCByb2NrY2hpcF9kcF9jaGlwX2RhdGEgcmsz Mjg4X2RwID0gewo+Cj4gIHN0YXRpYyBjb25zdCBzdHJ1Y3Qgb2ZfZGV2aWNlX2lkIHJvY2tjaGlw X2RwX2R0X2lkc1tdID0gewo+ICAgICAgICAgey5jb21wYXRpYmxlID0gInJvY2tjaGlwLHJrMzI4 OC1kcCIsIC5kYXRhID0gJnJrMzI4OF9kcCB9LAo+ICsgICAgICAgey5jb21wYXRpYmxlID0gInJv Y2tjaGlwLHJrMzM5OS1lZHAiLCAuZGF0YSA9ICZyazMzOTlfZWRwIH0sCj4gICAgICAgICB7fQo+ ICB9Owo+ICBNT0RVTEVfREVWSUNFX1RBQkxFKG9mLCByb2NrY2hpcF9kcF9kdF9pZHMpOwo+IGRp ZmYgLS1naXQgYS9pbmNsdWRlL2RybS9icmlkZ2UvYW5hbG9naXhfZHAuaCBiL2luY2x1ZGUvZHJt L2JyaWRnZS9hbmFsb2dpeF9kcC5oCj4gaW5kZXggNzkwYWI1ZC4uZmM0YWVhMyAxMDA2NDQKPiAt LS0gYS9pbmNsdWRlL2RybS9icmlkZ2UvYW5hbG9naXhfZHAuaAo+ICsrKyBiL2luY2x1ZGUvZHJt L2JyaWRnZS9hbmFsb2dpeF9kcC5oCj4gQEAgLTE2LDExICsxNiwxMiBAQAo+ICBlbnVtIGFuYWxv Z2l4X2RwX2RldnR5cGUgewo+ICAgICAgICAgRVhZTk9TX0RQLAo+ICAgICAgICAgUkszMjg4X0RQ LAo+ICsgICAgICAgUkszMzk5X0VEUCwKPiAgfTsKPgo+ICBzdGF0aWMgaW5saW5lIGJvb2wgaXNf cm9ja2NoaXAoZW51bSBhbmFsb2dpeF9kcF9kZXZ0eXBlIHR5cGUpCj4gIHsKPiAtICAgICAgIHJl dHVybiB0eXBlID09IFJLMzI4OF9EUDsKPiArICAgICAgIHJldHVybiB0eXBlID09IFJLMzI4OF9E UCB8fCB0eXBlID09IFJLMzM5OV9FRFA7Cj4gIH0KPgo+ICBzdHJ1Y3QgYW5hbG9naXhfZHBfcGxh dF9kYXRhIHsKPiAtLQo+IDEuOS4xCj4KPgpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fXwpkcmktZGV2ZWwgbWFpbGluZyBsaXN0CmRyaS1kZXZlbEBsaXN0cy5m cmVlZGVza3RvcC5vcmcKaHR0cHM6Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0 aW5mby9kcmktZGV2ZWwK