From: Ville Syrjälä <ville.syrj...@linux.intel.com>

v2: kstrdup() the name passed by the caller (Jani)

Signed-off-by: Ville Syrjälä <ville.syrjala at linux.intel.com>
---
 drivers/gpu/drm/drm_atomic.c        | 41 ++++++++++++++-------------
 drivers/gpu/drm/drm_atomic_helper.c | 56 +++++++++++++++++++------------------
 drivers/gpu/drm/drm_crtc.c          | 15 ++++++++--
 drivers/gpu/drm/drm_crtc_helper.c   | 24 ++++++++--------
 include/drm/drm_crtc.h              |  2 ++
 5 files changed, 77 insertions(+), 61 deletions(-)

diff --git a/drivers/gpu/drm/drm_atomic.c b/drivers/gpu/drm/drm_atomic.c
index 7bb3845..2944655 100644
--- a/drivers/gpu/drm/drm_atomic.c
+++ b/drivers/gpu/drm/drm_atomic.c
@@ -288,8 +288,8 @@ drm_atomic_get_crtc_state(struct drm_atomic_state *state,
        state->crtcs[index] = crtc;
        crtc_state->state = state;

-       DRM_DEBUG_ATOMIC("Added [CRTC:%d] %p state to %p\n",
-                        crtc->base.id, crtc_state, state);
+       DRM_DEBUG_ATOMIC("Added [CRTC:%d:%s] %p state to %p\n",
+                        crtc->base.id, crtc->name, crtc_state, state);

        return crtc_state;
 }
