[PATCH v2 2/8] drm/connector: Pass a drm_connector_state to ->atomic_commit()
Liviu Dudau
Liviu.Dudau at arm.com
Mon Jul 2 11:14:20 UTC 2018
On Mon, Jul 02, 2018 at 11:49:11AM +0200, Boris Brezillon wrote:
> On Mon, 2 Jul 2018 09:51:46 +0200
> Daniel Vetter <daniel at ffwll.ch> wrote:
>
> > On Fri, Jun 29, 2018 at 12:37:10PM +0100, Liviu Dudau wrote:
> > > On Fri, Jun 29, 2018 at 01:17:15PM +0200, Boris Brezillon wrote:
> > > > Other atomic hooks are passed state objects, let's change this one to
> > > > be consistent.
> > > >
> > > > Signed-off-by: Boris Brezillon <boris.brezillon at bootlin.com>
> > > > ---
> > > > drivers/gpu/drm/drm_atomic_helper.c | 2 +-
> > > > include/drm/drm_modeset_helper_vtables.h | 4 +++-
> > > > 2 files changed, 4 insertions(+), 2 deletions(-)
> > > >
> > > > diff --git a/drivers/gpu/drm/drm_atomic_helper.c b/drivers/gpu/drm/drm_atomic_helper.c
> > > > index 17baf5057132..69063bcf2334 100644
> > > > --- a/drivers/gpu/drm/drm_atomic_helper.c
> > > > +++ b/drivers/gpu/drm/drm_atomic_helper.c
> > > > @@ -1187,7 +1187,7 @@ static void drm_atomic_helper_commit_writebacks(struct drm_device *dev,
> > > >
> > > > if (new_conn_state->writeback_job && new_conn_state->writeback_job->fb) {
> > > > WARN_ON(connector->connector_type != DRM_MODE_CONNECTOR_WRITEBACK);
> > > > - funcs->atomic_commit(connector, new_conn_state->writeback_job);
> > > > + funcs->atomic_commit(connector, new_conn_state);
> > >
> > > Forgot to add: I think it is worth adding a check here that the hook has
> > > been implemented by the driver, AFAIK it is not a mandatory hook, even
> > > for writeback enabled drivers.
>
> I'm just curious, from where do you queue the writeback job if you don't
> have a connector->atomic_commit() hook implemented? AFAICT, the
> encoder->enable() method is only called when the encoder is being
> enabled, and not every time you update the FB_ID prop of the writeback
> connector. Am I missing something?
In malidp_drv.c:malidp_atomic_commit_tail() we call
malidp_mw_atomic_commit() after drm_atomic_helper_commit_planes(drm,
state, DRM_PLANE_COMMIT_ACTIVE_ONLY).
malidp_mw_atomic_commit() then checks the writeback job and if it has an
fb associated with it then it calls drm_writeback_queue_job() before
enabling the memwrite hardware bits.
You can see it all in action here:
https://github.com/ARM-software/linux/commit/f7a88ca52530958703bcfc30adc302841ac89989
Best regards,
Liviu
>
> >
> > Either way this should be documented in the hook (atm it says nothing
> > about whether it's mandatory/optional and for whom).
>
> I'm fine making this hook optional. I'll update the code and the doc in
> a separate commit.
--
====================
| I would like to |
| fix the world, |
| but they're not |
| giving me the |
\ source code! /
---------------
¯\_(ツ)_/¯
More information about the dri-devel
mailing list