On Thu, Jun 21, 2018 at 12:54:28PM -0700, Eric Anholt wrote: > Drivers such as vc4 don't initialize mode_config.funcs until later in > initialization, but we know they're atomic since they've got the flag > set. This avoids oopsing on dereferencing funcs in the new atomic > methods sanity checks. > > I moved the atomic check function down below the core flag check, to > avoid needing a prototype. > > Signed-off-by: Eric Anholt <eric@xxxxxxxxxx> > Fixes: ba1f665f161c ("drm: Add checks for atomic_[duplicate/destroy]_state with atomic drivers") Reviewed-by: Daniel Vetter <daniel.vetter@xxxxxxxx> btw, dim fixes also generates Cc: tags for you (author/reviewer/maintainer of the commit your fixing), besides just the Fixes: line. -Daniel > --- > include/drm/drmP.h | 23 ++++++++++++----------- > 1 file changed, 12 insertions(+), 11 deletions(-) > > diff --git a/include/drm/drmP.h b/include/drm/drmP.h > index f5099c12c6a6..c5dfbdb7271d 100644 > --- a/include/drm/drmP.h > +++ b/include/drm/drmP.h > @@ -97,6 +97,16 @@ struct pci_controller; > > #define DRM_IF_VERSION(maj, min) (maj << 16 | min) > > +#define DRM_SWITCH_POWER_ON 0 > +#define DRM_SWITCH_POWER_OFF 1 > +#define DRM_SWITCH_POWER_CHANGING 2 > +#define DRM_SWITCH_POWER_DYNAMIC_OFF 3 > + > +static inline bool drm_core_check_feature(struct drm_device *dev, int feature) > +{ > + return dev->driver->driver_features & feature; > +} > + > /** > * drm_drv_uses_atomic_modeset - check if the driver implements > * atomic_commit() > @@ -107,17 +117,8 @@ struct pci_controller; > */ > static inline bool drm_drv_uses_atomic_modeset(struct drm_device *dev) > { > - return dev->mode_config.funcs->atomic_commit != NULL; > -} > - > -#define DRM_SWITCH_POWER_ON 0 > -#define DRM_SWITCH_POWER_OFF 1 > -#define DRM_SWITCH_POWER_CHANGING 2 > -#define DRM_SWITCH_POWER_DYNAMIC_OFF 3 > - > -static inline bool drm_core_check_feature(struct drm_device *dev, int feature) > -{ > - return dev->driver->driver_features & feature; > + return drm_core_check_feature(dev, DRIVER_ATOMIC) || > + dev->mode_config.funcs->atomic_commit != NULL; > } > > /* returns true if currently okay to sleep */ > -- > 2.18.0.rc2 > > _______________________________________________ > dri-devel mailing list > dri-devel@xxxxxxxxxxxxxxxxxxxxx > https://lists.freedesktop.org/mailman/listinfo/dri-devel -- Daniel Vetter Software Engineer, Intel Corporation http://blog.ffwll.ch _______________________________________________ dri-devel mailing list dri-devel@xxxxxxxxxxxxxxxxxxxxx https://lists.freedesktop.org/mailman/listinfo/dri-devel