[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <20170617073603.40564353@bbrezillon>
Date: Sat, 17 Jun 2017 07:36:03 +0200
From: Boris Brezillon <boris.brezillon@...e-electrons.com>
To: Peter Rosin <peda@...ntia.se>
Cc: linux-kernel@...r.kernel.org, David Airlie <airlied@...ux.ie>,
Daniel Vetter <daniel.vetter@...el.com>,
Jani Nikula <jani.nikula@...ux.intel.com>,
Sean Paul <seanpaul@...omium.org>,
dri-devel@...ts.freedesktop.org
Subject: Re: [RFC PATCH 1/3] atmel-hlcdc: add support for 8-bit color lookup
table mode
Le Sat, 17 Jun 2017 00:46:12 +0200,
Peter Rosin <peda@...ntia.se> a écrit :
> >>>> Hm, it's probably too late to do it here. Planes have already been
> >>>> enabled and the engine may have started to fetch data and do the
> >>>> composition. You could do that in ->update_plane() [1], and make it a
> >>>> per-plane thing.
> >>>>
> >>>> I'm not sure, but I think you can get the new crtc_state from
> >>>> plane->crtc->state in this context (state have already been swapped,
> >>>> and new state is being applied, which means relevant locks are held).
> >>>
> >>> Ok, I can move it there. My plan is to just copy the default .update_plane
> >>> function and insert
> >>>
> >>> if (crtc->state->color_mgmt_changed && crtc->state->gamma_lut) {
> >>> ...
> >>> }
> >>>
> >>> just before the drm_atomic_commit(state) call. Sounds ok?
> >>
> >> Why would you copy the default ->update_plane() when we already have
> >> our own ->atomic_update_plane() implementation [1]? Just put it there
> >> (before the atmel_hlcdc_layer_update_commit() call) and we should be
> >> good.
> >
> > Ahh, but you said ->update_plane() and I took that as .update_plane in
> > layer_plane_funcs, not ->atomic_update() in atmel_hlcdc_layer_plane_helper_funcs.
> >
> > Makes sense now, and much neater too.
>
> No, it doesn't make sense. There's no atmel_hlcdc_layer_update_commit call
> anywhere, and no such function. You seem to have some further changes that
> are not even in -next. Where am I getting those changes and why are they
> not upstream yet?
My bad, this part as been reworked in 4.12 and I was reading 4.11 code.
Indeed, atmel_hlcdc_layer_update_commit() no longer exists, but
atmel_hlcdc_plane_atomic_update() does.
Just add a function called atmel_hlcdc_plane_update_clut() in
atmel_hlcdc_plane.c and call it just after [1].
[1]http://elixir.free-electrons.com/linux/v4.12-rc5/source/drivers/gpu/drm/atmel-hlcdc/atmel_hlcdc_plane.c#L770
Powered by blists - more mailing lists