[PATCH] drm/msm: enable separate_gpu_kms by default

Mahadevan P posted 1 patch 1 month, 3 weeks ago
drivers/gpu/drm/msm/msm_drv.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
[PATCH] drm/msm: enable separate_gpu_kms by default
Posted by Mahadevan P 1 month, 3 weeks ago
On targets with multiple display subsystems, such as SA8775P, the GPU
binds to the first display subsystem that probes. This implicit binding
prevents subsequent display subsystems from probing successfully,
breaking multi-display support.

Enable separate_gpu_kms by default to decouple GPU and display subsystem
probing. This allows each display subsystem to initialize independently,
ensuring that all display subsystems are probed.

Signed-off-by: Mahadevan P <mahadevan.p@oss.qualcomm.com>
---
Depends on:
	https://lore.kernel.org/lkml/20260124-adreno-module-table-v1-1-9c2dbb2638b4@oss.qualcomm.com/
	https://lore.kernel.org/all/20260217071420.2240380-1-mkuntuma@qti.qualcomm.com/
---
 drivers/gpu/drm/msm/msm_drv.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/drivers/gpu/drm/msm/msm_drv.c b/drivers/gpu/drm/msm/msm_drv.c
index ed2a61c66ac9..65119fb3dfa2 100644
--- a/drivers/gpu/drm/msm/msm_drv.c
+++ b/drivers/gpu/drm/msm/msm_drv.c
@@ -54,7 +54,7 @@ static bool modeset = true;
 MODULE_PARM_DESC(modeset, "Use kernel modesetting [KMS] (1=on (default), 0=disable)");
 module_param(modeset, bool, 0600);
 
-static bool separate_gpu_kms;
+static bool separate_gpu_kms = true;
 MODULE_PARM_DESC(separate_gpu_drm, "Use separate DRM device for the GPU (0=single DRM device for both GPU and display (default), 1=two DRM devices)");
 module_param(separate_gpu_kms, bool, 0400);
 

---
base-commit: 50f68cc7be0a2cbf54d8f6aaf17df32fb01acc3f
change-id: 20260219-seperate_gpu_kms-97870cb36aaf

Best regards,
-- 
Mahadevan P <mahadevan.p@oss.qualcomm.com>
Re: [PATCH] drm/msm: enable separate_gpu_kms by default
Posted by Dmitry Baryshkov 1 month, 3 weeks ago
On Mon, Feb 23, 2026 at 12:40:10AM +0530, Mahadevan P wrote:
> On targets with multiple display subsystems, such as SA8775P, the GPU
> binds to the first display subsystem that probes. This implicit binding
> prevents subsequent display subsystems from probing successfully,
> breaking multi-display support.
> 
> Enable separate_gpu_kms by default to decouple GPU and display subsystem
> probing. This allows each display subsystem to initialize independently,
> ensuring that all display subsystems are probed.
> 
> Signed-off-by: Mahadevan P <mahadevan.p@oss.qualcomm.com>
> ---
> Depends on:
> 	https://lore.kernel.org/lkml/20260124-adreno-module-table-v1-1-9c2dbb2638b4@oss.qualcomm.com/
> 	https://lore.kernel.org/all/20260217071420.2240380-1-mkuntuma@qti.qualcomm.com/

What exactly depends on this patchset?

> ---
>  drivers/gpu/drm/msm/msm_drv.c | 2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)
> 
> diff --git a/drivers/gpu/drm/msm/msm_drv.c b/drivers/gpu/drm/msm/msm_drv.c
> index ed2a61c66ac9..65119fb3dfa2 100644
> --- a/drivers/gpu/drm/msm/msm_drv.c
> +++ b/drivers/gpu/drm/msm/msm_drv.c
> @@ -54,7 +54,7 @@ static bool modeset = true;
>  MODULE_PARM_DESC(modeset, "Use kernel modesetting [KMS] (1=on (default), 0=disable)");
>  module_param(modeset, bool, 0600);
>  
> -static bool separate_gpu_kms;
> +static bool separate_gpu_kms = true;
>  MODULE_PARM_DESC(separate_gpu_drm, "Use separate DRM device for the GPU (0=single DRM device for both GPU and display (default), 1=two DRM devices)");
>  module_param(separate_gpu_kms, bool, 0400);

