Calling drm_atomic_helper_check_modeset() after drm_atomic_helper_check_planes()

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Hi,
The documentation of drm_atomic_helper_check_modeset() says:

"Drivers which update ->mode_changed (e.g. in their ->atomic_check hooks
if a plane update can't be done without a full modeset) _must_ call this
function afterwards after that change. It is permitted to call this
function multiple times for the same update, e.g. when the
->atomic_check functions depend upon the adjusted dotclock for fifo
space allocation and watermark computation."

Then drm_crtc_helper_funcs mode_fixup() callback documentations says:

"Atomic drivers which need to inspect and adjust more state should
instead use the @atomic_check callback."

Now an atomic driver that needs to do the both in the check phase:
update ->mode_changed and inspect and adjust the mode, is in trouble.
This is because any adjusted_mode modifications are reset by the
afterwards call of drm_atomic_helper_check_modeset().

I can get the atomic tilcdc driver working either: by using the
crtc_helper mode_fixup() calback, tuning the mode once more in
mode_set_nofb(), or calling drm_atomic_helper_check_modeset() last in
drm_mode_config_funcs atomic_check() callback.

What is the right thing to do? Any of these three approaches (and
possibly updating the documentation), or some other option that I did
not think of?

Best regards,
Jyri
_______________________________________________
dri-devel mailing list
dri-devel@xxxxxxxxxxxxxxxxxxxxx
https://lists.freedesktop.org/mailman/listinfo/dri-devel




[Index of Archives]     [Linux DRI Users]     [Linux Intel Graphics]     [Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]     [XFree86]     [Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Linux Kernel]     [Linux SCSI]     [XFree86]
  Powered by Linux