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 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 smtp.lore.kernel.org (Postfix) with ESMTPS id B9536C433F5 for ; Tue, 24 May 2022 19:01:34 +0000 (UTC) Received: from gabe.freedesktop.org (localhost [127.0.0.1]) by gabe.freedesktop.org (Postfix) with ESMTP id 2453E10E12C; Tue, 24 May 2022 19:01:34 +0000 (UTC) Received: from mail-ed1-x533.google.com (mail-ed1-x533.google.com [IPv6:2a00:1450:4864:20::533]) by gabe.freedesktop.org (Postfix) with ESMTPS id 8C95B10E12C for ; Tue, 24 May 2022 19:01:33 +0000 (UTC) Received: by mail-ed1-x533.google.com with SMTP id fd25so24260814edb.3 for ; Tue, 24 May 2022 12:01:33 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=p/LRcRqLMyeqKvQf1eqR0kvhGi6WSgrWgvB3HWqz/40=; b=bvixvnK/jmXe4FX2KH6IkCO+rTvQ6XL9e+QaLOKUvAH5zBa+Rb55pQnSQJJdbFMZ0D b3agVkbri00VAYLSh6NMoVS8VR6qW7+6/ORLbqC47T57yGA4LTQ/JzC5ViZILu4GY2m8 VMmuhZe9Rn+2LrIp3dPGye/TpDpwhDKmHm+TIhPgd7oY2ppk7296jJSmuNs9cfdwSzg1 AJFllVILBf1gApb6M4AamjsocrjHSXoApSzwd8eoicdgXhOYWz0jigDcXyTSeFaEa2in 797VPsBzH8cf52zjuWFh79RGZijrVyANrha/9GbbsOWt2FxJ/V3iFh7bHcMU8bet2ld9 4jnQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=p/LRcRqLMyeqKvQf1eqR0kvhGi6WSgrWgvB3HWqz/40=; b=lv71EbbEXhPGB29k9at6mOl0COey+qBm/Cr+Ep1DS4KlYWVUK9HMwzdReAFahP6sEE J2lsarwDRHkp2oX6hPOrKUJpOEcyPlNY/0kuts+9rAD/jHY0/RvwD46V3g1XxjDTi5ae 6NPqUUNWs+0JrBpufPIk1hI4byE0dTcKizCtq8G97vPkU3HLUkR3RMdYgwe83i6I/pra 927DMMh7dvpIb/9/hPO11PsUSvYnz5b7L4INph0zzWyknRd79Cum7N8U1ZLRUcGJ+dJo aZpVDQocRZ/xjItf7qOlEUkHBhDwIoj6Svf/AFVX/A9IZId704X2lne5qv13F1ZizuKp tYpg== X-Gm-Message-State: AOAM532gezhPnRPNejlCXREgv9e3KefeogrLKjYLpxcrEdN1Nkw0ew2p UWPJn5TsyMt0Gtzl9zF6i5w= X-Google-Smtp-Source: ABdhPJyXfVLVAhAn3Vtb2xtg0915wucMnM2SyXUZW1SXcuju6qSLOZ8ENWrXeCTRFzFNOP/hv35G8g== X-Received: by 2002:a05:6402:390b:b0:42a:acb3:bb5 with SMTP id fe11-20020a056402390b00b0042aacb30bb5mr29413164edb.236.1653418891911; Tue, 24 May 2022 12:01:31 -0700 (PDT) Received: from kista.localnet (213-161-3-76.dynamic.telemach.net. [213.161.3.76]) by smtp.gmail.com with ESMTPSA id hh15-20020a170906a94f00b006fec41b21e1sm3576351ejb.171.2022.05.24.12.01.29 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 24 May 2022 12:01:31 -0700 (PDT) From: Jernej =?utf-8?B?xaBrcmFiZWM=?= To: Icenowy Zheng , mripard@kernel.org, wens@csie.org, Genfu Pan , Samuel Holland Subject: Re: Re: [PATCH] drm/sun4i: mixer: fix scanline for V3s and D1 Date: Tue, 24 May 2022 21:01:29 +0200 Message-ID: <5568249.DvuYhMxLoT@kista> In-Reply-To: <86a208c1-9277-32de-3f8f-8976eab15524@sholland.org> References: <20220521133443.1114749-1-benlypan@gmail.com> <70b43ac2910ce9b3e3776d31eda7a791fbae5454.camel@aosc.io> <86a208c1-9277-32de-3f8f-8976eab15524@sholland.org> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="UTF-8" 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: airlied@linux.ie, linux-kernel@vger.kernel.org, dri-devel@lists.freedesktop.org, linux-sunxi@lists.linux.dev, linux-arm-kernel@lists.infradead.org Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" Dne torek, 24. maj 2022 ob 19:07:27 CEST je Samuel Holland napisal(a): > On 5/23/22 8:14 AM, Icenowy Zheng wrote: > > =E5=9C=A8 2022-05-22=E6=98=9F=E6=9C=9F=E6=97=A5=E7=9A=84 10:36 +0200=EF= =BC=8CJernej =C5=A0krabec=E5=86=99=E9=81=93=EF=BC=9A > >> Hi! > >> > >> Dne sobota, 21. maj 2022 ob 15:34:43 CEST je Genfu Pan napisal(a): > >>> Accrording the SDK from Allwinner, the scanline value of yuv and > >>> rgb for > >>> V3s are both 1024. > >> > >> s/scanline value/scanline length/ > >> > >> Which SDK? All SDKs that I have or found on internet don't mention > >> YUV nor RGB=20 > >> scanline limit. That doesn't mean there is none, I'm just unable to > >> verify=20 > >> your claim. Did you test this by yourself? Also, please make YUV > >> scanline=20 > >> change separate patch with fixes tag. > >=20 > > BTW I think chip manuals all say that the chip supports NxN resolution > > in DE2 chapter, e.g. the V3 datasheet says DE2 "Output size up to > > 1024x1024". > >=20 > > However there's no information about D1's second mixer. >=20 > My information comes from the BSP driver[0]: >=20 > static const int sun8iw20_de_scale_line_buffer[] =3D { > /* DISP0 */ > 2048, > /* DISP1 */ > 1024, > }; >=20 > It looks like the value returned from de_feat_get_scale_linebuf() may be= =20 used > for RGB as well, if scaling is enabled. This appears to be the "format = =3D=3D 3" > case in de_rtmx_get_coarse_fac[1]. On the other hand, the code for V3 has > specific code for the RGB limit[2]. >=20 > Is there some test I can do on D1 to see what the right value for RGB is? I use modetest for such tests. It's part of libdrm. In general, you want to= =20 make plane wider than scanline and then scale it down. Obviously you want t= o=20 test this once with RGB and once with YUV format. This is all done with=20 "modetest -P". Best regards, Jernej >=20 > Regards, > Samuel >=20 > [0]: > https://github.com/Tina-Linux/tina-d1x-linux-5.4/blob/master/drivers/vide= o/ fbdev/sunxi/disp2/disp/de/lowlevel_v2x/de_feat.c#L182 > [1]: > https://github.com/Tina-Linux/tina-d1x-linux-5.4/blob/master/drivers/vide= o/ fbdev/sunxi/disp2/disp/de/lowlevel_v2x/de_rtmx.c#L1588 > [2]: > https://github.com/Tina-Linux/tina-d1x-linux-5.4/blob/master/drivers/vide= o/ fbdev/sunxi/disp2/disp/de/lowlevel_sun8iw8/de_rtmx.c#L1211 >=20 > >>> The is also the same for mixer 1 of D1. Currently the > >>> scanline value of rgb is hardcoded to 2048 for all SOCs. > >>> > >>> Change the scanline_yuv property of V3s to 1024. > Add the > >>> scanline_rgb > >>> property to the mixer config and replace the hardcoded value with > >>> it before > >>> scaling. > >> > >> I guess RGB scanline patch would also need fixes tag, since it fixes > >> existing=20 > >> bug. > >> > >>> > >>> Signed-off-by: Genfu Pan > >>> --- > >>> drivers/gpu/drm/sun4i/sun8i_mixer.c | 13 ++++++++++++- > >>> drivers/gpu/drm/sun4i/sun8i_mixer.h | 1 + > >>> drivers/gpu/drm/sun4i/sun8i_vi_layer.c | 3 +-- > >>> 3 files changed, 14 insertions(+), 3 deletions(-) > >>> > >>> diff --git a/drivers/gpu/drm/sun4i/sun8i_mixer.c > >>> b/drivers/gpu/drm/sun4i/sun8i_mixer.c index 875a1156c..e64e08207 > >>> 100644 > >>> --- a/drivers/gpu/drm/sun4i/sun8i_mixer.c > >>> +++ b/drivers/gpu/drm/sun4i/sun8i_mixer.c > >>> @@ -567,6 +567,7 @@ static const struct sun8i_mixer_cfg > >>> sun8i_a83t_mixer0_cfg =3D { .ccsc =3D CCSC_MIXER0_LAYOUT, > >>> .scaler_mask =3D 0xf, > >>> .scanline_yuv =3D 2048, > >>> + .scanline_rgb =3D 2048, > >>> .ui_num =3D 3, > >>> .vi_num =3D 1, > >>> }; > >>> @@ -575,6 +576,7 @@ static const struct sun8i_mixer_cfg > >>> sun8i_a83t_mixer1_cfg =3D { .ccsc =3D CCSC_MIXER1_LAYOUT, > >>> .scaler_mask =3D 0x3, > >>> .scanline_yuv =3D 2048, > >>> + .scanline_rgb =3D 2048, > >>> .ui_num =3D 1, > >>> .vi_num =3D 1, > >>> }; > >>> @@ -584,6 +586,7 @@ static const struct sun8i_mixer_cfg > >>> sun8i_h3_mixer0_cfg > >>> =3D { .mod_rate =3D 432000000, > >>> .scaler_mask =3D 0xf, > >>> .scanline_yuv =3D 2048, > >>> + .scanline_rgb =3D 2048, > >>> .ui_num =3D 3, > >>> .vi_num =3D 1, > >>> }; > >>> @@ -593,6 +596,7 @@ static const struct sun8i_mixer_cfg > >>> sun8i_r40_mixer0_cfg > >>> =3D { .mod_rate =3D 297000000, > >>> .scaler_mask =3D 0xf, > >>> .scanline_yuv =3D 2048, > >>> + .scanline_rgb =3D 2048, > >>> .ui_num =3D 3, > >>> .vi_num =3D 1, > >>> }; > >>> @@ -602,6 +606,7 @@ static const struct sun8i_mixer_cfg > >>> sun8i_r40_mixer1_cfg > >>> =3D { .mod_rate =3D 297000000, > >>> .scaler_mask =3D 0x3, > >>> .scanline_yuv =3D 2048, > >>> + .scanline_rgb =3D 2048, > >>> .ui_num =3D 1, > >>> .vi_num =3D 1, > >>> }; > >>> @@ -610,7 +615,8 @@ static const struct sun8i_mixer_cfg > >>> sun8i_v3s_mixer_cfg > >>> =3D { .vi_num =3D 2, > >>> .ui_num =3D 1, > >>> .scaler_mask =3D 0x3, > >>> - .scanline_yuv =3D 2048, > >>> + .scanline_yuv =3D 1024, > >>> + .scanline_rgb =3D 1024, > >>> .ccsc =3D CCSC_MIXER0_LAYOUT, > >>> .mod_rate =3D 150000000, > >>> }; > >>> @@ -620,6 +626,7 @@ static const struct sun8i_mixer_cfg > >>> sun20i_d1_mixer0_cfg > >>> =3D { .mod_rate =3D 297000000, > >>> .scaler_mask =3D 0x3, > >>> .scanline_yuv =3D 2048, > >>> + .scanline_rgb =3D 2048, > >>> .ui_num =3D 1, > >>> .vi_num =3D 1, > >>> }; > >>> @@ -629,6 +636,7 @@ static const struct sun8i_mixer_cfg > >>> sun20i_d1_mixer1_cfg > >>> =3D { .mod_rate =3D 297000000, > >>> .scaler_mask =3D 0x1, > >>> .scanline_yuv =3D 1024, > >>> + .scanline_rgb =3D 1024, > >>> .ui_num =3D 0, > >>> .vi_num =3D 1, > >>> }; > >>> @@ -638,6 +646,7 @@ static const struct sun8i_mixer_cfg > >>> sun50i_a64_mixer0_cfg =3D { .mod_rate =3D 297000000, > >>> .scaler_mask =3D 0xf, > >>> .scanline_yuv =3D 4096, > >>> + .scanline_rgb =3D 2048, > >>> .ui_num =3D 3, > >>> .vi_num =3D 1, > >>> }; > >>> @@ -647,6 +656,7 @@ static const struct sun8i_mixer_cfg > >>> sun50i_a64_mixer1_cfg =3D { .mod_rate =3D 297000000, > >>> .scaler_mask =3D 0x3, > >>> .scanline_yuv =3D 2048, > >>> + .scanline_rgb =3D 2048, > >>> .ui_num =3D 1, > >>> .vi_num =3D 1, > >>> }; > >>> @@ -657,6 +667,7 @@ static const struct sun8i_mixer_cfg > >>> sun50i_h6_mixer0_cfg > >>> =3D { .mod_rate =3D 600000000, > >>> .scaler_mask =3D 0xf, > >>> .scanline_yuv =3D 4096, > >>> + .scanline_rgb =3D 2048, > >>> .ui_num =3D 3, > >>> .vi_num =3D 1, > >>> }; > >>> diff --git a/drivers/gpu/drm/sun4i/sun8i_mixer.h > >>> b/drivers/gpu/drm/sun4i/sun8i_mixer.h index 85c94884f..c01b3e9d6 > >>> 100644 > >>> --- a/drivers/gpu/drm/sun4i/sun8i_mixer.h > >>> +++ b/drivers/gpu/drm/sun4i/sun8i_mixer.h > >>> @@ -172,6 +172,7 @@ struct sun8i_mixer_cfg { > >>> unsigned long mod_rate; > >>> unsigned int is_de3 : 1; > >>> unsigned int scanline_yuv; > >>> + unsigned int scanline_rgb; > >> > >> This quirk needs to be documented above in the comment. > >> > >> Best regards, > >> Jernej > >> > >>> }; > >>> > >>> struct sun8i_mixer { > >>> diff --git a/drivers/gpu/drm/sun4i/sun8i_vi_layer.c > >>> b/drivers/gpu/drm/sun4i/sun8i_vi_layer.c index f7d0b082d..30e6bde92 > >>> 100644 > >>> --- a/drivers/gpu/drm/sun4i/sun8i_vi_layer.c > >>> +++ b/drivers/gpu/drm/sun4i/sun8i_vi_layer.c > >>> @@ -188,8 +188,7 @@ static int sun8i_vi_layer_update_coord(struct > >>> sun8i_mixer *mixer, int channel, src_h =3D vn; > >>> } > >>> > >>> - /* it seems that every RGB scaler has buffer for > >>> 2048=20 > >> pixels */ > >>> - scanline =3D subsampled ? mixer->cfg->scanline_yuv := =20 > >> 2048; > >>> + scanline =3D subsampled ? mixer->cfg->scanline_yuv : > >>> mixer->cfg->scanline_rgb; > >>> > >>> if (src_w > scanline) { > >>> DRM_DEBUG_DRIVER("Using horizontal coarse=20 > >> scaling\n"); > >> > >> > >> > >> > >> > >=20 > >=20 >=20 >=20 From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mail-ed1-f49.google.com (mail-ed1-f49.google.com [209.85.208.49]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id D36A27C for ; Tue, 24 May 2022 19:01:33 +0000 (UTC) Received: by mail-ed1-f49.google.com with SMTP id n23so24335458edy.0 for ; Tue, 24 May 2022 12:01:33 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=p/LRcRqLMyeqKvQf1eqR0kvhGi6WSgrWgvB3HWqz/40=; b=bvixvnK/jmXe4FX2KH6IkCO+rTvQ6XL9e+QaLOKUvAH5zBa+Rb55pQnSQJJdbFMZ0D b3agVkbri00VAYLSh6NMoVS8VR6qW7+6/ORLbqC47T57yGA4LTQ/JzC5ViZILu4GY2m8 VMmuhZe9Rn+2LrIp3dPGye/TpDpwhDKmHm+TIhPgd7oY2ppk7296jJSmuNs9cfdwSzg1 AJFllVILBf1gApb6M4AamjsocrjHSXoApSzwd8eoicdgXhOYWz0jigDcXyTSeFaEa2in 797VPsBzH8cf52zjuWFh79RGZijrVyANrha/9GbbsOWt2FxJ/V3iFh7bHcMU8bet2ld9 4jnQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=p/LRcRqLMyeqKvQf1eqR0kvhGi6WSgrWgvB3HWqz/40=; b=TnuAVimqmuleaD46zChDeyBkVQNGh+hy1suAN7sCci0LzngAlI0d90dX6NheVHe8df kxdGWGuTB4rC9GFt4xsJVD6Z4V6Qo0SjdFOa4zmHw7yS8iJVarLaFyK3vk94lhbxzeWh 6dBteIlk7Inc3q0riYJluLlJtqlQGXU2MpglDGb3XymOUZXmZUONd910E3vGBE1wzcHM q3LHyfuvigBaVhoTTZSb7jTRiFDrtbhQRaNZgm3GRFOeFVvvY13qV90FbivaYwQ8Oh9o oVPD9jUIP3/hMsFLA0W7r6qlVozFUMmpWzM0K3uQtA2Vnbs3DR+Y6HroFe4pIW+UYkr5 T6cQ== X-Gm-Message-State: AOAM533tBAz9uiKda0h2PIWvg3ncHvzfQVBwckylOcZa8PBqXLqqx8Zo vb9SoNmWVbdlM7KeQGd7A0g= X-Google-Smtp-Source: ABdhPJyXfVLVAhAn3Vtb2xtg0915wucMnM2SyXUZW1SXcuju6qSLOZ8ENWrXeCTRFzFNOP/hv35G8g== X-Received: by 2002:a05:6402:390b:b0:42a:acb3:bb5 with SMTP id fe11-20020a056402390b00b0042aacb30bb5mr29413164edb.236.1653418891911; Tue, 24 May 2022 12:01:31 -0700 (PDT) Received: from kista.localnet (213-161-3-76.dynamic.telemach.net. [213.161.3.76]) by smtp.gmail.com with ESMTPSA id hh15-20020a170906a94f00b006fec41b21e1sm3576351ejb.171.2022.05.24.12.01.29 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 24 May 2022 12:01:31 -0700 (PDT) From: Jernej =?utf-8?B?xaBrcmFiZWM=?= To: Icenowy Zheng , mripard@kernel.org, wens@csie.org, Genfu Pan , Samuel Holland Cc: airlied@linux.ie, daniel@ffwll.ch, dri-devel@lists.freedesktop.org, linux-arm-kernel@lists.infradead.org, linux-sunxi@lists.linux.dev, linux-kernel@vger.kernel.org Subject: Re: Re: [PATCH] drm/sun4i: mixer: fix scanline for V3s and D1 Date: Tue, 24 May 2022 21:01:29 +0200 Message-ID: <5568249.DvuYhMxLoT@kista> In-Reply-To: <86a208c1-9277-32de-3f8f-8976eab15524@sholland.org> References: <20220521133443.1114749-1-benlypan@gmail.com> <70b43ac2910ce9b3e3776d31eda7a791fbae5454.camel@aosc.io> <86a208c1-9277-32de-3f8f-8976eab15524@sholland.org> Precedence: bulk X-Mailing-List: linux-sunxi@lists.linux.dev List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="UTF-8" Dne torek, 24. maj 2022 ob 19:07:27 CEST je Samuel Holland napisal(a): > On 5/23/22 8:14 AM, Icenowy Zheng wrote: > > =E5=9C=A8 2022-05-22=E6=98=9F=E6=9C=9F=E6=97=A5=E7=9A=84 10:36 +0200=EF= =BC=8CJernej =C5=A0krabec=E5=86=99=E9=81=93=EF=BC=9A > >> Hi! > >> > >> Dne sobota, 21. maj 2022 ob 15:34:43 CEST je Genfu Pan napisal(a): > >>> Accrording the SDK from Allwinner, the scanline value of yuv and > >>> rgb for > >>> V3s are both 1024. > >> > >> s/scanline value/scanline length/ > >> > >> Which SDK? All SDKs that I have or found on internet don't mention > >> YUV nor RGB=20 > >> scanline limit. That doesn't mean there is none, I'm just unable to > >> verify=20 > >> your claim. Did you test this by yourself? Also, please make YUV > >> scanline=20 > >> change separate patch with fixes tag. > >=20 > > BTW I think chip manuals all say that the chip supports NxN resolution > > in DE2 chapter, e.g. the V3 datasheet says DE2 "Output size up to > > 1024x1024". > >=20 > > However there's no information about D1's second mixer. >=20 > My information comes from the BSP driver[0]: >=20 > static const int sun8iw20_de_scale_line_buffer[] =3D { > /* DISP0 */ > 2048, > /* DISP1 */ > 1024, > }; >=20 > It looks like the value returned from de_feat_get_scale_linebuf() may be= =20 used > for RGB as well, if scaling is enabled. This appears to be the "format = =3D=3D 3" > case in de_rtmx_get_coarse_fac[1]. On the other hand, the code for V3 has > specific code for the RGB limit[2]. >=20 > Is there some test I can do on D1 to see what the right value for RGB is? I use modetest for such tests. It's part of libdrm. In general, you want to= =20 make plane wider than scanline and then scale it down. Obviously you want t= o=20 test this once with RGB and once with YUV format. This is all done with=20 "modetest -P". Best regards, Jernej >=20 > Regards, > Samuel >=20 > [0]: > https://github.com/Tina-Linux/tina-d1x-linux-5.4/blob/master/drivers/vide= o/ fbdev/sunxi/disp2/disp/de/lowlevel_v2x/de_feat.c#L182 > [1]: > https://github.com/Tina-Linux/tina-d1x-linux-5.4/blob/master/drivers/vide= o/ fbdev/sunxi/disp2/disp/de/lowlevel_v2x/de_rtmx.c#L1588 > [2]: > https://github.com/Tina-Linux/tina-d1x-linux-5.4/blob/master/drivers/vide= o/ fbdev/sunxi/disp2/disp/de/lowlevel_sun8iw8/de_rtmx.c#L1211 >=20 > >>> The is also the same for mixer 1 of D1. Currently the > >>> scanline value of rgb is hardcoded to 2048 for all SOCs. > >>> > >>> Change the scanline_yuv property of V3s to 1024. > Add the > >>> scanline_rgb > >>> property to the mixer config and replace the hardcoded value with > >>> it before > >>> scaling. > >> > >> I guess RGB scanline patch would also need fixes tag, since it fixes > >> existing=20 > >> bug. > >> > >>> > >>> Signed-off-by: Genfu Pan > >>> --- > >>> drivers/gpu/drm/sun4i/sun8i_mixer.c | 13 ++++++++++++- > >>> drivers/gpu/drm/sun4i/sun8i_mixer.h | 1 + > >>> drivers/gpu/drm/sun4i/sun8i_vi_layer.c | 3 +-- > >>> 3 files changed, 14 insertions(+), 3 deletions(-) > >>> > >>> diff --git a/drivers/gpu/drm/sun4i/sun8i_mixer.c > >>> b/drivers/gpu/drm/sun4i/sun8i_mixer.c index 875a1156c..e64e08207 > >>> 100644 > >>> --- a/drivers/gpu/drm/sun4i/sun8i_mixer.c > >>> +++ b/drivers/gpu/drm/sun4i/sun8i_mixer.c > >>> @@ -567,6 +567,7 @@ static const struct sun8i_mixer_cfg > >>> sun8i_a83t_mixer0_cfg =3D { .ccsc =3D CCSC_MIXER0_LAYOUT, > >>> .scaler_mask =3D 0xf, > >>> .scanline_yuv =3D 2048, > >>> + .scanline_rgb =3D 2048, > >>> .ui_num =3D 3, > >>> .vi_num =3D 1, > >>> }; > >>> @@ -575,6 +576,7 @@ static const struct sun8i_mixer_cfg > >>> sun8i_a83t_mixer1_cfg =3D { .ccsc =3D CCSC_MIXER1_LAYOUT, > >>> .scaler_mask =3D 0x3, > >>> .scanline_yuv =3D 2048, > >>> + .scanline_rgb =3D 2048, > >>> .ui_num =3D 1, > >>> .vi_num =3D 1, > >>> }; > >>> @@ -584,6 +586,7 @@ static const struct sun8i_mixer_cfg > >>> sun8i_h3_mixer0_cfg > >>> =3D { .mod_rate =3D 432000000, > >>> .scaler_mask =3D 0xf, > >>> .scanline_yuv =3D 2048, > >>> + .scanline_rgb =3D 2048, > >>> .ui_num =3D 3, > >>> .vi_num =3D 1, > >>> }; > >>> @@ -593,6 +596,7 @@ static const struct sun8i_mixer_cfg > >>> sun8i_r40_mixer0_cfg > >>> =3D { .mod_rate =3D 297000000, > >>> .scaler_mask =3D 0xf, > >>> .scanline_yuv =3D 2048, > >>> + .scanline_rgb =3D 2048, > >>> .ui_num =3D 3, > >>> .vi_num =3D 1, > >>> }; > >>> @@ -602,6 +606,7 @@ static const struct sun8i_mixer_cfg > >>> sun8i_r40_mixer1_cfg > >>> =3D { .mod_rate =3D 297000000, > >>> .scaler_mask =3D 0x3, > >>> .scanline_yuv =3D 2048, > >>> + .scanline_rgb =3D 2048, > >>> .ui_num =3D 1, > >>> .vi_num =3D 1, > >>> }; > >>> @@ -610,7 +615,8 @@ static const struct sun8i_mixer_cfg > >>> sun8i_v3s_mixer_cfg > >>> =3D { .vi_num =3D 2, > >>> .ui_num =3D 1, > >>> .scaler_mask =3D 0x3, > >>> - .scanline_yuv =3D 2048, > >>> + .scanline_yuv =3D 1024, > >>> + .scanline_rgb =3D 1024, > >>> .ccsc =3D CCSC_MIXER0_LAYOUT, > >>> .mod_rate =3D 150000000, > >>> }; > >>> @@ -620,6 +626,7 @@ static const struct sun8i_mixer_cfg > >>> sun20i_d1_mixer0_cfg > >>> =3D { .mod_rate =3D 297000000, > >>> .scaler_mask =3D 0x3, > >>> .scanline_yuv =3D 2048, > >>> + .scanline_rgb =3D 2048, > >>> .ui_num =3D 1, > >>> .vi_num =3D 1, > >>> }; > >>> @@ -629,6 +636,7 @@ static const struct sun8i_mixer_cfg > >>> sun20i_d1_mixer1_cfg > >>> =3D { .mod_rate =3D 297000000, > >>> .scaler_mask =3D 0x1, > >>> .scanline_yuv =3D 1024, > >>> + .scanline_rgb =3D 1024, > >>> .ui_num =3D 0, > >>> .vi_num =3D 1, > >>> }; > >>> @@ -638,6 +646,7 @@ static const struct sun8i_mixer_cfg > >>> sun50i_a64_mixer0_cfg =3D { .mod_rate =3D 297000000, > >>> .scaler_mask =3D 0xf, > >>> .scanline_yuv =3D 4096, > >>> + .scanline_rgb =3D 2048, > >>> .ui_num =3D 3, > >>> .vi_num =3D 1, > >>> }; > >>> @@ -647,6 +656,7 @@ static const struct sun8i_mixer_cfg > >>> sun50i_a64_mixer1_cfg =3D { .mod_rate =3D 297000000, > >>> .scaler_mask =3D 0x3, > >>> .scanline_yuv =3D 2048, > >>> + .scanline_rgb =3D 2048, > >>> .ui_num =3D 1, > >>> .vi_num =3D 1, > >>> }; > >>> @@ -657,6 +667,7 @@ static const struct sun8i_mixer_cfg > >>> sun50i_h6_mixer0_cfg > >>> =3D { .mod_rate =3D 600000000, > >>> .scaler_mask =3D 0xf, > >>> .scanline_yuv =3D 4096, > >>> + .scanline_rgb =3D 2048, > >>> .ui_num =3D 3, > >>> .vi_num =3D 1, > >>> }; > >>> diff --git a/drivers/gpu/drm/sun4i/sun8i_mixer.h > >>> b/drivers/gpu/drm/sun4i/sun8i_mixer.h index 85c94884f..c01b3e9d6 > >>> 100644 > >>> --- a/drivers/gpu/drm/sun4i/sun8i_mixer.h > >>> +++ b/drivers/gpu/drm/sun4i/sun8i_mixer.h > >>> @@ -172,6 +172,7 @@ struct sun8i_mixer_cfg { > >>> unsigned long mod_rate; > >>> unsigned int is_de3 : 1; > >>> unsigned int scanline_yuv; > >>> + unsigned int scanline_rgb; > >> > >> This quirk needs to be documented above in the comment. > >> > >> Best regards, > >> Jernej > >> > >>> }; > >>> > >>> struct sun8i_mixer { > >>> diff --git a/drivers/gpu/drm/sun4i/sun8i_vi_layer.c > >>> b/drivers/gpu/drm/sun4i/sun8i_vi_layer.c index f7d0b082d..30e6bde92 > >>> 100644 > >>> --- a/drivers/gpu/drm/sun4i/sun8i_vi_layer.c > >>> +++ b/drivers/gpu/drm/sun4i/sun8i_vi_layer.c > >>> @@ -188,8 +188,7 @@ static int sun8i_vi_layer_update_coord(struct > >>> sun8i_mixer *mixer, int channel, src_h =3D vn; > >>> } > >>> > >>> - /* it seems that every RGB scaler has buffer for > >>> 2048=20 > >> pixels */ > >>> - scanline =3D subsampled ? mixer->cfg->scanline_yuv := =20 > >> 2048; > >>> + scanline =3D subsampled ? mixer->cfg->scanline_yuv : > >>> mixer->cfg->scanline_rgb; > >>> > >>> if (src_w > scanline) { > >>> DRM_DEBUG_DRIVER("Using horizontal coarse=20 > >> scaling\n"); > >> > >> > >> > >> > >> > >=20 > >=20 >=20 >=20 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 Received: from bombadil.infradead.org (bombadil.infradead.org [198.137.202.133]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.lore.kernel.org (Postfix) with ESMTPS id D9968C433EF for ; Tue, 24 May 2022 19:03:02 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lists.infradead.org; s=bombadil.20210309; h=Sender: Content-Transfer-Encoding:Content-Type:List-Subscribe:List-Help:List-Post: List-Archive:List-Unsubscribe:List-Id:MIME-Version:References:In-Reply-To: Message-ID:Date:Subject:Cc:To:From:Reply-To:Content-ID:Content-Description: Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID: List-Owner; bh=2jYVa0vFeYCBln8y7Z25e52t2K54414P+3UOiN0/pCU=; b=lSjFD01UwEwB1w TxtBwqMUIB6FSo8y6xcpTf9GVd/AUBQ+g8n7gJw9TtpD3AN/1XB8HsS2/ltAPZr9d7MA5uh5zerUU CySn+MqWD/MeS2wXO03P3zZrP39M3k+bJBFLJhXqwCbW4vc0PNO3B83UYhyGIDjM8a8W+CbHi/3k5 FvG8bhkPAejM4oHSWVOF7AqSmFgbhcbJn1o+x4VvyzaubGQ/s8Mwr6vkLj4wTlo3XdK1og/wppAvW w0UPw2O/9Mb0V0mnE4m3KbveK8e3YH/7JgdOfcl2MOUpTe9NbozgtbpX/z2JjGyVNhDiOFYpiPsmU zGr2hxP1bF9yxjDmgqJQ==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.94.2 #2 (Red Hat Linux)) id 1ntZml-008xrp-VE; Tue, 24 May 2022 19:01:40 +0000 Received: from mail-ed1-x52d.google.com ([2a00:1450:4864:20::52d]) by bombadil.infradead.org with esmtps (Exim 4.94.2 #2 (Red Hat Linux)) id 1ntZmh-008xq7-MK for linux-arm-kernel@lists.infradead.org; Tue, 24 May 2022 19:01:37 +0000 Received: by mail-ed1-x52d.google.com with SMTP id ee42so3625020edb.1 for ; Tue, 24 May 2022 12:01:33 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=p/LRcRqLMyeqKvQf1eqR0kvhGi6WSgrWgvB3HWqz/40=; b=bvixvnK/jmXe4FX2KH6IkCO+rTvQ6XL9e+QaLOKUvAH5zBa+Rb55pQnSQJJdbFMZ0D b3agVkbri00VAYLSh6NMoVS8VR6qW7+6/ORLbqC47T57yGA4LTQ/JzC5ViZILu4GY2m8 VMmuhZe9Rn+2LrIp3dPGye/TpDpwhDKmHm+TIhPgd7oY2ppk7296jJSmuNs9cfdwSzg1 AJFllVILBf1gApb6M4AamjsocrjHSXoApSzwd8eoicdgXhOYWz0jigDcXyTSeFaEa2in 797VPsBzH8cf52zjuWFh79RGZijrVyANrha/9GbbsOWt2FxJ/V3iFh7bHcMU8bet2ld9 4jnQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=p/LRcRqLMyeqKvQf1eqR0kvhGi6WSgrWgvB3HWqz/40=; b=tHd7/GXcjJ30o3jFSfJ5WdSa7Li6OJnNncGFez8zoOfDc/K3OXwPyGqw3f2p7VK7D8 5yqIIfyeuAA7ztpTEOD9VUevD//zWguIOerel+gaKLqGcUCDc4YbLWHst0u4sjgxqwxw b+fbsGYK5/32mLzgz9Eof6fevI51d6NIKmUbOKGmpv9MaBNbBMGop/xdQfzYD2eckmd8 AFs91tsqJtFGoMIIaVvZGqneJkqcd2HpL5h9Qppr1kZlPTRouzO2dJp7qUTyimdtqWcp sHn9JWCjeV9tkDllw0ucfT1jf/gHYjlul3KnDGFdQyyZ2ZzsrD7zjIIEbce1reS1RTOB BwEw== X-Gm-Message-State: AOAM532sVEIbdpLQCOd3HuHzPjA3vuXO+c3o6/wgw0AFpMwEvcfImLR1 dVL7/X3zXd9nU66TpTN2doM= X-Google-Smtp-Source: ABdhPJyXfVLVAhAn3Vtb2xtg0915wucMnM2SyXUZW1SXcuju6qSLOZ8ENWrXeCTRFzFNOP/hv35G8g== X-Received: by 2002:a05:6402:390b:b0:42a:acb3:bb5 with SMTP id fe11-20020a056402390b00b0042aacb30bb5mr29413164edb.236.1653418891911; Tue, 24 May 2022 12:01:31 -0700 (PDT) Received: from kista.localnet (213-161-3-76.dynamic.telemach.net. [213.161.3.76]) by smtp.gmail.com with ESMTPSA id hh15-20020a170906a94f00b006fec41b21e1sm3576351ejb.171.2022.05.24.12.01.29 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 24 May 2022 12:01:31 -0700 (PDT) From: Jernej =?utf-8?B?xaBrcmFiZWM=?= To: Icenowy Zheng , mripard@kernel.org, wens@csie.org, Genfu Pan , Samuel Holland Cc: airlied@linux.ie, daniel@ffwll.ch, dri-devel@lists.freedesktop.org, linux-arm-kernel@lists.infradead.org, linux-sunxi@lists.linux.dev, linux-kernel@vger.kernel.org Subject: Re: Re: [PATCH] drm/sun4i: mixer: fix scanline for V3s and D1 Date: Tue, 24 May 2022 21:01:29 +0200 Message-ID: <5568249.DvuYhMxLoT@kista> In-Reply-To: <86a208c1-9277-32de-3f8f-8976eab15524@sholland.org> References: <20220521133443.1114749-1-benlypan@gmail.com> <70b43ac2910ce9b3e3776d31eda7a791fbae5454.camel@aosc.io> <86a208c1-9277-32de-3f8f-8976eab15524@sholland.org> MIME-Version: 1.0 X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20220524_120136_097066_35B5E8CA X-CRM114-Status: GOOD ( 30.69 ) X-BeenThere: linux-arm-kernel@lists.infradead.org X-Mailman-Version: 2.1.34 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Sender: "linux-arm-kernel" Errors-To: linux-arm-kernel-bounces+linux-arm-kernel=archiver.kernel.org@lists.infradead.org RG5lIHRvcmVrLCAyNC4gbWFqIDIwMjIgb2IgMTk6MDc6MjcgQ0VTVCBqZSBTYW11ZWwgSG9sbGFu ZCBuYXBpc2FsKGEpOgo+IE9uIDUvMjMvMjIgODoxNCBBTSwgSWNlbm93eSBaaGVuZyB3cm90ZToK PiA+IOWcqCAyMDIyLTA1LTIy5pif5pyf5pel55qEIDEwOjM2ICswMjAw77yMSmVybmVqIMWga3Jh YmVj5YaZ6YGT77yaCj4gPj4gSGkhCj4gPj4KPiA+PiBEbmUgc29ib3RhLCAyMS4gbWFqIDIwMjIg b2IgMTU6MzQ6NDMgQ0VTVCBqZSBHZW5mdSBQYW4gbmFwaXNhbChhKToKPiA+Pj4gQWNjcm9yZGlu ZyB0aGUgU0RLIGZyb20gQWxsd2lubmVyLCB0aGUgc2NhbmxpbmUgdmFsdWUgb2YgeXV2IGFuZAo+ ID4+PiByZ2IgZm9yCj4gPj4+IFYzcyBhcmUgYm90aCAxMDI0Lgo+ID4+Cj4gPj4gcy9zY2FubGlu ZSB2YWx1ZS9zY2FubGluZSBsZW5ndGgvCj4gPj4KPiA+PiBXaGljaCBTREs/IEFsbCBTREtzIHRo YXQgSSBoYXZlIG9yIGZvdW5kIG9uIGludGVybmV0IGRvbid0IG1lbnRpb24KPiA+PiBZVVYgbm9y IFJHQiAKPiA+PiBzY2FubGluZSBsaW1pdC4gVGhhdCBkb2Vzbid0IG1lYW4gdGhlcmUgaXMgbm9u ZSwgSSdtIGp1c3QgdW5hYmxlIHRvCj4gPj4gdmVyaWZ5IAo+ID4+IHlvdXIgY2xhaW0uIERpZCB5 b3UgdGVzdCB0aGlzIGJ5IHlvdXJzZWxmPyBBbHNvLCBwbGVhc2UgbWFrZSBZVVYKPiA+PiBzY2Fu bGluZSAKPiA+PiBjaGFuZ2Ugc2VwYXJhdGUgcGF0Y2ggd2l0aCBmaXhlcyB0YWcuCj4gPiAKPiA+ IEJUVyBJIHRoaW5rIGNoaXAgbWFudWFscyBhbGwgc2F5IHRoYXQgdGhlIGNoaXAgc3VwcG9ydHMg TnhOIHJlc29sdXRpb24KPiA+IGluIERFMiBjaGFwdGVyLCBlLmcuIHRoZSBWMyBkYXRhc2hlZXQg c2F5cyBERTIgIk91dHB1dCBzaXplIHVwIHRvCj4gPiAxMDI0eDEwMjQiLgo+ID4gCj4gPiBIb3dl dmVyIHRoZXJlJ3Mgbm8gaW5mb3JtYXRpb24gYWJvdXQgRDEncyBzZWNvbmQgbWl4ZXIuCj4gCj4g TXkgaW5mb3JtYXRpb24gY29tZXMgZnJvbSB0aGUgQlNQIGRyaXZlclswXToKPiAKPiBzdGF0aWMg Y29uc3QgaW50IHN1bjhpdzIwX2RlX3NjYWxlX2xpbmVfYnVmZmVyW10gPSB7Cj4gICAgICAgICAv KiBESVNQMCAqLwo+ICAgICAgICAgMjA0OCwKPiAgICAgICAgIC8qIERJU1AxICovCj4gICAgICAg ICAxMDI0LAo+IH07Cj4gCj4gSXQgbG9va3MgbGlrZSB0aGUgdmFsdWUgcmV0dXJuZWQgZnJvbSBk ZV9mZWF0X2dldF9zY2FsZV9saW5lYnVmKCkgbWF5IGJlIAp1c2VkCj4gZm9yIFJHQiBhcyB3ZWxs LCBpZiBzY2FsaW5nIGlzIGVuYWJsZWQuIFRoaXMgYXBwZWFycyB0byBiZSB0aGUgImZvcm1hdCA9 PSAzIgo+IGNhc2UgaW4gZGVfcnRteF9nZXRfY29hcnNlX2ZhY1sxXS4gT24gdGhlIG90aGVyIGhh bmQsIHRoZSBjb2RlIGZvciBWMyBoYXMKPiBzcGVjaWZpYyBjb2RlIGZvciB0aGUgUkdCIGxpbWl0 WzJdLgo+IAo+IElzIHRoZXJlIHNvbWUgdGVzdCBJIGNhbiBkbyBvbiBEMSB0byBzZWUgd2hhdCB0 aGUgcmlnaHQgdmFsdWUgZm9yIFJHQiBpcz8KCkkgdXNlIG1vZGV0ZXN0IGZvciBzdWNoIHRlc3Rz LiBJdCdzIHBhcnQgb2YgbGliZHJtLiBJbiBnZW5lcmFsLCB5b3Ugd2FudCB0byAKbWFrZSBwbGFu ZSB3aWRlciB0aGFuIHNjYW5saW5lIGFuZCB0aGVuIHNjYWxlIGl0IGRvd24uIE9idmlvdXNseSB5 b3Ugd2FudCB0byAKdGVzdCB0aGlzIG9uY2Ugd2l0aCBSR0IgYW5kIG9uY2Ugd2l0aCBZVVYgZm9y bWF0LiBUaGlzIGlzIGFsbCBkb25lIHdpdGggCiJtb2RldGVzdCAtUCIuCgpCZXN0IHJlZ2FyZHMs Ckplcm5lagoKPiAKPiBSZWdhcmRzLAo+IFNhbXVlbAo+IAo+IFswXToKPiBodHRwczovL2dpdGh1 Yi5jb20vVGluYS1MaW51eC90aW5hLWQxeC1saW51eC01LjQvYmxvYi9tYXN0ZXIvZHJpdmVycy92 aWRlby8KZmJkZXYvc3VueGkvZGlzcDIvZGlzcC9kZS9sb3dsZXZlbF92MngvZGVfZmVhdC5jI0wx ODIKPiBbMV06Cj4gaHR0cHM6Ly9naXRodWIuY29tL1RpbmEtTGludXgvdGluYS1kMXgtbGludXgt NS40L2Jsb2IvbWFzdGVyL2RyaXZlcnMvdmlkZW8vCmZiZGV2L3N1bnhpL2Rpc3AyL2Rpc3AvZGUv bG93bGV2ZWxfdjJ4L2RlX3J0bXguYyNMMTU4OAo+IFsyXToKPiBodHRwczovL2dpdGh1Yi5jb20v VGluYS1MaW51eC90aW5hLWQxeC1saW51eC01LjQvYmxvYi9tYXN0ZXIvZHJpdmVycy92aWRlby8K ZmJkZXYvc3VueGkvZGlzcDIvZGlzcC9kZS9sb3dsZXZlbF9zdW44aXc4L2RlX3J0bXguYyNMMTIx MQo+IAo+ID4+PiBUaGUgaXMgYWxzbyB0aGUgc2FtZSBmb3IgbWl4ZXIgMSBvZiBEMS4gQ3VycmVu dGx5IHRoZQo+ID4+PiBzY2FubGluZSB2YWx1ZSBvZiByZ2IgaXMgaGFyZGNvZGVkIHRvIDIwNDgg Zm9yIGFsbCBTT0NzLgo+ID4+Pgo+ID4+PiBDaGFuZ2UgdGhlIHNjYW5saW5lX3l1diBwcm9wZXJ0 eSBvZiBWM3MgdG8gMTAyNC4gPiBBZGQgdGhlCj4gPj4+IHNjYW5saW5lX3JnYgo+ID4+PiBwcm9w ZXJ0eSB0byB0aGUgbWl4ZXIgY29uZmlnIGFuZCByZXBsYWNlIHRoZSBoYXJkY29kZWQgdmFsdWUg d2l0aAo+ID4+PiBpdCBiZWZvcmUKPiA+Pj4gc2NhbGluZy4KPiA+Pgo+ID4+IEkgZ3Vlc3MgUkdC IHNjYW5saW5lIHBhdGNoIHdvdWxkIGFsc28gbmVlZCBmaXhlcyB0YWcsIHNpbmNlIGl0IGZpeGVz Cj4gPj4gZXhpc3RpbmcgCj4gPj4gYnVnLgo+ID4+Cj4gPj4+Cj4gPj4+IFNpZ25lZC1vZmYtYnk6 IEdlbmZ1IFBhbiA8YmVubHlwYW5AZ21haWwuY29tPgo+ID4+PiAtLS0KPiA+Pj4gIGRyaXZlcnMv Z3B1L2RybS9zdW40aS9zdW44aV9taXhlci5jICAgIHwgMTMgKysrKysrKysrKysrLQo+ID4+PiAg ZHJpdmVycy9ncHUvZHJtL3N1bjRpL3N1bjhpX21peGVyLmggICAgfCAgMSArCj4gPj4+ICBkcml2 ZXJzL2dwdS9kcm0vc3VuNGkvc3VuOGlfdmlfbGF5ZXIuYyB8ICAzICstLQo+ID4+PiAgMyBmaWxl cyBjaGFuZ2VkLCAxNCBpbnNlcnRpb25zKCspLCAzIGRlbGV0aW9ucygtKQo+ID4+Pgo+ID4+PiBk aWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL3N1bjRpL3N1bjhpX21peGVyLmMKPiA+Pj4gYi9k cml2ZXJzL2dwdS9kcm0vc3VuNGkvc3VuOGlfbWl4ZXIuYyBpbmRleCA4NzVhMTE1NmMuLmU2NGUw ODIwNwo+ID4+PiAxMDA2NDQKPiA+Pj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL3N1bjRpL3N1bjhp X21peGVyLmMKPiA+Pj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL3N1bjRpL3N1bjhpX21peGVyLmMK PiA+Pj4gQEAgLTU2Nyw2ICs1NjcsNyBAQCBzdGF0aWMgY29uc3Qgc3RydWN0IHN1bjhpX21peGVy X2NmZwo+ID4+PiBzdW44aV9hODN0X21peGVyMF9jZmcgPSB7IC5jY3NjICAgICAgICAgPSBDQ1ND X01JWEVSMF9MQVlPVVQsCj4gPj4+ICAgICAgICAgLnNjYWxlcl9tYXNrICAgID0gMHhmLAo+ID4+ PiAgICAgICAgIC5zY2FubGluZV95dXYgICA9IDIwNDgsCj4gPj4+ICsgICAgICAgLnNjYW5saW5l X3JnYiAgID0gMjA0OCwKPiA+Pj4gICAgICAgICAudWlfbnVtICAgICAgICAgPSAzLAo+ID4+PiAg ICAgICAgIC52aV9udW0gICAgICAgICA9IDEsCj4gPj4+ICB9Owo+ID4+PiBAQCAtNTc1LDYgKzU3 Niw3IEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3Qgc3VuOGlfbWl4ZXJfY2ZnCj4gPj4+IHN1bjhpX2E4 M3RfbWl4ZXIxX2NmZyA9IHsgLmNjc2MgICAgICAgICA9IENDU0NfTUlYRVIxX0xBWU9VVCwKPiA+ Pj4gICAgICAgICAuc2NhbGVyX21hc2sgICAgPSAweDMsCj4gPj4+ICAgICAgICAgLnNjYW5saW5l X3l1diAgID0gMjA0OCwKPiA+Pj4gKyAgICAgICAuc2NhbmxpbmVfcmdiICAgPSAyMDQ4LAo+ID4+ PiAgICAgICAgIC51aV9udW0gICAgICAgICA9IDEsCj4gPj4+ICAgICAgICAgLnZpX251bSAgICAg ICAgID0gMSwKPiA+Pj4gIH07Cj4gPj4+IEBAIC01ODQsNiArNTg2LDcgQEAgc3RhdGljIGNvbnN0 IHN0cnVjdCBzdW44aV9taXhlcl9jZmcKPiA+Pj4gc3VuOGlfaDNfbWl4ZXIwX2NmZwo+ID4+PiA9 IHsgLm1vZF9yYXRlICAgPSA0MzIwMDAwMDAsCj4gPj4+ICAgICAgICAgLnNjYWxlcl9tYXNrICAg ID0gMHhmLAo+ID4+PiAgICAgICAgIC5zY2FubGluZV95dXYgICA9IDIwNDgsCj4gPj4+ICsgICAg ICAgLnNjYW5saW5lX3JnYiAgID0gMjA0OCwKPiA+Pj4gICAgICAgICAudWlfbnVtICAgICAgICAg PSAzLAo+ID4+PiAgICAgICAgIC52aV9udW0gICAgICAgICA9IDEsCj4gPj4+ICB9Owo+ID4+PiBA QCAtNTkzLDYgKzU5Niw3IEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3Qgc3VuOGlfbWl4ZXJfY2ZnCj4g Pj4+IHN1bjhpX3I0MF9taXhlcjBfY2ZnCj4gPj4+ID0geyAubW9kX3JhdGUgICA9IDI5NzAwMDAw MCwKPiA+Pj4gICAgICAgICAuc2NhbGVyX21hc2sgICAgPSAweGYsCj4gPj4+ICAgICAgICAgLnNj YW5saW5lX3l1diAgID0gMjA0OCwKPiA+Pj4gKyAgICAgICAuc2NhbmxpbmVfcmdiICAgPSAyMDQ4 LAo+ID4+PiAgICAgICAgIC51aV9udW0gICAgICAgICA9IDMsCj4gPj4+ICAgICAgICAgLnZpX251 bSAgICAgICAgID0gMSwKPiA+Pj4gIH07Cj4gPj4+IEBAIC02MDIsNiArNjA2LDcgQEAgc3RhdGlj IGNvbnN0IHN0cnVjdCBzdW44aV9taXhlcl9jZmcKPiA+Pj4gc3VuOGlfcjQwX21peGVyMV9jZmcK PiA+Pj4gPSB7IC5tb2RfcmF0ZSAgID0gMjk3MDAwMDAwLAo+ID4+PiAgICAgICAgIC5zY2FsZXJf bWFzayAgICA9IDB4MywKPiA+Pj4gICAgICAgICAuc2NhbmxpbmVfeXV2ICAgPSAyMDQ4LAo+ID4+ PiArICAgICAgIC5zY2FubGluZV9yZ2IgICA9IDIwNDgsCj4gPj4+ICAgICAgICAgLnVpX251bSAg ICAgICAgID0gMSwKPiA+Pj4gICAgICAgICAudmlfbnVtICAgICAgICAgPSAxLAo+ID4+PiAgfTsK PiA+Pj4gQEAgLTYxMCw3ICs2MTUsOCBAQCBzdGF0aWMgY29uc3Qgc3RydWN0IHN1bjhpX21peGVy X2NmZwo+ID4+PiBzdW44aV92M3NfbWl4ZXJfY2ZnCj4gPj4+ID0geyAudmlfbnVtID0gMiwKPiA+ Pj4gICAgICAgICAudWlfbnVtID0gMSwKPiA+Pj4gICAgICAgICAuc2NhbGVyX21hc2sgPSAweDMs Cj4gPj4+IC0gICAgICAgLnNjYW5saW5lX3l1diA9IDIwNDgsCj4gPj4+ICsgICAgICAgLnNjYW5s aW5lX3l1diA9IDEwMjQsCj4gPj4+ICsgICAgICAgLnNjYW5saW5lX3JnYiA9IDEwMjQsCj4gPj4+ ICAgICAgICAgLmNjc2MgPSBDQ1NDX01JWEVSMF9MQVlPVVQsCj4gPj4+ICAgICAgICAgLm1vZF9y YXRlID0gMTUwMDAwMDAwLAo+ID4+PiAgfTsKPiA+Pj4gQEAgLTYyMCw2ICs2MjYsNyBAQCBzdGF0 aWMgY29uc3Qgc3RydWN0IHN1bjhpX21peGVyX2NmZwo+ID4+PiBzdW4yMGlfZDFfbWl4ZXIwX2Nm Zwo+ID4+PiA9IHsgLm1vZF9yYXRlICAgPSAyOTcwMDAwMDAsCj4gPj4+ICAgICAgICAgLnNjYWxl cl9tYXNrICAgID0gMHgzLAo+ID4+PiAgICAgICAgIC5zY2FubGluZV95dXYgICA9IDIwNDgsCj4g Pj4+ICsgICAgICAgLnNjYW5saW5lX3JnYiAgID0gMjA0OCwKPiA+Pj4gICAgICAgICAudWlfbnVt ICAgICAgICAgPSAxLAo+ID4+PiAgICAgICAgIC52aV9udW0gICAgICAgICA9IDEsCj4gPj4+ICB9 Owo+ID4+PiBAQCAtNjI5LDYgKzYzNiw3IEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3Qgc3VuOGlfbWl4 ZXJfY2ZnCj4gPj4+IHN1bjIwaV9kMV9taXhlcjFfY2ZnCj4gPj4+ID0geyAubW9kX3JhdGUgICA9 IDI5NzAwMDAwMCwKPiA+Pj4gICAgICAgICAuc2NhbGVyX21hc2sgICAgPSAweDEsCj4gPj4+ICAg ICAgICAgLnNjYW5saW5lX3l1diAgID0gMTAyNCwKPiA+Pj4gKyAgICAgICAuc2NhbmxpbmVfcmdi ICAgPSAxMDI0LAo+ID4+PiAgICAgICAgIC51aV9udW0gICAgICAgICA9IDAsCj4gPj4+ICAgICAg ICAgLnZpX251bSAgICAgICAgID0gMSwKPiA+Pj4gIH07Cj4gPj4+IEBAIC02MzgsNiArNjQ2LDcg QEAgc3RhdGljIGNvbnN0IHN0cnVjdCBzdW44aV9taXhlcl9jZmcKPiA+Pj4gc3VuNTBpX2E2NF9t aXhlcjBfY2ZnID0geyAubW9kX3JhdGUgICAgID0gMjk3MDAwMDAwLAo+ID4+PiAgICAgICAgIC5z Y2FsZXJfbWFzayAgICA9IDB4ZiwKPiA+Pj4gICAgICAgICAuc2NhbmxpbmVfeXV2ICAgPSA0MDk2 LAo+ID4+PiArICAgICAgIC5zY2FubGluZV9yZ2IgICA9IDIwNDgsCj4gPj4+ICAgICAgICAgLnVp X251bSAgICAgICAgID0gMywKPiA+Pj4gICAgICAgICAudmlfbnVtICAgICAgICAgPSAxLAo+ID4+ PiAgfTsKPiA+Pj4gQEAgLTY0Nyw2ICs2NTYsNyBAQCBzdGF0aWMgY29uc3Qgc3RydWN0IHN1bjhp X21peGVyX2NmZwo+ID4+PiBzdW41MGlfYTY0X21peGVyMV9jZmcgPSB7IC5tb2RfcmF0ZSAgICAg PSAyOTcwMDAwMDAsCj4gPj4+ICAgICAgICAgLnNjYWxlcl9tYXNrICAgID0gMHgzLAo+ID4+PiAg ICAgICAgIC5zY2FubGluZV95dXYgICA9IDIwNDgsCj4gPj4+ICsgICAgICAgLnNjYW5saW5lX3Jn YiAgID0gMjA0OCwKPiA+Pj4gICAgICAgICAudWlfbnVtICAgICAgICAgPSAxLAo+ID4+PiAgICAg ICAgIC52aV9udW0gICAgICAgICA9IDEsCj4gPj4+ICB9Owo+ID4+PiBAQCAtNjU3LDYgKzY2Nyw3 IEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3Qgc3VuOGlfbWl4ZXJfY2ZnCj4gPj4+IHN1bjUwaV9oNl9t aXhlcjBfY2ZnCj4gPj4+ID0geyAubW9kX3JhdGUgICA9IDYwMDAwMDAwMCwKPiA+Pj4gICAgICAg ICAuc2NhbGVyX21hc2sgICAgPSAweGYsCj4gPj4+ICAgICAgICAgLnNjYW5saW5lX3l1diAgID0g NDA5NiwKPiA+Pj4gKyAgICAgICAuc2NhbmxpbmVfcmdiICAgPSAyMDQ4LAo+ID4+PiAgICAgICAg IC51aV9udW0gICAgICAgICA9IDMsCj4gPj4+ICAgICAgICAgLnZpX251bSAgICAgICAgID0gMSwK PiA+Pj4gIH07Cj4gPj4+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vc3VuNGkvc3VuOGlf bWl4ZXIuaAo+ID4+PiBiL2RyaXZlcnMvZ3B1L2RybS9zdW40aS9zdW44aV9taXhlci5oIGluZGV4 IDg1Yzk0ODg0Zi4uYzAxYjNlOWQ2Cj4gPj4+IDEwMDY0NAo+ID4+PiAtLS0gYS9kcml2ZXJzL2dw dS9kcm0vc3VuNGkvc3VuOGlfbWl4ZXIuaAo+ID4+PiArKysgYi9kcml2ZXJzL2dwdS9kcm0vc3Vu NGkvc3VuOGlfbWl4ZXIuaAo+ID4+PiBAQCAtMTcyLDYgKzE3Miw3IEBAIHN0cnVjdCBzdW44aV9t aXhlcl9jZmcgewo+ID4+PiAgICAgICAgIHVuc2lnbmVkIGxvbmcgICBtb2RfcmF0ZTsKPiA+Pj4g ICAgICAgICB1bnNpZ25lZCBpbnQgICAgaXNfZGUzIDogMTsKPiA+Pj4gICAgICAgICB1bnNpZ25l ZCBpbnQgICAgc2NhbmxpbmVfeXV2Owo+ID4+PiArICAgICAgIHVuc2lnbmVkIGludCAgICBzY2Fu bGluZV9yZ2I7Cj4gPj4KPiA+PiBUaGlzIHF1aXJrIG5lZWRzIHRvIGJlIGRvY3VtZW50ZWQgYWJv dmUgaW4gdGhlIGNvbW1lbnQuCj4gPj4KPiA+PiBCZXN0IHJlZ2FyZHMsCj4gPj4gSmVybmVqCj4g Pj4KPiA+Pj4gIH07Cj4gPj4+Cj4gPj4+ICBzdHJ1Y3Qgc3VuOGlfbWl4ZXIgewo+ID4+PiBkaWZm IC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL3N1bjRpL3N1bjhpX3ZpX2xheWVyLmMKPiA+Pj4gYi9k cml2ZXJzL2dwdS9kcm0vc3VuNGkvc3VuOGlfdmlfbGF5ZXIuYyBpbmRleCBmN2QwYjA4MmQuLjMw ZTZiZGU5Mgo+ID4+PiAxMDA2NDQKPiA+Pj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL3N1bjRpL3N1 bjhpX3ZpX2xheWVyLmMKPiA+Pj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL3N1bjRpL3N1bjhpX3Zp X2xheWVyLmMKPiA+Pj4gQEAgLTE4OCw4ICsxODgsNyBAQCBzdGF0aWMgaW50IHN1bjhpX3ZpX2xh eWVyX3VwZGF0ZV9jb29yZChzdHJ1Y3QKPiA+Pj4gc3VuOGlfbWl4ZXIgKm1peGVyLCBpbnQgY2hh bm5lbCwgc3JjX2ggPSB2bjsKPiA+Pj4gICAgICAgICAgICAgICAgIH0KPiA+Pj4KPiA+Pj4gLSAg ICAgICAgICAgICAgIC8qIGl0IHNlZW1zIHRoYXQgZXZlcnkgUkdCIHNjYWxlciBoYXMgYnVmZmVy IGZvcgo+ID4+PiAyMDQ4IAo+ID4+IHBpeGVscyAqLwo+ID4+PiAtICAgICAgICAgICAgICAgc2Nh bmxpbmUgPSBzdWJzYW1wbGVkID8gbWl4ZXItPmNmZy0+c2NhbmxpbmVfeXV2IDogCj4gPj4gMjA0 ODsKPiA+Pj4gKyAgICAgICAgICAgICAgIHNjYW5saW5lID0gc3Vic2FtcGxlZCA/IG1peGVyLT5j ZmctPnNjYW5saW5lX3l1diA6Cj4gPj4+IG1peGVyLT5jZmctPnNjYW5saW5lX3JnYjsKPiA+Pj4K PiA+Pj4gICAgICAgICAgICAgICAgIGlmIChzcmNfdyA+IHNjYW5saW5lKSB7Cj4gPj4+ICAgICAg ICAgICAgICAgICAgICAgICAgIERSTV9ERUJVR19EUklWRVIoIlVzaW5nIGhvcml6b250YWwgY29h cnNlIAo+ID4+IHNjYWxpbmdcbiIpOwo+ID4+Cj4gPj4KPiA+Pgo+ID4+Cj4gPj4KPiA+IAo+ID4g Cj4gCj4gCgoKCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f CmxpbnV4LWFybS1rZXJuZWwgbWFpbGluZyBsaXN0CmxpbnV4LWFybS1rZXJuZWxAbGlzdHMuaW5m cmFkZWFkLm9yZwpodHRwOi8vbGlzdHMuaW5mcmFkZWFkLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2xp bnV4LWFybS1rZXJuZWwK