The patch LGTM, but I'd prefer to get confirmation from Rob.

BTW: have you tested it with X11? Are you still getting accelerated GPU?

-- 
With best wishes
Dmitry
Re: [PATCH] drm/msm: enable separate_gpu_kms by default
Posted by Rob Clark 1 month, 2 weeks ago
On Sun, Feb 22, 2026 at 12:32 PM Dmitry Baryshkov
<dmitry.baryshkov@oss.qualcomm.com> wrote:
>
> On Mon, Feb 23, 2026 at 12:40:10AM +0530, Mahadevan P wrote:
> > On targets with multiple display subsystems, such as SA8775P, the GPU
> > binds to the first display subsystem that probes. This implicit binding
> > prevents subsequent display subsystems from probing successfully,
> > breaking multi-display support.
> >
> > Enable separate_gpu_kms by default to decouple GPU and display subsystem
> > probing. This allows each display subsystem to initialize independently,
> > ensuring that all display subsystems are probed.
> >
> > Signed-off-by: Mahadevan P <mahadevan.p@oss.qualcomm.com>
> > ---
> > Depends on:
> >       https://lore.kernel.org/lkml/20260124-adreno-module-table-v1-1-9c2dbb2638b4@oss.qualcomm.com/
> >       https://lore.kernel.org/all/20260217071420.2240380-1-mkuntuma@qti.qualcomm.com/
>
> What exactly depends on this patchset?
>
> > ---
> >  drivers/gpu/drm/msm/msm_drv.c | 2 +-
> >  1 file changed, 1 insertion(+), 1 deletion(-)
> >
> > diff --git a/drivers/gpu/drm/msm/msm_drv.c b/drivers/gpu/drm/msm/msm_drv.c
> > index ed2a61c66ac9..65119fb3dfa2 100644
> > --- a/drivers/gpu/drm/msm/msm_drv.c
> > +++ b/drivers/gpu/drm/msm/msm_drv.c
> > @@ -54,7 +54,7 @@ static bool modeset = true;
> >  MODULE_PARM_DESC(modeset, "Use kernel modesetting [KMS] (1=on (default), 0=disable)");
> >  module_param(modeset, bool, 0600);
> >
> > -static bool separate_gpu_kms;
> > +static bool separate_gpu_kms = true;
> >  MODULE_PARM_DESC(separate_gpu_drm, "Use separate DRM device for the GPU (0=single DRM device for both GPU and display (default), 1=two DRM devices)");
> >  module_param(separate_gpu_kms, bool, 0400);
>
> The patch LGTM, but I'd prefer to get confirmation from Rob.

I prefer to be a bit more paranoid.. perhaps switch this to a tri-state:

 -1: separate drm devices if there is more than one dpu or gpu,
     otherwise, single combined drm device [default]
  0: single drm device (matching up pairs of dpu and gpu if needed)
  1: separate drm devices

This way we aren't changing (or breaking) things for existing users.

BR,
-R

