On Thu, Jan 22, 2015 at 04:53:12PM -0800, Matt Roper wrote: > We don't have full atomic modeset support yet, but the "nuclear > pageflip" subset of functionality (i.e., plane operations only) should > be ready. Allow the user to force atomic on for debug purposes, or for > fixed-purpose embedded devices that will only use atomic for plane > updates. > > The term 'nuclear' is used here instead of 'atomic' to make it clear > that this doesn't allow full atomic modeset support, just a (very > useful) subset of the atomic functionality. > > We'll drop the kernel parameter and unconditionally enable atomic in a > future patch once all of the necessary pieces are in. > > v2: > - Use module_param_named_unsafe() (Daniel) > - Simplify comment on DRIVER_ATOMIC guard (Daniel) > > v3: > - Make the parameter "nuclear_pageflip" rather than just "nuclear" > for clarity. (Ander) > > v4: > - Make the internal variable "nuclear_pageflip" as well as the > command-line option. (Ander) > > Signed-off-by: Matt Roper <matthew.d.roper@xxxxxxxxx> > Reviewed-by: Ander Conselvan de Oliveira <conselvan2@xxxxxxxxx> Pulled in the entire series, thanks for patches&review. -Daniel > --- > drivers/gpu/drm/i915/i915_drv.c | 8 ++++++++ > drivers/gpu/drm/i915/i915_drv.h | 1 + > drivers/gpu/drm/i915/i915_params.c | 5 +++++ > 3 files changed, 14 insertions(+) > > diff --git a/drivers/gpu/drm/i915/i915_drv.c b/drivers/gpu/drm/i915/i915_drv.c > index 66c72bd..2a96656 100644 > --- a/drivers/gpu/drm/i915/i915_drv.c > +++ b/drivers/gpu/drm/i915/i915_drv.c > @@ -1637,6 +1637,14 @@ static int __init i915_init(void) > #endif > } > > + /* > + * FIXME: Note that we're lying to the DRM core here so that we can get access > + * to the atomic ioctl and the atomic properties. Only plane operations on > + * a single CRTC will actually work. > + */ > + if (i915.nuclear_pageflip) > + driver.driver_features |= DRIVER_ATOMIC; > + > return drm_pci_init(&driver, &i915_pci_driver); > } > > diff --git a/drivers/gpu/drm/i915/i915_drv.h b/drivers/gpu/drm/i915/i915_drv.h > index 0d67b17..6a808a6 100644 > --- a/drivers/gpu/drm/i915/i915_drv.h > +++ b/drivers/gpu/drm/i915/i915_drv.h > @@ -2526,6 +2526,7 @@ struct i915_params { > int use_mmio_flip; > bool mmio_debug; > bool verbose_state_checks; > + bool nuclear_pageflip; > }; > extern struct i915_params i915 __read_mostly; > > diff --git a/drivers/gpu/drm/i915/i915_params.c b/drivers/gpu/drm/i915/i915_params.c > index 07252d8..44f2262 100644 > --- a/drivers/gpu/drm/i915/i915_params.c > +++ b/drivers/gpu/drm/i915/i915_params.c > @@ -52,6 +52,7 @@ struct i915_params i915 __read_mostly = { > .use_mmio_flip = 0, > .mmio_debug = 0, > .verbose_state_checks = 1, > + .nuclear_pageflip = 0, > }; > > module_param_named(modeset, i915.modeset, int, 0400); > @@ -178,3 +179,7 @@ MODULE_PARM_DESC(mmio_debug, > module_param_named(verbose_state_checks, i915.verbose_state_checks, bool, 0600); > MODULE_PARM_DESC(verbose_state_checks, > "Enable verbose logs (ie. WARN_ON()) in case of unexpected hw state conditions."); > + > +module_param_named_unsafe(nuclear_pageflip, i915.nuclear_pageflip, bool, 0600); > +MODULE_PARM_DESC(nuclear_pageflip, > + "Force atomic modeset functionality; only planes work for now (default: false)."); > -- > 1.8.5.1 > > _______________________________________________ > Intel-gfx mailing list > Intel-gfx@xxxxxxxxxxxxxxxxxxxxx > http://lists.freedesktop.org/mailman/listinfo/intel-gfx -- Daniel Vetter Software Engineer, Intel Corporation +41 (0) 79 365 57 48 - http://blog.ffwll.ch _______________________________________________ Intel-gfx mailing list Intel-gfx@xxxxxxxxxxxxxxxxxxxxx http://lists.freedesktop.org/mailman/listinfo/intel-gfx