@@ -480,8 +480,8 @@ static int drm_atomic_crtc_check(struct drm_crtc *crtc,
         */

        if (state->active && !state->enable) {
-               DRM_DEBUG_ATOMIC("[CRTC:%d] active without enabled\n",
-                                crtc->base.id);
+               DRM_DEBUG_ATOMIC("[CRTC:%d:%s] active without enabled\n",
+                                crtc->base.id, crtc->name);
                return -EINVAL;
        }

@@ -490,15 +490,15 @@ static int drm_atomic_crtc_check(struct drm_crtc *crtc,
         * be able to trigger. */
        if (drm_core_check_feature(crtc->dev, DRIVER_ATOMIC) &&
            WARN_ON(state->enable && !state->mode_blob)) {
-               DRM_DEBUG_ATOMIC("[CRTC:%d] enabled without mode blob\n",
-                                crtc->base.id);
+               DRM_DEBUG_ATOMIC("[CRTC:%d:%s] enabled without mode blob\n",
+                                crtc->base.id, crtc->name);
                return -EINVAL;
        }

        if (drm_core_check_feature(crtc->dev, DRIVER_ATOMIC) &&
            WARN_ON(!state->enable && state->mode_blob)) {
-               DRM_DEBUG_ATOMIC("[CRTC:%d] disabled with mode blob\n",
-                                crtc->base.id);
+               DRM_DEBUG_ATOMIC("[CRTC:%d:%s] disabled with mode blob\n",
+                                crtc->base.id, crtc->name);
                return -EINVAL;
        }

@@ -980,8 +980,8 @@ drm_atomic_set_crtc_for_plane(struct drm_plane_state 
*plane_state,
        }

        if (crtc)
-               DRM_DEBUG_ATOMIC("Link plane state %p to [CRTC:%d]\n",
-                                plane_state, crtc->base.id);
+               DRM_DEBUG_ATOMIC("Link plane state %p to [CRTC:%d:%s]\n",
+                                plane_state, crtc->base.id, crtc->name);
        else
                DRM_DEBUG_ATOMIC("Link plane state %p to [NOCRTC]\n",
                                 plane_state);
@@ -1048,8 +1048,8 @@ drm_atomic_set_crtc_for_connector(struct 
drm_connector_state *conn_state,
        conn_state->crtc = crtc;

        if (crtc)
-               DRM_DEBUG_ATOMIC("Link connector state %p to [CRTC:%d]\n",
-                                conn_state, crtc->base.id);
+               DRM_DEBUG_ATOMIC("Link connector state %p to [CRTC:%d:%s]\n",
+                                conn_state, crtc->base.id, crtc->name);
        else
                DRM_DEBUG_ATOMIC("Link connector state %p to [NOCRTC]\n",
                                 conn_state);
@@ -1088,8 +1088,8 @@ drm_atomic_add_affected_connectors(struct 
drm_atomic_state *state,
        if (ret)
                return ret;

-       DRM_DEBUG_ATOMIC("Adding all current connectors for [CRTC:%d] to %p\n",
-                        crtc->base.id, state);
+       DRM_DEBUG_ATOMIC("Adding all current connectors for [CRTC:%d:%s] to 
%p\n",
+                        crtc->base.id, crtc->name, state);

        /*
         * Changed connectors are already in @state, so only need to look at the
@@ -1169,8 +1169,9 @@ drm_atomic_connectors_for_crtc(struct drm_atomic_state 
*state,
                        num_connected_connectors++;
        }

-       DRM_DEBUG_ATOMIC("State %p has %i connectors for [CRTC:%d]\n",
-                        state, num_connected_connectors, crtc->base.id);
+       DRM_DEBUG_ATOMIC("State %p has %i connectors for [CRTC:%d:%s]\n",
+                        state, num_connected_connectors,
+                        crtc->base.id, crtc->name);

        return num_connected_connectors;
 }
@@ -1237,8 +1238,8 @@ int drm_atomic_check_only(struct drm_atomic_state *state)
        for_each_crtc_in_state(state, crtc, crtc_state, i) {
                ret = drm_atomic_crtc_check(crtc, crtc_state);
                if (ret) {
-                       DRM_DEBUG_ATOMIC("[CRTC:%d] atomic core check failed\n",
-                                        crtc->base.id);
+                       DRM_DEBUG_ATOMIC("[CRTC:%d:%s] atomic core check 
failed\n",
+                                        crtc->base.id, crtc->name);
                        return ret;
                }
        }
@@ -1249,8 +1250,8 @@ int drm_atomic_check_only(struct drm_atomic_state *state)
        if (!state->allow_modeset) {
                for_each_crtc_in_state(state, crtc, crtc_state, i) {
                        if (drm_atomic_crtc_needs_modeset(crtc_state)) {
-                               DRM_DEBUG_ATOMIC("[CRTC:%d] requires full 
modeset\n",
-                                                crtc->base.id);
+                               DRM_DEBUG_ATOMIC("[CRTC:%d:%s] requires full 
modeset\n",
+                                                crtc->base.id, crtc->name);
                                return -EINVAL;
                        }
                }
diff --git a/drivers/gpu/drm/drm_atomic_helper.c 
b/drivers/gpu/drm/drm_atomic_helper.c
index 0c6f621..fc90af50 100644
--- a/drivers/gpu/drm/drm_atomic_helper.c
+++ b/drivers/gpu/drm/drm_atomic_helper.c
@@ -116,9 +116,9 @@ steal_encoder(struct drm_atomic_state *state,
         */
        WARN_ON(!drm_modeset_is_locked(&config->connection_mutex));

-       DRM_DEBUG_ATOMIC("[ENCODER:%d:%s] in use on [CRTC:%d], stealing it\n",
+       DRM_DEBUG_ATOMIC("[ENCODER:%d:%s] in use on [CRTC:%d:%s], stealing 
it\n",
                         encoder->base.id, encoder->name,
-                        encoder_crtc->base.id);
+                        encoder_crtc->base.id, encoder_crtc->name);

        crtc_state = drm_atomic_get_crtc_state(state, encoder_crtc);
        if (IS_ERR(crtc_state))
@@ -211,12 +211,13 @@ update_connector_routing(struct drm_atomic_state *state, 
int conn_idx)
        }

        if (new_encoder == connector_state->best_encoder) {
-               DRM_DEBUG_ATOMIC("[CONNECTOR:%d:%s] keeps [ENCODER:%d:%s], now 
on [CRTC:%d]\n",
+               DRM_DEBUG_ATOMIC("[CONNECTOR:%d:%s] keeps [ENCODER:%d:%s], now 
on [CRTC:%d:%s]\n",
                                 connector->base.id,
                                 connector->name,
                                 new_encoder->base.id,
                                 new_encoder->name,
-                                connector_state->crtc->base.id);
+                                connector_state->crtc->base.id,
+                                connector_state->crtc->name);

                return 0;
        }
@@ -243,12 +244,13 @@ update_connector_routing(struct drm_atomic_state *state, 
int conn_idx)
        crtc_state = state->crtc_states[idx];
        crtc_state->connectors_changed = true;

-       DRM_DEBUG_ATOMIC("[CONNECTOR:%d:%s] using [ENCODER:%d:%s] on 
[CRTC:%d]\n",
+       DRM_DEBUG_ATOMIC("[CONNECTOR:%d:%s] using [ENCODER:%d:%s] on 
[CRTC:%d:%s]\n",
                         connector->base.id,
                         connector->name,
                         new_encoder->base.id,
                         new_encoder->name,
-                        connector_state->crtc->base.id);
+                        connector_state->crtc->base.id,
+                        connector_state->crtc->name);

        return 0;
 }
@@ -332,8 +334,8 @@ mode_fixup(struct drm_atomic_state *state)
                ret = funcs->mode_fixup(crtc, &crtc_state->mode,
                                        &crtc_state->adjusted_mode);
                if (!ret) {
-                       DRM_DEBUG_ATOMIC("[CRTC:%d] fixup failed\n",
-                                        crtc->base.id);
+                       DRM_DEBUG_ATOMIC("[CRTC:%d:%s] fixup failed\n",
+                                        crtc->base.id, crtc->name);
                        return -EINVAL;
                }
        }
@@ -380,14 +382,14 @@ drm_atomic_helper_check_modeset(struct drm_device *dev,

        for_each_crtc_in_state(state, crtc, crtc_state, i) {
                if (!drm_mode_equal(&crtc->state->mode, &crtc_state->mode)) {
-                       DRM_DEBUG_ATOMIC("[CRTC:%d] mode changed\n",
-                                        crtc->base.id);
+                       DRM_DEBUG_ATOMIC("[CRTC:%d:%s] mode changed\n",
+                                        crtc->base.id, crtc->name);
                        crtc_state->mode_changed = true;
                }

                if (crtc->state->enable != crtc_state->enable) {
-                       DRM_DEBUG_ATOMIC("[CRTC:%d] enable changed\n",
-                                        crtc->base.id);
+                       DRM_DEBUG_ATOMIC("[CRTC:%d:%s] enable changed\n",
+                                        crtc->base.id, crtc->name);

                        /*
                         * For clarity this assignment is done here, but
@@ -428,18 +430,18 @@ drm_atomic_helper_check_modeset(struct drm_device *dev,
                 * a full modeset because update_connector_routing force that.
                 */
                if (crtc->state->active != crtc_state->active) {
-                       DRM_DEBUG_ATOMIC("[CRTC:%d] active changed\n",
-                                        crtc->base.id);
+                       DRM_DEBUG_ATOMIC("[CRTC:%d:%s] active changed\n",
+                                        crtc->base.id, crtc->name);
                        crtc_state->active_changed = true;
                }

                if (!drm_atomic_crtc_needs_modeset(crtc_state))
                        continue;

-               DRM_DEBUG_ATOMIC("[CRTC:%d] needs all connectors, enable: %c, 
active: %c\n",
-                                crtc->base.id,
+               DRM_DEBUG_ATOMIC("[CRTC:%d:%s] needs all connectors, enable: 
%c, active: %c\n",
+                                crtc->base.id, crtc->name,
                                 crtc_state->enable ? 'y' : 'n',
-                             crtc_state->active ? 'y' : 'n');
+                                crtc_state->active ? 'y' : 'n');

                ret = drm_atomic_add_affected_connectors(state, crtc);
                if (ret != 0)
@@ -453,8 +455,8 @@ drm_atomic_helper_check_modeset(struct drm_device *dev,
                                                                crtc);

                if (crtc_state->enable != !!num_connectors) {
-                       DRM_DEBUG_ATOMIC("[CRTC:%d] enabled/connectors 
mismatch\n",
-                                        crtc->base.id);
+                       DRM_DEBUG_ATOMIC("[CRTC:%d:%s] enabled/connectors 
mismatch\n",
+                                        crtc->base.id, crtc->name);

                        return -EINVAL;
                }
@@ -517,8 +519,8 @@ drm_atomic_helper_check_planes(struct drm_device *dev,

                ret = funcs->atomic_check(crtc, state->crtc_states[i]);
                if (ret) {
-                       DRM_DEBUG_ATOMIC("[CRTC:%d] atomic driver check 
failed\n",
-                                        crtc->base.id);
+                       DRM_DEBUG_ATOMIC("[CRTC:%d:%s] atomic driver check 
failed\n",
+                                        crtc->base.id, crtc->name);
                        return ret;
                }
        }
@@ -631,8 +633,8 @@ disable_outputs(struct drm_device *dev, struct 
drm_atomic_state *old_state)

                funcs = crtc->helper_private;

-               DRM_DEBUG_ATOMIC("disabling [CRTC:%d]\n",
-                                crtc->base.id);
+               DRM_DEBUG_ATOMIC("disabling [CRTC:%d:%s]\n",
+                                crtc->base.id, crtc->name);


                /* Right function depends upon target state. */
@@ -743,8 +745,8 @@ crtc_set_mode(struct drm_device *dev, struct 
drm_atomic_state *old_state)
                funcs = crtc->helper_private;

                if (crtc->state->enable && funcs->mode_set_nofb) {
-                       DRM_DEBUG_ATOMIC("modeset on [CRTC:%d]\n",
-                                        crtc->base.id);
+                       DRM_DEBUG_ATOMIC("modeset on [CRTC:%d:%s]\n",
+                                        crtc->base.id, crtc->name);

                        funcs->mode_set_nofb(crtc);
                }
@@ -843,8 +845,8 @@ void drm_atomic_helper_commit_modeset_enables(struct 
drm_device *dev,
                funcs = crtc->helper_private;

                if (crtc->state->enable) {
-                       DRM_DEBUG_ATOMIC("enabling [CRTC:%d]\n",
-                                        crtc->base.id);
+                       DRM_DEBUG_ATOMIC("enabling [CRTC:%d:%s]\n",
+                                        crtc->base.id, crtc->name);

                        if (funcs->enable)
                                funcs->enable(crtc);
diff --git a/drivers/gpu/drm/drm_crtc.c b/drivers/gpu/drm/drm_crtc.c
index be7647d..399ded5 100644
--- a/drivers/gpu/drm/drm_crtc.c
+++ b/drivers/gpu/drm/drm_crtc.c
@@ -678,10 +678,16 @@ int drm_crtc_init_with_planes(struct drm_device *dev, 
struct drm_crtc *crtc,
        crtc->dev = dev;
        crtc->funcs = funcs;

+       crtc->name = kstrdup(name, GFP_KERNEL);
+       if (!crtc->name)
+               return -ENOMEM;
+
        drm_modeset_lock_init(&crtc->mutex);
        ret = drm_mode_object_get(dev, &crtc->base, DRM_MODE_OBJECT_CRTC);
-       if (ret)
+       if (ret) {
+               kfree(crtc->name);
                return ret;
+       }

        crtc->base.properties = &crtc->properties;

@@ -729,6 +735,8 @@ void drm_crtc_cleanup(struct drm_crtc *crtc)
        if (crtc->state && crtc->funcs->atomic_destroy_state)
                crtc->funcs->atomic_destroy_state(crtc, crtc->state);

+       kfree(crtc->name);
+
        memset(crtc, 0, sizeof(*crtc));
 }
 EXPORT_SYMBOL(drm_crtc_cleanup);
@@ -1802,7 +1810,8 @@ int drm_mode_getresources(struct drm_device *dev, void 
*data,
                copied = 0;
                crtc_id = (uint32_t __user *)(unsigned 
long)card_res->crtc_id_ptr;
                drm_for_each_crtc(crtc, dev) {
-                       DRM_DEBUG_KMS("[CRTC:%d]\n", crtc->base.id);
+                       DRM_DEBUG_KMS("[CRTC:%d:%s]\n",
+                                     crtc->base.id, crtc->name);
                        if (put_user(crtc->base.id, crtc_id + copied)) {
                                ret = -EFAULT;
                                goto out;
@@ -2647,7 +2656,7 @@ int drm_mode_setcrtc(struct drm_device *dev, void *data,
                ret = -ENOENT;
                goto out;
        }
-       DRM_DEBUG_KMS("[CRTC:%d]\n", crtc->base.id);
+       DRM_DEBUG_KMS("[CRTC:%d:%s]\n", crtc->base.id, crtc->name);

        if (crtc_req->mode_valid) {
                /* If we have a mode we need a framebuffer. */
diff --git a/drivers/gpu/drm/drm_crtc_helper.c 
b/drivers/gpu/drm/drm_crtc_helper.c
index ef53475..302ee32 100644
--- a/drivers/gpu/drm/drm_crtc_helper.c
+++ b/drivers/gpu/drm/drm_crtc_helper.c
@@ -329,7 +329,7 @@ bool drm_crtc_helper_set_mode(struct drm_crtc *crtc,
                DRM_DEBUG_KMS("CRTC fixup failed\n");
                goto done;
        }
-       DRM_DEBUG_KMS("[CRTC:%d]\n", crtc->base.id);
+       DRM_DEBUG_KMS("[CRTC:%d:%s]\n", crtc->base.id, crtc->name);

        crtc->hwmode = *adjusted_mode;

@@ -484,11 +484,13 @@ int drm_crtc_helper_set_config(struct drm_mode_set *set)
                set->fb = NULL;

        if (set->fb) {
-               DRM_DEBUG_KMS("[CRTC:%d] [FB:%d] #connectors=%d (x y) (%i 
%i)\n",
-                               set->crtc->base.id, set->fb->base.id,
-                               (int)set->num_connectors, set->x, set->y);
+               DRM_DEBUG_KMS("[CRTC:%d:%s] [FB:%d] #connectors=%d (x y) (%i 
%i)\n",
+                             set->crtc->base.id, set->crtc->name,
+                             set->fb->base.id,
+                             (int)set->num_connectors, set->x, set->y);
        } else {
-               DRM_DEBUG_KMS("[CRTC:%d] [NOFB]\n", set->crtc->base.id);
+               DRM_DEBUG_KMS("[CRTC:%d:%s] [NOFB]\n",
+                             set->crtc->base.id, set->crtc->name);
                drm_crtc_helper_disable(set->crtc);
                return 0;
        }
@@ -628,12 +630,12 @@ int drm_crtc_helper_set_config(struct drm_mode_set *set)
                        connector->encoder->crtc = new_crtc;
                }
                if (new_crtc) {
-                       DRM_DEBUG_KMS("[CONNECTOR:%d:%s] to [CRTC:%d]\n",
-                               connector->base.id, connector->name,
-                               new_crtc->base.id);
+                       DRM_DEBUG_KMS("[CONNECTOR:%d:%s] to [CRTC:%d:%s]\n",
+                                     connector->base.id, connector->name,
+                                     new_crtc->base.id, new_crtc->name);
                } else {
                        DRM_DEBUG_KMS("[CONNECTOR:%d:%s] to [NOCRTC]\n",
-                               connector->base.id, connector->name);
+                                     connector->base.id, connector->name);
                }
        }

@@ -650,8 +652,8 @@ int drm_crtc_helper_set_config(struct drm_mode_set *set)
                        if (!drm_crtc_helper_set_mode(set->crtc, set->mode,
                                                      set->x, set->y,
                                                      save_set.fb)) {
-                               DRM_ERROR("failed to set mode on [CRTC:%d]\n",
-                                         set->crtc->base.id);
+                               DRM_ERROR("failed to set mode on 
[CRTC:%d:%s]\n",
+                                         set->crtc->base.id, set->crtc->name);
                                set->crtc->primary->fb = save_set.fb;
                                ret = -EINVAL;
                                goto fail;
diff --git a/include/drm/drm_crtc.h b/include/drm/drm_crtc.h
index b087040..4d47a73 100644
--- a/include/drm/drm_crtc.h
+++ b/include/drm/drm_crtc.h
@@ -426,6 +426,8 @@ struct drm_crtc {
        struct device_node *port;
        struct list_head head;

+       char *name;
+
        /*
         * crtc mutex
         *
-- 
2.4.10

Reply via email to