> BTW: have you tested it with X11? Are you still getting accelerated GPU?
>
> --
> With best wishes
> Dmitry
Re: [PATCH] drm/msm: enable separate_gpu_kms by default
Posted by Dmitry Baryshkov 1 month, 2 weeks ago
On Tue, Mar 03, 2026 at 10:35:46AM -0800, Rob Clark wrote:
> On Sun, Feb 22, 2026 at 12:32 PM Dmitry Baryshkov
> <dmitry.baryshkov@oss.qualcomm.com> wrote:
> >
> > On Mon, Feb 23, 2026 at 12:40:10AM +0530, Mahadevan P wrote:
> > > On targets with multiple display subsystems, such as SA8775P, the GPU
> > > binds to the first display subsystem that probes. This implicit binding
> > > prevents subsequent display subsystems from probing successfully,
> > > breaking multi-display support.
> > >
> > > Enable separate_gpu_kms by default to decouple GPU and display subsystem
> > > probing. This allows each display subsystem to initialize independently,
> > > ensuring that all display subsystems are probed.
> > >
> > > Signed-off-by: Mahadevan P <mahadevan.p@oss.qualcomm.com>
> > > ---
> > > Depends on:
> > >       https://lore.kernel.org/lkml/20260124-adreno-module-table-v1-1-9c2dbb2638b4@oss.qualcomm.com/
> > >       https://lore.kernel.org/all/20260217071420.2240380-1-mkuntuma@qti.qualcomm.com/
> >
> > What exactly depends on this patchset?
> >
> > > ---
> > >  drivers/gpu/drm/msm/msm_drv.c | 2 +-
> > >  1 file changed, 1 insertion(+), 1 deletion(-)
> > >
> > > diff --git a/drivers/gpu/drm/msm/msm_drv.c b/drivers/gpu/drm/msm/msm_drv.c
> > > index ed2a61c66ac9..65119fb3dfa2 100644
> > > --- a/drivers/gpu/drm/msm/msm_drv.c
> > > +++ b/drivers/gpu/drm/msm/msm_drv.c
> > > @@ -54,7 +54,7 @@ static bool modeset = true;
> > >  MODULE_PARM_DESC(modeset, "Use kernel modesetting [KMS] (1=on (default), 0=disable)");
> > >  module_param(modeset, bool, 0600);
> > >
> > > -static bool separate_gpu_kms;
> > > +static bool separate_gpu_kms = true;
> > >  MODULE_PARM_DESC(separate_gpu_drm, "Use separate DRM device for the GPU (0=single DRM device for both GPU and display (default), 1=two DRM devices)");
> > >  module_param(separate_gpu_kms, bool, 0400);
> >
> > The patch LGTM, but I'd prefer to get confirmation from Rob.
> 
> I prefer to be a bit more paranoid.. perhaps switch this to a tri-state:
> 
>  -1: separate drm devices if there is more than one dpu or gpu,
>      otherwise, single combined drm device [default]
>   0: single drm device (matching up pairs of dpu and gpu if needed)
>   1: separate drm devices
> 
> This way we aren't changing (or breaking) things for existing users.

I'd rather break things and hear about them being broken.

> 
> BR,
> -R
> 
> > BTW: have you tested it with X11? Are you still getting accelerated GPU?
> >
> > --
> > With best wishes
> > Dmitry

-- 
With best wishes
Dmitry
Re: [PATCH] drm/msm: enable separate_gpu_kms by default
Posted by Rob Clark 1 month, 2 weeks ago
On Tue, Mar 3, 2026 at 2:32 PM Dmitry Baryshkov
<dmitry.baryshkov@oss.qualcomm.com> wrote:
>
> On Tue, Mar 03, 2026 at 10:35:46AM -0800, Rob Clark wrote:
> > On Sun, Feb 22, 2026 at 12:32 PM Dmitry Baryshkov
> > <dmitry.baryshkov@oss.qualcomm.com> wrote:
> > >
> > > On Mon, Feb 23, 2026 at 12:40:10AM +0530, Mahadevan P wrote:
> > > > On targets with multiple display subsystems, such as SA8775P, the GPU
> > > > binds to the first display subsystem that probes. This implicit binding
> > > > prevents subsequent display subsystems from probing successfully,
> > > > breaking multi-display support.
> > > >
> > > > Enable separate_gpu_kms by default to decouple GPU and display subsystem
> > > > probing. This allows each display subsystem to initialize independently,
> > > > ensuring that all display subsystems are probed.
> > > >
> > > > Signed-off-by: Mahadevan P <mahadevan.p@oss.qualcomm.com>
> > > > ---
> > > > Depends on:
> > > >       https://lore.kernel.org/lkml/20260124-adreno-module-table-v1-1-9c2dbb2638b4@oss.qualcomm.com/
> > > >       https://lore.kernel.org/all/20260217071420.2240380-1-mkuntuma@qti.qualcomm.com/
> > >
> > > What exactly depends on this patchset?
> > >
> > > > ---
> > > >  drivers/gpu/drm/msm/msm_drv.c | 2 +-
> > > >  1 file changed, 1 insertion(+), 1 deletion(-)
> > > >
> > > > diff --git a/drivers/gpu/drm/msm/msm_drv.c b/drivers/gpu/drm/msm/msm_drv.c
> > > > index ed2a61c66ac9..65119fb3dfa2 100644
> > > > --- a/drivers/gpu/drm/msm/msm_drv.c
> > > > +++ b/drivers/gpu/drm/msm/msm_drv.c
> > > > @@ -54,7 +54,7 @@ static bool modeset = true;
> > > >  MODULE_PARM_DESC(modeset, "Use kernel modesetting [KMS] (1=on (default), 0=disable)");
> > > >  module_param(modeset, bool, 0600);
> > > >
> > > > -static bool separate_gpu_kms;
> > > > +static bool separate_gpu_kms = true;
> > > >  MODULE_PARM_DESC(separate_gpu_drm, "Use separate DRM device for the GPU (0=single DRM device for both GPU and display (default), 1=two DRM devices)");
> > > >  module_param(separate_gpu_kms, bool, 0400);
> > >
> > > The patch LGTM, but I'd prefer to get confirmation from Rob.
> >
> > I prefer to be a bit more paranoid.. perhaps switch this to a tri-state:
> >
> >  -1: separate drm devices if there is more than one dpu or gpu,
> >      otherwise, single combined drm device [default]
> >   0: single drm device (matching up pairs of dpu and gpu if needed)
> >   1: separate drm devices
> >
> > This way we aren't changing (or breaking) things for existing users.
>
> I'd rather break things and hear about them being broken.

