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 - 2025 Red Hat, Inc.