[PATCH weston 01/15] libweston: improve weston_output_disable() comments

Armin Krezović krezovic.armin at gmail.com
Tue Apr 4 19:22:55 UTC 2017


On 04.04.2017 12:58, Pekka Paalanen wrote:
> From: Pekka Paalanen <pekka.paalanen at collabora.co.uk>
> 
> Reorder some paragraphs to be more logically ordered. Rewrite the
> description of the backend-specific disable function to explain the
> semantics instead of the mechanics. Remove the paragraph about
> pending_output_list as unnecessary details.
> 
> Add a big fat comment on why we call output->disable() always instead of
> only for actually enabled outputs.
> 

Might also note that it's only relevant to drm-backend at the moment.

> Signed-off-by: Pekka Paalanen <pekka.paalanen at collabora.co.uk>

Nevertheless,

Reviewed-by: Armin Krezović <krezovic.armin at gmail.com>

> ---
>  libweston/compositor.c | 32 +++++++++++++++++---------------
>  1 file changed, 17 insertions(+), 15 deletions(-)
> 
> diff --git a/libweston/compositor.c b/libweston/compositor.c
> index 048b195..2bca19c 100644
> --- a/libweston/compositor.c
> +++ b/libweston/compositor.c
> @@ -4764,28 +4764,22 @@ weston_output_enable(struct weston_output *output)
>   *
>   * \param output The weston_output object that needs to be disabled.
>   *
> - * See weston_output_init() for more information on the
> - * state output is returned to.
> - *
>   * Calls a backend specific function to disable an output, in case
>   * such function exists.
>   *
> - * If the output is being used by the compositor, it is first removed
> + * The backend specific disable function may choose to postpone the disabling
> + * by returning a negative value, in which case this function returns early.
> + * In that case the backend will guarantee the output will be disabled soon
> + * by the backend calling this function again. One must not attempt to re-enable
> + * the output until that happens.
> + *
> + * Otherwise, if the output is being used by the compositor, it is removed
>   * from weston's output_list (see weston_compositor_remove_output())
>   * and is returned to a state it was before weston_output_enable()
>   * was ran (see weston_output_enable_undo()).
>   *
> - * Output is added to pending_output_list so it will get destroyed
> - * if the output does not get configured again when the compositor
> - * shuts down. If an output is to be used immediately, it needs to
> - * be manually removed from the list (the compositor specific functions
> - * for handling pending outputs will take care of that).
> - *
> - * If backend specific disable function returns negative value,
> - * this function will return too. It can be used as an indicator
> - * that output cannot be disabled at the present time. In that case
> - * backend needs to make sure the output is disabled when it is
> - * possible.
> + * See weston_output_init() for more information on the
> + * state output is returned to.
>   */
>  WL_EXPORT void
>  weston_output_disable(struct weston_output *output)
> @@ -4795,6 +4789,14 @@ weston_output_disable(struct weston_output *output)
>  	/* Should we rename this? */
>  	output->destroying = 1;
>  
> +	/* Disable is called unconditionally also for not-enabled outputs,
> +	 * because at compositor start-up, if there is an output that is
> +	 * already on but the compositor wants to turn it off, we have to
> +	 * forward the turn-off to the backend so it knows to do it.
> +	 * The backend cannot initially turn off everything, because it
> +	 * would cause unnecessary mode-sets for all outputs the compositor
> +	 * wants to be on.
> +	 */
>  	if (output->disable(output) < 0)
>  		return;
>  
> 


-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 870 bytes
Desc: OpenPGP digital signature
URL: <https://lists.freedesktop.org/archives/wayland-devel/attachments/20170404/aa68b076/attachment-0001.sig>


More information about the wayland-devel mailing list