[PATCH] drm/msm/dsi: remove bpc > 8 entries from allow list

Pengyu Luo posted 1 patch 1 month ago
drivers/gpu/drm/msm/dsi/dsi_host.c | 7 ++-----
1 file changed, 2 insertions(+), 5 deletions(-)
[PATCH] drm/msm/dsi: remove bpc > 8 entries from allow list
Posted by Pengyu Luo 1 month ago
In upstream the msm, for bpc greater than 8 are not supported yet,
although the hardware block supports this. Remove them until we
support them.

Fixes: b0e71c2637d1 ("drm/msm/dsi: Allow values of 10 and 12 for bits per component")
Signed-off-by: Pengyu Luo <mitltlatltl@gmail.com>
---
 drivers/gpu/drm/msm/dsi/dsi_host.c | 7 ++-----
 1 file changed, 2 insertions(+), 5 deletions(-)

diff --git a/drivers/gpu/drm/msm/dsi/dsi_host.c b/drivers/gpu/drm/msm/dsi/dsi_host.c
index e8e83ee61e..b60b26ddb0 100644
--- a/drivers/gpu/drm/msm/dsi/dsi_host.c
+++ b/drivers/gpu/drm/msm/dsi/dsi_host.c
@@ -1824,12 +1824,9 @@ static int dsi_populate_dsc_params(struct msm_dsi_host *msm_host, struct drm_dsc
 
 	switch (dsc->bits_per_component) {
 	case 8:
-	case 10:
-	case 12:
 		/*
-		 * Only 8, 10, and 12 bpc are supported for DSC 1.1 block.
-		 * If additional bpc values need to be supported, update
-		 * this quard with the appropriate DSC version verification.
+		 * In the upstream msm, only 8 bpc is supported for DSC 1.1/1.2
+		 * block.
 		 */
 		break;
 	default:
-- 
2.53.0
Re: [PATCH] drm/msm/dsi: remove bpc > 8 entries from allow list
Posted by Dmitry Baryshkov 1 month ago
On Fri, Mar 06, 2026 at 05:25:00PM +0800, Pengyu Luo wrote:
> In upstream the msm, for bpc greater than 8 are not supported yet,
> although the hardware block supports this. Remove them until we
> support them.
> 
> Fixes: b0e71c2637d1 ("drm/msm/dsi: Allow values of 10 and 12 for bits per component")
> Signed-off-by: Pengyu Luo <mitltlatltl@gmail.com>

I hope Marijn, Danila or Eugeny can comment. The patch series with this
patchset added 10 bpc panel and used it for one of the phones.

> ---
>  drivers/gpu/drm/msm/dsi/dsi_host.c | 7 ++-----
>  1 file changed, 2 insertions(+), 5 deletions(-)
> 
> diff --git a/drivers/gpu/drm/msm/dsi/dsi_host.c b/drivers/gpu/drm/msm/dsi/dsi_host.c
> index e8e83ee61e..b60b26ddb0 100644
> --- a/drivers/gpu/drm/msm/dsi/dsi_host.c
> +++ b/drivers/gpu/drm/msm/dsi/dsi_host.c
> @@ -1824,12 +1824,9 @@ static int dsi_populate_dsc_params(struct msm_dsi_host *msm_host, struct drm_dsc
>  
>  	switch (dsc->bits_per_component) {
>  	case 8:
> -	case 10:
> -	case 12:
>  		/*
> -		 * Only 8, 10, and 12 bpc are supported for DSC 1.1 block.
> -		 * If additional bpc values need to be supported, update
> -		 * this quard with the appropriate DSC version verification.
> +		 * In the upstream msm, only 8 bpc is supported for DSC 1.1/1.2
> +		 * block.
>  		 */
>  		break;
>  	default:
> -- 
> 2.53.0
> 

-- 
With best wishes
Dmitry
Re: [PATCH] drm/msm/dsi: remove bpc > 8 entries from allow list
Posted by Евгений Лепший 1 month ago
Hi,

I have a concern regarding this patch. The Nothing Phone (1)
(sm7325-nothing-spacewar), which is already supported in mainline,
utilizes a panel with bpc=10 and bpp=8 (DSC) [1].

Currently, this configuration works properly. While I have encountered
minor graphical artifacts during brightness changes, the display
output is otherwise reliable across all supported refresh rates
(60/90/120 Hz).

Since this panel is already upstreamed, this patch might cause regressions.

[1] https://github.com/NothingOSS/android_kernel_devicetree_nothing_sm7325/blob/6f027f0440e3dce8a674d9cbd2f6ad944120e209/msm-extra/display-devicetree/display/dsi-panel-rm692e5-visionox-fhd-plus-120hz-cmd.dtsi#L483-L484

Best regards,
Eugene Lepshy

пт, 6 мар. 2026 г. в 21:47, Dmitry Baryshkov
<dmitry.baryshkov@oss.qualcomm.com>:
>
> On Fri, Mar 06, 2026 at 05:25:00PM +0800, Pengyu Luo wrote:
> > In upstream the msm, for bpc greater than 8 are not supported yet,
> > although the hardware block supports this. Remove them until we
> > support them.
> >
> > Fixes: b0e71c2637d1 ("drm/msm/dsi: Allow values of 10 and 12 for bits per component")
> > Signed-off-by: Pengyu Luo <mitltlatltl@gmail.com>
>
> I hope Marijn, Danila or Eugeny can comment. The patch series with this
> patchset added 10 bpc panel and used it for one of the phones.
>
> > ---
> >  drivers/gpu/drm/msm/dsi/dsi_host.c | 7 ++-----
> >  1 file changed, 2 insertions(+), 5 deletions(-)
> >
> > diff --git a/drivers/gpu/drm/msm/dsi/dsi_host.c b/drivers/gpu/drm/msm/dsi/dsi_host.c
> > index e8e83ee61e..b60b26ddb0 100644
> > --- a/drivers/gpu/drm/msm/dsi/dsi_host.c
> > +++ b/drivers/gpu/drm/msm/dsi/dsi_host.c
> > @@ -1824,12 +1824,9 @@ static int dsi_populate_dsc_params(struct msm_dsi_host *msm_host, struct drm_dsc
> >
> >       switch (dsc->bits_per_component) {
> >       case 8:
> > -     case 10:
> > -     case 12:
> >               /*
> > -              * Only 8, 10, and 12 bpc are supported for DSC 1.1 block.
> > -              * If additional bpc values need to be supported, update
> > -              * this quard with the appropriate DSC version verification.
> > +              * In the upstream msm, only 8 bpc is supported for DSC 1.1/1.2
> > +              * block.
> >                */
> >               break;
> >       default:
> > --
> > 2.53.0
> >
>
> --
> With best wishes
> Dmitry
Re: [PATCH] drm/msm/dsi: remove bpc > 8 entries from allow list
Posted by Pengyu Luo 1 month ago
On Sat, Mar 7, 2026 at 4:20 AM Евгений Лепший <fekz115@gmail.com> wrote:
>
> Hi,
>
> I have a concern regarding this patch. The Nothing Phone (1)
> (sm7325-nothing-spacewar), which is already supported in mainline,
> utilizes a panel with bpc=10 and bpp=8 (DSC) [1].
>
> Currently, this configuration works properly. While I have encountered
> minor graphical artifacts during brightness changes, the display
> output is otherwise reliable across all supported refresh rates
> (60/90/120 Hz).
>
> Since this panel is already upstreamed, this patch might cause regressions.
>
> [1] https://github.com/NothingOSS/android_kernel_devicetree_nothing_sm7325/blob/6f027f0440e3dce8a674d9cbd2f6ad944120e209/msm-extra/display-devicetree/display/dsi-panel-rm692e5-visionox-fhd-plus-120hz-cmd.dtsi#L483-L484
>


Oh, I see. I messed up bpc, it is fine now. Recently, encoders have
supported src bpc > 8, dsi don't support dst bpc > 8. But the nothing
phone panel does not require dsi to support it.

Since the panel is a 8-bit panel, and src bpc != dst bpc. Although they
are equal on some devices(they are, on my 8-bit or 10-bit devices).

i.e. qcom,mdss-dsc-bit-per-component != qcom,mdss-dsi-bpp / 3

Please ignore this patch.

Best wishes,
Pengyu

> Best regards,
> Eugene Lepshy
>
> пт, 6 мар. 2026 г. в 21:47, Dmitry Baryshkov
> <dmitry.baryshkov@oss.qualcomm.com>:
> >
> > On Fri, Mar 06, 2026 at 05:25:00PM +0800, Pengyu Luo wrote:
> > > In upstream the msm, for bpc greater than 8 are not supported yet,
> > > although the hardware block supports this. Remove them until we
> > > support them.
> > >
> > > Fixes: b0e71c2637d1 ("drm/msm/dsi: Allow values of 10 and 12 for bits per component")
> > > Signed-off-by: Pengyu Luo <mitltlatltl@gmail.com>
> >
> > I hope Marijn, Danila or Eugeny can comment. The patch series with this
> > patchset added 10 bpc panel and used it for one of the phones.
> >
> > > ---
> > >  drivers/gpu/drm/msm/dsi/dsi_host.c | 7 ++-----
> > >  1 file changed, 2 insertions(+), 5 deletions(-)
> > >
> > > diff --git a/drivers/gpu/drm/msm/dsi/dsi_host.c b/drivers/gpu/drm/msm/dsi/dsi_host.c
> > > index e8e83ee61e..b60b26ddb0 100644
> > > --- a/drivers/gpu/drm/msm/dsi/dsi_host.c
> > > +++ b/drivers/gpu/drm/msm/dsi/dsi_host.c
> > > @@ -1824,12 +1824,9 @@ static int dsi_populate_dsc_params(struct msm_dsi_host *msm_host, struct drm_dsc
> > >
> > >       switch (dsc->bits_per_component) {
> > >       case 8:
> > > -     case 10:
> > > -     case 12:
> > >               /*
> > > -              * Only 8, 10, and 12 bpc are supported for DSC 1.1 block.
> > > -              * If additional bpc values need to be supported, update
> > > -              * this quard with the appropriate DSC version verification.
> > > +              * In the upstream msm, only 8 bpc is supported for DSC 1.1/1.2
> > > +              * block.
> > >                */
> > >               break;
> > >       default:
> > > --
> > > 2.53.0
> > >
> >
> > --
> > With best wishes
> > Dmitry