Message ID | 20221009185150.461323-1-marijn.suijten@somainline.org (mailing list archive) |
---|---|
State | Superseded |
Headers | show |
Series | drm/msm: Fix math issues in MSM DSC implementation | expand |
On 09/10/2022 21:51, Marijn Suijten wrote: > According to the `/* bpc 8 */` comment below only values for a > bits_per_component of 8 are currently hardcoded in place. This is > further confirmed by downstream sources [1] containing different > constants for other BPC values (and different initial_offset too, > with an extra dependency on bits_per_pixel). Prevent future mishaps by > explicitly disallowing any other bits_per_component value until the > right parameters are put in place and tested. > > [1]: https://git.codelinaro.org/clo/la/platform/vendor/opensource/display-drivers/-/blob/DISPLAY.LA.2.0.r1-08000-WAIPIO.0/msm/sde_dsc_helper.c#L110-139 > > Signed-off-by: Marijn Suijten <marijn.suijten@somainline.org> Reviewed-by: Dmitry Baryshkov <dmitry.baryshkov@linaro.org>
On 10/9/2022 11:51 AM, Marijn Suijten wrote: > According to the `/* bpc 8 */` comment below only values for a > bits_per_component of 8 are currently hardcoded in place. This is > further confirmed by downstream sources [1] containing different > constants for other BPC values (and different initial_offset too, > with an extra dependency on bits_per_pixel). Prevent future mishaps by > explicitly disallowing any other bits_per_component value until the > right parameters are put in place and tested. > > [1]: https://git.codelinaro.org/clo/la/platform/vendor/opensource/display-drivers/-/blob/DISPLAY.LA.2.0.r1-08000-WAIPIO.0/msm/sde_dsc_helper.c#L110-139 > Seems like a valid kbot error. https://patchwork.freedesktop.org/patch/506359/#comment_912830 > Signed-off-by: Marijn Suijten <marijn.suijten@somainline.org> > --- > drivers/gpu/drm/msm/dsi/dsi_host.c | 5 +++++ > 1 file changed, 5 insertions(+) > > diff --git a/drivers/gpu/drm/msm/dsi/dsi_host.c b/drivers/gpu/drm/msm/dsi/dsi_host.c > index 68c39debc22f..7e6b7e506ae8 100644 > --- a/drivers/gpu/drm/msm/dsi/dsi_host.c > +++ b/drivers/gpu/drm/msm/dsi/dsi_host.c > @@ -1774,6 +1774,11 @@ static int dsi_populate_dsc_params(struct drm_dsc_config *dsc) > { > int i; > > + if (dsc->bits_per_component != 8) { > + DRM_DEV_ERROR(&msm_host->pdev->dev, "DSI does not support bits_per_component != 8 yet\n"); > + return -EOPNOTSUPP; > + } > + > dsc->rc_model_size = 8192; > dsc->first_line_bpg_offset = 12; > dsc->rc_edge_factor = 6;
On 2022-10-12 16:08:07, Abhinav Kumar wrote: > > > On 10/9/2022 11:51 AM, Marijn Suijten wrote: > > According to the `/* bpc 8 */` comment below only values for a > > bits_per_component of 8 are currently hardcoded in place. This is > > further confirmed by downstream sources [1] containing different > > constants for other BPC values (and different initial_offset too, > > with an extra dependency on bits_per_pixel). Prevent future mishaps by > > explicitly disallowing any other bits_per_component value until the > > right parameters are put in place and tested. > > > > [1]: https://git.codelinaro.org/clo/la/platform/vendor/opensource/display-drivers/-/blob/DISPLAY.LA.2.0.r1-08000-WAIPIO.0/msm/sde_dsc_helper.c#L110-139 > > > > Seems like a valid kbot error. > > https://patchwork.freedesktop.org/patch/506359/#comment_912830 It is correct, and I suggested in [1] to either reorder this patch 7/10 after 8/10, or pull back the msm_host pointer argument into this patch. [1]: https://lore.kernel.org/linux-arm-msm/20221011075119.tvn5j5jm6aqnhqv2@SoMainline.org/ - Marijn > > Signed-off-by: Marijn Suijten <marijn.suijten@somainline.org> > > --- > > drivers/gpu/drm/msm/dsi/dsi_host.c | 5 +++++ > > 1 file changed, 5 insertions(+) > > > > diff --git a/drivers/gpu/drm/msm/dsi/dsi_host.c b/drivers/gpu/drm/msm/dsi/dsi_host.c > > index 68c39debc22f..7e6b7e506ae8 100644 > > --- a/drivers/gpu/drm/msm/dsi/dsi_host.c > > +++ b/drivers/gpu/drm/msm/dsi/dsi_host.c > > @@ -1774,6 +1774,11 @@ static int dsi_populate_dsc_params(struct drm_dsc_config *dsc) > > { > > int i; > > > > + if (dsc->bits_per_component != 8) { > > + DRM_DEV_ERROR(&msm_host->pdev->dev, "DSI does not support bits_per_component != 8 yet\n"); > > + return -EOPNOTSUPP; > > + } > > + > > dsc->rc_model_size = 8192; > > dsc->first_line_bpg_offset = 12; > > dsc->rc_edge_factor = 6;
diff --git a/drivers/gpu/drm/msm/dsi/dsi_host.c b/drivers/gpu/drm/msm/dsi/dsi_host.c index 68c39debc22f..7e6b7e506ae8 100644 --- a/drivers/gpu/drm/msm/dsi/dsi_host.c +++ b/drivers/gpu/drm/msm/dsi/dsi_host.c @@ -1774,6 +1774,11 @@ static int dsi_populate_dsc_params(struct drm_dsc_config *dsc) { int i; + if (dsc->bits_per_component != 8) { + DRM_DEV_ERROR(&msm_host->pdev->dev, "DSI does not support bits_per_component != 8 yet\n"); + return -EOPNOTSUPP; + } + dsc->rc_model_size = 8192; dsc->first_line_bpg_offset = 12; dsc->rc_edge_factor = 6;
According to the `/* bpc 8 */` comment below only values for a bits_per_component of 8 are currently hardcoded in place. This is further confirmed by downstream sources [1] containing different constants for other BPC values (and different initial_offset too, with an extra dependency on bits_per_pixel). Prevent future mishaps by explicitly disallowing any other bits_per_component value until the right parameters are put in place and tested. [1]: https://git.codelinaro.org/clo/la/platform/vendor/opensource/display-drivers/-/blob/DISPLAY.LA.2.0.r1-08000-WAIPIO.0/msm/sde_dsc_helper.c#L110-139 Signed-off-by: Marijn Suijten <marijn.suijten@somainline.org> --- drivers/gpu/drm/msm/dsi/dsi_host.c | 5 +++++ 1 file changed, 5 insertions(+)