You are assuming you'd hear about the non-obvious breakages
immediately..  I don't think that is a good assumption.

To be clear, I'll NAK any change to the default for "normal" hw
configurations.  If you want to change the modparam to tri-state so
that "weird" hw configurations get split devices, I guess I'd be ok
with that.  At least it limits the potential fallout.

BR,
-R

> >
> > BR,
> > -R
> >
> > > BTW: have you tested it with X11? Are you still getting accelerated GPU?
> > >
> > > --
> > > With best wishes
> > > Dmitry
>
> --
> With best wishes
> Dmitry
Re: [PATCH] drm/msm: enable separate_gpu_kms by default
Posted by Dmitry Baryshkov 1 month, 2 weeks ago
On Tue, Mar 03, 2026 at 03:38:35PM -0800, Rob Clark wrote:
> On Tue, Mar 3, 2026 at 2:32 PM Dmitry Baryshkov
> <dmitry.baryshkov@oss.qualcomm.com> wrote:
> >
> > On Tue, Mar 03, 2026 at 10:35:46AM -0800, Rob Clark wrote:
> > > On Sun, Feb 22, 2026 at 12:32 PM Dmitry Baryshkov
> > > <dmitry.baryshkov@oss.qualcomm.com> wrote:
> > > >
> > > > On Mon, Feb 23, 2026 at 12:40:10AM +0530, Mahadevan P wrote:
> > > > > On targets with multiple display subsystems, such as SA8775P, the GPU
> > > > > binds to the first display subsystem that probes. This implicit binding
> > > > > prevents subsequent display subsystems from probing successfully,
> > > > > breaking multi-display support.
> > > > >
> > > > > Enable separate_gpu_kms by default to decouple GPU and display subsystem
> > > > > probing. This allows each display subsystem to initialize independently,
> > > > > ensuring that all display subsystems are probed.
> > > > >
> > > > > Signed-off-by: Mahadevan P <mahadevan.p@oss.qualcomm.com>
> > > > > ---
> > > > > Depends on:
> > > > >       https://lore.kernel.org/lkml/20260124-adreno-module-table-v1-1-9c2dbb2638b4@oss.qualcomm.com/
> > > > >       https://lore.kernel.org/all/20260217071420.2240380-1-mkuntuma@qti.qualcomm.com/
> > > >
> > > > What exactly depends on this patchset?
> > > >
> > > > > ---
> > > > >  drivers/gpu/drm/msm/msm_drv.c | 2 +-
> > > > >  1 file changed, 1 insertion(+), 1 deletion(-)
> > > > >
> > > > > diff --git a/drivers/gpu/drm/msm/msm_drv.c b/drivers/gpu/drm/msm/msm_drv.c
> > > > > index ed2a61c66ac9..65119fb3dfa2 100644
> > > > > --- a/drivers/gpu/drm/msm/msm_drv.c
> > > > > +++ b/drivers/gpu/drm/msm/msm_drv.c
> > > > > @@ -54,7 +54,7 @@ static bool modeset = true;
> > > > >  MODULE_PARM_DESC(modeset, "Use kernel modesetting [KMS] (1=on (default), 0=disable)");
> > > > >  module_param(modeset, bool, 0600);
> > > > >
> > > > > -static bool separate_gpu_kms;
> > > > > +static bool separate_gpu_kms = true;
> > > > >  MODULE_PARM_DESC(separate_gpu_drm, "Use separate DRM device for the GPU (0=single DRM device for both GPU and display (default), 1=two DRM devices)");
> > > > >  module_param(separate_gpu_kms, bool, 0400);
> > > >
> > > > The patch LGTM, but I'd prefer to get confirmation from Rob.
> > >
> > > I prefer to be a bit more paranoid.. perhaps switch this to a tri-state:
> > >
> > >  -1: separate drm devices if there is more than one dpu or gpu,
> > >      otherwise, single combined drm device [default]
> > >   0: single drm device (matching up pairs of dpu and gpu if needed)
> > >   1: separate drm devices
> > >
> > > This way we aren't changing (or breaking) things for existing users.
> >
> > I'd rather break things and hear about them being broken.
> 
> You are assuming you'd hear about the non-obvious breakages
> immediately..  I don't think that is a good assumption.
> 
> To be clear, I'll NAK any change to the default for "normal" hw
> configurations.  If you want to change the modparam to tri-state so
> that "weird" hw configurations get split devices, I guess I'd be ok
> with that.  At least it limits the potential fallout.

