Message ID | 20240403-msm-drm-dsc-dsi-video-upstream-v1-5-db5036443545@linaro.org (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | Add DSC support to DSI video panel | expand |
On Wed, 3 Apr 2024 at 12:11, Jun Nie <jun.nie@linaro.org> wrote: > > Add variable for slice number of a DSC compression bit stream packet. > Its value shall be specified in panel driver, or default value can be set > in display controller driver if panel driver does not set it. This is not a part of the standard. Please justify it. > > Signed-off-by: Jun Nie <jun.nie@linaro.org> > --- > include/drm/display/drm_dsc.h | 4 ++++ > 1 file changed, 4 insertions(+) > > diff --git a/include/drm/display/drm_dsc.h b/include/drm/display/drm_dsc.h > index bc90273d06a6..4fac0a2746ae 100644 > --- a/include/drm/display/drm_dsc.h > +++ b/include/drm/display/drm_dsc.h > @@ -82,6 +82,10 @@ struct drm_dsc_config { > * @bits_per_component: Bits per component to code (8/10/12) > */ > u8 bits_per_component; > + /** > + * @slice_per_pkt: slice number per DSC bit stream packet > + */ > + u8 slice_per_pkt; > /** > * @convert_rgb: > * Flag to indicate if RGB - YCoCg conversion is needed > > -- > 2.34.1 >
Dmitry Baryshkov <dmitry.baryshkov@linaro.org> 于2024年4月3日周三 17:41写道: > > On Wed, 3 Apr 2024 at 12:11, Jun Nie <jun.nie@linaro.org> wrote: > > > > Add variable for slice number of a DSC compression bit stream packet. > > Its value shall be specified in panel driver, or default value can be set > > in display controller driver if panel driver does not set it. > > This is not a part of the standard. Please justify it. Right, I read the standard but did not find any details of packet description. Looks like msm silicon support tuning of number of slice packing per downstream code. The slice_per_pkt can be set in the downstream msm device tree. And I test the values 1 and 2 on vtdr6130 panel and both work. So I guess this is related to performance or something like that. I will have more test with different panel to check the impact. drivers/gpu/drm/panel/panel-raydium-rm692e5.c also mentions to pass new value to slice_per_pkt. Hi Konrad, Do you remember why value 2 is TODO for slice_per_pkt for panel rm692e5? > > > > > Signed-off-by: Jun Nie <jun.nie@linaro.org> > > --- > > include/drm/display/drm_dsc.h | 4 ++++ > > 1 file changed, 4 insertions(+) > > > > diff --git a/include/drm/display/drm_dsc.h b/include/drm/display/drm_dsc.h > > index bc90273d06a6..4fac0a2746ae 100644 > > --- a/include/drm/display/drm_dsc.h > > +++ b/include/drm/display/drm_dsc.h > > @@ -82,6 +82,10 @@ struct drm_dsc_config { > > * @bits_per_component: Bits per component to code (8/10/12) > > */ > > u8 bits_per_component; > > + /** > > + * @slice_per_pkt: slice number per DSC bit stream packet > > + */ > > + u8 slice_per_pkt; > > /** > > * @convert_rgb: > > * Flag to indicate if RGB - YCoCg conversion is needed > > > > -- > > 2.34.1 > > > > > -- > With best wishes > Dmitry
On 2024-04-08 17:58:29, Jun Nie wrote: > Dmitry Baryshkov <dmitry.baryshkov@linaro.org> 于2024年4月3日周三 17:41写道: > > > > On Wed, 3 Apr 2024 at 12:11, Jun Nie <jun.nie@linaro.org> wrote: > > > > > > Add variable for slice number of a DSC compression bit stream packet. > > > Its value shall be specified in panel driver, or default value can be set > > > in display controller driver if panel driver does not set it. > > > > This is not a part of the standard. Please justify it. > > Right, I read the standard but did not find any details of packet description. > Looks like msm silicon support tuning of number of slice packing per downstream > code. > The slice_per_pkt can be set in the downstream msm device tree. And I test the > values 1 and 2 on vtdr6130 panel and both work. So I guess this is related to > performance or something like that. I will have more test with different panel > to check the impact. > drivers/gpu/drm/panel/panel-raydium-rm692e5.c also mentions to pass new value > to slice_per_pkt. > > Hi Konrad, > Do you remember why value 2 is TODO for slice_per_pkt for panel rm692e5? Hi Jun, I think I should indirectly answer that question, as I indirectly via "the" MDSS panel generator place that comment there based on the suggested downstream value: https://github.com/msm8916-mainline/linux-mdss-dsi-panel-driver-generator/commit/5c82e613d987d05feca423412f6de625f9c99bae#diff-dba3766d7cec900b8de500f888c64a392cd9780f9baf00aae7e3f87a7d3fefc4R458 So I don't think Konrad's answer will be any different than "that's what downstream does, and that's what the generator put there". --- I was fairly certain that it used for performance reasons, but panels were found (e.g. on the FairPhone 5) that don't seem to function without combining multiple (2) slices in one packet at all? - Marijn > > > Signed-off-by: Jun Nie <jun.nie@linaro.org> > > > --- > > > include/drm/display/drm_dsc.h | 4 ++++ > > > 1 file changed, 4 insertions(+) > > > > > > diff --git a/include/drm/display/drm_dsc.h b/include/drm/display/drm_dsc.h > > > index bc90273d06a6..4fac0a2746ae 100644 > > > --- a/include/drm/display/drm_dsc.h > > > +++ b/include/drm/display/drm_dsc.h > > > @@ -82,6 +82,10 @@ struct drm_dsc_config { > > > * @bits_per_component: Bits per component to code (8/10/12) > > > */ > > > u8 bits_per_component; > > > + /** > > > + * @slice_per_pkt: slice number per DSC bit stream packet > > > + */ > > > + u8 slice_per_pkt; > > > /** > > > * @convert_rgb: > > > * Flag to indicate if RGB - YCoCg conversion is needed > > > > > > -- > > > 2.34.1 > > > > > > > > > -- > > With best wishes > > Dmitry
diff --git a/include/drm/display/drm_dsc.h b/include/drm/display/drm_dsc.h index bc90273d06a6..4fac0a2746ae 100644 --- a/include/drm/display/drm_dsc.h +++ b/include/drm/display/drm_dsc.h @@ -82,6 +82,10 @@ struct drm_dsc_config { * @bits_per_component: Bits per component to code (8/10/12) */ u8 bits_per_component; + /** + * @slice_per_pkt: slice number per DSC bit stream packet + */ + u8 slice_per_pkt; /** * @convert_rgb: * Flag to indicate if RGB - YCoCg conversion is needed
Add variable for slice number of a DSC compression bit stream packet. Its value shall be specified in panel driver, or default value can be set in display controller driver if panel driver does not set it. Signed-off-by: Jun Nie <jun.nie@linaro.org> --- include/drm/display/drm_dsc.h | 4 ++++ 1 file changed, 4 insertions(+)