Avoid the possibility of missing features between the split and unified
drm driver cases by defining DRIVER_FEATURES_GPU / KMS and using those
in the drm_driver initializations.
Signed-off-by: Rob Clark <robin.clark@oss.qualcomm.com>
---
drivers/gpu/drm/msm/msm_drv.c | 31 ++++++++++++++++---------------
1 file changed, 16 insertions(+), 15 deletions(-)
diff --git a/drivers/gpu/drm/msm/msm_drv.c b/drivers/gpu/drm/msm/msm_drv.c
index b6efc5b9933b..5695de1bbae2 100644
--- a/drivers/gpu/drm/msm/msm_drv.c
+++ b/drivers/gpu/drm/msm/msm_drv.c
@@ -816,14 +816,21 @@ static const struct file_operations fops = {
.show_fdinfo = drm_show_fdinfo,
};
+#define DRIVER_FEATURES_GPU ( \
+ DRIVER_GEM | \
+ DRIVER_GEM_GPUVA | \
+ DRIVER_RENDER | \
+ DRIVER_SYNCOBJ_TIMELINE | \
+ 0 )
+
+#define DRIVER_FEATURES_KMS ( \
+ DRIVER_GEM | \
+ DRIVER_ATOMIC | \
+ DRIVER_MODESET | \
+ 0 )
+
static const struct drm_driver msm_driver = {
- .driver_features = DRIVER_GEM |
- DRIVER_GEM_GPUVA |
- DRIVER_RENDER |
- DRIVER_ATOMIC |
- DRIVER_MODESET |
- DRIVER_SYNCOBJ_TIMELINE |
- DRIVER_SYNCOBJ,
+ .driver_features = DRIVER_FEATURES_GPU | DRIVER_FEATURES_KMS,
.open = msm_open,
.postclose = msm_postclose,
.dumb_create = msm_gem_dumb_create,
@@ -846,9 +853,7 @@ static const struct drm_driver msm_driver = {
};
static const struct drm_driver msm_kms_driver = {
- .driver_features = DRIVER_GEM |
- DRIVER_ATOMIC |
- DRIVER_MODESET,
+ .driver_features = DRIVER_FEATURES_KMS,
.open = msm_open,
.postclose = msm_postclose,
.dumb_create = msm_gem_dumb_create,
@@ -870,11 +875,7 @@ static const struct drm_driver msm_kms_driver = {
};
static const struct drm_driver msm_gpu_driver = {
- .driver_features = DRIVER_GEM |
- DRIVER_GEM_GPUVA |
- DRIVER_RENDER |
- DRIVER_SYNCOBJ_TIMELINE |
- DRIVER_SYNCOBJ,
+ .driver_features = DRIVER_FEATURES_GPU,
.open = msm_open,
.postclose = msm_postclose,
.gem_prime_import_sg_table = msm_gem_prime_import_sg_table,
--
2.50.0
On 7/5/25 4:52 PM, Rob Clark wrote:
> Avoid the possibility of missing features between the split and unified
> drm driver cases by defining DRIVER_FEATURES_GPU / KMS and using those
> in the drm_driver initializations.
>
> Signed-off-by: Rob Clark <robin.clark@oss.qualcomm.com>
> ---
> drivers/gpu/drm/msm/msm_drv.c | 31 ++++++++++++++++---------------
> 1 file changed, 16 insertions(+), 15 deletions(-)
>
> diff --git a/drivers/gpu/drm/msm/msm_drv.c b/drivers/gpu/drm/msm/msm_drv.c
> index b6efc5b9933b..5695de1bbae2 100644
> --- a/drivers/gpu/drm/msm/msm_drv.c
> +++ b/drivers/gpu/drm/msm/msm_drv.c
> @@ -816,14 +816,21 @@ static const struct file_operations fops = {
> .show_fdinfo = drm_show_fdinfo,
> };
>
> +#define DRIVER_FEATURES_GPU ( \
> + DRIVER_GEM | \
> + DRIVER_GEM_GPUVA | \
> + DRIVER_RENDER | \
> + DRIVER_SYNCOBJ_TIMELINE | \
> + 0 )
> +
> +#define DRIVER_FEATURES_KMS ( \
> + DRIVER_GEM | \
> + DRIVER_ATOMIC | \
> + DRIVER_MODESET | \
> + 0 )
Perhaps I'm missing some C lore, but do we need the "| 0"?
Konrad
On Mon, Jul 7, 2025 at 4:42 AM Konrad Dybcio
<konrad.dybcio@oss.qualcomm.com> wrote:
>
> On 7/5/25 4:52 PM, Rob Clark wrote:
> > Avoid the possibility of missing features between the split and unified
> > drm driver cases by defining DRIVER_FEATURES_GPU / KMS and using those
> > in the drm_driver initializations.
> >
> > Signed-off-by: Rob Clark <robin.clark@oss.qualcomm.com>
> > ---
> > drivers/gpu/drm/msm/msm_drv.c | 31 ++++++++++++++++---------------
> > 1 file changed, 16 insertions(+), 15 deletions(-)
> >
> > diff --git a/drivers/gpu/drm/msm/msm_drv.c b/drivers/gpu/drm/msm/msm_drv.c
> > index b6efc5b9933b..5695de1bbae2 100644
> > --- a/drivers/gpu/drm/msm/msm_drv.c
> > +++ b/drivers/gpu/drm/msm/msm_drv.c
> > @@ -816,14 +816,21 @@ static const struct file_operations fops = {
> > .show_fdinfo = drm_show_fdinfo,
> > };
> >
> > +#define DRIVER_FEATURES_GPU ( \
> > + DRIVER_GEM | \
> > + DRIVER_GEM_GPUVA | \
> > + DRIVER_RENDER | \
> > + DRIVER_SYNCOBJ_TIMELINE | \
> > + 0 )
> > +
> > +#define DRIVER_FEATURES_KMS ( \
> > + DRIVER_GEM | \
> > + DRIVER_ATOMIC | \
> > + DRIVER_MODESET | \
> > + 0 )
>
> Perhaps I'm missing some C lore, but do we need the "| 0"?
It is just to avoid later diffstat noise when new flags are added :-)
BR,
-R
On Sat, Jul 05, 2025 at 07:52:40AM -0700, Rob Clark wrote: > Avoid the possibility of missing features between the split and unified > drm driver cases by defining DRIVER_FEATURES_GPU / KMS and using those > in the drm_driver initializations. > > Signed-off-by: Rob Clark <robin.clark@oss.qualcomm.com> > --- > drivers/gpu/drm/msm/msm_drv.c | 31 ++++++++++++++++--------------- > 1 file changed, 16 insertions(+), 15 deletions(-) > Reviewed-by: Dmitry Baryshkov <dmitry.baryshkov@oss.qualcomm.com> -- With best wishes Dmitry
© 2016 - 2026 Red Hat, Inc.