From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1751495AbdATGwr (ORCPT ); Fri, 20 Jan 2017 01:52:47 -0500 Received: from mailout1.w1.samsung.com ([210.118.77.11]:59057 "EHLO mailout1.w1.samsung.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751345AbdATGwk (ORCPT ); Fri, 20 Jan 2017 01:52:40 -0500 X-AuditID: cbfec7f5-f79d06d000004445-f1-5881b3af8912 From: Andrzej Hajda To: Inki Dae , dri-devel@lists.freedesktop.org, Krzysztof Kozlowski Cc: Andrzej Hajda , Bartlomiej Zolnierkiewicz , Marek Szyprowski , Kyungmin Park , linux-kernel@vger.kernel.org, linux-samsung-soc@vger.kernel.org Subject: [PATCH 5/7] drm/exynos/decon5433: add support for interlace modes Date: Fri, 20 Jan 2017 07:52:23 +0100 Message-id: <1484895145-511-6-git-send-email-a.hajda@samsung.com> X-Mailer: git-send-email 2.7.4 In-reply-to: <1484895145-511-1-git-send-email-a.hajda@samsung.com> X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFjrDIsWRmVeSWpSXmKPExsWy7djP87rrNzdGGOy5omdxa905VouNM9az Wlz5+p7NYtL9CSwW589vYLc42/SG3eLyrjlsFjPO72OyWHvkLrsDp8emVZ1sHve7jzN59G1Z xejxeZNcAEsUl01Kak5mWWqRvl0CV8bUb/vZCx4oVmw6dIO9gfG2dBcjJ4eEgInE5b7NLBC2 mMSFe+vZuhi5OIQEljJKfG7/ygThfGaUuN1zm7mLkQOsY0GDOER8GaPErXkQ3UIC/xklrt3R BbHZBDQl/m6+yQZiiwjkSpz8egRsKrPAH0aJm3eWMoIMEhbwkpj9WRukhkVAVeLp2WNMIDav gKPEzT8XmSEukpO4ea4TbC+ngJPE3kXpIGMkBP6zSbw9uZ4J4h5ZiU0HoMpdJFb+XAr1jLDE q+Nb2CFsGYnLk7tZIHq7GSU+9Z9gh3CmMEr8+zADqtta4vDxi6wgNrMAn8SkbdOhHuaV6GgT gijxkDgweyobRNhRouWbCiQcpjJKXH30j3kCo8wCRoZVjCKppcW56anFpnrFibnFpXnpesn5 uZsYgXF8+t/xrzsYlx6zOsQowMGoxMO740RDhBBrYllxZe4hRgkOZiUR3p71jRFCvCmJlVWp RfnxRaU5qcWHGKU5WJTEefcsuBIuJJCeWJKanZpakFoEk2Xi4JRqYJyWL5zPHvab44LbAra5 m/fs3zA/o+FvU2iyWkEkc8YmwU+Vq2ITeZPFVh09qOfY2yO0w+BwBbPm87srdNu+GjQk3RRz M03b4lXnapRp6n3F23TeD4bcNdrp09uEr1nkBobE7ux/mu6mcPbvxzy3rgYj4av7eVkv9Mk9 Pn/AOrv9vvmsK4d9lFiKMxINtZiLihMBfitNet8CAAA= X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFnrDLMWRmVeSWpSXmKPExsVy+t/xa7qrNjdGGJy5o2pxa905VouNM9az Wlz5+p7NYtL9CSwW589vYLc42/SG3eLyrjlsFjPO72OyWHvkLrsDp8emVZ1sHve7jzN59G1Z xejxeZNcAEuUm01GamJKapFCal5yfkpmXrqtUmiIm66FkkJeYm6qrVKErm9IkJJCWWJOKZBn ZIAGHJwD3IOV9O0S3DKmftvPXvBAsWLToRvsDYy3pbsYOTgkBEwkFjSIdzFyApliEhfurWfr YuTiEBJYwiixfckUJginkUniy+aN7CBVbAKaEn8332QDsUUEciXWP53JDlLELPCPUWLD1TdM IFOFBbwkZn/WBqlhEVCVeHr2GBOIzSvgKHHzz0VmiG1yEjfPdTKDlHMKOEnsXZQOEhYCKjnY fIBtAiPvAkaGVYwiqaXFuem5xUZ6xYm5xaV56XrJ+bmbGIEhve3Yzy07GLveBR9iFOBgVOLh 3XGiIUKINbGsuDL3EKMEB7OSCG/P+sYIId6UxMqq1KL8+KLSnNTiQ4ymQDdNZJYSTc4Hxlte SbyhiaG5paGRsYWFuZGRkjjv1A9XwoUE0hNLUrNTUwtSi2D6mDg4pRoYJwWWHd2mXWgRs8ud 4VNwmEmB4t/X8yx1LHfJPwg+bfT+/E0V7sXSfbKKM3/vq5rmW3s19Xn4svYZi5LVVSSi7gct 9uVOeLJgylUBm6x57FbTz3vEv+g4wKR+tI3Vcb+X7f5laTbugSeDAwqPu3lH3XghqaDpMNv1 YKLFjhibd7v3z9/1T2ufEktxRqKhFnNRcSIAlPrxRH8CAAA= X-MTR: 20000000000000000@CPGS X-CMS-MailID: 20170120065231eucas1p23fa4730d36c855bc441ba23411ab6ffd X-Msg-Generator: CA X-Sender-IP: 182.198.249.180 X-Local-Sender: =?UTF-8?B?QW5kcnplaiBIYWpkYRtTUlBPTC1LZXJuZWwgKFRQKRvsgrw=?= =?UTF-8?B?7ISx7KCE7J6QG1NlbmlvciBTb2Z0d2FyZSBFbmdpbmVlcg==?= X-Global-Sender: =?UTF-8?B?QW5kcnplaiBIYWpkYRtTUlBPTC1LZXJuZWwgKFRQKRtTYW1z?= =?UTF-8?B?dW5nIEVsZWN0cm9uaWNzG1NlbmlvciBTb2Z0d2FyZSBFbmdpbmVlcg==?= X-Sender-Code: =?UTF-8?B?QzEwG0VIURtDMTBDRDAyQ0QwMjczOTI=?= CMS-TYPE: 201P X-HopCount: 7 X-CMS-RootMailID: 20170120065231eucas1p23fa4730d36c855bc441ba23411ab6ffd X-RootMTR: 20170120065231eucas1p23fa4730d36c855bc441ba23411ab6ffd References: <1484895145-511-1-git-send-email-a.hajda@samsung.com> Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Some registers should be programmed differently in interlace mode. Additionally IP does not signal stop state properly in interlaced mode, so warning has been removed. Signed-off-by: Andrzej Hajda --- drivers/gpu/drm/exynos/exynos5433_drm_decon.c | 45 +++++++++++++++++++-------- include/video/exynos5433_decon.h | 1 + 2 files changed, 33 insertions(+), 13 deletions(-) diff --git a/drivers/gpu/drm/exynos/exynos5433_drm_decon.c b/drivers/gpu/drm/exynos/exynos5433_drm_decon.c index 042d6ef..46434ba9 100644 --- a/drivers/gpu/drm/exynos/exynos5433_drm_decon.c +++ b/drivers/gpu/drm/exynos/exynos5433_drm_decon.c @@ -146,6 +146,7 @@ static void decon_commit(struct exynos_drm_crtc *crtc) { struct decon_context *ctx = crtc->ctx; struct drm_display_mode *m = &crtc->base.mode; + bool interlaced = false; u32 val; if (test_bit(BIT_SUSPENDED, &ctx->flags)) @@ -156,12 +157,16 @@ static void decon_commit(struct exynos_drm_crtc *crtc) m->crtc_hsync_end = m->crtc_htotal - 92; m->crtc_vsync_start = m->crtc_vdisplay + 1; m->crtc_vsync_end = m->crtc_vsync_start + 1; + if (m->flags & DRM_MODE_FLAG_INTERLACE) + interlaced = true; } decon_setup_trigger(ctx); /* lcd on and use command if */ val = VIDOUT_LCD_ON; + if (interlaced) + val |= VIDOUT_INTERLACE_EN_F; if (ctx->out_type & IFTYPE_I80) { val |= VIDOUT_COMMAND_IF; } else { @@ -170,15 +175,21 @@ static void decon_commit(struct exynos_drm_crtc *crtc) writel(val, ctx->addr + DECON_VIDOUTCON0); - val = VIDTCON2_LINEVAL(m->vdisplay - 1) | - VIDTCON2_HOZVAL(m->hdisplay - 1); + if (interlaced) + val = VIDTCON2_LINEVAL(m->vdisplay / 2 - 1) | + VIDTCON2_HOZVAL(m->hdisplay - 1); + else + val = VIDTCON2_LINEVAL(m->vdisplay - 1) | + VIDTCON2_HOZVAL(m->hdisplay - 1); writel(val, ctx->addr + DECON_VIDTCON2); if (!(ctx->out_type & IFTYPE_I80)) { - val = VIDTCON00_VBPD_F( - m->crtc_vtotal - m->crtc_vsync_end - 1) | - VIDTCON00_VFPD_F( - m->crtc_vsync_start - m->crtc_vdisplay - 1); + int vbp = m->crtc_vtotal - m->crtc_vsync_end; + int vfp = m->crtc_vsync_start - m->crtc_vdisplay; + + if (interlaced) + vbp = vbp / 2 - 1; + val = VIDTCON00_VBPD_F(vbp - 1) | VIDTCON00_VFPD_F(vfp - 1); writel(val, ctx->addr + DECON_VIDTCON00); val = VIDTCON01_VSPW_F( @@ -293,12 +304,22 @@ static void decon_update_plane(struct exynos_drm_crtc *crtc, if (test_bit(BIT_SUSPENDED, &ctx->flags)) return; - val = COORDINATE_X(state->crtc.x) | COORDINATE_Y(state->crtc.y); - writel(val, ctx->addr + DECON_VIDOSDxA(win)); + if (crtc->base.mode.flags & DRM_MODE_FLAG_INTERLACE) { + val = COORDINATE_X(state->crtc.x) | + COORDINATE_Y(state->crtc.y / 2); + writel(val, ctx->addr + DECON_VIDOSDxA(win)); + + val = COORDINATE_X(state->crtc.x + state->crtc.w - 1) | + COORDINATE_Y((state->crtc.y + state->crtc.h) / 2 - 1); + writel(val, ctx->addr + DECON_VIDOSDxB(win)); + } else { + val = COORDINATE_X(state->crtc.x) | COORDINATE_Y(state->crtc.y); + writel(val, ctx->addr + DECON_VIDOSDxA(win)); - val = COORDINATE_X(state->crtc.x + state->crtc.w - 1) | - COORDINATE_Y(state->crtc.y + state->crtc.h - 1); - writel(val, ctx->addr + DECON_VIDOSDxB(win)); + val = COORDINATE_X(state->crtc.x + state->crtc.w - 1) | + COORDINATE_Y(state->crtc.y + state->crtc.h - 1); + writel(val, ctx->addr + DECON_VIDOSDxB(win)); + } val = VIDOSD_Wx_ALPHA_R_F(0x0) | VIDOSD_Wx_ALPHA_G_F(0x0) | VIDOSD_Wx_ALPHA_B_F(0x0); @@ -370,8 +391,6 @@ static void decon_swreset(struct decon_context *ctx) udelay(10); } - WARN(tries == 0, "failed to disable DECON\n"); - writel(VIDCON0_SWRESET, ctx->addr + DECON_VIDCON0); for (tries = 2000; tries; --tries) { if (~readl(ctx->addr + DECON_VIDCON0) & VIDCON0_SWRESET) diff --git a/include/video/exynos5433_decon.h b/include/video/exynos5433_decon.h index 0098a52..b26511a 100644 --- a/include/video/exynos5433_decon.h +++ b/include/video/exynos5433_decon.h @@ -89,6 +89,7 @@ #define VIDCON0_ENVID_F (1 << 0) /* VIDOUTCON0 */ +#define VIDOUT_INTERLACE_EN_F (1 << 28) #define VIDOUT_LCD_ON (1 << 24) #define VIDOUT_IF_F_MASK (0x3 << 20) #define VIDOUT_RGB_IF (0x0 << 20) -- 2.7.4 From mboxrd@z Thu Jan 1 00:00:00 1970 From: Andrzej Hajda Subject: [PATCH 5/7] drm/exynos/decon5433: add support for interlace modes Date: Fri, 20 Jan 2017 07:52:23 +0100 Message-ID: <1484895145-511-6-git-send-email-a.hajda@samsung.com> References: <1484895145-511-1-git-send-email-a.hajda@samsung.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: In-reply-to: <1484895145-511-1-git-send-email-a.hajda@samsung.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" To: Inki Dae , dri-devel@lists.freedesktop.org, Krzysztof Kozlowski Cc: linux-samsung-soc@vger.kernel.org, Bartlomiej Zolnierkiewicz , linux-kernel@vger.kernel.org, Kyungmin Park , Marek Szyprowski List-Id: linux-samsung-soc@vger.kernel.org U29tZSByZWdpc3RlcnMgc2hvdWxkIGJlIHByb2dyYW1tZWQgZGlmZmVyZW50bHkgaW4gaW50ZXJs YWNlIG1vZGUuCkFkZGl0aW9uYWxseSBJUCBkb2VzIG5vdCBzaWduYWwgc3RvcCBzdGF0ZSBwcm9w ZXJseSBpbiBpbnRlcmxhY2VkCm1vZGUsIHNvIHdhcm5pbmcgaGFzIGJlZW4gcmVtb3ZlZC4KClNp Z25lZC1vZmYtYnk6IEFuZHJ6ZWogSGFqZGEgPGEuaGFqZGFAc2Ftc3VuZy5jb20+Ci0tLQogZHJp dmVycy9ncHUvZHJtL2V4eW5vcy9leHlub3M1NDMzX2RybV9kZWNvbi5jIHwgNDUgKysrKysrKysr KysrKysrKysrKy0tLS0tLS0tCiBpbmNsdWRlL3ZpZGVvL2V4eW5vczU0MzNfZGVjb24uaCAgICAg ICAgICAgICAgfCAgMSArCiAyIGZpbGVzIGNoYW5nZWQsIDMzIGluc2VydGlvbnMoKyksIDEzIGRl bGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9leHlub3MvZXh5bm9zNTQz M19kcm1fZGVjb24uYyBiL2RyaXZlcnMvZ3B1L2RybS9leHlub3MvZXh5bm9zNTQzM19kcm1fZGVj b24uYwppbmRleCAwNDJkNmVmLi40NjQzNGJhOSAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJt L2V4eW5vcy9leHlub3M1NDMzX2RybV9kZWNvbi5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9leHlu b3MvZXh5bm9zNTQzM19kcm1fZGVjb24uYwpAQCAtMTQ2LDYgKzE0Niw3IEBAIHN0YXRpYyB2b2lk IGRlY29uX2NvbW1pdChzdHJ1Y3QgZXh5bm9zX2RybV9jcnRjICpjcnRjKQogewogCXN0cnVjdCBk ZWNvbl9jb250ZXh0ICpjdHggPSBjcnRjLT5jdHg7CiAJc3RydWN0IGRybV9kaXNwbGF5X21vZGUg Km0gPSAmY3J0Yy0+YmFzZS5tb2RlOworCWJvb2wgaW50ZXJsYWNlZCA9IGZhbHNlOwogCXUzMiB2 YWw7CiAKIAlpZiAodGVzdF9iaXQoQklUX1NVU1BFTkRFRCwgJmN0eC0+ZmxhZ3MpKQpAQCAtMTU2 LDEyICsxNTcsMTYgQEAgc3RhdGljIHZvaWQgZGVjb25fY29tbWl0KHN0cnVjdCBleHlub3NfZHJt X2NydGMgKmNydGMpCiAJCW0tPmNydGNfaHN5bmNfZW5kID0gbS0+Y3J0Y19odG90YWwgLSA5MjsK IAkJbS0+Y3J0Y192c3luY19zdGFydCA9IG0tPmNydGNfdmRpc3BsYXkgKyAxOwogCQltLT5jcnRj X3ZzeW5jX2VuZCA9IG0tPmNydGNfdnN5bmNfc3RhcnQgKyAxOworCQlpZiAobS0+ZmxhZ3MgJiBE Uk1fTU9ERV9GTEFHX0lOVEVSTEFDRSkKKwkJCWludGVybGFjZWQgPSB0cnVlOwogCX0KIAogCWRl Y29uX3NldHVwX3RyaWdnZXIoY3R4KTsKIAogCS8qIGxjZCBvbiBhbmQgdXNlIGNvbW1hbmQgaWYg Ki8KIAl2YWwgPSBWSURPVVRfTENEX09OOworCWlmIChpbnRlcmxhY2VkKQorCQl2YWwgfD0gVklE T1VUX0lOVEVSTEFDRV9FTl9GOwogCWlmIChjdHgtPm91dF90eXBlICYgSUZUWVBFX0k4MCkgewog CQl2YWwgfD0gVklET1VUX0NPTU1BTkRfSUY7CiAJfSBlbHNlIHsKQEAgLTE3MCwxNSArMTc1LDIx IEBAIHN0YXRpYyB2b2lkIGRlY29uX2NvbW1pdChzdHJ1Y3QgZXh5bm9zX2RybV9jcnRjICpjcnRj KQogCiAJd3JpdGVsKHZhbCwgY3R4LT5hZGRyICsgREVDT05fVklET1VUQ09OMCk7CiAKLQl2YWwg PSBWSURUQ09OMl9MSU5FVkFMKG0tPnZkaXNwbGF5IC0gMSkgfAotCQlWSURUQ09OMl9IT1pWQUwo bS0+aGRpc3BsYXkgLSAxKTsKKwlpZiAoaW50ZXJsYWNlZCkKKwkJdmFsID0gVklEVENPTjJfTElO RVZBTChtLT52ZGlzcGxheSAvIDIgLSAxKSB8CisJCQlWSURUQ09OMl9IT1pWQUwobS0+aGRpc3Bs YXkgLSAxKTsKKwllbHNlCisJCXZhbCA9IFZJRFRDT04yX0xJTkVWQUwobS0+dmRpc3BsYXkgLSAx KSB8CisJCQlWSURUQ09OMl9IT1pWQUwobS0+aGRpc3BsYXkgLSAxKTsKIAl3cml0ZWwodmFsLCBj dHgtPmFkZHIgKyBERUNPTl9WSURUQ09OMik7CiAKIAlpZiAoIShjdHgtPm91dF90eXBlICYgSUZU WVBFX0k4MCkpIHsKLQkJdmFsID0gVklEVENPTjAwX1ZCUERfRigKLQkJCQltLT5jcnRjX3Z0b3Rh bCAtIG0tPmNydGNfdnN5bmNfZW5kIC0gMSkgfAotCQkJVklEVENPTjAwX1ZGUERfRigKLQkJCQlt LT5jcnRjX3ZzeW5jX3N0YXJ0IC0gbS0+Y3J0Y192ZGlzcGxheSAtIDEpOworCQlpbnQgdmJwID0g bS0+Y3J0Y192dG90YWwgLSBtLT5jcnRjX3ZzeW5jX2VuZDsKKwkJaW50IHZmcCA9IG0tPmNydGNf dnN5bmNfc3RhcnQgLSBtLT5jcnRjX3ZkaXNwbGF5OworCisJCWlmIChpbnRlcmxhY2VkKQorCQkJ dmJwID0gdmJwIC8gMiAtIDE7CisJCXZhbCA9IFZJRFRDT04wMF9WQlBEX0YodmJwIC0gMSkgfCBW SURUQ09OMDBfVkZQRF9GKHZmcCAtIDEpOwogCQl3cml0ZWwodmFsLCBjdHgtPmFkZHIgKyBERUNP Tl9WSURUQ09OMDApOwogCiAJCXZhbCA9IFZJRFRDT04wMV9WU1BXX0YoCkBAIC0yOTMsMTIgKzMw NCwyMiBAQCBzdGF0aWMgdm9pZCBkZWNvbl91cGRhdGVfcGxhbmUoc3RydWN0IGV4eW5vc19kcm1f Y3J0YyAqY3J0YywKIAlpZiAodGVzdF9iaXQoQklUX1NVU1BFTkRFRCwgJmN0eC0+ZmxhZ3MpKQog CQlyZXR1cm47CiAKLQl2YWwgPSBDT09SRElOQVRFX1goc3RhdGUtPmNydGMueCkgfCBDT09SRElO QVRFX1koc3RhdGUtPmNydGMueSk7Ci0Jd3JpdGVsKHZhbCwgY3R4LT5hZGRyICsgREVDT05fVklE T1NEeEEod2luKSk7CisJaWYgKGNydGMtPmJhc2UubW9kZS5mbGFncyAmIERSTV9NT0RFX0ZMQUdf SU5URVJMQUNFKSB7CisJCXZhbCA9IENPT1JESU5BVEVfWChzdGF0ZS0+Y3J0Yy54KSB8CisJCQlD T09SRElOQVRFX1koc3RhdGUtPmNydGMueSAvIDIpOworCQl3cml0ZWwodmFsLCBjdHgtPmFkZHIg KyBERUNPTl9WSURPU0R4QSh3aW4pKTsKKworCQl2YWwgPSBDT09SRElOQVRFX1goc3RhdGUtPmNy dGMueCArIHN0YXRlLT5jcnRjLncgLSAxKSB8CisJCQlDT09SRElOQVRFX1koKHN0YXRlLT5jcnRj LnkgKyBzdGF0ZS0+Y3J0Yy5oKSAvIDIgLSAxKTsKKwkJd3JpdGVsKHZhbCwgY3R4LT5hZGRyICsg REVDT05fVklET1NEeEIod2luKSk7CisJfSBlbHNlIHsKKwkJdmFsID0gQ09PUkRJTkFURV9YKHN0 YXRlLT5jcnRjLngpIHwgQ09PUkRJTkFURV9ZKHN0YXRlLT5jcnRjLnkpOworCQl3cml0ZWwodmFs LCBjdHgtPmFkZHIgKyBERUNPTl9WSURPU0R4QSh3aW4pKTsKIAotCXZhbCA9IENPT1JESU5BVEVf WChzdGF0ZS0+Y3J0Yy54ICsgc3RhdGUtPmNydGMudyAtIDEpIHwKLQkJQ09PUkRJTkFURV9ZKHN0 YXRlLT5jcnRjLnkgKyBzdGF0ZS0+Y3J0Yy5oIC0gMSk7Ci0Jd3JpdGVsKHZhbCwgY3R4LT5hZGRy ICsgREVDT05fVklET1NEeEIod2luKSk7CisJCXZhbCA9IENPT1JESU5BVEVfWChzdGF0ZS0+Y3J0 Yy54ICsgc3RhdGUtPmNydGMudyAtIDEpIHwKKwkJCQlDT09SRElOQVRFX1koc3RhdGUtPmNydGMu eSArIHN0YXRlLT5jcnRjLmggLSAxKTsKKwkJd3JpdGVsKHZhbCwgY3R4LT5hZGRyICsgREVDT05f VklET1NEeEIod2luKSk7CisJfQogCiAJdmFsID0gVklET1NEX1d4X0FMUEhBX1JfRigweDApIHwg VklET1NEX1d4X0FMUEhBX0dfRigweDApIHwKIAkJVklET1NEX1d4X0FMUEhBX0JfRigweDApOwpA QCAtMzcwLDggKzM5MSw2IEBAIHN0YXRpYyB2b2lkIGRlY29uX3N3cmVzZXQoc3RydWN0IGRlY29u X2NvbnRleHQgKmN0eCkKIAkJdWRlbGF5KDEwKTsKIAl9CiAKLQlXQVJOKHRyaWVzID09IDAsICJm YWlsZWQgdG8gZGlzYWJsZSBERUNPTlxuIik7Ci0KIAl3cml0ZWwoVklEQ09OMF9TV1JFU0VULCBj dHgtPmFkZHIgKyBERUNPTl9WSURDT04wKTsKIAlmb3IgKHRyaWVzID0gMjAwMDsgdHJpZXM7IC0t dHJpZXMpIHsKIAkJaWYgKH5yZWFkbChjdHgtPmFkZHIgKyBERUNPTl9WSURDT04wKSAmIFZJRENP TjBfU1dSRVNFVCkKZGlmZiAtLWdpdCBhL2luY2x1ZGUvdmlkZW8vZXh5bm9zNTQzM19kZWNvbi5o IGIvaW5jbHVkZS92aWRlby9leHlub3M1NDMzX2RlY29uLmgKaW5kZXggMDA5OGE1Mi4uYjI2NTEx YSAxMDA2NDQKLS0tIGEvaW5jbHVkZS92aWRlby9leHlub3M1NDMzX2RlY29uLmgKKysrIGIvaW5j bHVkZS92aWRlby9leHlub3M1NDMzX2RlY29uLmgKQEAgLTg5LDYgKzg5LDcgQEAKICNkZWZpbmUg VklEQ09OMF9FTlZJRF9GCQkJKDEgPDwgMCkKIAogLyogVklET1VUQ09OMCAqLworI2RlZmluZSBW SURPVVRfSU5URVJMQUNFX0VOX0YJCSgxIDw8IDI4KQogI2RlZmluZSBWSURPVVRfTENEX09OCQkJ KDEgPDwgMjQpCiAjZGVmaW5lIFZJRE9VVF9JRl9GX01BU0sJCSgweDMgPDwgMjApCiAjZGVmaW5l IFZJRE9VVF9SR0JfSUYJCQkoMHgwIDw8IDIwKQotLSAKMi43LjQKCl9fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCmRyaS1kZXZlbCBtYWlsaW5nIGxpc3QKZHJp LWRldmVsQGxpc3RzLmZyZWVkZXNrdG9wLm9yZwpodHRwczovL2xpc3RzLmZyZWVkZXNrdG9wLm9y Zy9tYWlsbWFuL2xpc3RpbmZvL2RyaS1kZXZlbAo=