Ack :-)

> 
> BR,
> -R
> 
> > >
> > > BR,
> > > -R
> > >
> > > > BTW: have you tested it with X11? Are you still getting accelerated GPU?
> > > >
> > > > --
> > > > With best wishes
> > > > Dmitry
> >
> > --
> > With best wishes
> > Dmitry

-- 
With best wishes
Dmitry
Re: [PATCH] drm/msm: enable separate_gpu_kms by default
Posted by Mahadevan P 1 month, 2 weeks ago

On 2/23/2026 2:02 AM, Dmitry Baryshkov wrote:
> On Mon, Feb 23, 2026 at 12:40:10AM +0530, Mahadevan P wrote:
>> On targets with multiple display subsystems, such as SA8775P, the GPU
>> binds to the first display subsystem that probes. This implicit binding
>> prevents subsequent display subsystems from probing successfully,
>> breaking multi-display support.
>>
>> Enable separate_gpu_kms by default to decouple GPU and display subsystem
>> probing. This allows each display subsystem to initialize independently,
>> ensuring that all display subsystems are probed.
>>
>> Signed-off-by: Mahadevan P <mahadevan.p@oss.qualcomm.com>
>> ---
>> Depends on:
	[1]
>> 	https://lore.kernel.org/lkml/20260124-adreno-module-table-v1-1-9c2dbb2638b4@oss.qualcomm.com/
	[2]
>> 	https://lore.kernel.org/all/20260217071420.2240380-1-mkuntuma@qti.qualcomm.com/
> 
> What exactly depends on this patchset?
The dependency is as follows:
As we separate out module loading of adreno and mdss with 
separate_gpu_kms=1 autoloading of msm.ko fails. With change [1] on 
bootup, msm.ko is loaded and gpu card is created.

The main reason to bring this patch here in upstream is for enabling of 
dual dpu configuration in Lemans hence added [2] as dependency.

