Re: [PATCH v5 5/8] drm/omap: Add global state as a private atomic object

From: Tomi Valkeinen
Date: Tue Oct 12 2021 - 09:38:41 EST


On 12/10/2021 16:23, Neil Armstrong wrote:

+    struct drm_private_obj glob_obj;
+
      struct drm_fb_helper *fbdev;
        struct workqueue_struct *wq;
@@ -88,5 +105,9 @@ struct omap_drm_private {
      void omap_debugfs_init(struct drm_minor *minor);
+struct omap_global_state *__must_check
+omap_get_global_state(struct drm_atomic_state *s);
+struct omap_global_state *
+omap_get_existing_global_state(struct omap_drm_private *priv);

These could also be separated by empty lines. At least to my eyes it gets confusing if those declarations are not separated.

Atomic states can be extremely confusing, and hard to track.
I checked and they do what they are documented for...

The omap_get_existing_global_state() is the most confusing since the result depends if
we are in an atomic transaction of not.

So here I was just talking about the cosmetics, how the lines above look like. I have trouble seeing where the function declaration starts and where it ends without looking closely, as both lines of the declaration start at the first column, and there are no empty lines between the declarations.

But now that you mention, yes, the states are confusing =). And this series is somewhat difficult. I think it's important for future maintainability to include explanations and comments in this series for the confusing parts (plane-overlay mapping and state handling, mostly).

Tomi