> 
>> ---
>>   drivers/gpu/drm/msm/msm_drv.c | 2 +-
>>   1 file changed, 1 insertion(+), 1 deletion(-)
>>
>> diff --git a/drivers/gpu/drm/msm/msm_drv.c b/drivers/gpu/drm/msm/msm_drv.c
>> index ed2a61c66ac9..65119fb3dfa2 100644
>> --- a/drivers/gpu/drm/msm/msm_drv.c
>> +++ b/drivers/gpu/drm/msm/msm_drv.c
>> @@ -54,7 +54,7 @@ static bool modeset = true;
>>   MODULE_PARM_DESC(modeset, "Use kernel modesetting [KMS] (1=on (default), 0=disable)");
>>   module_param(modeset, bool, 0600);
>>   
>> -static bool separate_gpu_kms;
>> +static bool separate_gpu_kms = true;
>>   MODULE_PARM_DESC(separate_gpu_drm, "Use separate DRM device for the GPU (0=single DRM device for both GPU and display (default), 1=two DRM devices)");
>>   module_param(separate_gpu_kms, bool, 0400);
> 
> The patch LGTM, but I'd prefer to get confirmation from Rob.
> 
> BTW: have you tested it with X11? Are you still getting accelerated GPU?

Yes, tested today with X11 app(xterm), GPU rendering is used.
> 

Thanks,
Mahadevan
Re: [PATCH] drm/msm: enable separate_gpu_kms by default
Posted by Dmitry Baryshkov 1 month, 2 weeks ago
On Wed, Feb 25, 2026 at 02:58:49PM +0530, Mahadevan P wrote:
> 
> 
> On 2/23/2026 2:02 AM, Dmitry Baryshkov wrote:
> > On Mon, Feb 23, 2026 at 12:40:10AM +0530, Mahadevan P wrote:
> > > On targets with multiple display subsystems, such as SA8775P, the GPU
> > > binds to the first display subsystem that probes. This implicit binding
> > > prevents subsequent display subsystems from probing successfully,
> > > breaking multi-display support.
> > > 
> > > Enable separate_gpu_kms by default to decouple GPU and display subsystem
> > > probing. This allows each display subsystem to initialize independently,
> > > ensuring that all display subsystems are probed.
> > > 
> > > Signed-off-by: Mahadevan P <mahadevan.p@oss.qualcomm.com>
> > > ---
> > > Depends on:
> 	[1]
> > > 	https://lore.kernel.org/lkml/20260124-adreno-module-table-v1-1-9c2dbb2638b4@oss.qualcomm.com/
> 	[2]
> > > 	https://lore.kernel.org/all/20260217071420.2240380-1-mkuntuma@qti.qualcomm.com/
> > 
> > What exactly depends on this patchset?
> The dependency is as follows:
> As we separate out module loading of adreno and mdss with separate_gpu_kms=1
> autoloading of msm.ko fails. With change [1] on bootup, msm.ko is loaded and
> gpu card is created.
> 
> The main reason to bring this patch here in upstream is for enabling of dual
> dpu configuration in Lemans hence added [2] as dependency.

None of that describes why they are dependencies (i.e. must be applied
_before_ this patch, which otherwise will be broken).

> 
> > 
> > > ---
> > >   drivers/gpu/drm/msm/msm_drv.c | 2 +-
> > >   1 file changed, 1 insertion(+), 1 deletion(-)
> > > 
> > > diff --git a/drivers/gpu/drm/msm/msm_drv.c b/drivers/gpu/drm/msm/msm_drv.c
> > > index ed2a61c66ac9..65119fb3dfa2 100644
> > > --- a/drivers/gpu/drm/msm/msm_drv.c
> > > +++ b/drivers/gpu/drm/msm/msm_drv.c
> > > @@ -54,7 +54,7 @@ static bool modeset = true;
> > >   MODULE_PARM_DESC(modeset, "Use kernel modesetting [KMS] (1=on (default), 0=disable)");
> > >   module_param(modeset, bool, 0600);
> > > -static bool separate_gpu_kms;
> > > +static bool separate_gpu_kms = true;
> > >   MODULE_PARM_DESC(separate_gpu_drm, "Use separate DRM device for the GPU (0=single DRM device for both GPU and display (default), 1=two DRM devices)");
> > >   module_param(separate_gpu_kms, bool, 0400);
> > 
> > The patch LGTM, but I'd prefer to get confirmation from Rob.
> > 
> > BTW: have you tested it with X11? Are you still getting accelerated GPU?
> 
> Yes, tested today with X11 app(xterm), GPU rendering is used.
> > 
> 
> Thanks,
> Mahadevan

-- 
With best wishes
Dmitry