All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH 1/8] drm/print: introduce new struct drm_device based logging macros
@ 2019-12-10 12:30 ` Jani Nikula
  0 siblings, 0 replies; 53+ messages in thread
From: Jani Nikula @ 2019-12-10 12:30 UTC (permalink / raw)
  To: dri-devel; +Cc: jani.nikula, Sam Ravnborg, intel-gfx, Rodrigo Vivi, Sean Paul

Add new struct drm_device based logging macros modeled after the core
kernel device based logging macros. These would be preferred over the
drm printk and struct device based macros in drm code, where possible.

We have existing drm specific struct device based logging functions, but
they are too verbose to use for two main reasons:

 * The names are unnecessarily long, for example DRM_DEV_DEBUG_KMS().

 * The use of struct device over struct drm_device is too generic for
   most users, leading to an extra dereference.

For example:

	DRM_DEV_DEBUG_KMS(drm->dev, "Hello, world\n");

vs.

	drm_dbg_kms(drm, "Hello, world\n");

It's a matter of taste, but the SHOUTING UPPERCASE has been argued to be
less readable than lowercase.

Some names are changed from old DRM names to be based on the core kernel
logging functions. For example, NOTE -> notice, ERROR -> err, DEBUG ->
dbg.

Due to the conflation of DRM_DEBUG and DRM_DEBUG_DRIVER macro use
(DRM_DEBUG is used widely in drivers though it's supposed to be a core
debugging category), they are named as drm_dbg_core and drm_dbg,
respectively.

The drm_err and _once/_ratelimited variants no longer include the
function name in order to be able to use the core device based logging
macros. Arguably this is not a significant change; error messages should
not be so common to be only distinguishable by the function name.

Ratelimited debug logging macros are to be added later.

Cc: Sam Ravnborg <sam@ravnborg.org>
Acked-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
Reviewed-by: Rodrigo Vivi <rodrigo.vivi@intel.com>
Acked-by: Sean Paul <sean@poorly.run>
Signed-off-by: Jani Nikula <jani.nikula@intel.com>

---

With something like this, I think i915 could start migrating to
drm_device based logging. I have a hard time convincing myself or anyone
about migrating to the DRM_DEV_* variants.
---
 include/drm/drm_print.h | 65 +++++++++++++++++++++++++++++++++++++++++
 1 file changed, 65 insertions(+)

diff --git a/include/drm/drm_print.h b/include/drm/drm_print.h
index 085a9685270c..8f99d389792d 100644
--- a/include/drm/drm_print.h
+++ b/include/drm/drm_print.h
@@ -322,6 +322,8 @@ static inline bool drm_debug_enabled(enum drm_debug_category category)
 
 /*
  * struct device based logging
+ *
+ * Prefer drm_device based logging over device or prink based logging.
  */
 
 __printf(3, 4)
@@ -417,8 +419,71 @@ void drm_dev_dbg(const struct device *dev, enum drm_debug_category category,
 	_DRM_DEV_DEFINE_DEBUG_RATELIMITED(dev, DRM_UT_PRIME,		\
 					  fmt, ##__VA_ARGS__)
 
+/*
+ * struct drm_device based logging
+ *
+ * Prefer drm_device based logging over device or prink based logging.
+ */
+
+/* Helper for struct drm_device based logging. */
+#define __drm_printk(drm, level, type, fmt, ...)			\
+	dev_##level##type((drm)->dev, "[drm] " fmt, ##__VA_ARGS__)
+
+
+#define drm_info(drm, fmt, ...)					\
+	__drm_printk((drm), info,, fmt, ##__VA_ARGS__)
+
+#define drm_notice(drm, fmt, ...)				\
+	__drm_printk((drm), notice,, fmt, ##__VA_ARGS__)
+
+#define drm_warn(drm, fmt, ...)					\
+	__drm_printk((drm), warn,, fmt, ##__VA_ARGS__)
+
+#define drm_err(drm, fmt, ...)					\
+	__drm_printk((drm), err,, "*ERROR* " fmt, ##__VA_ARGS__)
+
+
+#define drm_info_once(drm, fmt, ...)				\
+	__drm_printk((drm), info, _once, fmt, ##__VA_ARGS__)
+
+#define drm_notice_once(drm, fmt, ...)				\
+	__drm_printk((drm), notice, _once, fmt, ##__VA_ARGS__)
+
+#define drm_warn_once(drm, fmt, ...)				\
+	__drm_printk((drm), warn, _once, fmt, ##__VA_ARGS__)
+
+#define drm_err_once(drm, fmt, ...)				\
+	__drm_printk((drm), err, _once, "*ERROR* " fmt, ##__VA_ARGS__)
+
+
+#define drm_err_ratelimited(drm, fmt, ...)				\
+	__drm_printk((drm), err, _ratelimited, "*ERROR* " fmt, ##__VA_ARGS__)
+
+
+#define drm_dbg_core(drm, fmt, ...)					\
+	drm_dev_dbg((drm)->dev, DRM_UT_CORE, fmt, ##__VA_ARGS__)
+#define drm_dbg(drm, fmt, ...)						\
+	drm_dev_dbg((drm)->dev, DRM_UT_DRIVER, fmt, ##__VA_ARGS__)
+#define drm_dbg_kms(drm, fmt, ...)					\
+	drm_dev_dbg((drm)->dev, DRM_UT_KMS, fmt, ##__VA_ARGS__)
+#define drm_dbg_prime(drm, fmt, ...)					\
+	drm_dev_dbg((drm)->dev, DRM_UT_PRIME, fmt, ##__VA_ARGS__)
+#define drm_dbg_atomic(drm, fmt, ...)					\
+	drm_dev_dbg((drm)->dev, DRM_UT_ATOMIC, fmt, ##__VA_ARGS__)
+#define drm_dbg_vbl(drm, fmt, ...)					\
+	drm_dev_dbg((drm)->dev, DRM_UT_VBL, fmt, ##__VA_ARGS__)
+#define drm_dbg_state(drm, fmt, ...)					\
+	drm_dev_dbg((drm)->dev, DRM_UT_STATE, fmt, ##__VA_ARGS__)
+#define drm_dbg_lease(drm, fmt, ...)					\
+	drm_dev_dbg((drm)->dev, DRM_UT_LEASE, fmt, ##__VA_ARGS__)
+#define drm_dbg_dp(drm, fmt, ...)					\
+	drm_dev_dbg((drm)->dev, DRM_UT_DP, fmt, ##__VA_ARGS__)
+
+
 /*
  * printk based logging
+ *
+ * Prefer drm_device based logging over device or prink based logging.
  */
 
 __printf(2, 3)
-- 
2.20.1

_______________________________________________
dri-devel mailing list
dri-devel@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/dri-devel

^ permalink raw reply related	[flat|nested] 53+ messages in thread

* [Intel-gfx] [PATCH 1/8] drm/print: introduce new struct drm_device based logging macros
@ 2019-12-10 12:30 ` Jani Nikula
  0 siblings, 0 replies; 53+ messages in thread
From: Jani Nikula @ 2019-12-10 12:30 UTC (permalink / raw)
  To: dri-devel; +Cc: jani.nikula, Sam Ravnborg, intel-gfx

Add new struct drm_device based logging macros modeled after the core
kernel device based logging macros. These would be preferred over the
drm printk and struct device based macros in drm code, where possible.

We have existing drm specific struct device based logging functions, but
they are too verbose to use for two main reasons:

 * The names are unnecessarily long, for example DRM_DEV_DEBUG_KMS().

 * The use of struct device over struct drm_device is too generic for
   most users, leading to an extra dereference.

For example:

	DRM_DEV_DEBUG_KMS(drm->dev, "Hello, world\n");

vs.

	drm_dbg_kms(drm, "Hello, world\n");

It's a matter of taste, but the SHOUTING UPPERCASE has been argued to be
less readable than lowercase.

Some names are changed from old DRM names to be based on the core kernel
logging functions. For example, NOTE -> notice, ERROR -> err, DEBUG ->
dbg.

Due to the conflation of DRM_DEBUG and DRM_DEBUG_DRIVER macro use
(DRM_DEBUG is used widely in drivers though it's supposed to be a core
debugging category), they are named as drm_dbg_core and drm_dbg,
respectively.

The drm_err and _once/_ratelimited variants no longer include the
function name in order to be able to use the core device based logging
macros. Arguably this is not a significant change; error messages should
not be so common to be only distinguishable by the function name.

Ratelimited debug logging macros are to be added later.

Cc: Sam Ravnborg <sam@ravnborg.org>
Acked-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
Reviewed-by: Rodrigo Vivi <rodrigo.vivi@intel.com>
Acked-by: Sean Paul <sean@poorly.run>
Signed-off-by: Jani Nikula <jani.nikula@intel.com>

---

With something like this, I think i915 could start migrating to
drm_device based logging. I have a hard time convincing myself or anyone
about migrating to the DRM_DEV_* variants.
---
 include/drm/drm_print.h | 65 +++++++++++++++++++++++++++++++++++++++++
 1 file changed, 65 insertions(+)

diff --git a/include/drm/drm_print.h b/include/drm/drm_print.h
index 085a9685270c..8f99d389792d 100644
--- a/include/drm/drm_print.h
+++ b/include/drm/drm_print.h
@@ -322,6 +322,8 @@ static inline bool drm_debug_enabled(enum drm_debug_category category)
 
 /*
  * struct device based logging
+ *
+ * Prefer drm_device based logging over device or prink based logging.
  */
 
 __printf(3, 4)
@@ -417,8 +419,71 @@ void drm_dev_dbg(const struct device *dev, enum drm_debug_category category,
 	_DRM_DEV_DEFINE_DEBUG_RATELIMITED(dev, DRM_UT_PRIME,		\
 					  fmt, ##__VA_ARGS__)
 
+/*
+ * struct drm_device based logging
+ *
+ * Prefer drm_device based logging over device or prink based logging.
+ */
+
+/* Helper for struct drm_device based logging. */
+#define __drm_printk(drm, level, type, fmt, ...)			\
+	dev_##level##type((drm)->dev, "[drm] " fmt, ##__VA_ARGS__)
+
+
+#define drm_info(drm, fmt, ...)					\
+	__drm_printk((drm), info,, fmt, ##__VA_ARGS__)
+
+#define drm_notice(drm, fmt, ...)				\
+	__drm_printk((drm), notice,, fmt, ##__VA_ARGS__)
+
+#define drm_warn(drm, fmt, ...)					\
+	__drm_printk((drm), warn,, fmt, ##__VA_ARGS__)
+
+#define drm_err(drm, fmt, ...)					\
+	__drm_printk((drm), err,, "*ERROR* " fmt, ##__VA_ARGS__)
+
+
+#define drm_info_once(drm, fmt, ...)				\
+	__drm_printk((drm), info, _once, fmt, ##__VA_ARGS__)
+
+#define drm_notice_once(drm, fmt, ...)				\
+	__drm_printk((drm), notice, _once, fmt, ##__VA_ARGS__)
+
+#define drm_warn_once(drm, fmt, ...)				\
+	__drm_printk((drm), warn, _once, fmt, ##__VA_ARGS__)
+
+#define drm_err_once(drm, fmt, ...)				\
+	__drm_printk((drm), err, _once, "*ERROR* " fmt, ##__VA_ARGS__)
+
+
+#define drm_err_ratelimited(drm, fmt, ...)				\
+	__drm_printk((drm), err, _ratelimited, "*ERROR* " fmt, ##__VA_ARGS__)
+
+
+#define drm_dbg_core(drm, fmt, ...)					\
+	drm_dev_dbg((drm)->dev, DRM_UT_CORE, fmt, ##__VA_ARGS__)
+#define drm_dbg(drm, fmt, ...)						\
+	drm_dev_dbg((drm)->dev, DRM_UT_DRIVER, fmt, ##__VA_ARGS__)
+#define drm_dbg_kms(drm, fmt, ...)					\
+	drm_dev_dbg((drm)->dev, DRM_UT_KMS, fmt, ##__VA_ARGS__)
+#define drm_dbg_prime(drm, fmt, ...)					\
+	drm_dev_dbg((drm)->dev, DRM_UT_PRIME, fmt, ##__VA_ARGS__)
+#define drm_dbg_atomic(drm, fmt, ...)					\
+	drm_dev_dbg((drm)->dev, DRM_UT_ATOMIC, fmt, ##__VA_ARGS__)
+#define drm_dbg_vbl(drm, fmt, ...)					\
+	drm_dev_dbg((drm)->dev, DRM_UT_VBL, fmt, ##__VA_ARGS__)
+#define drm_dbg_state(drm, fmt, ...)					\
+	drm_dev_dbg((drm)->dev, DRM_UT_STATE, fmt, ##__VA_ARGS__)
+#define drm_dbg_lease(drm, fmt, ...)					\
+	drm_dev_dbg((drm)->dev, DRM_UT_LEASE, fmt, ##__VA_ARGS__)
+#define drm_dbg_dp(drm, fmt, ...)					\
+	drm_dev_dbg((drm)->dev, DRM_UT_DP, fmt, ##__VA_ARGS__)
+
+
 /*
  * printk based logging
+ *
+ * Prefer drm_device based logging over device or prink based logging.
  */
 
 __printf(2, 3)
-- 
2.20.1

_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx

^ permalink raw reply related	[flat|nested] 53+ messages in thread

* [PATCH 2/8] drm/client: convert to drm device based logging
  2019-12-10 12:30 ` [Intel-gfx] " Jani Nikula
@ 2019-12-10 12:30   ` Jani Nikula
  -1 siblings, 0 replies; 53+ messages in thread
From: Jani Nikula @ 2019-12-10 12:30 UTC (permalink / raw)
  To: dri-devel; +Cc: jani.nikula, intel-gfx

Prefer drm_dbg_kms() and drm_err() over DRM_DEV_DEBUG_KMS() and
DRM_DEV_ERROR().

Signed-off-by: Jani Nikula <jani.nikula@intel.com>
---
 drivers/gpu/drm/drm_client.c | 10 +++++-----
 1 file changed, 5 insertions(+), 5 deletions(-)

diff --git a/drivers/gpu/drm/drm_client.c b/drivers/gpu/drm/drm_client.c
index d9a2e3695525..b031b45aa8ef 100644
--- a/drivers/gpu/drm/drm_client.c
+++ b/drivers/gpu/drm/drm_client.c
@@ -150,7 +150,7 @@ void drm_client_release(struct drm_client_dev *client)
 {
 	struct drm_device *dev = client->dev;
 
-	DRM_DEV_DEBUG_KMS(dev->dev, "%s\n", client->name);
+	drm_dbg_kms(dev, "%s\n", client->name);
 
 	drm_client_modeset_free(client);
 	drm_client_close(client);
@@ -203,7 +203,7 @@ void drm_client_dev_hotplug(struct drm_device *dev)
 			continue;
 
 		ret = client->funcs->hotplug(client);
-		DRM_DEV_DEBUG_KMS(dev->dev, "%s: ret=%d\n", client->name, ret);
+		drm_dbg_kms(dev, "%s: ret=%d\n", client->name, ret);
 	}
 	mutex_unlock(&dev->clientlist_mutex);
 }
@@ -223,7 +223,7 @@ void drm_client_dev_restore(struct drm_device *dev)
 			continue;
 
 		ret = client->funcs->restore(client);
-		DRM_DEV_DEBUG_KMS(dev->dev, "%s: ret=%d\n", client->name, ret);
+		drm_dbg_kms(dev, "%s: ret=%d\n", client->name, ret);
 		if (!ret) /* The first one to return zero gets the privilege to restore */
 			break;
 	}
@@ -351,8 +351,8 @@ static void drm_client_buffer_rmfb(struct drm_client_buffer *buffer)
 
 	ret = drm_mode_rmfb(buffer->client->dev, buffer->fb->base.id, buffer->client->file);
 	if (ret)
-		DRM_DEV_ERROR(buffer->client->dev->dev,
-			      "Error removing FB:%u (%d)\n", buffer->fb->base.id, ret);
+		drm_err(buffer->client->dev,
+			"Error removing FB:%u (%d)\n", buffer->fb->base.id, ret);
 
 	buffer->fb = NULL;
 }
-- 
2.20.1

_______________________________________________
dri-devel mailing list
dri-devel@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/dri-devel

^ permalink raw reply related	[flat|nested] 53+ messages in thread

* [Intel-gfx] [PATCH 2/8] drm/client: convert to drm device based logging
@ 2019-12-10 12:30   ` Jani Nikula
  0 siblings, 0 replies; 53+ messages in thread
From: Jani Nikula @ 2019-12-10 12:30 UTC (permalink / raw)
  To: dri-devel; +Cc: jani.nikula, intel-gfx

Prefer drm_dbg_kms() and drm_err() over DRM_DEV_DEBUG_KMS() and
DRM_DEV_ERROR().

Signed-off-by: Jani Nikula <jani.nikula@intel.com>
---
 drivers/gpu/drm/drm_client.c | 10 +++++-----
 1 file changed, 5 insertions(+), 5 deletions(-)

diff --git a/drivers/gpu/drm/drm_client.c b/drivers/gpu/drm/drm_client.c
index d9a2e3695525..b031b45aa8ef 100644
--- a/drivers/gpu/drm/drm_client.c
+++ b/drivers/gpu/drm/drm_client.c
@@ -150,7 +150,7 @@ void drm_client_release(struct drm_client_dev *client)
 {
 	struct drm_device *dev = client->dev;
 
-	DRM_DEV_DEBUG_KMS(dev->dev, "%s\n", client->name);
+	drm_dbg_kms(dev, "%s\n", client->name);
 
 	drm_client_modeset_free(client);
 	drm_client_close(client);
@@ -203,7 +203,7 @@ void drm_client_dev_hotplug(struct drm_device *dev)
 			continue;
 
 		ret = client->funcs->hotplug(client);
-		DRM_DEV_DEBUG_KMS(dev->dev, "%s: ret=%d\n", client->name, ret);
+		drm_dbg_kms(dev, "%s: ret=%d\n", client->name, ret);
 	}
 	mutex_unlock(&dev->clientlist_mutex);
 }
@@ -223,7 +223,7 @@ void drm_client_dev_restore(struct drm_device *dev)
 			continue;
 
 		ret = client->funcs->restore(client);
-		DRM_DEV_DEBUG_KMS(dev->dev, "%s: ret=%d\n", client->name, ret);
+		drm_dbg_kms(dev, "%s: ret=%d\n", client->name, ret);
 		if (!ret) /* The first one to return zero gets the privilege to restore */
 			break;
 	}
@@ -351,8 +351,8 @@ static void drm_client_buffer_rmfb(struct drm_client_buffer *buffer)
 
 	ret = drm_mode_rmfb(buffer->client->dev, buffer->fb->base.id, buffer->client->file);
 	if (ret)
-		DRM_DEV_ERROR(buffer->client->dev->dev,
-			      "Error removing FB:%u (%d)\n", buffer->fb->base.id, ret);
+		drm_err(buffer->client->dev,
+			"Error removing FB:%u (%d)\n", buffer->fb->base.id, ret);
 
 	buffer->fb = NULL;
 }
-- 
2.20.1

_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx

^ permalink raw reply related	[flat|nested] 53+ messages in thread

* [PATCH 3/8] drm/fb-helper: convert to drm device based logging
  2019-12-10 12:30 ` [Intel-gfx] " Jani Nikula
@ 2019-12-10 12:30   ` Jani Nikula
  -1 siblings, 0 replies; 53+ messages in thread
From: Jani Nikula @ 2019-12-10 12:30 UTC (permalink / raw)
  To: dri-devel; +Cc: jani.nikula, intel-gfx

Prefer drm_dbg_kms(), drm_info(), and drm_err() over all other
logging. This is about KMS so switch to the KMS category while at it.

Signed-off-by: Jani Nikula <jani.nikula@intel.com>
---
 drivers/gpu/drm/drm_fb_helper.c | 36 ++++++++++++++++++---------------
 1 file changed, 20 insertions(+), 16 deletions(-)

diff --git a/drivers/gpu/drm/drm_fb_helper.c b/drivers/gpu/drm/drm_fb_helper.c
index fb9bff0f4581..f8e905192608 100644
--- a/drivers/gpu/drm/drm_fb_helper.c
+++ b/drivers/gpu/drm/drm_fb_helper.c
@@ -191,6 +191,7 @@ int drm_fb_helper_debug_leave(struct fb_info *info)
 {
 	struct drm_fb_helper *helper = info->par;
 	struct drm_client_dev *client = &helper->client;
+	struct drm_device *dev = helper->dev;
 	struct drm_crtc *crtc;
 	const struct drm_crtc_helper_funcs *funcs;
 	struct drm_mode_set *mode_set;
@@ -209,7 +210,7 @@ int drm_fb_helper_debug_leave(struct fb_info *info)
 			continue;
 
 		if (!fb) {
-			DRM_ERROR("no fb to restore??\n");
+			drm_err(dev, "no fb to restore?\n");
 			continue;
 		}
 
@@ -1248,12 +1249,13 @@ int drm_fb_helper_check_var(struct fb_var_screeninfo *var,
 {
 	struct drm_fb_helper *fb_helper = info->par;
 	struct drm_framebuffer *fb = fb_helper->fb;
+	struct drm_device *dev = fb_helper->dev;
 
 	if (in_dbg_master())
 		return -EINVAL;
 
 	if (var->pixclock != 0) {
-		DRM_DEBUG("fbdev emulation doesn't support changing the pixel clock, value of pixclock is ignored\n");
+		drm_dbg_kms(dev, "fbdev emulation doesn't support changing the pixel clock, value of pixclock is ignored\n");
 		var->pixclock = 0;
 	}
 
@@ -1268,7 +1270,7 @@ int drm_fb_helper_check_var(struct fb_var_screeninfo *var,
 	if (var->bits_per_pixel != fb->format->cpp[0] * 8 ||
 	    var->xres > fb->width || var->yres > fb->height ||
 	    var->xres_virtual > fb->width || var->yres_virtual > fb->height) {
-		DRM_DEBUG("fb requested width/height/bpp can't fit in current fb "
+		drm_dbg_kms(dev, "fb requested width/height/bpp can't fit in current fb "
 			  "request %dx%d-%d (virtual %dx%d) > %dx%d-%d\n",
 			  var->xres, var->yres, var->bits_per_pixel,
 			  var->xres_virtual, var->yres_virtual,
@@ -1295,7 +1297,7 @@ int drm_fb_helper_check_var(struct fb_var_screeninfo *var,
 	 * so reject all pixel format changing requests.
 	 */
 	if (!drm_fb_pixel_format_equal(var, &info->var)) {
-		DRM_DEBUG("fbdev emulation doesn't support changing the pixel format\n");
+		drm_dbg_kms(dev, "fbdev emulation doesn't support changing the pixel format\n");
 		return -EINVAL;
 	}
 
@@ -1320,7 +1322,7 @@ int drm_fb_helper_set_par(struct fb_info *info)
 		return -EBUSY;
 
 	if (var->pixclock != 0) {
-		DRM_ERROR("PIXEL CLOCK SET\n");
+		drm_err(fb_helper->dev, "PIXEL CLOCK SET\n");
 		return -EINVAL;
 	}
 
@@ -1430,6 +1432,7 @@ static int drm_fb_helper_single_fb_probe(struct drm_fb_helper *fb_helper,
 					 int preferred_bpp)
 {
 	struct drm_client_dev *client = &fb_helper->client;
+	struct drm_device *dev = fb_helper->dev;
 	int ret = 0;
 	int crtc_count = 0;
 	struct drm_connector_list_iter conn_iter;
@@ -1493,7 +1496,7 @@ static int drm_fb_helper_single_fb_probe(struct drm_fb_helper *fb_helper,
 		struct drm_plane *plane = crtc->primary;
 		int j;
 
-		DRM_DEBUG("test CRTC %u primary plane\n", drm_crtc_index(crtc));
+		drm_dbg_kms(dev, "test CRTC %u primary plane\n", drm_crtc_index(crtc));
 
 		for (j = 0; j < plane->format_count; j++) {
 			const struct drm_format_info *fmt;
@@ -1526,7 +1529,7 @@ static int drm_fb_helper_single_fb_probe(struct drm_fb_helper *fb_helper,
 		}
 	}
 	if (sizes.surface_depth != best_depth && best_depth) {
-		DRM_INFO("requested bpp %d, scaled depth down to %d",
+		drm_info(dev, "requested bpp %d, scaled depth down to %d",
 			 sizes.surface_bpp, best_depth);
 		sizes.surface_depth = best_depth;
 	}
@@ -1574,7 +1577,7 @@ static int drm_fb_helper_single_fb_probe(struct drm_fb_helper *fb_helper,
 	mutex_unlock(&client->modeset_mutex);
 
 	if (crtc_count == 0 || sizes.fb_width == -1 || sizes.fb_height == -1) {
-		DRM_INFO("Cannot find any crtc or sizes\n");
+		drm_info(dev, "Cannot find any crtc or sizes\n");
 
 		/* First time: disable all crtc's.. */
 		if (!fb_helper->deferred_setup)
@@ -1889,7 +1892,7 @@ int drm_fb_helper_hotplug_event(struct drm_fb_helper *fb_helper)
 
 	drm_master_internal_release(fb_helper->dev);
 
-	DRM_DEBUG_KMS("\n");
+	drm_dbg_kms(fb_helper->dev, "\n");
 
 	drm_client_modeset_probe(&fb_helper->client, fb_helper->fb->width, fb_helper->fb->height);
 	drm_setup_crtcs_fb(fb_helper);
@@ -2026,15 +2029,16 @@ static int drm_fb_helper_generic_probe(struct drm_fb_helper *fb_helper,
 				       struct drm_fb_helper_surface_size *sizes)
 {
 	struct drm_client_dev *client = &fb_helper->client;
+	struct drm_device *dev = fb_helper->dev;
 	struct drm_client_buffer *buffer;
 	struct drm_framebuffer *fb;
 	struct fb_info *fbi;
 	u32 format;
 	void *vaddr;
 
-	DRM_DEBUG_KMS("surface width(%d), height(%d) and bpp(%d)\n",
-		      sizes->surface_width, sizes->surface_height,
-		      sizes->surface_bpp);
+	drm_dbg_kms(dev, "surface width(%d), height(%d) and bpp(%d)\n",
+		    sizes->surface_width, sizes->surface_height,
+		    sizes->surface_bpp);
 
 	format = drm_mode_legacy_fb_format(sizes->surface_bpp, sizes->surface_depth);
 	buffer = drm_client_framebuffer_create(client, sizes->surface_width,
@@ -2118,7 +2122,7 @@ static int drm_fbdev_client_hotplug(struct drm_client_dev *client)
 		return drm_fb_helper_hotplug_event(dev->fb_helper);
 
 	if (!dev->mode_config.num_connector) {
-		DRM_DEV_DEBUG(dev->dev, "No connectors found, will not create framebuffer!\n");
+		drm_dbg_kms(dev, "No connectors found, will not create framebuffer!\n");
 		return 0;
 	}
 
@@ -2143,7 +2147,7 @@ static int drm_fbdev_client_hotplug(struct drm_client_dev *client)
 	fb_helper->dev = NULL;
 	fb_helper->fbdev = NULL;
 
-	DRM_DEV_ERROR(dev->dev, "fbdev: Failed to setup generic emulation (ret=%d)\n", ret);
+	drm_err(dev, "fbdev: Failed to setup generic emulation (ret=%d)\n", ret);
 
 	return ret;
 }
@@ -2200,7 +2204,7 @@ int drm_fbdev_generic_setup(struct drm_device *dev, unsigned int preferred_bpp)
 	ret = drm_client_init(dev, &fb_helper->client, "fbdev", &drm_fbdev_client_funcs);
 	if (ret) {
 		kfree(fb_helper);
-		DRM_DEV_ERROR(dev->dev, "Failed to register client: %d\n", ret);
+		drm_err(dev, "Failed to register client: %d\n", ret);
 		return ret;
 	}
 
@@ -2212,7 +2216,7 @@ int drm_fbdev_generic_setup(struct drm_device *dev, unsigned int preferred_bpp)
 
 	ret = drm_fbdev_client_hotplug(&fb_helper->client);
 	if (ret)
-		DRM_DEV_DEBUG(dev->dev, "client hotplug ret=%d\n", ret);
+		drm_dbg_kms(dev, "client hotplug ret=%d\n", ret);
 
 	drm_client_register(&fb_helper->client);
 
-- 
2.20.1

_______________________________________________
dri-devel mailing list
dri-devel@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/dri-devel

^ permalink raw reply related	[flat|nested] 53+ messages in thread

* [Intel-gfx] [PATCH 3/8] drm/fb-helper: convert to drm device based logging
@ 2019-12-10 12:30   ` Jani Nikula
  0 siblings, 0 replies; 53+ messages in thread
From: Jani Nikula @ 2019-12-10 12:30 UTC (permalink / raw)
  To: dri-devel; +Cc: jani.nikula, intel-gfx

Prefer drm_dbg_kms(), drm_info(), and drm_err() over all other
logging. This is about KMS so switch to the KMS category while at it.

Signed-off-by: Jani Nikula <jani.nikula@intel.com>
---
 drivers/gpu/drm/drm_fb_helper.c | 36 ++++++++++++++++++---------------
 1 file changed, 20 insertions(+), 16 deletions(-)

diff --git a/drivers/gpu/drm/drm_fb_helper.c b/drivers/gpu/drm/drm_fb_helper.c
index fb9bff0f4581..f8e905192608 100644
--- a/drivers/gpu/drm/drm_fb_helper.c
+++ b/drivers/gpu/drm/drm_fb_helper.c
@@ -191,6 +191,7 @@ int drm_fb_helper_debug_leave(struct fb_info *info)
 {
 	struct drm_fb_helper *helper = info->par;
 	struct drm_client_dev *client = &helper->client;
+	struct drm_device *dev = helper->dev;
 	struct drm_crtc *crtc;
 	const struct drm_crtc_helper_funcs *funcs;
 	struct drm_mode_set *mode_set;
@@ -209,7 +210,7 @@ int drm_fb_helper_debug_leave(struct fb_info *info)
 			continue;
 
 		if (!fb) {
-			DRM_ERROR("no fb to restore??\n");
+			drm_err(dev, "no fb to restore?\n");
 			continue;
 		}
 
@@ -1248,12 +1249,13 @@ int drm_fb_helper_check_var(struct fb_var_screeninfo *var,
 {
 	struct drm_fb_helper *fb_helper = info->par;
 	struct drm_framebuffer *fb = fb_helper->fb;
+	struct drm_device *dev = fb_helper->dev;
 
 	if (in_dbg_master())
 		return -EINVAL;
 
 	if (var->pixclock != 0) {
-		DRM_DEBUG("fbdev emulation doesn't support changing the pixel clock, value of pixclock is ignored\n");
+		drm_dbg_kms(dev, "fbdev emulation doesn't support changing the pixel clock, value of pixclock is ignored\n");
 		var->pixclock = 0;
 	}
 
@@ -1268,7 +1270,7 @@ int drm_fb_helper_check_var(struct fb_var_screeninfo *var,
 	if (var->bits_per_pixel != fb->format->cpp[0] * 8 ||
 	    var->xres > fb->width || var->yres > fb->height ||
 	    var->xres_virtual > fb->width || var->yres_virtual > fb->height) {
-		DRM_DEBUG("fb requested width/height/bpp can't fit in current fb "
+		drm_dbg_kms(dev, "fb requested width/height/bpp can't fit in current fb "
 			  "request %dx%d-%d (virtual %dx%d) > %dx%d-%d\n",
 			  var->xres, var->yres, var->bits_per_pixel,
 			  var->xres_virtual, var->yres_virtual,
@@ -1295,7 +1297,7 @@ int drm_fb_helper_check_var(struct fb_var_screeninfo *var,
 	 * so reject all pixel format changing requests.
 	 */
 	if (!drm_fb_pixel_format_equal(var, &info->var)) {
-		DRM_DEBUG("fbdev emulation doesn't support changing the pixel format\n");
+		drm_dbg_kms(dev, "fbdev emulation doesn't support changing the pixel format\n");
 		return -EINVAL;
 	}
 
@@ -1320,7 +1322,7 @@ int drm_fb_helper_set_par(struct fb_info *info)
 		return -EBUSY;
 
 	if (var->pixclock != 0) {
-		DRM_ERROR("PIXEL CLOCK SET\n");
+		drm_err(fb_helper->dev, "PIXEL CLOCK SET\n");
 		return -EINVAL;
 	}
 
@@ -1430,6 +1432,7 @@ static int drm_fb_helper_single_fb_probe(struct drm_fb_helper *fb_helper,
 					 int preferred_bpp)
 {
 	struct drm_client_dev *client = &fb_helper->client;
+	struct drm_device *dev = fb_helper->dev;
 	int ret = 0;
 	int crtc_count = 0;
 	struct drm_connector_list_iter conn_iter;
@@ -1493,7 +1496,7 @@ static int drm_fb_helper_single_fb_probe(struct drm_fb_helper *fb_helper,
 		struct drm_plane *plane = crtc->primary;
 		int j;
 
-		DRM_DEBUG("test CRTC %u primary plane\n", drm_crtc_index(crtc));
+		drm_dbg_kms(dev, "test CRTC %u primary plane\n", drm_crtc_index(crtc));
 
 		for (j = 0; j < plane->format_count; j++) {
 			const struct drm_format_info *fmt;
@@ -1526,7 +1529,7 @@ static int drm_fb_helper_single_fb_probe(struct drm_fb_helper *fb_helper,
 		}
 	}
 	if (sizes.surface_depth != best_depth && best_depth) {
-		DRM_INFO("requested bpp %d, scaled depth down to %d",
+		drm_info(dev, "requested bpp %d, scaled depth down to %d",
 			 sizes.surface_bpp, best_depth);
 		sizes.surface_depth = best_depth;
 	}
@@ -1574,7 +1577,7 @@ static int drm_fb_helper_single_fb_probe(struct drm_fb_helper *fb_helper,
 	mutex_unlock(&client->modeset_mutex);
 
 	if (crtc_count == 0 || sizes.fb_width == -1 || sizes.fb_height == -1) {
-		DRM_INFO("Cannot find any crtc or sizes\n");
+		drm_info(dev, "Cannot find any crtc or sizes\n");
 
 		/* First time: disable all crtc's.. */
 		if (!fb_helper->deferred_setup)
@@ -1889,7 +1892,7 @@ int drm_fb_helper_hotplug_event(struct drm_fb_helper *fb_helper)
 
 	drm_master_internal_release(fb_helper->dev);
 
-	DRM_DEBUG_KMS("\n");
+	drm_dbg_kms(fb_helper->dev, "\n");
 
 	drm_client_modeset_probe(&fb_helper->client, fb_helper->fb->width, fb_helper->fb->height);
 	drm_setup_crtcs_fb(fb_helper);
@@ -2026,15 +2029,16 @@ static int drm_fb_helper_generic_probe(struct drm_fb_helper *fb_helper,
 				       struct drm_fb_helper_surface_size *sizes)
 {
 	struct drm_client_dev *client = &fb_helper->client;
+	struct drm_device *dev = fb_helper->dev;
 	struct drm_client_buffer *buffer;
 	struct drm_framebuffer *fb;
 	struct fb_info *fbi;
 	u32 format;
 	void *vaddr;
 
-	DRM_DEBUG_KMS("surface width(%d), height(%d) and bpp(%d)\n",
-		      sizes->surface_width, sizes->surface_height,
-		      sizes->surface_bpp);
+	drm_dbg_kms(dev, "surface width(%d), height(%d) and bpp(%d)\n",
+		    sizes->surface_width, sizes->surface_height,
+		    sizes->surface_bpp);
 
 	format = drm_mode_legacy_fb_format(sizes->surface_bpp, sizes->surface_depth);
 	buffer = drm_client_framebuffer_create(client, sizes->surface_width,
@@ -2118,7 +2122,7 @@ static int drm_fbdev_client_hotplug(struct drm_client_dev *client)
 		return drm_fb_helper_hotplug_event(dev->fb_helper);
 
 	if (!dev->mode_config.num_connector) {
-		DRM_DEV_DEBUG(dev->dev, "No connectors found, will not create framebuffer!\n");
+		drm_dbg_kms(dev, "No connectors found, will not create framebuffer!\n");
 		return 0;
 	}
 
@@ -2143,7 +2147,7 @@ static int drm_fbdev_client_hotplug(struct drm_client_dev *client)
 	fb_helper->dev = NULL;
 	fb_helper->fbdev = NULL;
 
-	DRM_DEV_ERROR(dev->dev, "fbdev: Failed to setup generic emulation (ret=%d)\n", ret);
+	drm_err(dev, "fbdev: Failed to setup generic emulation (ret=%d)\n", ret);
 
 	return ret;
 }
@@ -2200,7 +2204,7 @@ int drm_fbdev_generic_setup(struct drm_device *dev, unsigned int preferred_bpp)
 	ret = drm_client_init(dev, &fb_helper->client, "fbdev", &drm_fbdev_client_funcs);
 	if (ret) {
 		kfree(fb_helper);
-		DRM_DEV_ERROR(dev->dev, "Failed to register client: %d\n", ret);
+		drm_err(dev, "Failed to register client: %d\n", ret);
 		return ret;
 	}
 
@@ -2212,7 +2216,7 @@ int drm_fbdev_generic_setup(struct drm_device *dev, unsigned int preferred_bpp)
 
 	ret = drm_fbdev_client_hotplug(&fb_helper->client);
 	if (ret)
-		DRM_DEV_DEBUG(dev->dev, "client hotplug ret=%d\n", ret);
+		drm_dbg_kms(dev, "client hotplug ret=%d\n", ret);
 
 	drm_client_register(&fb_helper->client);
 
-- 
2.20.1

_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx

^ permalink raw reply related	[flat|nested] 53+ messages in thread

* [PATCH 4/8] drm/gem-fb-helper: convert to drm device based logging
  2019-12-10 12:30 ` [Intel-gfx] " Jani Nikula
@ 2019-12-10 12:30   ` Jani Nikula
  -1 siblings, 0 replies; 53+ messages in thread
From: Jani Nikula @ 2019-12-10 12:30 UTC (permalink / raw)
  To: dri-devel; +Cc: jani.nikula, intel-gfx

Prefer drm_dbg_kms() and drm_err() over all other logging.

Signed-off-by: Jani Nikula <jani.nikula@intel.com>
---
 drivers/gpu/drm/drm_gem_framebuffer_helper.c | 5 ++---
 1 file changed, 2 insertions(+), 3 deletions(-)

diff --git a/drivers/gpu/drm/drm_gem_framebuffer_helper.c b/drivers/gpu/drm/drm_gem_framebuffer_helper.c
index b9bcd310ca2d..3a7ace19a902 100644
--- a/drivers/gpu/drm/drm_gem_framebuffer_helper.c
+++ b/drivers/gpu/drm/drm_gem_framebuffer_helper.c
@@ -74,8 +74,7 @@ drm_gem_fb_alloc(struct drm_device *dev,
 
 	ret = drm_framebuffer_init(dev, fb, funcs);
 	if (ret) {
-		DRM_DEV_ERROR(dev->dev, "Failed to init framebuffer: %d\n",
-			      ret);
+		drm_err(dev, "Failed to init framebuffer: %d\n", ret);
 		kfree(fb);
 		return ERR_PTR(ret);
 	}
@@ -160,7 +159,7 @@ drm_gem_fb_create_with_funcs(struct drm_device *dev, struct drm_file *file,
 
 		objs[i] = drm_gem_object_lookup(file, mode_cmd->handles[i]);
 		if (!objs[i]) {
-			DRM_DEBUG_KMS("Failed to lookup GEM object\n");
+			drm_dbg_kms(dev, "Failed to lookup GEM object\n");
 			ret = -ENOENT;
 			goto err_gem_object_put;
 		}
-- 
2.20.1

_______________________________________________
dri-devel mailing list
dri-devel@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/dri-devel

^ permalink raw reply related	[flat|nested] 53+ messages in thread

* [Intel-gfx] [PATCH 4/8] drm/gem-fb-helper: convert to drm device based logging
@ 2019-12-10 12:30   ` Jani Nikula
  0 siblings, 0 replies; 53+ messages in thread
From: Jani Nikula @ 2019-12-10 12:30 UTC (permalink / raw)
  To: dri-devel; +Cc: jani.nikula, intel-gfx

Prefer drm_dbg_kms() and drm_err() over all other logging.

Signed-off-by: Jani Nikula <jani.nikula@intel.com>
---
 drivers/gpu/drm/drm_gem_framebuffer_helper.c | 5 ++---
 1 file changed, 2 insertions(+), 3 deletions(-)

diff --git a/drivers/gpu/drm/drm_gem_framebuffer_helper.c b/drivers/gpu/drm/drm_gem_framebuffer_helper.c
index b9bcd310ca2d..3a7ace19a902 100644
--- a/drivers/gpu/drm/drm_gem_framebuffer_helper.c
+++ b/drivers/gpu/drm/drm_gem_framebuffer_helper.c
@@ -74,8 +74,7 @@ drm_gem_fb_alloc(struct drm_device *dev,
 
 	ret = drm_framebuffer_init(dev, fb, funcs);
 	if (ret) {
-		DRM_DEV_ERROR(dev->dev, "Failed to init framebuffer: %d\n",
-			      ret);
+		drm_err(dev, "Failed to init framebuffer: %d\n", ret);
 		kfree(fb);
 		return ERR_PTR(ret);
 	}
@@ -160,7 +159,7 @@ drm_gem_fb_create_with_funcs(struct drm_device *dev, struct drm_file *file,
 
 		objs[i] = drm_gem_object_lookup(file, mode_cmd->handles[i]);
 		if (!objs[i]) {
-			DRM_DEBUG_KMS("Failed to lookup GEM object\n");
+			drm_dbg_kms(dev, "Failed to lookup GEM object\n");
 			ret = -ENOENT;
 			goto err_gem_object_put;
 		}
-- 
2.20.1

_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx

^ permalink raw reply related	[flat|nested] 53+ messages in thread

* [PATCH 5/8] drm/mipi-dbi: convert to drm device based logging
  2019-12-10 12:30 ` [Intel-gfx] " Jani Nikula
@ 2019-12-10 12:30   ` Jani Nikula
  -1 siblings, 0 replies; 53+ messages in thread
From: Jani Nikula @ 2019-12-10 12:30 UTC (permalink / raw)
  To: dri-devel; +Cc: jani.nikula, intel-gfx

Prefer drm device based logging where possible.

Signed-off-by: Jani Nikula <jani.nikula@intel.com>
---
 drivers/gpu/drm/drm_mipi_dbi.c | 15 ++++++++-------
 1 file changed, 8 insertions(+), 7 deletions(-)

diff --git a/drivers/gpu/drm/drm_mipi_dbi.c b/drivers/gpu/drm/drm_mipi_dbi.c
index e34058c721be..86d98e7fc30a 100644
--- a/drivers/gpu/drm/drm_mipi_dbi.c
+++ b/drivers/gpu/drm/drm_mipi_dbi.c
@@ -225,7 +225,7 @@ int mipi_dbi_buf_copy(void *dst, struct drm_framebuffer *fb,
 		drm_fb_xrgb8888_to_rgb565(dst, src, fb, clip, swap);
 		break;
 	default:
-		dev_err_once(fb->dev->dev, "Format is not supported: %s\n",
+		drm_err_once(fb->dev, "Format is not supported: %s\n",
 			     drm_get_format_name(fb->format->format,
 						 &format_name));
 		return -EINVAL;
@@ -242,7 +242,8 @@ static void mipi_dbi_fb_dirty(struct drm_framebuffer *fb, struct drm_rect *rect)
 {
 	struct drm_gem_object *gem = drm_gem_fb_get_obj(fb, 0);
 	struct drm_gem_cma_object *cma_obj = to_drm_gem_cma_obj(gem);
-	struct mipi_dbi_dev *dbidev = drm_to_mipi_dbi_dev(fb->dev);
+	struct drm_device *dev = fb->dev;
+	struct mipi_dbi_dev *dbidev = drm_to_mipi_dbi_dev(dev);
 	unsigned int height = rect->y2 - rect->y1;
 	unsigned int width = rect->x2 - rect->x1;
 	struct mipi_dbi *dbi = &dbidev->dbi;
@@ -259,7 +260,7 @@ static void mipi_dbi_fb_dirty(struct drm_framebuffer *fb, struct drm_rect *rect)
 
 	full = width == fb->width && height == fb->height;
 
-	DRM_DEBUG_KMS("Flushing [FB:%d] " DRM_RECT_FMT "\n", fb->base.id, DRM_RECT_ARG(rect));
+	drm_dbg_kms(dev, "Flushing [FB:%d] " DRM_RECT_FMT "\n", fb->base.id, DRM_RECT_ARG(rect));
 
 	if (!dbi->dc || !full || swap ||
 	    fb->format->format == DRM_FORMAT_XRGB8888) {
@@ -282,7 +283,7 @@ static void mipi_dbi_fb_dirty(struct drm_framebuffer *fb, struct drm_rect *rect)
 				   width * height * 2);
 err_msg:
 	if (ret)
-		dev_err_once(fb->dev->dev, "Failed to update display %d\n", ret);
+		drm_err_once(dev, "Failed to update display %d\n", ret);
 
 	drm_dev_exit(idx);
 }
@@ -649,14 +650,14 @@ EXPORT_SYMBOL(mipi_dbi_display_is_on);
 
 static int mipi_dbi_poweron_reset_conditional(struct mipi_dbi_dev *dbidev, bool cond)
 {
-	struct device *dev = dbidev->drm.dev;
+	struct drm_device *dev = &dbidev->drm;
 	struct mipi_dbi *dbi = &dbidev->dbi;
 	int ret;
 
 	if (dbidev->regulator) {
 		ret = regulator_enable(dbidev->regulator);
 		if (ret) {
-			DRM_DEV_ERROR(dev, "Failed to enable regulator (%d)\n", ret);
+			drm_err(dev, "Failed to enable regulator (%d)\n", ret);
 			return ret;
 		}
 	}
@@ -667,7 +668,7 @@ static int mipi_dbi_poweron_reset_conditional(struct mipi_dbi_dev *dbidev, bool
 	mipi_dbi_hw_reset(dbi);
 	ret = mipi_dbi_command(dbi, MIPI_DCS_SOFT_RESET);
 	if (ret) {
-		DRM_DEV_ERROR(dev, "Failed to send reset command (%d)\n", ret);
+		drm_err(dev, "Failed to send reset command (%d)\n", ret);
 		if (dbidev->regulator)
 			regulator_disable(dbidev->regulator);
 		return ret;
-- 
2.20.1

_______________________________________________
dri-devel mailing list
dri-devel@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/dri-devel

^ permalink raw reply related	[flat|nested] 53+ messages in thread

* [Intel-gfx] [PATCH 5/8] drm/mipi-dbi: convert to drm device based logging
@ 2019-12-10 12:30   ` Jani Nikula
  0 siblings, 0 replies; 53+ messages in thread
From: Jani Nikula @ 2019-12-10 12:30 UTC (permalink / raw)
  To: dri-devel; +Cc: jani.nikula, intel-gfx

Prefer drm device based logging where possible.

Signed-off-by: Jani Nikula <jani.nikula@intel.com>
---
 drivers/gpu/drm/drm_mipi_dbi.c | 15 ++++++++-------
 1 file changed, 8 insertions(+), 7 deletions(-)

diff --git a/drivers/gpu/drm/drm_mipi_dbi.c b/drivers/gpu/drm/drm_mipi_dbi.c
index e34058c721be..86d98e7fc30a 100644
--- a/drivers/gpu/drm/drm_mipi_dbi.c
+++ b/drivers/gpu/drm/drm_mipi_dbi.c
@@ -225,7 +225,7 @@ int mipi_dbi_buf_copy(void *dst, struct drm_framebuffer *fb,
 		drm_fb_xrgb8888_to_rgb565(dst, src, fb, clip, swap);
 		break;
 	default:
-		dev_err_once(fb->dev->dev, "Format is not supported: %s\n",
+		drm_err_once(fb->dev, "Format is not supported: %s\n",
 			     drm_get_format_name(fb->format->format,
 						 &format_name));
 		return -EINVAL;
@@ -242,7 +242,8 @@ static void mipi_dbi_fb_dirty(struct drm_framebuffer *fb, struct drm_rect *rect)
 {
 	struct drm_gem_object *gem = drm_gem_fb_get_obj(fb, 0);
 	struct drm_gem_cma_object *cma_obj = to_drm_gem_cma_obj(gem);
-	struct mipi_dbi_dev *dbidev = drm_to_mipi_dbi_dev(fb->dev);
+	struct drm_device *dev = fb->dev;
+	struct mipi_dbi_dev *dbidev = drm_to_mipi_dbi_dev(dev);
 	unsigned int height = rect->y2 - rect->y1;
 	unsigned int width = rect->x2 - rect->x1;
 	struct mipi_dbi *dbi = &dbidev->dbi;
@@ -259,7 +260,7 @@ static void mipi_dbi_fb_dirty(struct drm_framebuffer *fb, struct drm_rect *rect)
 
 	full = width == fb->width && height == fb->height;
 
-	DRM_DEBUG_KMS("Flushing [FB:%d] " DRM_RECT_FMT "\n", fb->base.id, DRM_RECT_ARG(rect));
+	drm_dbg_kms(dev, "Flushing [FB:%d] " DRM_RECT_FMT "\n", fb->base.id, DRM_RECT_ARG(rect));
 
 	if (!dbi->dc || !full || swap ||
 	    fb->format->format == DRM_FORMAT_XRGB8888) {
@@ -282,7 +283,7 @@ static void mipi_dbi_fb_dirty(struct drm_framebuffer *fb, struct drm_rect *rect)
 				   width * height * 2);
 err_msg:
 	if (ret)
-		dev_err_once(fb->dev->dev, "Failed to update display %d\n", ret);
+		drm_err_once(dev, "Failed to update display %d\n", ret);
 
 	drm_dev_exit(idx);
 }
@@ -649,14 +650,14 @@ EXPORT_SYMBOL(mipi_dbi_display_is_on);
 
 static int mipi_dbi_poweron_reset_conditional(struct mipi_dbi_dev *dbidev, bool cond)
 {
-	struct device *dev = dbidev->drm.dev;
+	struct drm_device *dev = &dbidev->drm;
 	struct mipi_dbi *dbi = &dbidev->dbi;
 	int ret;
 
 	if (dbidev->regulator) {
 		ret = regulator_enable(dbidev->regulator);
 		if (ret) {
-			DRM_DEV_ERROR(dev, "Failed to enable regulator (%d)\n", ret);
+			drm_err(dev, "Failed to enable regulator (%d)\n", ret);
 			return ret;
 		}
 	}
@@ -667,7 +668,7 @@ static int mipi_dbi_poweron_reset_conditional(struct mipi_dbi_dev *dbidev, bool
 	mipi_dbi_hw_reset(dbi);
 	ret = mipi_dbi_command(dbi, MIPI_DCS_SOFT_RESET);
 	if (ret) {
-		DRM_DEV_ERROR(dev, "Failed to send reset command (%d)\n", ret);
+		drm_err(dev, "Failed to send reset command (%d)\n", ret);
 		if (dbidev->regulator)
 			regulator_disable(dbidev->regulator);
 		return ret;
-- 
2.20.1

_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx

^ permalink raw reply related	[flat|nested] 53+ messages in thread

* [PATCH 6/8] drm/atomic: convert to drm device based logging
  2019-12-10 12:30 ` [Intel-gfx] " Jani Nikula
@ 2019-12-10 12:30   ` Jani Nikula
  -1 siblings, 0 replies; 53+ messages in thread
From: Jani Nikula @ 2019-12-10 12:30 UTC (permalink / raw)
  To: dri-devel; +Cc: jani.nikula, intel-gfx

Prefer drm_dbg_atomic().

Signed-off-by: Jani Nikula <jani.nikula@intel.com>
---
 drivers/gpu/drm/drm_agpsupport.c |   4 +-
 drivers/gpu/drm/drm_atomic.c     | 187 +++++++++++++++++--------------
 2 files changed, 102 insertions(+), 89 deletions(-)

diff --git a/drivers/gpu/drm/drm_agpsupport.c b/drivers/gpu/drm/drm_agpsupport.c
index 4c7ad46fdd21..cd675e58de50 100644
--- a/drivers/gpu/drm/drm_agpsupport.c
+++ b/drivers/gpu/drm/drm_agpsupport.c
@@ -330,8 +330,8 @@ int drm_agp_bind(struct drm_device *dev, struct drm_agp_binding *request)
 	if (retcode)
 		return retcode;
 	entry->bound = dev->agp->base + (page << PAGE_SHIFT);
-	DRM_DEBUG("base = 0x%lx entry->bound = 0x%lx\n",
-		  dev->agp->base, entry->bound);
+	drm_dbg_core(dev, "base = 0x%lx entry->bound = 0x%lx\n",
+		     dev->agp->base, entry->bound);
 	return 0;
 }
 EXPORT_SYMBOL(drm_agp_bind);
diff --git a/drivers/gpu/drm/drm_atomic.c b/drivers/gpu/drm/drm_atomic.c
index 14aeaf736321..8494b1c29bf0 100644
--- a/drivers/gpu/drm/drm_atomic.c
+++ b/drivers/gpu/drm/drm_atomic.c
@@ -99,7 +99,7 @@ drm_atomic_state_init(struct drm_device *dev, struct drm_atomic_state *state)
 
 	state->dev = dev;
 
-	DRM_DEBUG_ATOMIC("Allocated atomic state %p\n", state);
+	drm_dbg_atomic(dev, "Allocated atomic state %p\n", state);
 
 	return 0;
 fail:
@@ -150,7 +150,7 @@ void drm_atomic_state_default_clear(struct drm_atomic_state *state)
 	struct drm_mode_config *config = &dev->mode_config;
 	int i;
 
-	DRM_DEBUG_ATOMIC("Clearing atomic state %p\n", state);
+	drm_dbg_atomic(dev, "Clearing atomic state %p\n", state);
 
 	for (i = 0; i < state->num_connector; i++) {
 		struct drm_connector *connector = state->connectors[i].ptr;
@@ -256,11 +256,12 @@ EXPORT_SYMBOL(drm_atomic_state_clear);
 void __drm_atomic_state_free(struct kref *ref)
 {
 	struct drm_atomic_state *state = container_of(ref, typeof(*state), ref);
-	struct drm_mode_config *config = &state->dev->mode_config;
+	struct drm_device *dev = state->dev;
+	struct drm_mode_config *config = &dev->mode_config;
 
 	drm_atomic_state_clear(state);
 
-	DRM_DEBUG_ATOMIC("Freeing atomic state %p\n", state);
+	drm_dbg_atomic(dev, "Freeing atomic state %p\n", state);
 
 	if (config->funcs->atomic_state_free) {
 		config->funcs->atomic_state_free(state);
@@ -290,8 +291,9 @@ struct drm_crtc_state *
 drm_atomic_get_crtc_state(struct drm_atomic_state *state,
 			  struct drm_crtc *crtc)
 {
-	int ret, index = drm_crtc_index(crtc);
+	struct drm_device *dev = state->dev;
 	struct drm_crtc_state *crtc_state;
+	int ret, index = drm_crtc_index(crtc);
 
 	WARN_ON(!state->acquire_ctx);
 
@@ -313,8 +315,8 @@ drm_atomic_get_crtc_state(struct drm_atomic_state *state,
 	state->crtcs[index].ptr = crtc;
 	crtc_state->state = state;
 
-	DRM_DEBUG_ATOMIC("Added [CRTC:%d:%s] %p state to %p\n",
-			 crtc->base.id, crtc->name, crtc_state, state);
+	drm_dbg_atomic(dev, "Added [CRTC:%d:%s] %p state to %p\n",
+		       crtc->base.id, crtc->name, crtc_state, state);
 
 	return crtc_state;
 }
@@ -324,6 +326,7 @@ static int drm_atomic_crtc_check(const struct drm_crtc_state *old_crtc_state,
 				 const struct drm_crtc_state *new_crtc_state)
 {
 	struct drm_crtc *crtc = new_crtc_state->crtc;
+	struct drm_device *dev = crtc->dev;
 
 	/* NOTE: we explicitly don't enforce constraints such as primary
 	 * layer covering entire screen, since that is something we want
@@ -334,25 +337,25 @@ static int drm_atomic_crtc_check(const struct drm_crtc_state *old_crtc_state,
 	 */
 
 	if (new_crtc_state->active && !new_crtc_state->enable) {
-		DRM_DEBUG_ATOMIC("[CRTC:%d:%s] active without enabled\n",
-				 crtc->base.id, crtc->name);
+		drm_dbg_atomic(dev, "[CRTC:%d:%s] active without enabled\n",
+			       crtc->base.id, crtc->name);
 		return -EINVAL;
 	}
 
 	/* The state->enable vs. state->mode_blob checks can be WARN_ON,
 	 * as this is a kernel-internal detail that userspace should never
 	 * be able to trigger. */
-	if (drm_core_check_feature(crtc->dev, DRIVER_ATOMIC) &&
+	if (drm_core_check_feature(dev, DRIVER_ATOMIC) &&
 	    WARN_ON(new_crtc_state->enable && !new_crtc_state->mode_blob)) {
-		DRM_DEBUG_ATOMIC("[CRTC:%d:%s] enabled without mode blob\n",
-				 crtc->base.id, crtc->name);
+		drm_dbg_atomic(dev, "[CRTC:%d:%s] enabled without mode blob\n",
+			       crtc->base.id, crtc->name);
 		return -EINVAL;
 	}
 
-	if (drm_core_check_feature(crtc->dev, DRIVER_ATOMIC) &&
+	if (drm_core_check_feature(dev, DRIVER_ATOMIC) &&
 	    WARN_ON(!new_crtc_state->enable && new_crtc_state->mode_blob)) {
-		DRM_DEBUG_ATOMIC("[CRTC:%d:%s] disabled with mode blob\n",
-				 crtc->base.id, crtc->name);
+		drm_dbg_atomic(dev, "[CRTC:%d:%s] disabled with mode blob\n",
+			       crtc->base.id, crtc->name);
 		return -EINVAL;
 	}
 
@@ -368,8 +371,8 @@ static int drm_atomic_crtc_check(const struct drm_crtc_state *old_crtc_state,
 	 */
 	if (new_crtc_state->event &&
 	    !new_crtc_state->active && !old_crtc_state->active) {
-		DRM_DEBUG_ATOMIC("[CRTC:%d:%s] requesting event but off\n",
-				 crtc->base.id, crtc->name);
+		drm_dbg_atomic(dev, "[CRTC:%d:%s] requesting event but off\n",
+			       crtc->base.id, crtc->name);
 		return -EINVAL;
 	}
 
@@ -402,6 +405,7 @@ static void drm_atomic_crtc_print_state(struct drm_printer *p,
 static int drm_atomic_connector_check(struct drm_connector *connector,
 		struct drm_connector_state *state)
 {
+	struct drm_device *dev = connector->dev;
 	struct drm_crtc_state *crtc_state;
 	struct drm_writeback_job *writeback_job = state->writeback_job;
 	const struct drm_display_info *info = &connector->display_info;
@@ -414,8 +418,8 @@ static int drm_atomic_connector_check(struct drm_connector *connector,
 		return 0;
 
 	if (writeback_job->fb && !state->crtc) {
-		DRM_DEBUG_ATOMIC("[CONNECTOR:%d:%s] framebuffer without CRTC\n",
-				 connector->base.id, connector->name);
+		drm_dbg_atomic(dev, "[CONNECTOR:%d:%s] framebuffer without CRTC\n",
+			       connector->base.id, connector->name);
 		return -EINVAL;
 	}
 
@@ -424,16 +428,16 @@ static int drm_atomic_connector_check(struct drm_connector *connector,
 								state->crtc);
 
 	if (writeback_job->fb && !crtc_state->active) {
-		DRM_DEBUG_ATOMIC("[CONNECTOR:%d:%s] has framebuffer, but [CRTC:%d] is off\n",
-				 connector->base.id, connector->name,
-				 state->crtc->base.id);
+		drm_dbg_atomic(dev, "[CONNECTOR:%d:%s] has framebuffer, but [CRTC:%d] is off\n",
+			       connector->base.id, connector->name,
+			       state->crtc->base.id);
 		return -EINVAL;
 	}
 
 	if (!writeback_job->fb) {
 		if (writeback_job->out_fence) {
-			DRM_DEBUG_ATOMIC("[CONNECTOR:%d:%s] requesting out-fence without framebuffer\n",
-					 connector->base.id, connector->name);
+			drm_dbg_atomic(dev, "[CONNECTOR:%d:%s] requesting out-fence without framebuffer\n",
+				       connector->base.id, connector->name);
 			return -EINVAL;
 		}
 
@@ -463,8 +467,9 @@ struct drm_plane_state *
 drm_atomic_get_plane_state(struct drm_atomic_state *state,
 			  struct drm_plane *plane)
 {
-	int ret, index = drm_plane_index(plane);
+	struct drm_device *dev = state->dev;
 	struct drm_plane_state *plane_state;
+	int ret, index = drm_plane_index(plane);
 
 	WARN_ON(!state->acquire_ctx);
 
@@ -491,8 +496,8 @@ drm_atomic_get_plane_state(struct drm_atomic_state *state,
 	state->planes[index].new_state = plane_state;
 	plane_state->state = state;
 
-	DRM_DEBUG_ATOMIC("Added [PLANE:%d:%s] %p state to %p\n",
-			 plane->base.id, plane->name, plane_state, state);
+	drm_dbg_atomic(dev, "Added [PLANE:%d:%s] %p state to %p\n",
+		       plane->base.id, plane->name, plane_state, state);
 
 	if (plane_state->crtc) {
 		struct drm_crtc_state *crtc_state;
@@ -539,6 +544,7 @@ static int drm_atomic_plane_check(const struct drm_plane_state *old_plane_state,
 				  const struct drm_plane_state *new_plane_state)
 {
 	struct drm_plane *plane = new_plane_state->plane;
+	struct drm_device *dev = plane->dev;
 	struct drm_crtc *crtc = new_plane_state->crtc;
 	const struct drm_framebuffer *fb = new_plane_state->fb;
 	unsigned int fb_width, fb_height;
@@ -548,12 +554,12 @@ static int drm_atomic_plane_check(const struct drm_plane_state *old_plane_state,
 
 	/* either *both* CRTC and FB must be set, or neither */
 	if (crtc && !fb) {
-		DRM_DEBUG_ATOMIC("[PLANE:%d:%s] CRTC set but no FB\n",
-				 plane->base.id, plane->name);
+		drm_dbg_atomic(dev, "[PLANE:%d:%s] CRTC set but no FB\n",
+			       plane->base.id, plane->name);
 		return -EINVAL;
 	} else if (fb && !crtc) {
-		DRM_DEBUG_ATOMIC("[PLANE:%d:%s] FB set but no CRTC\n",
-				 plane->base.id, plane->name);
+		drm_dbg_atomic(dev, "[PLANE:%d:%s] FB set but no CRTC\n",
+			       plane->base.id, plane->name);
 		return -EINVAL;
 	}
 
@@ -563,9 +569,9 @@ static int drm_atomic_plane_check(const struct drm_plane_state *old_plane_state,
 
 	/* Check whether this plane is usable on this CRTC */
 	if (!(plane->possible_crtcs & drm_crtc_mask(crtc))) {
-		DRM_DEBUG_ATOMIC("Invalid [CRTC:%d:%s] for [PLANE:%d:%s]\n",
-				 crtc->base.id, crtc->name,
-				 plane->base.id, plane->name);
+		drm_dbg_atomic(dev, "Invalid [CRTC:%d:%s] for [PLANE:%d:%s]\n",
+			       crtc->base.id, crtc->name,
+			       plane->base.id, plane->name);
 		return -EINVAL;
 	}
 
@@ -574,11 +580,11 @@ static int drm_atomic_plane_check(const struct drm_plane_state *old_plane_state,
 					   fb->modifier);
 	if (ret) {
 		struct drm_format_name_buf format_name;
-		DRM_DEBUG_ATOMIC("[PLANE:%d:%s] invalid pixel format %s, modifier 0x%llx\n",
-				 plane->base.id, plane->name,
-				 drm_get_format_name(fb->format->format,
-						     &format_name),
-				 fb->modifier);
+		drm_dbg_atomic(dev, "[PLANE:%d:%s] invalid pixel format %s, modifier 0x%llx\n",
+			       plane->base.id, plane->name,
+			       drm_get_format_name(fb->format->format,
+						   &format_name),
+			       fb->modifier);
 		return ret;
 	}
 
@@ -587,10 +593,10 @@ static int drm_atomic_plane_check(const struct drm_plane_state *old_plane_state,
 	    new_plane_state->crtc_x > INT_MAX - (int32_t) new_plane_state->crtc_w ||
 	    new_plane_state->crtc_h > INT_MAX ||
 	    new_plane_state->crtc_y > INT_MAX - (int32_t) new_plane_state->crtc_h) {
-		DRM_DEBUG_ATOMIC("[PLANE:%d:%s] invalid CRTC coordinates %ux%u+%d+%d\n",
-				 plane->base.id, plane->name,
-				 new_plane_state->crtc_w, new_plane_state->crtc_h,
-				 new_plane_state->crtc_x, new_plane_state->crtc_y);
+		drm_dbg_atomic(dev, "[PLANE:%d:%s] invalid CRTC coordinates %ux%u+%d+%d\n",
+			       plane->base.id, plane->name,
+			       new_plane_state->crtc_w, new_plane_state->crtc_h,
+			       new_plane_state->crtc_x, new_plane_state->crtc_y);
 		return -ERANGE;
 	}
 
@@ -602,18 +608,18 @@ static int drm_atomic_plane_check(const struct drm_plane_state *old_plane_state,
 	    new_plane_state->src_x > fb_width - new_plane_state->src_w ||
 	    new_plane_state->src_h > fb_height ||
 	    new_plane_state->src_y > fb_height - new_plane_state->src_h) {
-		DRM_DEBUG_ATOMIC("[PLANE:%d:%s] invalid source coordinates "
-				 "%u.%06ux%u.%06u+%u.%06u+%u.%06u (fb %ux%u)\n",
-				 plane->base.id, plane->name,
-				 new_plane_state->src_w >> 16,
-				 ((new_plane_state->src_w & 0xffff) * 15625) >> 10,
-				 new_plane_state->src_h >> 16,
-				 ((new_plane_state->src_h & 0xffff) * 15625) >> 10,
-				 new_plane_state->src_x >> 16,
-				 ((new_plane_state->src_x & 0xffff) * 15625) >> 10,
-				 new_plane_state->src_y >> 16,
-				 ((new_plane_state->src_y & 0xffff) * 15625) >> 10,
-				 fb->width, fb->height);
+		drm_dbg_atomic(dev, "[PLANE:%d:%s] invalid source coordinates "
+			       "%u.%06ux%u.%06u+%u.%06u+%u.%06u (fb %ux%u)\n",
+			       plane->base.id, plane->name,
+			       new_plane_state->src_w >> 16,
+			       ((new_plane_state->src_w & 0xffff) * 15625) >> 10,
+			       new_plane_state->src_h >> 16,
+			       ((new_plane_state->src_h & 0xffff) * 15625) >> 10,
+			       new_plane_state->src_x >> 16,
+			       ((new_plane_state->src_x & 0xffff) * 15625) >> 10,
+			       new_plane_state->src_y >> 16,
+			       ((new_plane_state->src_y & 0xffff) * 15625) >> 10,
+			       fb->width, fb->height);
 		return -ENOSPC;
 	}
 
@@ -628,9 +634,9 @@ static int drm_atomic_plane_check(const struct drm_plane_state *old_plane_state,
 		    clips->y1 < 0 ||
 		    clips->x2 > fb_width ||
 		    clips->y2 > fb_height) {
-			DRM_DEBUG_ATOMIC("[PLANE:%d:%s] invalid damage clip %d %d %d %d\n",
-					 plane->base.id, plane->name, clips->x1,
-					 clips->y1, clips->x2, clips->y2);
+			drm_dbg_atomic(dev, "[PLANE:%d:%s] invalid damage clip %d %d %d %d\n",
+				       plane->base.id, plane->name, clips->x1,
+				       clips->y1, clips->x2, clips->y2);
 			return -EINVAL;
 		}
 		clips++;
@@ -638,8 +644,8 @@ static int drm_atomic_plane_check(const struct drm_plane_state *old_plane_state,
 	}
 
 	if (plane_switching_crtc(old_plane_state, new_plane_state)) {
-		DRM_DEBUG_ATOMIC("[PLANE:%d:%s] switching CRTC directly\n",
-				 plane->base.id, plane->name);
+		drm_dbg_atomic(dev, "[PLANE:%d:%s] switching CRTC directly\n",
+			       plane->base.id, plane->name);
 		return -EINVAL;
 	}
 
@@ -766,6 +772,7 @@ struct drm_private_state *
 drm_atomic_get_private_obj_state(struct drm_atomic_state *state,
 				 struct drm_private_obj *obj)
 {
+	struct drm_device *dev = state->dev;
 	int index, num_objs, i, ret;
 	size_t size;
 	struct __drm_private_objs_state *arr;
@@ -801,8 +808,8 @@ drm_atomic_get_private_obj_state(struct drm_atomic_state *state,
 
 	state->num_private_objs = num_objs;
 
-	DRM_DEBUG_ATOMIC("Added new private object %p state %p to %p\n",
-			 obj, obj_state, state);
+	drm_dbg_atomic(dev, "Added new private object %p state %p to %p\n",
+		       obj, obj_state, state);
 
 	return obj_state;
 }
@@ -940,6 +947,7 @@ struct drm_connector_state *
 drm_atomic_get_connector_state(struct drm_atomic_state *state,
 			  struct drm_connector *connector)
 {
+	struct drm_device *dev = state->dev;
 	int ret, index;
 	struct drm_mode_config *config = &connector->dev->mode_config;
 	struct drm_connector_state *connector_state;
@@ -981,9 +989,9 @@ drm_atomic_get_connector_state(struct drm_atomic_state *state,
 	state->connectors[index].ptr = connector;
 	connector_state->state = state;
 
-	DRM_DEBUG_ATOMIC("Added [CONNECTOR:%d:%s] %p state to %p\n",
-			 connector->base.id, connector->name,
-			 connector_state, state);
+	drm_dbg_atomic(dev, "Added [CONNECTOR:%d:%s] %p state to %p\n",
+		       connector->base.id, connector->name,
+		       connector_state, state);
 
 	if (connector_state->crtc) {
 		struct drm_crtc_state *crtc_state;
@@ -1036,7 +1044,8 @@ int
 drm_atomic_add_affected_connectors(struct drm_atomic_state *state,
 				   struct drm_crtc *crtc)
 {
-	struct drm_mode_config *config = &state->dev->mode_config;
+	struct drm_device *dev = state->dev;
+	struct drm_mode_config *config = &dev->mode_config;
 	struct drm_connector *connector;
 	struct drm_connector_state *conn_state;
 	struct drm_connector_list_iter conn_iter;
@@ -1051,8 +1060,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:%s] to %p\n",
-			 crtc->base.id, crtc->name, state);
+	drm_dbg_atomic(dev, "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
@@ -1099,14 +1108,15 @@ int
 drm_atomic_add_affected_planes(struct drm_atomic_state *state,
 			       struct drm_crtc *crtc)
 {
+	struct drm_device *dev = state->dev;
 	const struct drm_crtc_state *old_crtc_state =
 		drm_atomic_get_old_crtc_state(state, crtc);
 	struct drm_plane *plane;
 
 	WARN_ON(!drm_atomic_get_new_crtc_state(state, crtc));
 
-	DRM_DEBUG_ATOMIC("Adding all current planes for [CRTC:%d:%s] to %p\n",
-			 crtc->base.id, crtc->name, state);
+	drm_dbg_atomic(dev, "Adding all current planes for [CRTC:%d:%s] to %p\n",
+		       crtc->base.id, crtc->name, state);
 
 	drm_for_each_plane_mask(plane, state->dev, old_crtc_state->plane_mask) {
 		struct drm_plane_state *plane_state =
@@ -1144,13 +1154,13 @@ int drm_atomic_check_only(struct drm_atomic_state *state)
 	struct drm_connector_state *conn_state;
 	int i, ret = 0;
 
-	DRM_DEBUG_ATOMIC("checking %p\n", state);
+	drm_dbg_atomic(dev, "checking %p\n", state);
 
 	for_each_oldnew_plane_in_state(state, plane, old_plane_state, new_plane_state, i) {
 		ret = drm_atomic_plane_check(old_plane_state, new_plane_state);
 		if (ret) {
-			DRM_DEBUG_ATOMIC("[PLANE:%d:%s] atomic core check failed\n",
-					 plane->base.id, plane->name);
+			drm_dbg_atomic(dev, "[PLANE:%d:%s] atomic core check failed\n",
+				       plane->base.id, plane->name);
 			return ret;
 		}
 	}
@@ -1158,8 +1168,8 @@ int drm_atomic_check_only(struct drm_atomic_state *state)
 	for_each_oldnew_crtc_in_state(state, crtc, old_crtc_state, new_crtc_state, i) {
 		ret = drm_atomic_crtc_check(old_crtc_state, new_crtc_state);
 		if (ret) {
-			DRM_DEBUG_ATOMIC("[CRTC:%d:%s] atomic core check failed\n",
-					 crtc->base.id, crtc->name);
+			drm_dbg_atomic(dev, "[CRTC:%d:%s] atomic core check failed\n",
+				       crtc->base.id, crtc->name);
 			return ret;
 		}
 	}
@@ -1167,8 +1177,8 @@ int drm_atomic_check_only(struct drm_atomic_state *state)
 	for_each_new_connector_in_state(state, conn, conn_state, i) {
 		ret = drm_atomic_connector_check(conn, conn_state);
 		if (ret) {
-			DRM_DEBUG_ATOMIC("[CONNECTOR:%d:%s] atomic core check failed\n",
-					 conn->base.id, conn->name);
+			drm_dbg_atomic(dev, "[CONNECTOR:%d:%s] atomic core check failed\n",
+				       conn->base.id, conn->name);
 			return ret;
 		}
 	}
@@ -1177,8 +1187,8 @@ int drm_atomic_check_only(struct drm_atomic_state *state)
 		ret = config->funcs->atomic_check(state->dev, state);
 
 		if (ret) {
-			DRM_DEBUG_ATOMIC("atomic driver check for %p failed: %d\n",
-					 state, ret);
+			drm_dbg_atomic(dev, "atomic driver check for %p failed: %d\n",
+				       state, ret);
 			return ret;
 		}
 	}
@@ -1186,8 +1196,8 @@ int drm_atomic_check_only(struct drm_atomic_state *state)
 	if (!state->allow_modeset) {
 		for_each_new_crtc_in_state(state, crtc, new_crtc_state, i) {
 			if (drm_atomic_crtc_needs_modeset(new_crtc_state)) {
-				DRM_DEBUG_ATOMIC("[CRTC:%d:%s] requires full modeset\n",
-						 crtc->base.id, crtc->name);
+				drm_dbg_atomic(dev, "[CRTC:%d:%s] requires full modeset\n",
+					       crtc->base.id, crtc->name);
 				return -EINVAL;
 			}
 		}
@@ -1213,14 +1223,15 @@ EXPORT_SYMBOL(drm_atomic_check_only);
  */
 int drm_atomic_commit(struct drm_atomic_state *state)
 {
-	struct drm_mode_config *config = &state->dev->mode_config;
+	struct drm_device *dev = state->dev;
+	struct drm_mode_config *config = &dev->mode_config;
 	int ret;
 
 	ret = drm_atomic_check_only(state);
 	if (ret)
 		return ret;
 
-	DRM_DEBUG_ATOMIC("committing %p\n", state);
+	drm_dbg_atomic(dev, "committing %p\n", state);
 
 	return config->funcs->atomic_commit(state->dev, state, false);
 }
@@ -1242,14 +1253,15 @@ EXPORT_SYMBOL(drm_atomic_commit);
  */
 int drm_atomic_nonblocking_commit(struct drm_atomic_state *state)
 {
-	struct drm_mode_config *config = &state->dev->mode_config;
+	struct drm_device *dev = state->dev;
+	struct drm_mode_config *config = &dev->mode_config;
 	int ret;
 
 	ret = drm_atomic_check_only(state);
 	if (ret)
 		return ret;
 
-	DRM_DEBUG_ATOMIC("committing %p nonblocking\n", state);
+	drm_dbg_atomic(dev, "committing %p nonblocking\n", state);
 
 	return config->funcs->atomic_commit(state->dev, state, true);
 }
@@ -1425,7 +1437,8 @@ EXPORT_SYMBOL(__drm_atomic_helper_set_config);
 
 void drm_atomic_print_state(const struct drm_atomic_state *state)
 {
-	struct drm_printer p = drm_info_printer(state->dev->dev);
+	struct drm_device *dev = state->dev;
+	struct drm_printer p = drm_info_printer(dev->dev);
 	struct drm_plane *plane;
 	struct drm_plane_state *plane_state;
 	struct drm_crtc *crtc;
@@ -1434,7 +1447,7 @@ void drm_atomic_print_state(const struct drm_atomic_state *state)
 	struct drm_connector_state *connector_state;
 	int i;
 
-	DRM_DEBUG_ATOMIC("checking %p\n", state);
+	drm_dbg_atomic(dev, "checking %p\n", state);
 
 	for_each_new_plane_in_state(state, plane, plane_state, i)
 		drm_atomic_plane_print_state(&p, plane_state);
-- 
2.20.1

_______________________________________________
dri-devel mailing list
dri-devel@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/dri-devel

^ permalink raw reply related	[flat|nested] 53+ messages in thread

* [Intel-gfx] [PATCH 6/8] drm/atomic: convert to drm device based logging
@ 2019-12-10 12:30   ` Jani Nikula
  0 siblings, 0 replies; 53+ messages in thread
From: Jani Nikula @ 2019-12-10 12:30 UTC (permalink / raw)
  To: dri-devel; +Cc: jani.nikula, intel-gfx

Prefer drm_dbg_atomic().

Signed-off-by: Jani Nikula <jani.nikula@intel.com>
---
 drivers/gpu/drm/drm_agpsupport.c |   4 +-
 drivers/gpu/drm/drm_atomic.c     | 187 +++++++++++++++++--------------
 2 files changed, 102 insertions(+), 89 deletions(-)

diff --git a/drivers/gpu/drm/drm_agpsupport.c b/drivers/gpu/drm/drm_agpsupport.c
index 4c7ad46fdd21..cd675e58de50 100644
--- a/drivers/gpu/drm/drm_agpsupport.c
+++ b/drivers/gpu/drm/drm_agpsupport.c
@@ -330,8 +330,8 @@ int drm_agp_bind(struct drm_device *dev, struct drm_agp_binding *request)
 	if (retcode)
 		return retcode;
 	entry->bound = dev->agp->base + (page << PAGE_SHIFT);
-	DRM_DEBUG("base = 0x%lx entry->bound = 0x%lx\n",
-		  dev->agp->base, entry->bound);
+	drm_dbg_core(dev, "base = 0x%lx entry->bound = 0x%lx\n",
+		     dev->agp->base, entry->bound);
 	return 0;
 }
 EXPORT_SYMBOL(drm_agp_bind);
diff --git a/drivers/gpu/drm/drm_atomic.c b/drivers/gpu/drm/drm_atomic.c
index 14aeaf736321..8494b1c29bf0 100644
--- a/drivers/gpu/drm/drm_atomic.c
+++ b/drivers/gpu/drm/drm_atomic.c
@@ -99,7 +99,7 @@ drm_atomic_state_init(struct drm_device *dev, struct drm_atomic_state *state)
 
 	state->dev = dev;
 
-	DRM_DEBUG_ATOMIC("Allocated atomic state %p\n", state);
+	drm_dbg_atomic(dev, "Allocated atomic state %p\n", state);
 
 	return 0;
 fail:
@@ -150,7 +150,7 @@ void drm_atomic_state_default_clear(struct drm_atomic_state *state)
 	struct drm_mode_config *config = &dev->mode_config;
 	int i;
 
-	DRM_DEBUG_ATOMIC("Clearing atomic state %p\n", state);
+	drm_dbg_atomic(dev, "Clearing atomic state %p\n", state);
 
 	for (i = 0; i < state->num_connector; i++) {
 		struct drm_connector *connector = state->connectors[i].ptr;
@@ -256,11 +256,12 @@ EXPORT_SYMBOL(drm_atomic_state_clear);
 void __drm_atomic_state_free(struct kref *ref)
 {
 	struct drm_atomic_state *state = container_of(ref, typeof(*state), ref);
-	struct drm_mode_config *config = &state->dev->mode_config;
+	struct drm_device *dev = state->dev;
+	struct drm_mode_config *config = &dev->mode_config;
 
 	drm_atomic_state_clear(state);
 
-	DRM_DEBUG_ATOMIC("Freeing atomic state %p\n", state);
+	drm_dbg_atomic(dev, "Freeing atomic state %p\n", state);
 
 	if (config->funcs->atomic_state_free) {
 		config->funcs->atomic_state_free(state);
@@ -290,8 +291,9 @@ struct drm_crtc_state *
 drm_atomic_get_crtc_state(struct drm_atomic_state *state,
 			  struct drm_crtc *crtc)
 {
-	int ret, index = drm_crtc_index(crtc);
+	struct drm_device *dev = state->dev;
 	struct drm_crtc_state *crtc_state;
+	int ret, index = drm_crtc_index(crtc);
 
 	WARN_ON(!state->acquire_ctx);
 
@@ -313,8 +315,8 @@ drm_atomic_get_crtc_state(struct drm_atomic_state *state,
 	state->crtcs[index].ptr = crtc;
 	crtc_state->state = state;
 
-	DRM_DEBUG_ATOMIC("Added [CRTC:%d:%s] %p state to %p\n",
-			 crtc->base.id, crtc->name, crtc_state, state);
+	drm_dbg_atomic(dev, "Added [CRTC:%d:%s] %p state to %p\n",
+		       crtc->base.id, crtc->name, crtc_state, state);
 
 	return crtc_state;
 }
@@ -324,6 +326,7 @@ static int drm_atomic_crtc_check(const struct drm_crtc_state *old_crtc_state,
 				 const struct drm_crtc_state *new_crtc_state)
 {
 	struct drm_crtc *crtc = new_crtc_state->crtc;
+	struct drm_device *dev = crtc->dev;
 
 	/* NOTE: we explicitly don't enforce constraints such as primary
 	 * layer covering entire screen, since that is something we want
@@ -334,25 +337,25 @@ static int drm_atomic_crtc_check(const struct drm_crtc_state *old_crtc_state,
 	 */
 
 	if (new_crtc_state->active && !new_crtc_state->enable) {
-		DRM_DEBUG_ATOMIC("[CRTC:%d:%s] active without enabled\n",
-				 crtc->base.id, crtc->name);
+		drm_dbg_atomic(dev, "[CRTC:%d:%s] active without enabled\n",
+			       crtc->base.id, crtc->name);
 		return -EINVAL;
 	}
 
 	/* The state->enable vs. state->mode_blob checks can be WARN_ON,
 	 * as this is a kernel-internal detail that userspace should never
 	 * be able to trigger. */
-	if (drm_core_check_feature(crtc->dev, DRIVER_ATOMIC) &&
+	if (drm_core_check_feature(dev, DRIVER_ATOMIC) &&
 	    WARN_ON(new_crtc_state->enable && !new_crtc_state->mode_blob)) {
-		DRM_DEBUG_ATOMIC("[CRTC:%d:%s] enabled without mode blob\n",
-				 crtc->base.id, crtc->name);
+		drm_dbg_atomic(dev, "[CRTC:%d:%s] enabled without mode blob\n",
+			       crtc->base.id, crtc->name);
 		return -EINVAL;
 	}
 
-	if (drm_core_check_feature(crtc->dev, DRIVER_ATOMIC) &&
+	if (drm_core_check_feature(dev, DRIVER_ATOMIC) &&
 	    WARN_ON(!new_crtc_state->enable && new_crtc_state->mode_blob)) {
-		DRM_DEBUG_ATOMIC("[CRTC:%d:%s] disabled with mode blob\n",
-				 crtc->base.id, crtc->name);
+		drm_dbg_atomic(dev, "[CRTC:%d:%s] disabled with mode blob\n",
+			       crtc->base.id, crtc->name);
 		return -EINVAL;
 	}
 
@@ -368,8 +371,8 @@ static int drm_atomic_crtc_check(const struct drm_crtc_state *old_crtc_state,
 	 */
 	if (new_crtc_state->event &&
 	    !new_crtc_state->active && !old_crtc_state->active) {
-		DRM_DEBUG_ATOMIC("[CRTC:%d:%s] requesting event but off\n",
-				 crtc->base.id, crtc->name);
+		drm_dbg_atomic(dev, "[CRTC:%d:%s] requesting event but off\n",
+			       crtc->base.id, crtc->name);
 		return -EINVAL;
 	}
 
@@ -402,6 +405,7 @@ static void drm_atomic_crtc_print_state(struct drm_printer *p,
 static int drm_atomic_connector_check(struct drm_connector *connector,
 		struct drm_connector_state *state)
 {
+	struct drm_device *dev = connector->dev;
 	struct drm_crtc_state *crtc_state;
 	struct drm_writeback_job *writeback_job = state->writeback_job;
 	const struct drm_display_info *info = &connector->display_info;
@@ -414,8 +418,8 @@ static int drm_atomic_connector_check(struct drm_connector *connector,
 		return 0;
 
 	if (writeback_job->fb && !state->crtc) {
-		DRM_DEBUG_ATOMIC("[CONNECTOR:%d:%s] framebuffer without CRTC\n",
-				 connector->base.id, connector->name);
+		drm_dbg_atomic(dev, "[CONNECTOR:%d:%s] framebuffer without CRTC\n",
+			       connector->base.id, connector->name);
 		return -EINVAL;
 	}
 
@@ -424,16 +428,16 @@ static int drm_atomic_connector_check(struct drm_connector *connector,
 								state->crtc);
 
 	if (writeback_job->fb && !crtc_state->active) {
-		DRM_DEBUG_ATOMIC("[CONNECTOR:%d:%s] has framebuffer, but [CRTC:%d] is off\n",
-				 connector->base.id, connector->name,
-				 state->crtc->base.id);
+		drm_dbg_atomic(dev, "[CONNECTOR:%d:%s] has framebuffer, but [CRTC:%d] is off\n",
+			       connector->base.id, connector->name,
+			       state->crtc->base.id);
 		return -EINVAL;
 	}
 
 	if (!writeback_job->fb) {
 		if (writeback_job->out_fence) {
-			DRM_DEBUG_ATOMIC("[CONNECTOR:%d:%s] requesting out-fence without framebuffer\n",
-					 connector->base.id, connector->name);
+			drm_dbg_atomic(dev, "[CONNECTOR:%d:%s] requesting out-fence without framebuffer\n",
+				       connector->base.id, connector->name);
 			return -EINVAL;
 		}
 
@@ -463,8 +467,9 @@ struct drm_plane_state *
 drm_atomic_get_plane_state(struct drm_atomic_state *state,
 			  struct drm_plane *plane)
 {
-	int ret, index = drm_plane_index(plane);
+	struct drm_device *dev = state->dev;
 	struct drm_plane_state *plane_state;
+	int ret, index = drm_plane_index(plane);
 
 	WARN_ON(!state->acquire_ctx);
 
@@ -491,8 +496,8 @@ drm_atomic_get_plane_state(struct drm_atomic_state *state,
 	state->planes[index].new_state = plane_state;
 	plane_state->state = state;
 
-	DRM_DEBUG_ATOMIC("Added [PLANE:%d:%s] %p state to %p\n",
-			 plane->base.id, plane->name, plane_state, state);
+	drm_dbg_atomic(dev, "Added [PLANE:%d:%s] %p state to %p\n",
+		       plane->base.id, plane->name, plane_state, state);
 
 	if (plane_state->crtc) {
 		struct drm_crtc_state *crtc_state;
@@ -539,6 +544,7 @@ static int drm_atomic_plane_check(const struct drm_plane_state *old_plane_state,
 				  const struct drm_plane_state *new_plane_state)
 {
 	struct drm_plane *plane = new_plane_state->plane;
+	struct drm_device *dev = plane->dev;
 	struct drm_crtc *crtc = new_plane_state->crtc;
 	const struct drm_framebuffer *fb = new_plane_state->fb;
 	unsigned int fb_width, fb_height;
@@ -548,12 +554,12 @@ static int drm_atomic_plane_check(const struct drm_plane_state *old_plane_state,
 
 	/* either *both* CRTC and FB must be set, or neither */
 	if (crtc && !fb) {
-		DRM_DEBUG_ATOMIC("[PLANE:%d:%s] CRTC set but no FB\n",
-				 plane->base.id, plane->name);
+		drm_dbg_atomic(dev, "[PLANE:%d:%s] CRTC set but no FB\n",
+			       plane->base.id, plane->name);
 		return -EINVAL;
 	} else if (fb && !crtc) {
-		DRM_DEBUG_ATOMIC("[PLANE:%d:%s] FB set but no CRTC\n",
-				 plane->base.id, plane->name);
+		drm_dbg_atomic(dev, "[PLANE:%d:%s] FB set but no CRTC\n",
+			       plane->base.id, plane->name);
 		return -EINVAL;
 	}
 
@@ -563,9 +569,9 @@ static int drm_atomic_plane_check(const struct drm_plane_state *old_plane_state,
 
 	/* Check whether this plane is usable on this CRTC */
 	if (!(plane->possible_crtcs & drm_crtc_mask(crtc))) {
-		DRM_DEBUG_ATOMIC("Invalid [CRTC:%d:%s] for [PLANE:%d:%s]\n",
-				 crtc->base.id, crtc->name,
-				 plane->base.id, plane->name);
+		drm_dbg_atomic(dev, "Invalid [CRTC:%d:%s] for [PLANE:%d:%s]\n",
+			       crtc->base.id, crtc->name,
+			       plane->base.id, plane->name);
 		return -EINVAL;
 	}
 
@@ -574,11 +580,11 @@ static int drm_atomic_plane_check(const struct drm_plane_state *old_plane_state,
 					   fb->modifier);
 	if (ret) {
 		struct drm_format_name_buf format_name;
-		DRM_DEBUG_ATOMIC("[PLANE:%d:%s] invalid pixel format %s, modifier 0x%llx\n",
-				 plane->base.id, plane->name,
-				 drm_get_format_name(fb->format->format,
-						     &format_name),
-				 fb->modifier);
+		drm_dbg_atomic(dev, "[PLANE:%d:%s] invalid pixel format %s, modifier 0x%llx\n",
+			       plane->base.id, plane->name,
+			       drm_get_format_name(fb->format->format,
+						   &format_name),
+			       fb->modifier);
 		return ret;
 	}
 
@@ -587,10 +593,10 @@ static int drm_atomic_plane_check(const struct drm_plane_state *old_plane_state,
 	    new_plane_state->crtc_x > INT_MAX - (int32_t) new_plane_state->crtc_w ||
 	    new_plane_state->crtc_h > INT_MAX ||
 	    new_plane_state->crtc_y > INT_MAX - (int32_t) new_plane_state->crtc_h) {
-		DRM_DEBUG_ATOMIC("[PLANE:%d:%s] invalid CRTC coordinates %ux%u+%d+%d\n",
-				 plane->base.id, plane->name,
-				 new_plane_state->crtc_w, new_plane_state->crtc_h,
-				 new_plane_state->crtc_x, new_plane_state->crtc_y);
+		drm_dbg_atomic(dev, "[PLANE:%d:%s] invalid CRTC coordinates %ux%u+%d+%d\n",
+			       plane->base.id, plane->name,
+			       new_plane_state->crtc_w, new_plane_state->crtc_h,
+			       new_plane_state->crtc_x, new_plane_state->crtc_y);
 		return -ERANGE;
 	}
 
@@ -602,18 +608,18 @@ static int drm_atomic_plane_check(const struct drm_plane_state *old_plane_state,
 	    new_plane_state->src_x > fb_width - new_plane_state->src_w ||
 	    new_plane_state->src_h > fb_height ||
 	    new_plane_state->src_y > fb_height - new_plane_state->src_h) {
-		DRM_DEBUG_ATOMIC("[PLANE:%d:%s] invalid source coordinates "
-				 "%u.%06ux%u.%06u+%u.%06u+%u.%06u (fb %ux%u)\n",
-				 plane->base.id, plane->name,
-				 new_plane_state->src_w >> 16,
-				 ((new_plane_state->src_w & 0xffff) * 15625) >> 10,
-				 new_plane_state->src_h >> 16,
-				 ((new_plane_state->src_h & 0xffff) * 15625) >> 10,
-				 new_plane_state->src_x >> 16,
-				 ((new_plane_state->src_x & 0xffff) * 15625) >> 10,
-				 new_plane_state->src_y >> 16,
-				 ((new_plane_state->src_y & 0xffff) * 15625) >> 10,
-				 fb->width, fb->height);
+		drm_dbg_atomic(dev, "[PLANE:%d:%s] invalid source coordinates "
+			       "%u.%06ux%u.%06u+%u.%06u+%u.%06u (fb %ux%u)\n",
+			       plane->base.id, plane->name,
+			       new_plane_state->src_w >> 16,
+			       ((new_plane_state->src_w & 0xffff) * 15625) >> 10,
+			       new_plane_state->src_h >> 16,
+			       ((new_plane_state->src_h & 0xffff) * 15625) >> 10,
+			       new_plane_state->src_x >> 16,
+			       ((new_plane_state->src_x & 0xffff) * 15625) >> 10,
+			       new_plane_state->src_y >> 16,
+			       ((new_plane_state->src_y & 0xffff) * 15625) >> 10,
+			       fb->width, fb->height);
 		return -ENOSPC;
 	}
 
@@ -628,9 +634,9 @@ static int drm_atomic_plane_check(const struct drm_plane_state *old_plane_state,
 		    clips->y1 < 0 ||
 		    clips->x2 > fb_width ||
 		    clips->y2 > fb_height) {
-			DRM_DEBUG_ATOMIC("[PLANE:%d:%s] invalid damage clip %d %d %d %d\n",
-					 plane->base.id, plane->name, clips->x1,
-					 clips->y1, clips->x2, clips->y2);
+			drm_dbg_atomic(dev, "[PLANE:%d:%s] invalid damage clip %d %d %d %d\n",
+				       plane->base.id, plane->name, clips->x1,
+				       clips->y1, clips->x2, clips->y2);
 			return -EINVAL;
 		}
 		clips++;
@@ -638,8 +644,8 @@ static int drm_atomic_plane_check(const struct drm_plane_state *old_plane_state,
 	}
 
 	if (plane_switching_crtc(old_plane_state, new_plane_state)) {
-		DRM_DEBUG_ATOMIC("[PLANE:%d:%s] switching CRTC directly\n",
-				 plane->base.id, plane->name);
+		drm_dbg_atomic(dev, "[PLANE:%d:%s] switching CRTC directly\n",
+			       plane->base.id, plane->name);
 		return -EINVAL;
 	}
 
@@ -766,6 +772,7 @@ struct drm_private_state *
 drm_atomic_get_private_obj_state(struct drm_atomic_state *state,
 				 struct drm_private_obj *obj)
 {
+	struct drm_device *dev = state->dev;
 	int index, num_objs, i, ret;
 	size_t size;
 	struct __drm_private_objs_state *arr;
@@ -801,8 +808,8 @@ drm_atomic_get_private_obj_state(struct drm_atomic_state *state,
 
 	state->num_private_objs = num_objs;
 
-	DRM_DEBUG_ATOMIC("Added new private object %p state %p to %p\n",
-			 obj, obj_state, state);
+	drm_dbg_atomic(dev, "Added new private object %p state %p to %p\n",
+		       obj, obj_state, state);
 
 	return obj_state;
 }
@@ -940,6 +947,7 @@ struct drm_connector_state *
 drm_atomic_get_connector_state(struct drm_atomic_state *state,
 			  struct drm_connector *connector)
 {
+	struct drm_device *dev = state->dev;
 	int ret, index;
 	struct drm_mode_config *config = &connector->dev->mode_config;
 	struct drm_connector_state *connector_state;
@@ -981,9 +989,9 @@ drm_atomic_get_connector_state(struct drm_atomic_state *state,
 	state->connectors[index].ptr = connector;
 	connector_state->state = state;
 
-	DRM_DEBUG_ATOMIC("Added [CONNECTOR:%d:%s] %p state to %p\n",
-			 connector->base.id, connector->name,
-			 connector_state, state);
+	drm_dbg_atomic(dev, "Added [CONNECTOR:%d:%s] %p state to %p\n",
+		       connector->base.id, connector->name,
+		       connector_state, state);
 
 	if (connector_state->crtc) {
 		struct drm_crtc_state *crtc_state;
@@ -1036,7 +1044,8 @@ int
 drm_atomic_add_affected_connectors(struct drm_atomic_state *state,
 				   struct drm_crtc *crtc)
 {
-	struct drm_mode_config *config = &state->dev->mode_config;
+	struct drm_device *dev = state->dev;
+	struct drm_mode_config *config = &dev->mode_config;
 	struct drm_connector *connector;
 	struct drm_connector_state *conn_state;
 	struct drm_connector_list_iter conn_iter;
@@ -1051,8 +1060,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:%s] to %p\n",
-			 crtc->base.id, crtc->name, state);
+	drm_dbg_atomic(dev, "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
@@ -1099,14 +1108,15 @@ int
 drm_atomic_add_affected_planes(struct drm_atomic_state *state,
 			       struct drm_crtc *crtc)
 {
+	struct drm_device *dev = state->dev;
 	const struct drm_crtc_state *old_crtc_state =
 		drm_atomic_get_old_crtc_state(state, crtc);
 	struct drm_plane *plane;
 
 	WARN_ON(!drm_atomic_get_new_crtc_state(state, crtc));
 
-	DRM_DEBUG_ATOMIC("Adding all current planes for [CRTC:%d:%s] to %p\n",
-			 crtc->base.id, crtc->name, state);
+	drm_dbg_atomic(dev, "Adding all current planes for [CRTC:%d:%s] to %p\n",
+		       crtc->base.id, crtc->name, state);
 
 	drm_for_each_plane_mask(plane, state->dev, old_crtc_state->plane_mask) {
 		struct drm_plane_state *plane_state =
@@ -1144,13 +1154,13 @@ int drm_atomic_check_only(struct drm_atomic_state *state)
 	struct drm_connector_state *conn_state;
 	int i, ret = 0;
 
-	DRM_DEBUG_ATOMIC("checking %p\n", state);
+	drm_dbg_atomic(dev, "checking %p\n", state);
 
 	for_each_oldnew_plane_in_state(state, plane, old_plane_state, new_plane_state, i) {
 		ret = drm_atomic_plane_check(old_plane_state, new_plane_state);
 		if (ret) {
-			DRM_DEBUG_ATOMIC("[PLANE:%d:%s] atomic core check failed\n",
-					 plane->base.id, plane->name);
+			drm_dbg_atomic(dev, "[PLANE:%d:%s] atomic core check failed\n",
+				       plane->base.id, plane->name);
 			return ret;
 		}
 	}
@@ -1158,8 +1168,8 @@ int drm_atomic_check_only(struct drm_atomic_state *state)
 	for_each_oldnew_crtc_in_state(state, crtc, old_crtc_state, new_crtc_state, i) {
 		ret = drm_atomic_crtc_check(old_crtc_state, new_crtc_state);
 		if (ret) {
-			DRM_DEBUG_ATOMIC("[CRTC:%d:%s] atomic core check failed\n",
-					 crtc->base.id, crtc->name);
+			drm_dbg_atomic(dev, "[CRTC:%d:%s] atomic core check failed\n",
+				       crtc->base.id, crtc->name);
 			return ret;
 		}
 	}
@@ -1167,8 +1177,8 @@ int drm_atomic_check_only(struct drm_atomic_state *state)
 	for_each_new_connector_in_state(state, conn, conn_state, i) {
 		ret = drm_atomic_connector_check(conn, conn_state);
 		if (ret) {
-			DRM_DEBUG_ATOMIC("[CONNECTOR:%d:%s] atomic core check failed\n",
-					 conn->base.id, conn->name);
+			drm_dbg_atomic(dev, "[CONNECTOR:%d:%s] atomic core check failed\n",
+				       conn->base.id, conn->name);
 			return ret;
 		}
 	}
@@ -1177,8 +1187,8 @@ int drm_atomic_check_only(struct drm_atomic_state *state)
 		ret = config->funcs->atomic_check(state->dev, state);
 
 		if (ret) {
-			DRM_DEBUG_ATOMIC("atomic driver check for %p failed: %d\n",
-					 state, ret);
+			drm_dbg_atomic(dev, "atomic driver check for %p failed: %d\n",
+				       state, ret);
 			return ret;
 		}
 	}
@@ -1186,8 +1196,8 @@ int drm_atomic_check_only(struct drm_atomic_state *state)
 	if (!state->allow_modeset) {
 		for_each_new_crtc_in_state(state, crtc, new_crtc_state, i) {
 			if (drm_atomic_crtc_needs_modeset(new_crtc_state)) {
-				DRM_DEBUG_ATOMIC("[CRTC:%d:%s] requires full modeset\n",
-						 crtc->base.id, crtc->name);
+				drm_dbg_atomic(dev, "[CRTC:%d:%s] requires full modeset\n",
+					       crtc->base.id, crtc->name);
 				return -EINVAL;
 			}
 		}
@@ -1213,14 +1223,15 @@ EXPORT_SYMBOL(drm_atomic_check_only);
  */
 int drm_atomic_commit(struct drm_atomic_state *state)
 {
-	struct drm_mode_config *config = &state->dev->mode_config;
+	struct drm_device *dev = state->dev;
+	struct drm_mode_config *config = &dev->mode_config;
 	int ret;
 
 	ret = drm_atomic_check_only(state);
 	if (ret)
 		return ret;
 
-	DRM_DEBUG_ATOMIC("committing %p\n", state);
+	drm_dbg_atomic(dev, "committing %p\n", state);
 
 	return config->funcs->atomic_commit(state->dev, state, false);
 }
@@ -1242,14 +1253,15 @@ EXPORT_SYMBOL(drm_atomic_commit);
  */
 int drm_atomic_nonblocking_commit(struct drm_atomic_state *state)
 {
-	struct drm_mode_config *config = &state->dev->mode_config;
+	struct drm_device *dev = state->dev;
+	struct drm_mode_config *config = &dev->mode_config;
 	int ret;
 
 	ret = drm_atomic_check_only(state);
 	if (ret)
 		return ret;
 
-	DRM_DEBUG_ATOMIC("committing %p nonblocking\n", state);
+	drm_dbg_atomic(dev, "committing %p nonblocking\n", state);
 
 	return config->funcs->atomic_commit(state->dev, state, true);
 }
@@ -1425,7 +1437,8 @@ EXPORT_SYMBOL(__drm_atomic_helper_set_config);
 
 void drm_atomic_print_state(const struct drm_atomic_state *state)
 {
-	struct drm_printer p = drm_info_printer(state->dev->dev);
+	struct drm_device *dev = state->dev;
+	struct drm_printer p = drm_info_printer(dev->dev);
 	struct drm_plane *plane;
 	struct drm_plane_state *plane_state;
 	struct drm_crtc *crtc;
@@ -1434,7 +1447,7 @@ void drm_atomic_print_state(const struct drm_atomic_state *state)
 	struct drm_connector_state *connector_state;
 	int i;
 
-	DRM_DEBUG_ATOMIC("checking %p\n", state);
+	drm_dbg_atomic(dev, "checking %p\n", state);
 
 	for_each_new_plane_in_state(state, plane, plane_state, i)
 		drm_atomic_plane_print_state(&p, plane_state);
-- 
2.20.1

_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx

^ permalink raw reply related	[flat|nested] 53+ messages in thread

* [PATCH 7/8] drm/i915/uc: convert to drm device based logging
  2019-12-10 12:30 ` [Intel-gfx] " Jani Nikula
@ 2019-12-10 12:30   ` Jani Nikula
  -1 siblings, 0 replies; 53+ messages in thread
From: Jani Nikula @ 2019-12-10 12:30 UTC (permalink / raw)
  To: dri-devel; +Cc: jani.nikula, intel-gfx

Prefer drm_dbg() over DRM_DEV_DEBUG_DRIVER().

Signed-off-by: Jani Nikula <jani.nikula@intel.com>
---
 drivers/gpu/drm/i915/gt/uc/intel_guc.c   |  2 +-
 drivers/gpu/drm/i915/gt/uc/intel_huc.c   |  2 +-
 drivers/gpu/drm/i915/gt/uc/intel_uc.c    | 12 ++++++------
 drivers/gpu/drm/i915/gt/uc/intel_uc_fw.c | 10 +++++-----
 4 files changed, 13 insertions(+), 13 deletions(-)

diff --git a/drivers/gpu/drm/i915/gt/uc/intel_guc.c b/drivers/gpu/drm/i915/gt/uc/intel_guc.c
index 922a19635d20..72cff3224971 100644
--- a/drivers/gpu/drm/i915/gt/uc/intel_guc.c
+++ b/drivers/gpu/drm/i915/gt/uc/intel_guc.c
@@ -379,7 +379,7 @@ int intel_guc_init(struct intel_guc *guc)
 	intel_uc_fw_fini(&guc->fw);
 err_fetch:
 	intel_uc_fw_cleanup_fetch(&guc->fw);
-	DRM_DEV_DEBUG_DRIVER(gt->i915->drm.dev, "failed with %d\n", ret);
+	drm_dbg(&gt->i915->drm, "failed with %d\n", ret);
 	return ret;
 }
 
diff --git a/drivers/gpu/drm/i915/gt/uc/intel_huc.c b/drivers/gpu/drm/i915/gt/uc/intel_huc.c
index 32a069841c14..7f30d4a048d6 100644
--- a/drivers/gpu/drm/i915/gt/uc/intel_huc.c
+++ b/drivers/gpu/drm/i915/gt/uc/intel_huc.c
@@ -127,7 +127,7 @@ int intel_huc_init(struct intel_huc *huc)
 	intel_uc_fw_fini(&huc->fw);
 out:
 	intel_uc_fw_cleanup_fetch(&huc->fw);
-	DRM_DEV_DEBUG_DRIVER(i915->drm.dev, "failed with %d\n", err);
+	drm_dbg(&i915->drm, "failed with %d\n", err);
 	return err;
 }
 
diff --git a/drivers/gpu/drm/i915/gt/uc/intel_uc.c b/drivers/gpu/drm/i915/gt/uc/intel_uc.c
index c6519066a0f6..de4feaa4b7a0 100644
--- a/drivers/gpu/drm/i915/gt/uc/intel_uc.c
+++ b/drivers/gpu/drm/i915/gt/uc/intel_uc.c
@@ -42,12 +42,12 @@ static void __confirm_options(struct intel_uc *uc)
 {
 	struct drm_i915_private *i915 = uc_to_gt(uc)->i915;
 
-	DRM_DEV_DEBUG_DRIVER(i915->drm.dev,
-			     "enable_guc=%d (guc:%s submission:%s huc:%s)\n",
-			     i915_modparams.enable_guc,
-			     yesno(intel_uc_uses_guc(uc)),
-			     yesno(intel_uc_uses_guc_submission(uc)),
-			     yesno(intel_uc_uses_huc(uc)));
+	drm_dbg(&i915->drm,
+		"enable_guc=%d (guc:%s submission:%s huc:%s)\n",
+		i915_modparams.enable_guc,
+		yesno(intel_uc_uses_guc(uc)),
+		yesno(intel_uc_uses_guc_submission(uc)),
+		yesno(intel_uc_uses_huc(uc)));
 
 	if (i915_modparams.enable_guc == -1)
 		return;
diff --git a/drivers/gpu/drm/i915/gt/uc/intel_uc_fw.c b/drivers/gpu/drm/i915/gt/uc/intel_uc_fw.c
index 66a30ab7044a..a88f4066be41 100644
--- a/drivers/gpu/drm/i915/gt/uc/intel_uc_fw.c
+++ b/drivers/gpu/drm/i915/gt/uc/intel_uc_fw.c
@@ -26,11 +26,11 @@ void intel_uc_fw_change_status(struct intel_uc_fw *uc_fw,
 			       enum intel_uc_fw_status status)
 {
 	uc_fw->__status =  status;
-	DRM_DEV_DEBUG_DRIVER(__uc_fw_to_gt(uc_fw)->i915->drm.dev,
-			     "%s firmware -> %s\n",
-			     intel_uc_fw_type_repr(uc_fw->type),
-			     status == INTEL_UC_FIRMWARE_SELECTED ?
-			     uc_fw->path : intel_uc_fw_status_repr(status));
+	drm_dbg(&__uc_fw_to_gt(uc_fw)->i915->drm,
+		"%s firmware -> %s\n",
+		intel_uc_fw_type_repr(uc_fw->type),
+		status == INTEL_UC_FIRMWARE_SELECTED ?
+		uc_fw->path : intel_uc_fw_status_repr(status));
 }
 #endif
 
-- 
2.20.1

_______________________________________________
dri-devel mailing list
dri-devel@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/dri-devel

^ permalink raw reply related	[flat|nested] 53+ messages in thread

* [Intel-gfx] [PATCH 7/8] drm/i915/uc: convert to drm device based logging
@ 2019-12-10 12:30   ` Jani Nikula
  0 siblings, 0 replies; 53+ messages in thread
From: Jani Nikula @ 2019-12-10 12:30 UTC (permalink / raw)
  To: dri-devel; +Cc: jani.nikula, intel-gfx

Prefer drm_dbg() over DRM_DEV_DEBUG_DRIVER().

Signed-off-by: Jani Nikula <jani.nikula@intel.com>
---
 drivers/gpu/drm/i915/gt/uc/intel_guc.c   |  2 +-
 drivers/gpu/drm/i915/gt/uc/intel_huc.c   |  2 +-
 drivers/gpu/drm/i915/gt/uc/intel_uc.c    | 12 ++++++------
 drivers/gpu/drm/i915/gt/uc/intel_uc_fw.c | 10 +++++-----
 4 files changed, 13 insertions(+), 13 deletions(-)

diff --git a/drivers/gpu/drm/i915/gt/uc/intel_guc.c b/drivers/gpu/drm/i915/gt/uc/intel_guc.c
index 922a19635d20..72cff3224971 100644
--- a/drivers/gpu/drm/i915/gt/uc/intel_guc.c
+++ b/drivers/gpu/drm/i915/gt/uc/intel_guc.c
@@ -379,7 +379,7 @@ int intel_guc_init(struct intel_guc *guc)
 	intel_uc_fw_fini(&guc->fw);
 err_fetch:
 	intel_uc_fw_cleanup_fetch(&guc->fw);
-	DRM_DEV_DEBUG_DRIVER(gt->i915->drm.dev, "failed with %d\n", ret);
+	drm_dbg(&gt->i915->drm, "failed with %d\n", ret);
 	return ret;
 }
 
diff --git a/drivers/gpu/drm/i915/gt/uc/intel_huc.c b/drivers/gpu/drm/i915/gt/uc/intel_huc.c
index 32a069841c14..7f30d4a048d6 100644
--- a/drivers/gpu/drm/i915/gt/uc/intel_huc.c
+++ b/drivers/gpu/drm/i915/gt/uc/intel_huc.c
@@ -127,7 +127,7 @@ int intel_huc_init(struct intel_huc *huc)
 	intel_uc_fw_fini(&huc->fw);
 out:
 	intel_uc_fw_cleanup_fetch(&huc->fw);
-	DRM_DEV_DEBUG_DRIVER(i915->drm.dev, "failed with %d\n", err);
+	drm_dbg(&i915->drm, "failed with %d\n", err);
 	return err;
 }
 
diff --git a/drivers/gpu/drm/i915/gt/uc/intel_uc.c b/drivers/gpu/drm/i915/gt/uc/intel_uc.c
index c6519066a0f6..de4feaa4b7a0 100644
--- a/drivers/gpu/drm/i915/gt/uc/intel_uc.c
+++ b/drivers/gpu/drm/i915/gt/uc/intel_uc.c
@@ -42,12 +42,12 @@ static void __confirm_options(struct intel_uc *uc)
 {
 	struct drm_i915_private *i915 = uc_to_gt(uc)->i915;
 
-	DRM_DEV_DEBUG_DRIVER(i915->drm.dev,
-			     "enable_guc=%d (guc:%s submission:%s huc:%s)\n",
-			     i915_modparams.enable_guc,
-			     yesno(intel_uc_uses_guc(uc)),
-			     yesno(intel_uc_uses_guc_submission(uc)),
-			     yesno(intel_uc_uses_huc(uc)));
+	drm_dbg(&i915->drm,
+		"enable_guc=%d (guc:%s submission:%s huc:%s)\n",
+		i915_modparams.enable_guc,
+		yesno(intel_uc_uses_guc(uc)),
+		yesno(intel_uc_uses_guc_submission(uc)),
+		yesno(intel_uc_uses_huc(uc)));
 
 	if (i915_modparams.enable_guc == -1)
 		return;
diff --git a/drivers/gpu/drm/i915/gt/uc/intel_uc_fw.c b/drivers/gpu/drm/i915/gt/uc/intel_uc_fw.c
index 66a30ab7044a..a88f4066be41 100644
--- a/drivers/gpu/drm/i915/gt/uc/intel_uc_fw.c
+++ b/drivers/gpu/drm/i915/gt/uc/intel_uc_fw.c
@@ -26,11 +26,11 @@ void intel_uc_fw_change_status(struct intel_uc_fw *uc_fw,
 			       enum intel_uc_fw_status status)
 {
 	uc_fw->__status =  status;
-	DRM_DEV_DEBUG_DRIVER(__uc_fw_to_gt(uc_fw)->i915->drm.dev,
-			     "%s firmware -> %s\n",
-			     intel_uc_fw_type_repr(uc_fw->type),
-			     status == INTEL_UC_FIRMWARE_SELECTED ?
-			     uc_fw->path : intel_uc_fw_status_repr(status));
+	drm_dbg(&__uc_fw_to_gt(uc_fw)->i915->drm,
+		"%s firmware -> %s\n",
+		intel_uc_fw_type_repr(uc_fw->type),
+		status == INTEL_UC_FIRMWARE_SELECTED ?
+		uc_fw->path : intel_uc_fw_status_repr(status));
 }
 #endif
 
-- 
2.20.1

_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx

^ permalink raw reply related	[flat|nested] 53+ messages in thread

* [PATCH 8/8] drm/i915/wopcm: convert to drm device based logging
  2019-12-10 12:30 ` [Intel-gfx] " Jani Nikula
@ 2019-12-10 12:30   ` Jani Nikula
  -1 siblings, 0 replies; 53+ messages in thread
From: Jani Nikula @ 2019-12-10 12:30 UTC (permalink / raw)
  To: dri-devel; +Cc: jani.nikula, intel-gfx

Prefer drm_dbg() over DRM_DEV_DEBUG_DRIVER().

Signed-off-by: Jani Nikula <jani.nikula@intel.com>
---
 drivers/gpu/drm/i915/intel_wopcm.c | 12 +++++-------
 1 file changed, 5 insertions(+), 7 deletions(-)

diff --git a/drivers/gpu/drm/i915/intel_wopcm.c b/drivers/gpu/drm/i915/intel_wopcm.c
index 2bb9f9f9a50a..4e8f2862cfff 100644
--- a/drivers/gpu/drm/i915/intel_wopcm.c
+++ b/drivers/gpu/drm/i915/intel_wopcm.c
@@ -86,7 +86,7 @@ void intel_wopcm_init_early(struct intel_wopcm *wopcm)
 	else
 		wopcm->size = GEN9_WOPCM_SIZE;
 
-	DRM_DEV_DEBUG_DRIVER(i915->drm.dev, "WOPCM: %uK\n", wopcm->size / 1024);
+	drm_dbg(&i915->drm, "WOPCM: %uK\n", wopcm->size / 1024);
 }
 
 static inline u32 context_reserved_size(struct drm_i915_private *i915)
@@ -242,10 +242,8 @@ void intel_wopcm_init(struct intel_wopcm *wopcm)
 		return;
 
 	if (__wopcm_regs_locked(gt->uncore, &guc_wopcm_base, &guc_wopcm_size)) {
-		DRM_DEV_DEBUG_DRIVER(i915->drm.dev,
-				     "GuC WOPCM is already locked [%uK, %uK)\n",
-				     guc_wopcm_base / SZ_1K,
-				     guc_wopcm_size / SZ_1K);
+		drm_dbg(&i915->drm, "GuC WOPCM is already locked [%uK, %uK)\n",
+			guc_wopcm_base / SZ_1K, guc_wopcm_size / SZ_1K);
 		goto check;
 	}
 
@@ -266,8 +264,8 @@ void intel_wopcm_init(struct intel_wopcm *wopcm)
 	guc_wopcm_size = wopcm->size - ctx_rsvd - guc_wopcm_base;
 	guc_wopcm_size &= GUC_WOPCM_SIZE_MASK;
 
-	DRM_DEV_DEBUG_DRIVER(i915->drm.dev, "Calculated GuC WOPCM [%uK, %uK)\n",
-			     guc_wopcm_base / SZ_1K, guc_wopcm_size / SZ_1K);
+	drm_dbg(&i915->drm, "Calculated GuC WOPCM [%uK, %uK)\n",
+		guc_wopcm_base / SZ_1K, guc_wopcm_size / SZ_1K);
 
 check:
 	if (__check_layout(i915, wopcm->size, guc_wopcm_base, guc_wopcm_size,
-- 
2.20.1

_______________________________________________
dri-devel mailing list
dri-devel@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/dri-devel

^ permalink raw reply related	[flat|nested] 53+ messages in thread

* [Intel-gfx] [PATCH 8/8] drm/i915/wopcm: convert to drm device based logging
@ 2019-12-10 12:30   ` Jani Nikula
  0 siblings, 0 replies; 53+ messages in thread
From: Jani Nikula @ 2019-12-10 12:30 UTC (permalink / raw)
  To: dri-devel; +Cc: jani.nikula, intel-gfx

Prefer drm_dbg() over DRM_DEV_DEBUG_DRIVER().

Signed-off-by: Jani Nikula <jani.nikula@intel.com>
---
 drivers/gpu/drm/i915/intel_wopcm.c | 12 +++++-------
 1 file changed, 5 insertions(+), 7 deletions(-)

diff --git a/drivers/gpu/drm/i915/intel_wopcm.c b/drivers/gpu/drm/i915/intel_wopcm.c
index 2bb9f9f9a50a..4e8f2862cfff 100644
--- a/drivers/gpu/drm/i915/intel_wopcm.c
+++ b/drivers/gpu/drm/i915/intel_wopcm.c
@@ -86,7 +86,7 @@ void intel_wopcm_init_early(struct intel_wopcm *wopcm)
 	else
 		wopcm->size = GEN9_WOPCM_SIZE;
 
-	DRM_DEV_DEBUG_DRIVER(i915->drm.dev, "WOPCM: %uK\n", wopcm->size / 1024);
+	drm_dbg(&i915->drm, "WOPCM: %uK\n", wopcm->size / 1024);
 }
 
 static inline u32 context_reserved_size(struct drm_i915_private *i915)
@@ -242,10 +242,8 @@ void intel_wopcm_init(struct intel_wopcm *wopcm)
 		return;
 
 	if (__wopcm_regs_locked(gt->uncore, &guc_wopcm_base, &guc_wopcm_size)) {
-		DRM_DEV_DEBUG_DRIVER(i915->drm.dev,
-				     "GuC WOPCM is already locked [%uK, %uK)\n",
-				     guc_wopcm_base / SZ_1K,
-				     guc_wopcm_size / SZ_1K);
+		drm_dbg(&i915->drm, "GuC WOPCM is already locked [%uK, %uK)\n",
+			guc_wopcm_base / SZ_1K, guc_wopcm_size / SZ_1K);
 		goto check;
 	}
 
@@ -266,8 +264,8 @@ void intel_wopcm_init(struct intel_wopcm *wopcm)
 	guc_wopcm_size = wopcm->size - ctx_rsvd - guc_wopcm_base;
 	guc_wopcm_size &= GUC_WOPCM_SIZE_MASK;
 
-	DRM_DEV_DEBUG_DRIVER(i915->drm.dev, "Calculated GuC WOPCM [%uK, %uK)\n",
-			     guc_wopcm_base / SZ_1K, guc_wopcm_size / SZ_1K);
+	drm_dbg(&i915->drm, "Calculated GuC WOPCM [%uK, %uK)\n",
+		guc_wopcm_base / SZ_1K, guc_wopcm_size / SZ_1K);
 
 check:
 	if (__check_layout(i915, wopcm->size, guc_wopcm_base, guc_wopcm_size,
-- 
2.20.1

_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx

^ permalink raw reply related	[flat|nested] 53+ messages in thread

* Re: [PATCH 1/8] drm/print: introduce new struct drm_device based logging macros
  2019-12-10 12:30 ` [Intel-gfx] " Jani Nikula
@ 2019-12-10 12:34   ` Jani Nikula
  -1 siblings, 0 replies; 53+ messages in thread
From: Jani Nikula @ 2019-12-10 12:34 UTC (permalink / raw)
  To: dri-devel; +Cc: Sean Paul, intel-gfx, Sam Ravnborg, Rodrigo Vivi

On Tue, 10 Dec 2019, Jani Nikula <jani.nikula@intel.com> wrote:
> Add new struct drm_device based logging macros modeled after the core
> kernel device based logging macros. These would be preferred over the
> drm printk and struct device based macros in drm code, where possible.

As to cover letter, patches 2-8 using the logging macros introduced here
are just the beginning. It's not trivial to write a cocci script to dig
up struct drm_device * where there is none, so much of it may need to be
done manually. But we could start here.

BR,
Jani.

-- 
Jani Nikula, Intel Open Source Graphics Center
_______________________________________________
dri-devel mailing list
dri-devel@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/dri-devel

^ permalink raw reply	[flat|nested] 53+ messages in thread

* Re: [Intel-gfx] [PATCH 1/8] drm/print: introduce new struct drm_device based logging macros
@ 2019-12-10 12:34   ` Jani Nikula
  0 siblings, 0 replies; 53+ messages in thread
From: Jani Nikula @ 2019-12-10 12:34 UTC (permalink / raw)
  To: dri-devel; +Cc: intel-gfx, Sam Ravnborg

On Tue, 10 Dec 2019, Jani Nikula <jani.nikula@intel.com> wrote:
> Add new struct drm_device based logging macros modeled after the core
> kernel device based logging macros. These would be preferred over the
> drm printk and struct device based macros in drm code, where possible.

As to cover letter, patches 2-8 using the logging macros introduced here
are just the beginning. It's not trivial to write a cocci script to dig
up struct drm_device * where there is none, so much of it may need to be
done manually. But we could start here.

BR,
Jani.

-- 
Jani Nikula, Intel Open Source Graphics Center
_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx

^ permalink raw reply	[flat|nested] 53+ messages in thread

* [Intel-gfx] ✗ Fi.CI.CHECKPATCH: warning for series starting with [1/8] drm/print: introduce new struct drm_device based logging macros
  2019-12-10 12:30 ` [Intel-gfx] " Jani Nikula
                   ` (8 preceding siblings ...)
  (?)
@ 2019-12-10 19:27 ` Patchwork
  -1 siblings, 0 replies; 53+ messages in thread
From: Patchwork @ 2019-12-10 19:27 UTC (permalink / raw)
  To: Jani Nikula; +Cc: intel-gfx

== Series Details ==

Series: series starting with [1/8] drm/print: introduce new struct drm_device based logging macros
URL   : https://patchwork.freedesktop.org/series/70685/
State : warning

== Summary ==

$ dim checkpatch origin/drm-tip
e36a486e7bb8 drm/print: introduce new struct drm_device based logging macros
-:82: CHECK:LINE_SPACING: Please don't use multiple blank lines
#82: FILE: include/drm/drm_print.h:432:
+
+

-:84: ERROR:SPACING: space required after that ',' (ctx:VxO)
#84: FILE: include/drm/drm_print.h:434:
+	__drm_printk((drm), info,, fmt, ##__VA_ARGS__)
 	                        ^

-:87: ERROR:SPACING: space required after that ',' (ctx:VxO)
#87: FILE: include/drm/drm_print.h:437:
+	__drm_printk((drm), notice,, fmt, ##__VA_ARGS__)
 	                          ^

-:90: ERROR:SPACING: space required after that ',' (ctx:VxO)
#90: FILE: include/drm/drm_print.h:440:
+	__drm_printk((drm), warn,, fmt, ##__VA_ARGS__)
 	                        ^

-:93: ERROR:SPACING: space required after that ',' (ctx:VxO)
#93: FILE: include/drm/drm_print.h:443:
+	__drm_printk((drm), err,, "*ERROR* " fmt, ##__VA_ARGS__)
 	                       ^

-:95: CHECK:LINE_SPACING: Please don't use multiple blank lines
#95: FILE: include/drm/drm_print.h:445:
+
+

-:108: CHECK:LINE_SPACING: Please don't use multiple blank lines
#108: FILE: include/drm/drm_print.h:458:
+
+

-:112: CHECK:LINE_SPACING: Please don't use multiple blank lines
#112: FILE: include/drm/drm_print.h:462:
+
+

-:132: CHECK:LINE_SPACING: Please don't use multiple blank lines
#132: FILE: include/drm/drm_print.h:482:
+
+

total: 4 errors, 0 warnings, 5 checks, 79 lines checked
9e4cda811194 drm/client: convert to drm device based logging
4aa741b7ace7 drm/fb-helper: convert to drm device based logging
43216b61c8c8 drm/gem-fb-helper: convert to drm device based logging
1140ddc7f557 drm/mipi-dbi: convert to drm device based logging
41aad98d0cf3 drm/atomic: convert to drm device based logging
840bfaa93b0a drm/i915/uc: convert to drm device based logging
c6cf4a566a86 drm/i915/wopcm: convert to drm device based logging

_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx

^ permalink raw reply	[flat|nested] 53+ messages in thread

* [Intel-gfx] ✗ Fi.CI.BAT: failure for series starting with [1/8] drm/print: introduce new struct drm_device based logging macros
  2019-12-10 12:30 ` [Intel-gfx] " Jani Nikula
                   ` (9 preceding siblings ...)
  (?)
@ 2019-12-10 19:52 ` Patchwork
  -1 siblings, 0 replies; 53+ messages in thread
From: Patchwork @ 2019-12-10 19:52 UTC (permalink / raw)
  To: Jani Nikula; +Cc: intel-gfx

== Series Details ==

Series: series starting with [1/8] drm/print: introduce new struct drm_device based logging macros
URL   : https://patchwork.freedesktop.org/series/70685/
State : failure

== Summary ==

CI Bug Log - changes from CI_DRM_7532 -> Patchwork_15667
====================================================

Summary
-------

  **FAILURE**

  Serious unknown changes coming with Patchwork_15667 absolutely need to be
  verified manually.
  
  If you think the reported changes have nothing to do with the changes
  introduced in Patchwork_15667, please notify your bug team to allow them
  to document this new failure mode, which will reduce false positives in CI.

  External URL: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15667/index.html

Possible new issues
-------------------

  Here are the unknown changes that may have been introduced in Patchwork_15667:

### IGT changes ###

#### Possible regressions ####

  * igt@i915_selftest@live_requests:
    - fi-ivb-3770:        [PASS][1] -> [INCOMPLETE][2]
   [1]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7532/fi-ivb-3770/igt@i915_selftest@live_requests.html
   [2]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15667/fi-ivb-3770/igt@i915_selftest@live_requests.html

  
Known issues
------------

  Here are the changes found in Patchwork_15667 that come from known issues:

### IGT changes ###

#### Issues hit ####

  * igt@gem_sync@basic-all:
    - fi-tgl-y:           [PASS][3] -> [INCOMPLETE][4] ([i915#470])
   [3]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7532/fi-tgl-y/igt@gem_sync@basic-all.html
   [4]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15667/fi-tgl-y/igt@gem_sync@basic-all.html

  * igt@i915_pm_rpm@module-reload:
    - fi-skl-6770hq:      [PASS][5] -> [FAIL][6] ([i915#178])
   [5]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7532/fi-skl-6770hq/igt@i915_pm_rpm@module-reload.html
   [6]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15667/fi-skl-6770hq/igt@i915_pm_rpm@module-reload.html

  * igt@i915_selftest@live_blt:
    - fi-hsw-4770r:       [PASS][7] -> [DMESG-FAIL][8] ([i915#725])
   [7]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7532/fi-hsw-4770r/igt@i915_selftest@live_blt.html
   [8]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15667/fi-hsw-4770r/igt@i915_selftest@live_blt.html

  * igt@kms_chamelium@hdmi-hpd-fast:
    - fi-kbl-7500u:       [PASS][9] -> [FAIL][10] ([fdo#111096] / [i915#323])
   [9]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7532/fi-kbl-7500u/igt@kms_chamelium@hdmi-hpd-fast.html
   [10]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15667/fi-kbl-7500u/igt@kms_chamelium@hdmi-hpd-fast.html

  
#### Possible fixes ####

  * igt@i915_selftest@live_blt:
    - fi-bsw-n3050:       [DMESG-FAIL][11] ([i915#723]) -> [PASS][12]
   [11]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7532/fi-bsw-n3050/igt@i915_selftest@live_blt.html
   [12]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15667/fi-bsw-n3050/igt@i915_selftest@live_blt.html
    - fi-byt-j1900:       [DMESG-FAIL][13] ([i915#725]) -> [PASS][14]
   [13]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7532/fi-byt-j1900/igt@i915_selftest@live_blt.html
   [14]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15667/fi-byt-j1900/igt@i915_selftest@live_blt.html

  * igt@i915_selftest@live_gem_contexts:
    - fi-hsw-peppy:       [INCOMPLETE][15] ([i915#694]) -> [PASS][16]
   [15]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7532/fi-hsw-peppy/igt@i915_selftest@live_gem_contexts.html
   [16]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15667/fi-hsw-peppy/igt@i915_selftest@live_gem_contexts.html
    - fi-byt-n2820:       [INCOMPLETE][17] ([i915#45]) -> [PASS][18]
   [17]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7532/fi-byt-n2820/igt@i915_selftest@live_gem_contexts.html
   [18]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15667/fi-byt-n2820/igt@i915_selftest@live_gem_contexts.html

  
#### Warnings ####

  * igt@gem_exec_suspend@basic-s4-devices:
    - fi-kbl-x1275:       [DMESG-WARN][19] ([fdo#107139] / [i915#62] / [i915#92]) -> [DMESG-WARN][20] ([fdo#107139] / [i915#62] / [i915#92] / [i915#95])
   [19]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7532/fi-kbl-x1275/igt@gem_exec_suspend@basic-s4-devices.html
   [20]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15667/fi-kbl-x1275/igt@gem_exec_suspend@basic-s4-devices.html

  * igt@i915_selftest@live_blt:
    - fi-hsw-4770:        [DMESG-FAIL][21] ([i915#770]) -> [DMESG-FAIL][22] ([i915#553] / [i915#725])
   [21]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7532/fi-hsw-4770/igt@i915_selftest@live_blt.html
   [22]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15667/fi-hsw-4770/igt@i915_selftest@live_blt.html

  * igt@kms_busy@basic-flip-pipe-b:
    - fi-kbl-x1275:       [DMESG-WARN][23] ([i915#62] / [i915#92] / [i915#95]) -> [DMESG-WARN][24] ([i915#62] / [i915#92]) +6 similar issues
   [23]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7532/fi-kbl-x1275/igt@kms_busy@basic-flip-pipe-b.html
   [24]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15667/fi-kbl-x1275/igt@kms_busy@basic-flip-pipe-b.html

  * igt@kms_cursor_legacy@basic-busy-flip-before-cursor-legacy:
    - fi-kbl-x1275:       [DMESG-WARN][25] ([i915#62] / [i915#92]) -> [DMESG-WARN][26] ([i915#62] / [i915#92] / [i915#95]) +4 similar issues
   [25]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7532/fi-kbl-x1275/igt@kms_cursor_legacy@basic-busy-flip-before-cursor-legacy.html
   [26]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15667/fi-kbl-x1275/igt@kms_cursor_legacy@basic-busy-flip-before-cursor-legacy.html

  
  {name}: This element is suppressed. This means it is ignored when computing
          the status of the difference (SUCCESS, WARNING, or FAILURE).

  [fdo#107139]: https://bugs.freedesktop.org/show_bug.cgi?id=107139
  [fdo#111096]: https://bugs.freedesktop.org/show_bug.cgi?id=111096
  [fdo#111593]: https://bugs.freedesktop.org/show_bug.cgi?id=111593
  [i915#178]: https://gitlab.freedesktop.org/drm/intel/issues/178
  [i915#323]: https://gitlab.freedesktop.org/drm/intel/issues/323
  [i915#45]: https://gitlab.freedesktop.org/drm/intel/issues/45
  [i915#470]: https://gitlab.freedesktop.org/drm/intel/issues/470
  [i915#553]: https://gitlab.freedesktop.org/drm/intel/issues/553
  [i915#62]: https://gitlab.freedesktop.org/drm/intel/issues/62
  [i915#694]: https://gitlab.freedesktop.org/drm/intel/issues/694
  [i915#723]: https://gitlab.freedesktop.org/drm/intel/issues/723
  [i915#725]: https://gitlab.freedesktop.org/drm/intel/issues/725
  [i915#770]: https://gitlab.freedesktop.org/drm/intel/issues/770
  [i915#92]: https://gitlab.freedesktop.org/drm/intel/issues/92
  [i915#95]: https://gitlab.freedesktop.org/drm/intel/issues/95


Participating hosts (55 -> 46)
------------------------------

  Missing    (9): fi-icl-1065g7 fi-ilk-m540 fi-hsw-4200u fi-byt-squawks fi-bsw-cyan fi-ctg-p8600 fi-byt-clapper fi-bdw-samus fi-snb-2600 


Build changes
-------------

  * CI: CI-20190529 -> None
  * Linux: CI_DRM_7532 -> Patchwork_15667

  CI-20190529: 20190529
  CI_DRM_7532: 2004c1c9d9669c6722274d5cf62f8f2b00720d57 @ git://anongit.freedesktop.org/gfx-ci/linux
  IGT_5341: 5fe683cdebde2d77d16ffc42c9fdf29a9f95bb82 @ git://anongit.freedesktop.org/xorg/app/intel-gpu-tools
  Patchwork_15667: c6cf4a566a86260a137ccd53566aeabbf729d71d @ git://anongit.freedesktop.org/gfx-ci/linux


== Linux commits ==

c6cf4a566a86 drm/i915/wopcm: convert to drm device based logging
840bfaa93b0a drm/i915/uc: convert to drm device based logging
41aad98d0cf3 drm/atomic: convert to drm device based logging
1140ddc7f557 drm/mipi-dbi: convert to drm device based logging
43216b61c8c8 drm/gem-fb-helper: convert to drm device based logging
4aa741b7ace7 drm/fb-helper: convert to drm device based logging
9e4cda811194 drm/client: convert to drm device based logging
e36a486e7bb8 drm/print: introduce new struct drm_device based logging macros

== Logs ==

For more details see: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15667/index.html
_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx

^ permalink raw reply	[flat|nested] 53+ messages in thread

* Re: [PATCH 1/8] drm/print: introduce new struct drm_device based logging macros
  2019-12-10 12:34   ` [Intel-gfx] " Jani Nikula
@ 2019-12-10 22:07     ` Daniel Vetter
  -1 siblings, 0 replies; 53+ messages in thread
From: Daniel Vetter @ 2019-12-10 22:07 UTC (permalink / raw)
  To: Jani Nikula; +Cc: Sam Ravnborg, intel-gfx, Sean Paul, dri-devel, Rodrigo Vivi

On Tue, Dec 10, 2019 at 02:34:33PM +0200, Jani Nikula wrote:
> On Tue, 10 Dec 2019, Jani Nikula <jani.nikula@intel.com> wrote:
> > Add new struct drm_device based logging macros modeled after the core
> > kernel device based logging macros. These would be preferred over the
> > drm printk and struct device based macros in drm code, where possible.
> 
> As to cover letter, patches 2-8 using the logging macros introduced here
> are just the beginning. It's not trivial to write a cocci script to dig
> up struct drm_device * where there is none, so much of it may need to be
> done manually. But we could start here.

Can you pls do a patch for todo.rst to adjust the existing task to the new
flavour of favorited debug printing? If cocci doesn't work we can at least
throw random interns at this for starter tasks :-)
-Daniel
-- 
Daniel Vetter
Software Engineer, Intel Corporation
http://blog.ffwll.ch
_______________________________________________
dri-devel mailing list
dri-devel@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/dri-devel

^ permalink raw reply	[flat|nested] 53+ messages in thread

* Re: [Intel-gfx] [PATCH 1/8] drm/print: introduce new struct drm_device based logging macros
@ 2019-12-10 22:07     ` Daniel Vetter
  0 siblings, 0 replies; 53+ messages in thread
From: Daniel Vetter @ 2019-12-10 22:07 UTC (permalink / raw)
  To: Jani Nikula; +Cc: Sam Ravnborg, intel-gfx, dri-devel

On Tue, Dec 10, 2019 at 02:34:33PM +0200, Jani Nikula wrote:
> On Tue, 10 Dec 2019, Jani Nikula <jani.nikula@intel.com> wrote:
> > Add new struct drm_device based logging macros modeled after the core
> > kernel device based logging macros. These would be preferred over the
> > drm printk and struct device based macros in drm code, where possible.
> 
> As to cover letter, patches 2-8 using the logging macros introduced here
> are just the beginning. It's not trivial to write a cocci script to dig
> up struct drm_device * where there is none, so much of it may need to be
> done manually. But we could start here.

Can you pls do a patch for todo.rst to adjust the existing task to the new
flavour of favorited debug printing? If cocci doesn't work we can at least
throw random interns at this for starter tasks :-)
-Daniel
-- 
Daniel Vetter
Software Engineer, Intel Corporation
http://blog.ffwll.ch
_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx

^ permalink raw reply	[flat|nested] 53+ messages in thread

* Re: [6/8] drm/atomic: convert to drm device based logging
  2019-12-10 12:30   ` [Intel-gfx] " Jani Nikula
@ 2019-12-12  8:07     ` james qian wang (Arm Technology China)
  -1 siblings, 0 replies; 53+ messages in thread
From: james qian wang (Arm Technology China) @ 2019-12-12  8:07 UTC (permalink / raw)
  To: Jani Nikula; +Cc: intel-gfx, nd, dri-devel

On Tue, Dec 10, 2019 at 02:30:48PM +0200, Jani Nikula wrote:
> Prefer drm_dbg_atomic().
> 
> Signed-off-by: Jani Nikula <jani.nikula@intel.com>
> ---
>  drivers/gpu/drm/drm_agpsupport.c |   4 +-
>  drivers/gpu/drm/drm_atomic.c     | 187 +++++++++++++++++--------------
>  2 files changed, 102 insertions(+), 89 deletions(-)
> 
> diff --git a/drivers/gpu/drm/drm_agpsupport.c b/drivers/gpu/drm/drm_agpsupport.c
> index 4c7ad46fdd21..cd675e58de50 100644
> --- a/drivers/gpu/drm/drm_agpsupport.c
> +++ b/drivers/gpu/drm/drm_agpsupport.c
> @@ -330,8 +330,8 @@ int drm_agp_bind(struct drm_device *dev, struct drm_agp_binding *request)
>  	if (retcode)
>  		return retcode;
>  	entry->bound = dev->agp->base + (page << PAGE_SHIFT);
> -	DRM_DEBUG("base = 0x%lx entry->bound = 0x%lx\n",
> -		  dev->agp->base, entry->bound);
> +	drm_dbg_core(dev, "base = 0x%lx entry->bound = 0x%lx\n",
> +		     dev->agp->base, entry->bound);
>  	return 0;
>  }
>  EXPORT_SYMBOL(drm_agp_bind);
> diff --git a/drivers/gpu/drm/drm_atomic.c b/drivers/gpu/drm/drm_atomic.c
> index 14aeaf736321..8494b1c29bf0 100644
> --- a/drivers/gpu/drm/drm_atomic.c
> +++ b/drivers/gpu/drm/drm_atomic.c
> @@ -99,7 +99,7 @@ drm_atomic_state_init(struct drm_device *dev, struct drm_atomic_state *state)
>  
>  	state->dev = dev;
>  
> -	DRM_DEBUG_ATOMIC("Allocated atomic state %p\n", state);
> +	drm_dbg_atomic(dev, "Allocated atomic state %p\n", state);
>  
>  	return 0;
>  fail:
> @@ -150,7 +150,7 @@ void drm_atomic_state_default_clear(struct drm_atomic_state *state)
>  	struct drm_mode_config *config = &dev->mode_config;
>  	int i;
>  
> -	DRM_DEBUG_ATOMIC("Clearing atomic state %p\n", state);
> +	drm_dbg_atomic(dev, "Clearing atomic state %p\n", state);
>  
>  	for (i = 0; i < state->num_connector; i++) {
>  		struct drm_connector *connector = state->connectors[i].ptr;
> @@ -256,11 +256,12 @@ EXPORT_SYMBOL(drm_atomic_state_clear);
>  void __drm_atomic_state_free(struct kref *ref)
>  {
>  	struct drm_atomic_state *state = container_of(ref, typeof(*state), ref);
> -	struct drm_mode_config *config = &state->dev->mode_config;
> +	struct drm_device *dev = state->dev;
> +	struct drm_mode_config *config = &dev->mode_config;
>  
>  	drm_atomic_state_clear(state);
>  
> -	DRM_DEBUG_ATOMIC("Freeing atomic state %p\n", state);
> +	drm_dbg_atomic(dev, "Freeing atomic state %p\n", state);
>  
>  	if (config->funcs->atomic_state_free) {
>  		config->funcs->atomic_state_free(state);
> @@ -290,8 +291,9 @@ struct drm_crtc_state *
>  drm_atomic_get_crtc_state(struct drm_atomic_state *state,
>  			  struct drm_crtc *crtc)
>  {
> -	int ret, index = drm_crtc_index(crtc);
> +	struct drm_device *dev = state->dev;
>  	struct drm_crtc_state *crtc_state;
> +	int ret, index = drm_crtc_index(crtc);
>  
>  	WARN_ON(!state->acquire_ctx);
>  
> @@ -313,8 +315,8 @@ drm_atomic_get_crtc_state(struct drm_atomic_state *state,
>  	state->crtcs[index].ptr = crtc;
>  	crtc_state->state = state;
>  
> -	DRM_DEBUG_ATOMIC("Added [CRTC:%d:%s] %p state to %p\n",
> -			 crtc->base.id, crtc->name, crtc_state, state);
> +	drm_dbg_atomic(dev, "Added [CRTC:%d:%s] %p state to %p\n",
> +		       crtc->base.id, crtc->name, crtc_state, state);
>  
>  	return crtc_state;
>  }
> @@ -324,6 +326,7 @@ static int drm_atomic_crtc_check(const struct drm_crtc_state *old_crtc_state,
>  				 const struct drm_crtc_state *new_crtc_state)
>  {
>  	struct drm_crtc *crtc = new_crtc_state->crtc;
> +	struct drm_device *dev = crtc->dev;
>  
>  	/* NOTE: we explicitly don't enforce constraints such as primary
>  	 * layer covering entire screen, since that is something we want
> @@ -334,25 +337,25 @@ static int drm_atomic_crtc_check(const struct drm_crtc_state *old_crtc_state,
>  	 */
>  
>  	if (new_crtc_state->active && !new_crtc_state->enable) {
> -		DRM_DEBUG_ATOMIC("[CRTC:%d:%s] active without enabled\n",
> -				 crtc->base.id, crtc->name);
> +		drm_dbg_atomic(dev, "[CRTC:%d:%s] active without enabled\n",
> +			       crtc->base.id, crtc->name);

Can we add a new dedicated print level for these atomic check error msg,
In practice we more care about the atomic check errors, it is annoy to
pick it out from (so many) DRM_DEBUG_ATOMIC() msgs.

Thanks
James

>  		return -EINVAL;
>  	}
>  
>  	/* The state->enable vs. state->mode_blob checks can be WARN_ON,
>  	 * as this is a kernel-internal detail that userspace should never
>  	 * be able to trigger. */
> -	if (drm_core_check_feature(crtc->dev, DRIVER_ATOMIC) &&
> +	if (drm_core_check_feature(dev, DRIVER_ATOMIC) &&
>  	    WARN_ON(new_crtc_state->enable && !new_crtc_state->mode_blob)) {
> -		DRM_DEBUG_ATOMIC("[CRTC:%d:%s] enabled without mode blob\n",
> -				 crtc->base.id, crtc->name);
> +		drm_dbg_atomic(dev, "[CRTC:%d:%s] enabled without mode blob\n",
> +			       crtc->base.id, crtc->name);
>  		return -EINVAL;
>  	}
>  
> -	if (drm_core_check_feature(crtc->dev, DRIVER_ATOMIC) &&
> +	if (drm_core_check_feature(dev, DRIVER_ATOMIC) &&
>  	    WARN_ON(!new_crtc_state->enable && new_crtc_state->mode_blob)) {
> -		DRM_DEBUG_ATOMIC("[CRTC:%d:%s] disabled with mode blob\n",
> -				 crtc->base.id, crtc->name);
> +		drm_dbg_atomic(dev, "[CRTC:%d:%s] disabled with mode blob\n",
> +			       crtc->base.id, crtc->name);
>  		return -EINVAL;
>  	}
>  
> @@ -368,8 +371,8 @@ static int drm_atomic_crtc_check(const struct drm_crtc_state *old_crtc_state,
>  	 */
>  	if (new_crtc_state->event &&
>  	    !new_crtc_state->active && !old_crtc_state->active) {
> -		DRM_DEBUG_ATOMIC("[CRTC:%d:%s] requesting event but off\n",
> -				 crtc->base.id, crtc->name);
> +		drm_dbg_atomic(dev, "[CRTC:%d:%s] requesting event but off\n",
> +			       crtc->base.id, crtc->name);
>  		return -EINVAL;
>  	}
>  
> @@ -402,6 +405,7 @@ static void drm_atomic_crtc_print_state(struct drm_printer *p,
>  static int drm_atomic_connector_check(struct drm_connector *connector,
>  		struct drm_connector_state *state)
>  {
> +	struct drm_device *dev = connector->dev;
>  	struct drm_crtc_state *crtc_state;
>  	struct drm_writeback_job *writeback_job = state->writeback_job;
>  	const struct drm_display_info *info = &connector->display_info;
> @@ -414,8 +418,8 @@ static int drm_atomic_connector_check(struct drm_connector *connector,
>  		return 0;
>  
>  	if (writeback_job->fb && !state->crtc) {
> -		DRM_DEBUG_ATOMIC("[CONNECTOR:%d:%s] framebuffer without CRTC\n",
> -				 connector->base.id, connector->name);
> +		drm_dbg_atomic(dev, "[CONNECTOR:%d:%s] framebuffer without CRTC\n",
> +			       connector->base.id, connector->name);
>  		return -EINVAL;
>  	}
>  
> @@ -424,16 +428,16 @@ static int drm_atomic_connector_check(struct drm_connector *connector,
>  								state->crtc);
>  
>  	if (writeback_job->fb && !crtc_state->active) {
> -		DRM_DEBUG_ATOMIC("[CONNECTOR:%d:%s] has framebuffer, but [CRTC:%d] is off\n",
> -				 connector->base.id, connector->name,
> -				 state->crtc->base.id);
> +		drm_dbg_atomic(dev, "[CONNECTOR:%d:%s] has framebuffer, but [CRTC:%d] is off\n",
> +			       connector->base.id, connector->name,
> +			       state->crtc->base.id);
>  		return -EINVAL;
>  	}
>  
>  	if (!writeback_job->fb) {
>  		if (writeback_job->out_fence) {
> -			DRM_DEBUG_ATOMIC("[CONNECTOR:%d:%s] requesting out-fence without framebuffer\n",
> -					 connector->base.id, connector->name);
> +			drm_dbg_atomic(dev, "[CONNECTOR:%d:%s] requesting out-fence without framebuffer\n",
> +				       connector->base.id, connector->name);
>  			return -EINVAL;
>  		}
>  
> @@ -463,8 +467,9 @@ struct drm_plane_state *
>  drm_atomic_get_plane_state(struct drm_atomic_state *state,
>  			  struct drm_plane *plane)
>  {
> -	int ret, index = drm_plane_index(plane);
> +	struct drm_device *dev = state->dev;
>  	struct drm_plane_state *plane_state;
> +	int ret, index = drm_plane_index(plane);
>  
>  	WARN_ON(!state->acquire_ctx);
>  
> @@ -491,8 +496,8 @@ drm_atomic_get_plane_state(struct drm_atomic_state *state,
>  	state->planes[index].new_state = plane_state;
>  	plane_state->state = state;
>  
> -	DRM_DEBUG_ATOMIC("Added [PLANE:%d:%s] %p state to %p\n",
> -			 plane->base.id, plane->name, plane_state, state);
> +	drm_dbg_atomic(dev, "Added [PLANE:%d:%s] %p state to %p\n",
> +		       plane->base.id, plane->name, plane_state, state);
>  
>  	if (plane_state->crtc) {
>  		struct drm_crtc_state *crtc_state;
> @@ -539,6 +544,7 @@ static int drm_atomic_plane_check(const struct drm_plane_state *old_plane_state,
>  				  const struct drm_plane_state *new_plane_state)
>  {
>  	struct drm_plane *plane = new_plane_state->plane;
> +	struct drm_device *dev = plane->dev;
>  	struct drm_crtc *crtc = new_plane_state->crtc;
>  	const struct drm_framebuffer *fb = new_plane_state->fb;
>  	unsigned int fb_width, fb_height;
> @@ -548,12 +554,12 @@ static int drm_atomic_plane_check(const struct drm_plane_state *old_plane_state,
>  
>  	/* either *both* CRTC and FB must be set, or neither */
>  	if (crtc && !fb) {
> -		DRM_DEBUG_ATOMIC("[PLANE:%d:%s] CRTC set but no FB\n",
> -				 plane->base.id, plane->name);
> +		drm_dbg_atomic(dev, "[PLANE:%d:%s] CRTC set but no FB\n",
> +			       plane->base.id, plane->name);
>  		return -EINVAL;
>  	} else if (fb && !crtc) {
> -		DRM_DEBUG_ATOMIC("[PLANE:%d:%s] FB set but no CRTC\n",
> -				 plane->base.id, plane->name);
> +		drm_dbg_atomic(dev, "[PLANE:%d:%s] FB set but no CRTC\n",
> +			       plane->base.id, plane->name);
>  		return -EINVAL;
>  	}
>  
> @@ -563,9 +569,9 @@ static int drm_atomic_plane_check(const struct drm_plane_state *old_plane_state,
>  
>  	/* Check whether this plane is usable on this CRTC */
>  	if (!(plane->possible_crtcs & drm_crtc_mask(crtc))) {
> -		DRM_DEBUG_ATOMIC("Invalid [CRTC:%d:%s] for [PLANE:%d:%s]\n",
> -				 crtc->base.id, crtc->name,
> -				 plane->base.id, plane->name);
> +		drm_dbg_atomic(dev, "Invalid [CRTC:%d:%s] for [PLANE:%d:%s]\n",
> +			       crtc->base.id, crtc->name,
> +			       plane->base.id, plane->name);
>  		return -EINVAL;
>  	}
>  
> @@ -574,11 +580,11 @@ static int drm_atomic_plane_check(const struct drm_plane_state *old_plane_state,
>  					   fb->modifier);
>  	if (ret) {
>  		struct drm_format_name_buf format_name;
> -		DRM_DEBUG_ATOMIC("[PLANE:%d:%s] invalid pixel format %s, modifier 0x%llx\n",
> -				 plane->base.id, plane->name,
> -				 drm_get_format_name(fb->format->format,
> -						     &format_name),
> -				 fb->modifier);
> +		drm_dbg_atomic(dev, "[PLANE:%d:%s] invalid pixel format %s, modifier 0x%llx\n",
> +			       plane->base.id, plane->name,
> +			       drm_get_format_name(fb->format->format,
> +						   &format_name),
> +			       fb->modifier);
>  		return ret;
>  	}
>  
> @@ -587,10 +593,10 @@ static int drm_atomic_plane_check(const struct drm_plane_state *old_plane_state,
>  	    new_plane_state->crtc_x > INT_MAX - (int32_t) new_plane_state->crtc_w ||
>  	    new_plane_state->crtc_h > INT_MAX ||
>  	    new_plane_state->crtc_y > INT_MAX - (int32_t) new_plane_state->crtc_h) {
> -		DRM_DEBUG_ATOMIC("[PLANE:%d:%s] invalid CRTC coordinates %ux%u+%d+%d\n",
> -				 plane->base.id, plane->name,
> -				 new_plane_state->crtc_w, new_plane_state->crtc_h,
> -				 new_plane_state->crtc_x, new_plane_state->crtc_y);
> +		drm_dbg_atomic(dev, "[PLANE:%d:%s] invalid CRTC coordinates %ux%u+%d+%d\n",
> +			       plane->base.id, plane->name,
> +			       new_plane_state->crtc_w, new_plane_state->crtc_h,
> +			       new_plane_state->crtc_x, new_plane_state->crtc_y);
>  		return -ERANGE;
>  	}
>  
> @@ -602,18 +608,18 @@ static int drm_atomic_plane_check(const struct drm_plane_state *old_plane_state,
>  	    new_plane_state->src_x > fb_width - new_plane_state->src_w ||
>  	    new_plane_state->src_h > fb_height ||
>  	    new_plane_state->src_y > fb_height - new_plane_state->src_h) {
> -		DRM_DEBUG_ATOMIC("[PLANE:%d:%s] invalid source coordinates "
> -				 "%u.%06ux%u.%06u+%u.%06u+%u.%06u (fb %ux%u)\n",
> -				 plane->base.id, plane->name,
> -				 new_plane_state->src_w >> 16,
> -				 ((new_plane_state->src_w & 0xffff) * 15625) >> 10,
> -				 new_plane_state->src_h >> 16,
> -				 ((new_plane_state->src_h & 0xffff) * 15625) >> 10,
> -				 new_plane_state->src_x >> 16,
> -				 ((new_plane_state->src_x & 0xffff) * 15625) >> 10,
> -				 new_plane_state->src_y >> 16,
> -				 ((new_plane_state->src_y & 0xffff) * 15625) >> 10,
> -				 fb->width, fb->height);
> +		drm_dbg_atomic(dev, "[PLANE:%d:%s] invalid source coordinates "
> +			       "%u.%06ux%u.%06u+%u.%06u+%u.%06u (fb %ux%u)\n",
> +			       plane->base.id, plane->name,
> +			       new_plane_state->src_w >> 16,
> +			       ((new_plane_state->src_w & 0xffff) * 15625) >> 10,
> +			       new_plane_state->src_h >> 16,
> +			       ((new_plane_state->src_h & 0xffff) * 15625) >> 10,
> +			       new_plane_state->src_x >> 16,
> +			       ((new_plane_state->src_x & 0xffff) * 15625) >> 10,
> +			       new_plane_state->src_y >> 16,
> +			       ((new_plane_state->src_y & 0xffff) * 15625) >> 10,
> +			       fb->width, fb->height);
>  		return -ENOSPC;
>  	}
>  
> @@ -628,9 +634,9 @@ static int drm_atomic_plane_check(const struct drm_plane_state *old_plane_state,
>  		    clips->y1 < 0 ||
>  		    clips->x2 > fb_width ||
>  		    clips->y2 > fb_height) {
> -			DRM_DEBUG_ATOMIC("[PLANE:%d:%s] invalid damage clip %d %d %d %d\n",
> -					 plane->base.id, plane->name, clips->x1,
> -					 clips->y1, clips->x2, clips->y2);
> +			drm_dbg_atomic(dev, "[PLANE:%d:%s] invalid damage clip %d %d %d %d\n",
> +				       plane->base.id, plane->name, clips->x1,
> +				       clips->y1, clips->x2, clips->y2);
>  			return -EINVAL;
>  		}
>  		clips++;
> @@ -638,8 +644,8 @@ static int drm_atomic_plane_check(const struct drm_plane_state *old_plane_state,
>  	}
>  
>  	if (plane_switching_crtc(old_plane_state, new_plane_state)) {
> -		DRM_DEBUG_ATOMIC("[PLANE:%d:%s] switching CRTC directly\n",
> -				 plane->base.id, plane->name);
> +		drm_dbg_atomic(dev, "[PLANE:%d:%s] switching CRTC directly\n",
> +			       plane->base.id, plane->name);
>  		return -EINVAL;
>  	}
>  
> @@ -766,6 +772,7 @@ struct drm_private_state *
>  drm_atomic_get_private_obj_state(struct drm_atomic_state *state,
>  				 struct drm_private_obj *obj)
>  {
> +	struct drm_device *dev = state->dev;
>  	int index, num_objs, i, ret;
>  	size_t size;
>  	struct __drm_private_objs_state *arr;
> @@ -801,8 +808,8 @@ drm_atomic_get_private_obj_state(struct drm_atomic_state *state,
>  
>  	state->num_private_objs = num_objs;
>  
> -	DRM_DEBUG_ATOMIC("Added new private object %p state %p to %p\n",
> -			 obj, obj_state, state);
> +	drm_dbg_atomic(dev, "Added new private object %p state %p to %p\n",
> +		       obj, obj_state, state);
>  
>  	return obj_state;
>  }
> @@ -940,6 +947,7 @@ struct drm_connector_state *
>  drm_atomic_get_connector_state(struct drm_atomic_state *state,
>  			  struct drm_connector *connector)
>  {
> +	struct drm_device *dev = state->dev;
>  	int ret, index;
>  	struct drm_mode_config *config = &connector->dev->mode_config;
>  	struct drm_connector_state *connector_state;
> @@ -981,9 +989,9 @@ drm_atomic_get_connector_state(struct drm_atomic_state *state,
>  	state->connectors[index].ptr = connector;
>  	connector_state->state = state;
>  
> -	DRM_DEBUG_ATOMIC("Added [CONNECTOR:%d:%s] %p state to %p\n",
> -			 connector->base.id, connector->name,
> -			 connector_state, state);
> +	drm_dbg_atomic(dev, "Added [CONNECTOR:%d:%s] %p state to %p\n",
> +		       connector->base.id, connector->name,
> +		       connector_state, state);
>  
>  	if (connector_state->crtc) {
>  		struct drm_crtc_state *crtc_state;
> @@ -1036,7 +1044,8 @@ int
>  drm_atomic_add_affected_connectors(struct drm_atomic_state *state,
>  				   struct drm_crtc *crtc)
>  {
> -	struct drm_mode_config *config = &state->dev->mode_config;
> +	struct drm_device *dev = state->dev;
> +	struct drm_mode_config *config = &dev->mode_config;
>  	struct drm_connector *connector;
>  	struct drm_connector_state *conn_state;
>  	struct drm_connector_list_iter conn_iter;
> @@ -1051,8 +1060,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:%s] to %p\n",
> -			 crtc->base.id, crtc->name, state);
> +	drm_dbg_atomic(dev, "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
> @@ -1099,14 +1108,15 @@ int
>  drm_atomic_add_affected_planes(struct drm_atomic_state *state,
>  			       struct drm_crtc *crtc)
>  {
> +	struct drm_device *dev = state->dev;
>  	const struct drm_crtc_state *old_crtc_state =
>  		drm_atomic_get_old_crtc_state(state, crtc);
>  	struct drm_plane *plane;
>  
>  	WARN_ON(!drm_atomic_get_new_crtc_state(state, crtc));
>  
> -	DRM_DEBUG_ATOMIC("Adding all current planes for [CRTC:%d:%s] to %p\n",
> -			 crtc->base.id, crtc->name, state);
> +	drm_dbg_atomic(dev, "Adding all current planes for [CRTC:%d:%s] to %p\n",
> +		       crtc->base.id, crtc->name, state);
>  
>  	drm_for_each_plane_mask(plane, state->dev, old_crtc_state->plane_mask) {
>  		struct drm_plane_state *plane_state =
> @@ -1144,13 +1154,13 @@ int drm_atomic_check_only(struct drm_atomic_state *state)
>  	struct drm_connector_state *conn_state;
>  	int i, ret = 0;
>  
> -	DRM_DEBUG_ATOMIC("checking %p\n", state);
> +	drm_dbg_atomic(dev, "checking %p\n", state);
>  
>  	for_each_oldnew_plane_in_state(state, plane, old_plane_state, new_plane_state, i) {
>  		ret = drm_atomic_plane_check(old_plane_state, new_plane_state);
>  		if (ret) {
> -			DRM_DEBUG_ATOMIC("[PLANE:%d:%s] atomic core check failed\n",
> -					 plane->base.id, plane->name);
> +			drm_dbg_atomic(dev, "[PLANE:%d:%s] atomic core check failed\n",
> +				       plane->base.id, plane->name);
>  			return ret;
>  		}
>  	}
> @@ -1158,8 +1168,8 @@ int drm_atomic_check_only(struct drm_atomic_state *state)
>  	for_each_oldnew_crtc_in_state(state, crtc, old_crtc_state, new_crtc_state, i) {
>  		ret = drm_atomic_crtc_check(old_crtc_state, new_crtc_state);
>  		if (ret) {
> -			DRM_DEBUG_ATOMIC("[CRTC:%d:%s] atomic core check failed\n",
> -					 crtc->base.id, crtc->name);
> +			drm_dbg_atomic(dev, "[CRTC:%d:%s] atomic core check failed\n",
> +				       crtc->base.id, crtc->name);
>  			return ret;
>  		}
>  	}
> @@ -1167,8 +1177,8 @@ int drm_atomic_check_only(struct drm_atomic_state *state)
>  	for_each_new_connector_in_state(state, conn, conn_state, i) {
>  		ret = drm_atomic_connector_check(conn, conn_state);
>  		if (ret) {
> -			DRM_DEBUG_ATOMIC("[CONNECTOR:%d:%s] atomic core check failed\n",
> -					 conn->base.id, conn->name);
> +			drm_dbg_atomic(dev, "[CONNECTOR:%d:%s] atomic core check failed\n",
> +				       conn->base.id, conn->name);
>  			return ret;
>  		}
>  	}
> @@ -1177,8 +1187,8 @@ int drm_atomic_check_only(struct drm_atomic_state *state)
>  		ret = config->funcs->atomic_check(state->dev, state);
>  
>  		if (ret) {
> -			DRM_DEBUG_ATOMIC("atomic driver check for %p failed: %d\n",
> -					 state, ret);
> +			drm_dbg_atomic(dev, "atomic driver check for %p failed: %d\n",
> +				       state, ret);
>  			return ret;
>  		}
>  	}
> @@ -1186,8 +1196,8 @@ int drm_atomic_check_only(struct drm_atomic_state *state)
>  	if (!state->allow_modeset) {
>  		for_each_new_crtc_in_state(state, crtc, new_crtc_state, i) {
>  			if (drm_atomic_crtc_needs_modeset(new_crtc_state)) {
> -				DRM_DEBUG_ATOMIC("[CRTC:%d:%s] requires full modeset\n",
> -						 crtc->base.id, crtc->name);
> +				drm_dbg_atomic(dev, "[CRTC:%d:%s] requires full modeset\n",
> +					       crtc->base.id, crtc->name);
>  				return -EINVAL;
>  			}
>  		}
> @@ -1213,14 +1223,15 @@ EXPORT_SYMBOL(drm_atomic_check_only);
>   */
>  int drm_atomic_commit(struct drm_atomic_state *state)
>  {
> -	struct drm_mode_config *config = &state->dev->mode_config;
> +	struct drm_device *dev = state->dev;
> +	struct drm_mode_config *config = &dev->mode_config;
>  	int ret;
>  
>  	ret = drm_atomic_check_only(state);
>  	if (ret)
>  		return ret;
>  
> -	DRM_DEBUG_ATOMIC("committing %p\n", state);
> +	drm_dbg_atomic(dev, "committing %p\n", state);
>  
>  	return config->funcs->atomic_commit(state->dev, state, false);
>  }
> @@ -1242,14 +1253,15 @@ EXPORT_SYMBOL(drm_atomic_commit);
>   */
>  int drm_atomic_nonblocking_commit(struct drm_atomic_state *state)
>  {
> -	struct drm_mode_config *config = &state->dev->mode_config;
> +	struct drm_device *dev = state->dev;
> +	struct drm_mode_config *config = &dev->mode_config;
>  	int ret;
>  
>  	ret = drm_atomic_check_only(state);
>  	if (ret)
>  		return ret;
>  
> -	DRM_DEBUG_ATOMIC("committing %p nonblocking\n", state);
> +	drm_dbg_atomic(dev, "committing %p nonblocking\n", state);
>  
>  	return config->funcs->atomic_commit(state->dev, state, true);
>  }
> @@ -1425,7 +1437,8 @@ EXPORT_SYMBOL(__drm_atomic_helper_set_config);
>  
>  void drm_atomic_print_state(const struct drm_atomic_state *state)
>  {
> -	struct drm_printer p = drm_info_printer(state->dev->dev);
> +	struct drm_device *dev = state->dev;
> +	struct drm_printer p = drm_info_printer(dev->dev);
>  	struct drm_plane *plane;
>  	struct drm_plane_state *plane_state;
>  	struct drm_crtc *crtc;
> @@ -1434,7 +1447,7 @@ void drm_atomic_print_state(const struct drm_atomic_state *state)
>  	struct drm_connector_state *connector_state;
>  	int i;
>  
> -	DRM_DEBUG_ATOMIC("checking %p\n", state);
> +	drm_dbg_atomic(dev, "checking %p\n", state);
>  
>  	for_each_new_plane_in_state(state, plane, plane_state, i)
>  		drm_atomic_plane_print_state(&p, plane_state);
_______________________________________________
dri-devel mailing list
dri-devel@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/dri-devel

^ permalink raw reply	[flat|nested] 53+ messages in thread

* Re: [Intel-gfx] [6/8] drm/atomic: convert to drm device based logging
@ 2019-12-12  8:07     ` james qian wang (Arm Technology China)
  0 siblings, 0 replies; 53+ messages in thread
From: james qian wang (Arm Technology China) @ 2019-12-12  8:07 UTC (permalink / raw)
  To: Jani Nikula; +Cc: intel-gfx, nd, dri-devel

On Tue, Dec 10, 2019 at 02:30:48PM +0200, Jani Nikula wrote:
> Prefer drm_dbg_atomic().
> 
> Signed-off-by: Jani Nikula <jani.nikula@intel.com>
> ---
>  drivers/gpu/drm/drm_agpsupport.c |   4 +-
>  drivers/gpu/drm/drm_atomic.c     | 187 +++++++++++++++++--------------
>  2 files changed, 102 insertions(+), 89 deletions(-)
> 
> diff --git a/drivers/gpu/drm/drm_agpsupport.c b/drivers/gpu/drm/drm_agpsupport.c
> index 4c7ad46fdd21..cd675e58de50 100644
> --- a/drivers/gpu/drm/drm_agpsupport.c
> +++ b/drivers/gpu/drm/drm_agpsupport.c
> @@ -330,8 +330,8 @@ int drm_agp_bind(struct drm_device *dev, struct drm_agp_binding *request)
>  	if (retcode)
>  		return retcode;
>  	entry->bound = dev->agp->base + (page << PAGE_SHIFT);
> -	DRM_DEBUG("base = 0x%lx entry->bound = 0x%lx\n",
> -		  dev->agp->base, entry->bound);
> +	drm_dbg_core(dev, "base = 0x%lx entry->bound = 0x%lx\n",
> +		     dev->agp->base, entry->bound);
>  	return 0;
>  }
>  EXPORT_SYMBOL(drm_agp_bind);
> diff --git a/drivers/gpu/drm/drm_atomic.c b/drivers/gpu/drm/drm_atomic.c
> index 14aeaf736321..8494b1c29bf0 100644
> --- a/drivers/gpu/drm/drm_atomic.c
> +++ b/drivers/gpu/drm/drm_atomic.c
> @@ -99,7 +99,7 @@ drm_atomic_state_init(struct drm_device *dev, struct drm_atomic_state *state)
>  
>  	state->dev = dev;
>  
> -	DRM_DEBUG_ATOMIC("Allocated atomic state %p\n", state);
> +	drm_dbg_atomic(dev, "Allocated atomic state %p\n", state);
>  
>  	return 0;
>  fail:
> @@ -150,7 +150,7 @@ void drm_atomic_state_default_clear(struct drm_atomic_state *state)
>  	struct drm_mode_config *config = &dev->mode_config;
>  	int i;
>  
> -	DRM_DEBUG_ATOMIC("Clearing atomic state %p\n", state);
> +	drm_dbg_atomic(dev, "Clearing atomic state %p\n", state);
>  
>  	for (i = 0; i < state->num_connector; i++) {
>  		struct drm_connector *connector = state->connectors[i].ptr;
> @@ -256,11 +256,12 @@ EXPORT_SYMBOL(drm_atomic_state_clear);
>  void __drm_atomic_state_free(struct kref *ref)
>  {
>  	struct drm_atomic_state *state = container_of(ref, typeof(*state), ref);
> -	struct drm_mode_config *config = &state->dev->mode_config;
> +	struct drm_device *dev = state->dev;
> +	struct drm_mode_config *config = &dev->mode_config;
>  
>  	drm_atomic_state_clear(state);
>  
> -	DRM_DEBUG_ATOMIC("Freeing atomic state %p\n", state);
> +	drm_dbg_atomic(dev, "Freeing atomic state %p\n", state);
>  
>  	if (config->funcs->atomic_state_free) {
>  		config->funcs->atomic_state_free(state);
> @@ -290,8 +291,9 @@ struct drm_crtc_state *
>  drm_atomic_get_crtc_state(struct drm_atomic_state *state,
>  			  struct drm_crtc *crtc)
>  {
> -	int ret, index = drm_crtc_index(crtc);
> +	struct drm_device *dev = state->dev;
>  	struct drm_crtc_state *crtc_state;
> +	int ret, index = drm_crtc_index(crtc);
>  
>  	WARN_ON(!state->acquire_ctx);
>  
> @@ -313,8 +315,8 @@ drm_atomic_get_crtc_state(struct drm_atomic_state *state,
>  	state->crtcs[index].ptr = crtc;
>  	crtc_state->state = state;
>  
> -	DRM_DEBUG_ATOMIC("Added [CRTC:%d:%s] %p state to %p\n",
> -			 crtc->base.id, crtc->name, crtc_state, state);
> +	drm_dbg_atomic(dev, "Added [CRTC:%d:%s] %p state to %p\n",
> +		       crtc->base.id, crtc->name, crtc_state, state);
>  
>  	return crtc_state;
>  }
> @@ -324,6 +326,7 @@ static int drm_atomic_crtc_check(const struct drm_crtc_state *old_crtc_state,
>  				 const struct drm_crtc_state *new_crtc_state)
>  {
>  	struct drm_crtc *crtc = new_crtc_state->crtc;
> +	struct drm_device *dev = crtc->dev;
>  
>  	/* NOTE: we explicitly don't enforce constraints such as primary
>  	 * layer covering entire screen, since that is something we want
> @@ -334,25 +337,25 @@ static int drm_atomic_crtc_check(const struct drm_crtc_state *old_crtc_state,
>  	 */
>  
>  	if (new_crtc_state->active && !new_crtc_state->enable) {
> -		DRM_DEBUG_ATOMIC("[CRTC:%d:%s] active without enabled\n",
> -				 crtc->base.id, crtc->name);
> +		drm_dbg_atomic(dev, "[CRTC:%d:%s] active without enabled\n",
> +			       crtc->base.id, crtc->name);

Can we add a new dedicated print level for these atomic check error msg,
In practice we more care about the atomic check errors, it is annoy to
pick it out from (so many) DRM_DEBUG_ATOMIC() msgs.

Thanks
James

>  		return -EINVAL;
>  	}
>  
>  	/* The state->enable vs. state->mode_blob checks can be WARN_ON,
>  	 * as this is a kernel-internal detail that userspace should never
>  	 * be able to trigger. */
> -	if (drm_core_check_feature(crtc->dev, DRIVER_ATOMIC) &&
> +	if (drm_core_check_feature(dev, DRIVER_ATOMIC) &&
>  	    WARN_ON(new_crtc_state->enable && !new_crtc_state->mode_blob)) {
> -		DRM_DEBUG_ATOMIC("[CRTC:%d:%s] enabled without mode blob\n",
> -				 crtc->base.id, crtc->name);
> +		drm_dbg_atomic(dev, "[CRTC:%d:%s] enabled without mode blob\n",
> +			       crtc->base.id, crtc->name);
>  		return -EINVAL;
>  	}
>  
> -	if (drm_core_check_feature(crtc->dev, DRIVER_ATOMIC) &&
> +	if (drm_core_check_feature(dev, DRIVER_ATOMIC) &&
>  	    WARN_ON(!new_crtc_state->enable && new_crtc_state->mode_blob)) {
> -		DRM_DEBUG_ATOMIC("[CRTC:%d:%s] disabled with mode blob\n",
> -				 crtc->base.id, crtc->name);
> +		drm_dbg_atomic(dev, "[CRTC:%d:%s] disabled with mode blob\n",
> +			       crtc->base.id, crtc->name);
>  		return -EINVAL;
>  	}
>  
> @@ -368,8 +371,8 @@ static int drm_atomic_crtc_check(const struct drm_crtc_state *old_crtc_state,
>  	 */
>  	if (new_crtc_state->event &&
>  	    !new_crtc_state->active && !old_crtc_state->active) {
> -		DRM_DEBUG_ATOMIC("[CRTC:%d:%s] requesting event but off\n",
> -				 crtc->base.id, crtc->name);
> +		drm_dbg_atomic(dev, "[CRTC:%d:%s] requesting event but off\n",
> +			       crtc->base.id, crtc->name);
>  		return -EINVAL;
>  	}
>  
> @@ -402,6 +405,7 @@ static void drm_atomic_crtc_print_state(struct drm_printer *p,
>  static int drm_atomic_connector_check(struct drm_connector *connector,
>  		struct drm_connector_state *state)
>  {
> +	struct drm_device *dev = connector->dev;
>  	struct drm_crtc_state *crtc_state;
>  	struct drm_writeback_job *writeback_job = state->writeback_job;
>  	const struct drm_display_info *info = &connector->display_info;
> @@ -414,8 +418,8 @@ static int drm_atomic_connector_check(struct drm_connector *connector,
>  		return 0;
>  
>  	if (writeback_job->fb && !state->crtc) {
> -		DRM_DEBUG_ATOMIC("[CONNECTOR:%d:%s] framebuffer without CRTC\n",
> -				 connector->base.id, connector->name);
> +		drm_dbg_atomic(dev, "[CONNECTOR:%d:%s] framebuffer without CRTC\n",
> +			       connector->base.id, connector->name);
>  		return -EINVAL;
>  	}
>  
> @@ -424,16 +428,16 @@ static int drm_atomic_connector_check(struct drm_connector *connector,
>  								state->crtc);
>  
>  	if (writeback_job->fb && !crtc_state->active) {
> -		DRM_DEBUG_ATOMIC("[CONNECTOR:%d:%s] has framebuffer, but [CRTC:%d] is off\n",
> -				 connector->base.id, connector->name,
> -				 state->crtc->base.id);
> +		drm_dbg_atomic(dev, "[CONNECTOR:%d:%s] has framebuffer, but [CRTC:%d] is off\n",
> +			       connector->base.id, connector->name,
> +			       state->crtc->base.id);
>  		return -EINVAL;
>  	}
>  
>  	if (!writeback_job->fb) {
>  		if (writeback_job->out_fence) {
> -			DRM_DEBUG_ATOMIC("[CONNECTOR:%d:%s] requesting out-fence without framebuffer\n",
> -					 connector->base.id, connector->name);
> +			drm_dbg_atomic(dev, "[CONNECTOR:%d:%s] requesting out-fence without framebuffer\n",
> +				       connector->base.id, connector->name);
>  			return -EINVAL;
>  		}
>  
> @@ -463,8 +467,9 @@ struct drm_plane_state *
>  drm_atomic_get_plane_state(struct drm_atomic_state *state,
>  			  struct drm_plane *plane)
>  {
> -	int ret, index = drm_plane_index(plane);
> +	struct drm_device *dev = state->dev;
>  	struct drm_plane_state *plane_state;
> +	int ret, index = drm_plane_index(plane);
>  
>  	WARN_ON(!state->acquire_ctx);
>  
> @@ -491,8 +496,8 @@ drm_atomic_get_plane_state(struct drm_atomic_state *state,
>  	state->planes[index].new_state = plane_state;
>  	plane_state->state = state;
>  
> -	DRM_DEBUG_ATOMIC("Added [PLANE:%d:%s] %p state to %p\n",
> -			 plane->base.id, plane->name, plane_state, state);
> +	drm_dbg_atomic(dev, "Added [PLANE:%d:%s] %p state to %p\n",
> +		       plane->base.id, plane->name, plane_state, state);
>  
>  	if (plane_state->crtc) {
>  		struct drm_crtc_state *crtc_state;
> @@ -539,6 +544,7 @@ static int drm_atomic_plane_check(const struct drm_plane_state *old_plane_state,
>  				  const struct drm_plane_state *new_plane_state)
>  {
>  	struct drm_plane *plane = new_plane_state->plane;
> +	struct drm_device *dev = plane->dev;
>  	struct drm_crtc *crtc = new_plane_state->crtc;
>  	const struct drm_framebuffer *fb = new_plane_state->fb;
>  	unsigned int fb_width, fb_height;
> @@ -548,12 +554,12 @@ static int drm_atomic_plane_check(const struct drm_plane_state *old_plane_state,
>  
>  	/* either *both* CRTC and FB must be set, or neither */
>  	if (crtc && !fb) {
> -		DRM_DEBUG_ATOMIC("[PLANE:%d:%s] CRTC set but no FB\n",
> -				 plane->base.id, plane->name);
> +		drm_dbg_atomic(dev, "[PLANE:%d:%s] CRTC set but no FB\n",
> +			       plane->base.id, plane->name);
>  		return -EINVAL;
>  	} else if (fb && !crtc) {
> -		DRM_DEBUG_ATOMIC("[PLANE:%d:%s] FB set but no CRTC\n",
> -				 plane->base.id, plane->name);
> +		drm_dbg_atomic(dev, "[PLANE:%d:%s] FB set but no CRTC\n",
> +			       plane->base.id, plane->name);
>  		return -EINVAL;
>  	}
>  
> @@ -563,9 +569,9 @@ static int drm_atomic_plane_check(const struct drm_plane_state *old_plane_state,
>  
>  	/* Check whether this plane is usable on this CRTC */
>  	if (!(plane->possible_crtcs & drm_crtc_mask(crtc))) {
> -		DRM_DEBUG_ATOMIC("Invalid [CRTC:%d:%s] for [PLANE:%d:%s]\n",
> -				 crtc->base.id, crtc->name,
> -				 plane->base.id, plane->name);
> +		drm_dbg_atomic(dev, "Invalid [CRTC:%d:%s] for [PLANE:%d:%s]\n",
> +			       crtc->base.id, crtc->name,
> +			       plane->base.id, plane->name);
>  		return -EINVAL;
>  	}
>  
> @@ -574,11 +580,11 @@ static int drm_atomic_plane_check(const struct drm_plane_state *old_plane_state,
>  					   fb->modifier);
>  	if (ret) {
>  		struct drm_format_name_buf format_name;
> -		DRM_DEBUG_ATOMIC("[PLANE:%d:%s] invalid pixel format %s, modifier 0x%llx\n",
> -				 plane->base.id, plane->name,
> -				 drm_get_format_name(fb->format->format,
> -						     &format_name),
> -				 fb->modifier);
> +		drm_dbg_atomic(dev, "[PLANE:%d:%s] invalid pixel format %s, modifier 0x%llx\n",
> +			       plane->base.id, plane->name,
> +			       drm_get_format_name(fb->format->format,
> +						   &format_name),
> +			       fb->modifier);
>  		return ret;
>  	}
>  
> @@ -587,10 +593,10 @@ static int drm_atomic_plane_check(const struct drm_plane_state *old_plane_state,
>  	    new_plane_state->crtc_x > INT_MAX - (int32_t) new_plane_state->crtc_w ||
>  	    new_plane_state->crtc_h > INT_MAX ||
>  	    new_plane_state->crtc_y > INT_MAX - (int32_t) new_plane_state->crtc_h) {
> -		DRM_DEBUG_ATOMIC("[PLANE:%d:%s] invalid CRTC coordinates %ux%u+%d+%d\n",
> -				 plane->base.id, plane->name,
> -				 new_plane_state->crtc_w, new_plane_state->crtc_h,
> -				 new_plane_state->crtc_x, new_plane_state->crtc_y);
> +		drm_dbg_atomic(dev, "[PLANE:%d:%s] invalid CRTC coordinates %ux%u+%d+%d\n",
> +			       plane->base.id, plane->name,
> +			       new_plane_state->crtc_w, new_plane_state->crtc_h,
> +			       new_plane_state->crtc_x, new_plane_state->crtc_y);
>  		return -ERANGE;
>  	}
>  
> @@ -602,18 +608,18 @@ static int drm_atomic_plane_check(const struct drm_plane_state *old_plane_state,
>  	    new_plane_state->src_x > fb_width - new_plane_state->src_w ||
>  	    new_plane_state->src_h > fb_height ||
>  	    new_plane_state->src_y > fb_height - new_plane_state->src_h) {
> -		DRM_DEBUG_ATOMIC("[PLANE:%d:%s] invalid source coordinates "
> -				 "%u.%06ux%u.%06u+%u.%06u+%u.%06u (fb %ux%u)\n",
> -				 plane->base.id, plane->name,
> -				 new_plane_state->src_w >> 16,
> -				 ((new_plane_state->src_w & 0xffff) * 15625) >> 10,
> -				 new_plane_state->src_h >> 16,
> -				 ((new_plane_state->src_h & 0xffff) * 15625) >> 10,
> -				 new_plane_state->src_x >> 16,
> -				 ((new_plane_state->src_x & 0xffff) * 15625) >> 10,
> -				 new_plane_state->src_y >> 16,
> -				 ((new_plane_state->src_y & 0xffff) * 15625) >> 10,
> -				 fb->width, fb->height);
> +		drm_dbg_atomic(dev, "[PLANE:%d:%s] invalid source coordinates "
> +			       "%u.%06ux%u.%06u+%u.%06u+%u.%06u (fb %ux%u)\n",
> +			       plane->base.id, plane->name,
> +			       new_plane_state->src_w >> 16,
> +			       ((new_plane_state->src_w & 0xffff) * 15625) >> 10,
> +			       new_plane_state->src_h >> 16,
> +			       ((new_plane_state->src_h & 0xffff) * 15625) >> 10,
> +			       new_plane_state->src_x >> 16,
> +			       ((new_plane_state->src_x & 0xffff) * 15625) >> 10,
> +			       new_plane_state->src_y >> 16,
> +			       ((new_plane_state->src_y & 0xffff) * 15625) >> 10,
> +			       fb->width, fb->height);
>  		return -ENOSPC;
>  	}
>  
> @@ -628,9 +634,9 @@ static int drm_atomic_plane_check(const struct drm_plane_state *old_plane_state,
>  		    clips->y1 < 0 ||
>  		    clips->x2 > fb_width ||
>  		    clips->y2 > fb_height) {
> -			DRM_DEBUG_ATOMIC("[PLANE:%d:%s] invalid damage clip %d %d %d %d\n",
> -					 plane->base.id, plane->name, clips->x1,
> -					 clips->y1, clips->x2, clips->y2);
> +			drm_dbg_atomic(dev, "[PLANE:%d:%s] invalid damage clip %d %d %d %d\n",
> +				       plane->base.id, plane->name, clips->x1,
> +				       clips->y1, clips->x2, clips->y2);
>  			return -EINVAL;
>  		}
>  		clips++;
> @@ -638,8 +644,8 @@ static int drm_atomic_plane_check(const struct drm_plane_state *old_plane_state,
>  	}
>  
>  	if (plane_switching_crtc(old_plane_state, new_plane_state)) {
> -		DRM_DEBUG_ATOMIC("[PLANE:%d:%s] switching CRTC directly\n",
> -				 plane->base.id, plane->name);
> +		drm_dbg_atomic(dev, "[PLANE:%d:%s] switching CRTC directly\n",
> +			       plane->base.id, plane->name);
>  		return -EINVAL;
>  	}
>  
> @@ -766,6 +772,7 @@ struct drm_private_state *
>  drm_atomic_get_private_obj_state(struct drm_atomic_state *state,
>  				 struct drm_private_obj *obj)
>  {
> +	struct drm_device *dev = state->dev;
>  	int index, num_objs, i, ret;
>  	size_t size;
>  	struct __drm_private_objs_state *arr;
> @@ -801,8 +808,8 @@ drm_atomic_get_private_obj_state(struct drm_atomic_state *state,
>  
>  	state->num_private_objs = num_objs;
>  
> -	DRM_DEBUG_ATOMIC("Added new private object %p state %p to %p\n",
> -			 obj, obj_state, state);
> +	drm_dbg_atomic(dev, "Added new private object %p state %p to %p\n",
> +		       obj, obj_state, state);
>  
>  	return obj_state;
>  }
> @@ -940,6 +947,7 @@ struct drm_connector_state *
>  drm_atomic_get_connector_state(struct drm_atomic_state *state,
>  			  struct drm_connector *connector)
>  {
> +	struct drm_device *dev = state->dev;
>  	int ret, index;
>  	struct drm_mode_config *config = &connector->dev->mode_config;
>  	struct drm_connector_state *connector_state;
> @@ -981,9 +989,9 @@ drm_atomic_get_connector_state(struct drm_atomic_state *state,
>  	state->connectors[index].ptr = connector;
>  	connector_state->state = state;
>  
> -	DRM_DEBUG_ATOMIC("Added [CONNECTOR:%d:%s] %p state to %p\n",
> -			 connector->base.id, connector->name,
> -			 connector_state, state);
> +	drm_dbg_atomic(dev, "Added [CONNECTOR:%d:%s] %p state to %p\n",
> +		       connector->base.id, connector->name,
> +		       connector_state, state);
>  
>  	if (connector_state->crtc) {
>  		struct drm_crtc_state *crtc_state;
> @@ -1036,7 +1044,8 @@ int
>  drm_atomic_add_affected_connectors(struct drm_atomic_state *state,
>  				   struct drm_crtc *crtc)
>  {
> -	struct drm_mode_config *config = &state->dev->mode_config;
> +	struct drm_device *dev = state->dev;
> +	struct drm_mode_config *config = &dev->mode_config;
>  	struct drm_connector *connector;
>  	struct drm_connector_state *conn_state;
>  	struct drm_connector_list_iter conn_iter;
> @@ -1051,8 +1060,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:%s] to %p\n",
> -			 crtc->base.id, crtc->name, state);
> +	drm_dbg_atomic(dev, "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
> @@ -1099,14 +1108,15 @@ int
>  drm_atomic_add_affected_planes(struct drm_atomic_state *state,
>  			       struct drm_crtc *crtc)
>  {
> +	struct drm_device *dev = state->dev;
>  	const struct drm_crtc_state *old_crtc_state =
>  		drm_atomic_get_old_crtc_state(state, crtc);
>  	struct drm_plane *plane;
>  
>  	WARN_ON(!drm_atomic_get_new_crtc_state(state, crtc));
>  
> -	DRM_DEBUG_ATOMIC("Adding all current planes for [CRTC:%d:%s] to %p\n",
> -			 crtc->base.id, crtc->name, state);
> +	drm_dbg_atomic(dev, "Adding all current planes for [CRTC:%d:%s] to %p\n",
> +		       crtc->base.id, crtc->name, state);
>  
>  	drm_for_each_plane_mask(plane, state->dev, old_crtc_state->plane_mask) {
>  		struct drm_plane_state *plane_state =
> @@ -1144,13 +1154,13 @@ int drm_atomic_check_only(struct drm_atomic_state *state)
>  	struct drm_connector_state *conn_state;
>  	int i, ret = 0;
>  
> -	DRM_DEBUG_ATOMIC("checking %p\n", state);
> +	drm_dbg_atomic(dev, "checking %p\n", state);
>  
>  	for_each_oldnew_plane_in_state(state, plane, old_plane_state, new_plane_state, i) {
>  		ret = drm_atomic_plane_check(old_plane_state, new_plane_state);
>  		if (ret) {
> -			DRM_DEBUG_ATOMIC("[PLANE:%d:%s] atomic core check failed\n",
> -					 plane->base.id, plane->name);
> +			drm_dbg_atomic(dev, "[PLANE:%d:%s] atomic core check failed\n",
> +				       plane->base.id, plane->name);
>  			return ret;
>  		}
>  	}
> @@ -1158,8 +1168,8 @@ int drm_atomic_check_only(struct drm_atomic_state *state)
>  	for_each_oldnew_crtc_in_state(state, crtc, old_crtc_state, new_crtc_state, i) {
>  		ret = drm_atomic_crtc_check(old_crtc_state, new_crtc_state);
>  		if (ret) {
> -			DRM_DEBUG_ATOMIC("[CRTC:%d:%s] atomic core check failed\n",
> -					 crtc->base.id, crtc->name);
> +			drm_dbg_atomic(dev, "[CRTC:%d:%s] atomic core check failed\n",
> +				       crtc->base.id, crtc->name);
>  			return ret;
>  		}
>  	}
> @@ -1167,8 +1177,8 @@ int drm_atomic_check_only(struct drm_atomic_state *state)
>  	for_each_new_connector_in_state(state, conn, conn_state, i) {
>  		ret = drm_atomic_connector_check(conn, conn_state);
>  		if (ret) {
> -			DRM_DEBUG_ATOMIC("[CONNECTOR:%d:%s] atomic core check failed\n",
> -					 conn->base.id, conn->name);
> +			drm_dbg_atomic(dev, "[CONNECTOR:%d:%s] atomic core check failed\n",
> +				       conn->base.id, conn->name);
>  			return ret;
>  		}
>  	}
> @@ -1177,8 +1187,8 @@ int drm_atomic_check_only(struct drm_atomic_state *state)
>  		ret = config->funcs->atomic_check(state->dev, state);
>  
>  		if (ret) {
> -			DRM_DEBUG_ATOMIC("atomic driver check for %p failed: %d\n",
> -					 state, ret);
> +			drm_dbg_atomic(dev, "atomic driver check for %p failed: %d\n",
> +				       state, ret);
>  			return ret;
>  		}
>  	}
> @@ -1186,8 +1196,8 @@ int drm_atomic_check_only(struct drm_atomic_state *state)
>  	if (!state->allow_modeset) {
>  		for_each_new_crtc_in_state(state, crtc, new_crtc_state, i) {
>  			if (drm_atomic_crtc_needs_modeset(new_crtc_state)) {
> -				DRM_DEBUG_ATOMIC("[CRTC:%d:%s] requires full modeset\n",
> -						 crtc->base.id, crtc->name);
> +				drm_dbg_atomic(dev, "[CRTC:%d:%s] requires full modeset\n",
> +					       crtc->base.id, crtc->name);
>  				return -EINVAL;
>  			}
>  		}
> @@ -1213,14 +1223,15 @@ EXPORT_SYMBOL(drm_atomic_check_only);
>   */
>  int drm_atomic_commit(struct drm_atomic_state *state)
>  {
> -	struct drm_mode_config *config = &state->dev->mode_config;
> +	struct drm_device *dev = state->dev;
> +	struct drm_mode_config *config = &dev->mode_config;
>  	int ret;
>  
>  	ret = drm_atomic_check_only(state);
>  	if (ret)
>  		return ret;
>  
> -	DRM_DEBUG_ATOMIC("committing %p\n", state);
> +	drm_dbg_atomic(dev, "committing %p\n", state);
>  
>  	return config->funcs->atomic_commit(state->dev, state, false);
>  }
> @@ -1242,14 +1253,15 @@ EXPORT_SYMBOL(drm_atomic_commit);
>   */
>  int drm_atomic_nonblocking_commit(struct drm_atomic_state *state)
>  {
> -	struct drm_mode_config *config = &state->dev->mode_config;
> +	struct drm_device *dev = state->dev;
> +	struct drm_mode_config *config = &dev->mode_config;
>  	int ret;
>  
>  	ret = drm_atomic_check_only(state);
>  	if (ret)
>  		return ret;
>  
> -	DRM_DEBUG_ATOMIC("committing %p nonblocking\n", state);
> +	drm_dbg_atomic(dev, "committing %p nonblocking\n", state);
>  
>  	return config->funcs->atomic_commit(state->dev, state, true);
>  }
> @@ -1425,7 +1437,8 @@ EXPORT_SYMBOL(__drm_atomic_helper_set_config);
>  
>  void drm_atomic_print_state(const struct drm_atomic_state *state)
>  {
> -	struct drm_printer p = drm_info_printer(state->dev->dev);
> +	struct drm_device *dev = state->dev;
> +	struct drm_printer p = drm_info_printer(dev->dev);
>  	struct drm_plane *plane;
>  	struct drm_plane_state *plane_state;
>  	struct drm_crtc *crtc;
> @@ -1434,7 +1447,7 @@ void drm_atomic_print_state(const struct drm_atomic_state *state)
>  	struct drm_connector_state *connector_state;
>  	int i;
>  
> -	DRM_DEBUG_ATOMIC("checking %p\n", state);
> +	drm_dbg_atomic(dev, "checking %p\n", state);
>  
>  	for_each_new_plane_in_state(state, plane, plane_state, i)
>  		drm_atomic_plane_print_state(&p, plane_state);
_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx

^ permalink raw reply	[flat|nested] 53+ messages in thread

* Re: [6/8] drm/atomic: convert to drm device based logging
  2019-12-12  8:07     ` [Intel-gfx] " james qian wang (Arm Technology China)
@ 2019-12-12  8:33       ` Jani Nikula
  -1 siblings, 0 replies; 53+ messages in thread
From: Jani Nikula @ 2019-12-12  8:33 UTC (permalink / raw)
  To: james qian wang (Arm Technology China); +Cc: intel-gfx, nd, dri-devel

On Thu, 12 Dec 2019, "james qian wang (Arm Technology China)" <james.qian.wang@arm.com> wrote:
> On Tue, Dec 10, 2019 at 02:30:48PM +0200, Jani Nikula wrote:
>> Prefer drm_dbg_atomic().
>> 
>> Signed-off-by: Jani Nikula <jani.nikula@intel.com>
>> ---
>>  drivers/gpu/drm/drm_agpsupport.c |   4 +-
>>  drivers/gpu/drm/drm_atomic.c     | 187 +++++++++++++++++--------------
>>  2 files changed, 102 insertions(+), 89 deletions(-)
>> 
>> diff --git a/drivers/gpu/drm/drm_agpsupport.c b/drivers/gpu/drm/drm_agpsupport.c
>> index 4c7ad46fdd21..cd675e58de50 100644
>> --- a/drivers/gpu/drm/drm_agpsupport.c
>> +++ b/drivers/gpu/drm/drm_agpsupport.c
>> @@ -330,8 +330,8 @@ int drm_agp_bind(struct drm_device *dev, struct drm_agp_binding *request)
>>  	if (retcode)
>>  		return retcode;
>>  	entry->bound = dev->agp->base + (page << PAGE_SHIFT);
>> -	DRM_DEBUG("base = 0x%lx entry->bound = 0x%lx\n",
>> -		  dev->agp->base, entry->bound);
>> +	drm_dbg_core(dev, "base = 0x%lx entry->bound = 0x%lx\n",
>> +		     dev->agp->base, entry->bound);
>>  	return 0;
>>  }
>>  EXPORT_SYMBOL(drm_agp_bind);
>> diff --git a/drivers/gpu/drm/drm_atomic.c b/drivers/gpu/drm/drm_atomic.c
>> index 14aeaf736321..8494b1c29bf0 100644
>> --- a/drivers/gpu/drm/drm_atomic.c
>> +++ b/drivers/gpu/drm/drm_atomic.c
>> @@ -99,7 +99,7 @@ drm_atomic_state_init(struct drm_device *dev, struct drm_atomic_state *state)
>>  
>>  	state->dev = dev;
>>  
>> -	DRM_DEBUG_ATOMIC("Allocated atomic state %p\n", state);
>> +	drm_dbg_atomic(dev, "Allocated atomic state %p\n", state);
>>  
>>  	return 0;
>>  fail:
>> @@ -150,7 +150,7 @@ void drm_atomic_state_default_clear(struct drm_atomic_state *state)
>>  	struct drm_mode_config *config = &dev->mode_config;
>>  	int i;
>>  
>> -	DRM_DEBUG_ATOMIC("Clearing atomic state %p\n", state);
>> +	drm_dbg_atomic(dev, "Clearing atomic state %p\n", state);
>>  
>>  	for (i = 0; i < state->num_connector; i++) {
>>  		struct drm_connector *connector = state->connectors[i].ptr;
>> @@ -256,11 +256,12 @@ EXPORT_SYMBOL(drm_atomic_state_clear);
>>  void __drm_atomic_state_free(struct kref *ref)
>>  {
>>  	struct drm_atomic_state *state = container_of(ref, typeof(*state), ref);
>> -	struct drm_mode_config *config = &state->dev->mode_config;
>> +	struct drm_device *dev = state->dev;
>> +	struct drm_mode_config *config = &dev->mode_config;
>>  
>>  	drm_atomic_state_clear(state);
>>  
>> -	DRM_DEBUG_ATOMIC("Freeing atomic state %p\n", state);
>> +	drm_dbg_atomic(dev, "Freeing atomic state %p\n", state);
>>  
>>  	if (config->funcs->atomic_state_free) {
>>  		config->funcs->atomic_state_free(state);
>> @@ -290,8 +291,9 @@ struct drm_crtc_state *
>>  drm_atomic_get_crtc_state(struct drm_atomic_state *state,
>>  			  struct drm_crtc *crtc)
>>  {
>> -	int ret, index = drm_crtc_index(crtc);
>> +	struct drm_device *dev = state->dev;
>>  	struct drm_crtc_state *crtc_state;
>> +	int ret, index = drm_crtc_index(crtc);
>>  
>>  	WARN_ON(!state->acquire_ctx);
>>  
>> @@ -313,8 +315,8 @@ drm_atomic_get_crtc_state(struct drm_atomic_state *state,
>>  	state->crtcs[index].ptr = crtc;
>>  	crtc_state->state = state;
>>  
>> -	DRM_DEBUG_ATOMIC("Added [CRTC:%d:%s] %p state to %p\n",
>> -			 crtc->base.id, crtc->name, crtc_state, state);
>> +	drm_dbg_atomic(dev, "Added [CRTC:%d:%s] %p state to %p\n",
>> +		       crtc->base.id, crtc->name, crtc_state, state);
>>  
>>  	return crtc_state;
>>  }
>> @@ -324,6 +326,7 @@ static int drm_atomic_crtc_check(const struct drm_crtc_state *old_crtc_state,
>>  				 const struct drm_crtc_state *new_crtc_state)
>>  {
>>  	struct drm_crtc *crtc = new_crtc_state->crtc;
>> +	struct drm_device *dev = crtc->dev;
>>  
>>  	/* NOTE: we explicitly don't enforce constraints such as primary
>>  	 * layer covering entire screen, since that is something we want
>> @@ -334,25 +337,25 @@ static int drm_atomic_crtc_check(const struct drm_crtc_state *old_crtc_state,
>>  	 */
>>  
>>  	if (new_crtc_state->active && !new_crtc_state->enable) {
>> -		DRM_DEBUG_ATOMIC("[CRTC:%d:%s] active without enabled\n",
>> -				 crtc->base.id, crtc->name);
>> +		drm_dbg_atomic(dev, "[CRTC:%d:%s] active without enabled\n",
>> +			       crtc->base.id, crtc->name);
>
> Can we add a new dedicated print level for these atomic check error msg,
> In practice we more care about the atomic check errors, it is annoy to
> pick it out from (so many) DRM_DEBUG_ATOMIC() msgs.

Please let's try to converge on the patches at hand instead of diverging
to things that are unrelated to what this patch series tries to achieve.


BR,
Jani.

>
> Thanks
> James
>
>>  		return -EINVAL;
>>  	}
>>  
>>  	/* The state->enable vs. state->mode_blob checks can be WARN_ON,
>>  	 * as this is a kernel-internal detail that userspace should never
>>  	 * be able to trigger. */
>> -	if (drm_core_check_feature(crtc->dev, DRIVER_ATOMIC) &&
>> +	if (drm_core_check_feature(dev, DRIVER_ATOMIC) &&
>>  	    WARN_ON(new_crtc_state->enable && !new_crtc_state->mode_blob)) {
>> -		DRM_DEBUG_ATOMIC("[CRTC:%d:%s] enabled without mode blob\n",
>> -				 crtc->base.id, crtc->name);
>> +		drm_dbg_atomic(dev, "[CRTC:%d:%s] enabled without mode blob\n",
>> +			       crtc->base.id, crtc->name);
>>  		return -EINVAL;
>>  	}
>>  
>> -	if (drm_core_check_feature(crtc->dev, DRIVER_ATOMIC) &&
>> +	if (drm_core_check_feature(dev, DRIVER_ATOMIC) &&
>>  	    WARN_ON(!new_crtc_state->enable && new_crtc_state->mode_blob)) {
>> -		DRM_DEBUG_ATOMIC("[CRTC:%d:%s] disabled with mode blob\n",
>> -				 crtc->base.id, crtc->name);
>> +		drm_dbg_atomic(dev, "[CRTC:%d:%s] disabled with mode blob\n",
>> +			       crtc->base.id, crtc->name);
>>  		return -EINVAL;
>>  	}
>>  
>> @@ -368,8 +371,8 @@ static int drm_atomic_crtc_check(const struct drm_crtc_state *old_crtc_state,
>>  	 */
>>  	if (new_crtc_state->event &&
>>  	    !new_crtc_state->active && !old_crtc_state->active) {
>> -		DRM_DEBUG_ATOMIC("[CRTC:%d:%s] requesting event but off\n",
>> -				 crtc->base.id, crtc->name);
>> +		drm_dbg_atomic(dev, "[CRTC:%d:%s] requesting event but off\n",
>> +			       crtc->base.id, crtc->name);
>>  		return -EINVAL;
>>  	}
>>  
>> @@ -402,6 +405,7 @@ static void drm_atomic_crtc_print_state(struct drm_printer *p,
>>  static int drm_atomic_connector_check(struct drm_connector *connector,
>>  		struct drm_connector_state *state)
>>  {
>> +	struct drm_device *dev = connector->dev;
>>  	struct drm_crtc_state *crtc_state;
>>  	struct drm_writeback_job *writeback_job = state->writeback_job;
>>  	const struct drm_display_info *info = &connector->display_info;
>> @@ -414,8 +418,8 @@ static int drm_atomic_connector_check(struct drm_connector *connector,
>>  		return 0;
>>  
>>  	if (writeback_job->fb && !state->crtc) {
>> -		DRM_DEBUG_ATOMIC("[CONNECTOR:%d:%s] framebuffer without CRTC\n",
>> -				 connector->base.id, connector->name);
>> +		drm_dbg_atomic(dev, "[CONNECTOR:%d:%s] framebuffer without CRTC\n",
>> +			       connector->base.id, connector->name);
>>  		return -EINVAL;
>>  	}
>>  
>> @@ -424,16 +428,16 @@ static int drm_atomic_connector_check(struct drm_connector *connector,
>>  								state->crtc);
>>  
>>  	if (writeback_job->fb && !crtc_state->active) {
>> -		DRM_DEBUG_ATOMIC("[CONNECTOR:%d:%s] has framebuffer, but [CRTC:%d] is off\n",
>> -				 connector->base.id, connector->name,
>> -				 state->crtc->base.id);
>> +		drm_dbg_atomic(dev, "[CONNECTOR:%d:%s] has framebuffer, but [CRTC:%d] is off\n",
>> +			       connector->base.id, connector->name,
>> +			       state->crtc->base.id);
>>  		return -EINVAL;
>>  	}
>>  
>>  	if (!writeback_job->fb) {
>>  		if (writeback_job->out_fence) {
>> -			DRM_DEBUG_ATOMIC("[CONNECTOR:%d:%s] requesting out-fence without framebuffer\n",
>> -					 connector->base.id, connector->name);
>> +			drm_dbg_atomic(dev, "[CONNECTOR:%d:%s] requesting out-fence without framebuffer\n",
>> +				       connector->base.id, connector->name);
>>  			return -EINVAL;
>>  		}
>>  
>> @@ -463,8 +467,9 @@ struct drm_plane_state *
>>  drm_atomic_get_plane_state(struct drm_atomic_state *state,
>>  			  struct drm_plane *plane)
>>  {
>> -	int ret, index = drm_plane_index(plane);
>> +	struct drm_device *dev = state->dev;
>>  	struct drm_plane_state *plane_state;
>> +	int ret, index = drm_plane_index(plane);
>>  
>>  	WARN_ON(!state->acquire_ctx);
>>  
>> @@ -491,8 +496,8 @@ drm_atomic_get_plane_state(struct drm_atomic_state *state,
>>  	state->planes[index].new_state = plane_state;
>>  	plane_state->state = state;
>>  
>> -	DRM_DEBUG_ATOMIC("Added [PLANE:%d:%s] %p state to %p\n",
>> -			 plane->base.id, plane->name, plane_state, state);
>> +	drm_dbg_atomic(dev, "Added [PLANE:%d:%s] %p state to %p\n",
>> +		       plane->base.id, plane->name, plane_state, state);
>>  
>>  	if (plane_state->crtc) {
>>  		struct drm_crtc_state *crtc_state;
>> @@ -539,6 +544,7 @@ static int drm_atomic_plane_check(const struct drm_plane_state *old_plane_state,
>>  				  const struct drm_plane_state *new_plane_state)
>>  {
>>  	struct drm_plane *plane = new_plane_state->plane;
>> +	struct drm_device *dev = plane->dev;
>>  	struct drm_crtc *crtc = new_plane_state->crtc;
>>  	const struct drm_framebuffer *fb = new_plane_state->fb;
>>  	unsigned int fb_width, fb_height;
>> @@ -548,12 +554,12 @@ static int drm_atomic_plane_check(const struct drm_plane_state *old_plane_state,
>>  
>>  	/* either *both* CRTC and FB must be set, or neither */
>>  	if (crtc && !fb) {
>> -		DRM_DEBUG_ATOMIC("[PLANE:%d:%s] CRTC set but no FB\n",
>> -				 plane->base.id, plane->name);
>> +		drm_dbg_atomic(dev, "[PLANE:%d:%s] CRTC set but no FB\n",
>> +			       plane->base.id, plane->name);
>>  		return -EINVAL;
>>  	} else if (fb && !crtc) {
>> -		DRM_DEBUG_ATOMIC("[PLANE:%d:%s] FB set but no CRTC\n",
>> -				 plane->base.id, plane->name);
>> +		drm_dbg_atomic(dev, "[PLANE:%d:%s] FB set but no CRTC\n",
>> +			       plane->base.id, plane->name);
>>  		return -EINVAL;
>>  	}
>>  
>> @@ -563,9 +569,9 @@ static int drm_atomic_plane_check(const struct drm_plane_state *old_plane_state,
>>  
>>  	/* Check whether this plane is usable on this CRTC */
>>  	if (!(plane->possible_crtcs & drm_crtc_mask(crtc))) {
>> -		DRM_DEBUG_ATOMIC("Invalid [CRTC:%d:%s] for [PLANE:%d:%s]\n",
>> -				 crtc->base.id, crtc->name,
>> -				 plane->base.id, plane->name);
>> +		drm_dbg_atomic(dev, "Invalid [CRTC:%d:%s] for [PLANE:%d:%s]\n",
>> +			       crtc->base.id, crtc->name,
>> +			       plane->base.id, plane->name);
>>  		return -EINVAL;
>>  	}
>>  
>> @@ -574,11 +580,11 @@ static int drm_atomic_plane_check(const struct drm_plane_state *old_plane_state,
>>  					   fb->modifier);
>>  	if (ret) {
>>  		struct drm_format_name_buf format_name;
>> -		DRM_DEBUG_ATOMIC("[PLANE:%d:%s] invalid pixel format %s, modifier 0x%llx\n",
>> -				 plane->base.id, plane->name,
>> -				 drm_get_format_name(fb->format->format,
>> -						     &format_name),
>> -				 fb->modifier);
>> +		drm_dbg_atomic(dev, "[PLANE:%d:%s] invalid pixel format %s, modifier 0x%llx\n",
>> +			       plane->base.id, plane->name,
>> +			       drm_get_format_name(fb->format->format,
>> +						   &format_name),
>> +			       fb->modifier);
>>  		return ret;
>>  	}
>>  
>> @@ -587,10 +593,10 @@ static int drm_atomic_plane_check(const struct drm_plane_state *old_plane_state,
>>  	    new_plane_state->crtc_x > INT_MAX - (int32_t) new_plane_state->crtc_w ||
>>  	    new_plane_state->crtc_h > INT_MAX ||
>>  	    new_plane_state->crtc_y > INT_MAX - (int32_t) new_plane_state->crtc_h) {
>> -		DRM_DEBUG_ATOMIC("[PLANE:%d:%s] invalid CRTC coordinates %ux%u+%d+%d\n",
>> -				 plane->base.id, plane->name,
>> -				 new_plane_state->crtc_w, new_plane_state->crtc_h,
>> -				 new_plane_state->crtc_x, new_plane_state->crtc_y);
>> +		drm_dbg_atomic(dev, "[PLANE:%d:%s] invalid CRTC coordinates %ux%u+%d+%d\n",
>> +			       plane->base.id, plane->name,
>> +			       new_plane_state->crtc_w, new_plane_state->crtc_h,
>> +			       new_plane_state->crtc_x, new_plane_state->crtc_y);
>>  		return -ERANGE;
>>  	}
>>  
>> @@ -602,18 +608,18 @@ static int drm_atomic_plane_check(const struct drm_plane_state *old_plane_state,
>>  	    new_plane_state->src_x > fb_width - new_plane_state->src_w ||
>>  	    new_plane_state->src_h > fb_height ||
>>  	    new_plane_state->src_y > fb_height - new_plane_state->src_h) {
>> -		DRM_DEBUG_ATOMIC("[PLANE:%d:%s] invalid source coordinates "
>> -				 "%u.%06ux%u.%06u+%u.%06u+%u.%06u (fb %ux%u)\n",
>> -				 plane->base.id, plane->name,
>> -				 new_plane_state->src_w >> 16,
>> -				 ((new_plane_state->src_w & 0xffff) * 15625) >> 10,
>> -				 new_plane_state->src_h >> 16,
>> -				 ((new_plane_state->src_h & 0xffff) * 15625) >> 10,
>> -				 new_plane_state->src_x >> 16,
>> -				 ((new_plane_state->src_x & 0xffff) * 15625) >> 10,
>> -				 new_plane_state->src_y >> 16,
>> -				 ((new_plane_state->src_y & 0xffff) * 15625) >> 10,
>> -				 fb->width, fb->height);
>> +		drm_dbg_atomic(dev, "[PLANE:%d:%s] invalid source coordinates "
>> +			       "%u.%06ux%u.%06u+%u.%06u+%u.%06u (fb %ux%u)\n",
>> +			       plane->base.id, plane->name,
>> +			       new_plane_state->src_w >> 16,
>> +			       ((new_plane_state->src_w & 0xffff) * 15625) >> 10,
>> +			       new_plane_state->src_h >> 16,
>> +			       ((new_plane_state->src_h & 0xffff) * 15625) >> 10,
>> +			       new_plane_state->src_x >> 16,
>> +			       ((new_plane_state->src_x & 0xffff) * 15625) >> 10,
>> +			       new_plane_state->src_y >> 16,
>> +			       ((new_plane_state->src_y & 0xffff) * 15625) >> 10,
>> +			       fb->width, fb->height);
>>  		return -ENOSPC;
>>  	}
>>  
>> @@ -628,9 +634,9 @@ static int drm_atomic_plane_check(const struct drm_plane_state *old_plane_state,
>>  		    clips->y1 < 0 ||
>>  		    clips->x2 > fb_width ||
>>  		    clips->y2 > fb_height) {
>> -			DRM_DEBUG_ATOMIC("[PLANE:%d:%s] invalid damage clip %d %d %d %d\n",
>> -					 plane->base.id, plane->name, clips->x1,
>> -					 clips->y1, clips->x2, clips->y2);
>> +			drm_dbg_atomic(dev, "[PLANE:%d:%s] invalid damage clip %d %d %d %d\n",
>> +				       plane->base.id, plane->name, clips->x1,
>> +				       clips->y1, clips->x2, clips->y2);
>>  			return -EINVAL;
>>  		}
>>  		clips++;
>> @@ -638,8 +644,8 @@ static int drm_atomic_plane_check(const struct drm_plane_state *old_plane_state,
>>  	}
>>  
>>  	if (plane_switching_crtc(old_plane_state, new_plane_state)) {
>> -		DRM_DEBUG_ATOMIC("[PLANE:%d:%s] switching CRTC directly\n",
>> -				 plane->base.id, plane->name);
>> +		drm_dbg_atomic(dev, "[PLANE:%d:%s] switching CRTC directly\n",
>> +			       plane->base.id, plane->name);
>>  		return -EINVAL;
>>  	}
>>  
>> @@ -766,6 +772,7 @@ struct drm_private_state *
>>  drm_atomic_get_private_obj_state(struct drm_atomic_state *state,
>>  				 struct drm_private_obj *obj)
>>  {
>> +	struct drm_device *dev = state->dev;
>>  	int index, num_objs, i, ret;
>>  	size_t size;
>>  	struct __drm_private_objs_state *arr;
>> @@ -801,8 +808,8 @@ drm_atomic_get_private_obj_state(struct drm_atomic_state *state,
>>  
>>  	state->num_private_objs = num_objs;
>>  
>> -	DRM_DEBUG_ATOMIC("Added new private object %p state %p to %p\n",
>> -			 obj, obj_state, state);
>> +	drm_dbg_atomic(dev, "Added new private object %p state %p to %p\n",
>> +		       obj, obj_state, state);
>>  
>>  	return obj_state;
>>  }
>> @@ -940,6 +947,7 @@ struct drm_connector_state *
>>  drm_atomic_get_connector_state(struct drm_atomic_state *state,
>>  			  struct drm_connector *connector)
>>  {
>> +	struct drm_device *dev = state->dev;
>>  	int ret, index;
>>  	struct drm_mode_config *config = &connector->dev->mode_config;
>>  	struct drm_connector_state *connector_state;
>> @@ -981,9 +989,9 @@ drm_atomic_get_connector_state(struct drm_atomic_state *state,
>>  	state->connectors[index].ptr = connector;
>>  	connector_state->state = state;
>>  
>> -	DRM_DEBUG_ATOMIC("Added [CONNECTOR:%d:%s] %p state to %p\n",
>> -			 connector->base.id, connector->name,
>> -			 connector_state, state);
>> +	drm_dbg_atomic(dev, "Added [CONNECTOR:%d:%s] %p state to %p\n",
>> +		       connector->base.id, connector->name,
>> +		       connector_state, state);
>>  
>>  	if (connector_state->crtc) {
>>  		struct drm_crtc_state *crtc_state;
>> @@ -1036,7 +1044,8 @@ int
>>  drm_atomic_add_affected_connectors(struct drm_atomic_state *state,
>>  				   struct drm_crtc *crtc)
>>  {
>> -	struct drm_mode_config *config = &state->dev->mode_config;
>> +	struct drm_device *dev = state->dev;
>> +	struct drm_mode_config *config = &dev->mode_config;
>>  	struct drm_connector *connector;
>>  	struct drm_connector_state *conn_state;
>>  	struct drm_connector_list_iter conn_iter;
>> @@ -1051,8 +1060,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:%s] to %p\n",
>> -			 crtc->base.id, crtc->name, state);
>> +	drm_dbg_atomic(dev, "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
>> @@ -1099,14 +1108,15 @@ int
>>  drm_atomic_add_affected_planes(struct drm_atomic_state *state,
>>  			       struct drm_crtc *crtc)
>>  {
>> +	struct drm_device *dev = state->dev;
>>  	const struct drm_crtc_state *old_crtc_state =
>>  		drm_atomic_get_old_crtc_state(state, crtc);
>>  	struct drm_plane *plane;
>>  
>>  	WARN_ON(!drm_atomic_get_new_crtc_state(state, crtc));
>>  
>> -	DRM_DEBUG_ATOMIC("Adding all current planes for [CRTC:%d:%s] to %p\n",
>> -			 crtc->base.id, crtc->name, state);
>> +	drm_dbg_atomic(dev, "Adding all current planes for [CRTC:%d:%s] to %p\n",
>> +		       crtc->base.id, crtc->name, state);
>>  
>>  	drm_for_each_plane_mask(plane, state->dev, old_crtc_state->plane_mask) {
>>  		struct drm_plane_state *plane_state =
>> @@ -1144,13 +1154,13 @@ int drm_atomic_check_only(struct drm_atomic_state *state)
>>  	struct drm_connector_state *conn_state;
>>  	int i, ret = 0;
>>  
>> -	DRM_DEBUG_ATOMIC("checking %p\n", state);
>> +	drm_dbg_atomic(dev, "checking %p\n", state);
>>  
>>  	for_each_oldnew_plane_in_state(state, plane, old_plane_state, new_plane_state, i) {
>>  		ret = drm_atomic_plane_check(old_plane_state, new_plane_state);
>>  		if (ret) {
>> -			DRM_DEBUG_ATOMIC("[PLANE:%d:%s] atomic core check failed\n",
>> -					 plane->base.id, plane->name);
>> +			drm_dbg_atomic(dev, "[PLANE:%d:%s] atomic core check failed\n",
>> +				       plane->base.id, plane->name);
>>  			return ret;
>>  		}
>>  	}
>> @@ -1158,8 +1168,8 @@ int drm_atomic_check_only(struct drm_atomic_state *state)
>>  	for_each_oldnew_crtc_in_state(state, crtc, old_crtc_state, new_crtc_state, i) {
>>  		ret = drm_atomic_crtc_check(old_crtc_state, new_crtc_state);
>>  		if (ret) {
>> -			DRM_DEBUG_ATOMIC("[CRTC:%d:%s] atomic core check failed\n",
>> -					 crtc->base.id, crtc->name);
>> +			drm_dbg_atomic(dev, "[CRTC:%d:%s] atomic core check failed\n",
>> +				       crtc->base.id, crtc->name);
>>  			return ret;
>>  		}
>>  	}
>> @@ -1167,8 +1177,8 @@ int drm_atomic_check_only(struct drm_atomic_state *state)
>>  	for_each_new_connector_in_state(state, conn, conn_state, i) {
>>  		ret = drm_atomic_connector_check(conn, conn_state);
>>  		if (ret) {
>> -			DRM_DEBUG_ATOMIC("[CONNECTOR:%d:%s] atomic core check failed\n",
>> -					 conn->base.id, conn->name);
>> +			drm_dbg_atomic(dev, "[CONNECTOR:%d:%s] atomic core check failed\n",
>> +				       conn->base.id, conn->name);
>>  			return ret;
>>  		}
>>  	}
>> @@ -1177,8 +1187,8 @@ int drm_atomic_check_only(struct drm_atomic_state *state)
>>  		ret = config->funcs->atomic_check(state->dev, state);
>>  
>>  		if (ret) {
>> -			DRM_DEBUG_ATOMIC("atomic driver check for %p failed: %d\n",
>> -					 state, ret);
>> +			drm_dbg_atomic(dev, "atomic driver check for %p failed: %d\n",
>> +				       state, ret);
>>  			return ret;
>>  		}
>>  	}
>> @@ -1186,8 +1196,8 @@ int drm_atomic_check_only(struct drm_atomic_state *state)
>>  	if (!state->allow_modeset) {
>>  		for_each_new_crtc_in_state(state, crtc, new_crtc_state, i) {
>>  			if (drm_atomic_crtc_needs_modeset(new_crtc_state)) {
>> -				DRM_DEBUG_ATOMIC("[CRTC:%d:%s] requires full modeset\n",
>> -						 crtc->base.id, crtc->name);
>> +				drm_dbg_atomic(dev, "[CRTC:%d:%s] requires full modeset\n",
>> +					       crtc->base.id, crtc->name);
>>  				return -EINVAL;
>>  			}
>>  		}
>> @@ -1213,14 +1223,15 @@ EXPORT_SYMBOL(drm_atomic_check_only);
>>   */
>>  int drm_atomic_commit(struct drm_atomic_state *state)
>>  {
>> -	struct drm_mode_config *config = &state->dev->mode_config;
>> +	struct drm_device *dev = state->dev;
>> +	struct drm_mode_config *config = &dev->mode_config;
>>  	int ret;
>>  
>>  	ret = drm_atomic_check_only(state);
>>  	if (ret)
>>  		return ret;
>>  
>> -	DRM_DEBUG_ATOMIC("committing %p\n", state);
>> +	drm_dbg_atomic(dev, "committing %p\n", state);
>>  
>>  	return config->funcs->atomic_commit(state->dev, state, false);
>>  }
>> @@ -1242,14 +1253,15 @@ EXPORT_SYMBOL(drm_atomic_commit);
>>   */
>>  int drm_atomic_nonblocking_commit(struct drm_atomic_state *state)
>>  {
>> -	struct drm_mode_config *config = &state->dev->mode_config;
>> +	struct drm_device *dev = state->dev;
>> +	struct drm_mode_config *config = &dev->mode_config;
>>  	int ret;
>>  
>>  	ret = drm_atomic_check_only(state);
>>  	if (ret)
>>  		return ret;
>>  
>> -	DRM_DEBUG_ATOMIC("committing %p nonblocking\n", state);
>> +	drm_dbg_atomic(dev, "committing %p nonblocking\n", state);
>>  
>>  	return config->funcs->atomic_commit(state->dev, state, true);
>>  }
>> @@ -1425,7 +1437,8 @@ EXPORT_SYMBOL(__drm_atomic_helper_set_config);
>>  
>>  void drm_atomic_print_state(const struct drm_atomic_state *state)
>>  {
>> -	struct drm_printer p = drm_info_printer(state->dev->dev);
>> +	struct drm_device *dev = state->dev;
>> +	struct drm_printer p = drm_info_printer(dev->dev);
>>  	struct drm_plane *plane;
>>  	struct drm_plane_state *plane_state;
>>  	struct drm_crtc *crtc;
>> @@ -1434,7 +1447,7 @@ void drm_atomic_print_state(const struct drm_atomic_state *state)
>>  	struct drm_connector_state *connector_state;
>>  	int i;
>>  
>> -	DRM_DEBUG_ATOMIC("checking %p\n", state);
>> +	drm_dbg_atomic(dev, "checking %p\n", state);
>>  
>>  	for_each_new_plane_in_state(state, plane, plane_state, i)
>>  		drm_atomic_plane_print_state(&p, plane_state);

-- 
Jani Nikula, Intel Open Source Graphics Center
_______________________________________________
dri-devel mailing list
dri-devel@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/dri-devel

^ permalink raw reply	[flat|nested] 53+ messages in thread

* Re: [Intel-gfx] [6/8] drm/atomic: convert to drm device based logging
@ 2019-12-12  8:33       ` Jani Nikula
  0 siblings, 0 replies; 53+ messages in thread
From: Jani Nikula @ 2019-12-12  8:33 UTC (permalink / raw)
  To: james qian wang (Arm Technology China); +Cc: intel-gfx, nd, dri-devel

On Thu, 12 Dec 2019, "james qian wang (Arm Technology China)" <james.qian.wang@arm.com> wrote:
> On Tue, Dec 10, 2019 at 02:30:48PM +0200, Jani Nikula wrote:
>> Prefer drm_dbg_atomic().
>> 
>> Signed-off-by: Jani Nikula <jani.nikula@intel.com>
>> ---
>>  drivers/gpu/drm/drm_agpsupport.c |   4 +-
>>  drivers/gpu/drm/drm_atomic.c     | 187 +++++++++++++++++--------------
>>  2 files changed, 102 insertions(+), 89 deletions(-)
>> 
>> diff --git a/drivers/gpu/drm/drm_agpsupport.c b/drivers/gpu/drm/drm_agpsupport.c
>> index 4c7ad46fdd21..cd675e58de50 100644
>> --- a/drivers/gpu/drm/drm_agpsupport.c
>> +++ b/drivers/gpu/drm/drm_agpsupport.c
>> @@ -330,8 +330,8 @@ int drm_agp_bind(struct drm_device *dev, struct drm_agp_binding *request)
>>  	if (retcode)
>>  		return retcode;
>>  	entry->bound = dev->agp->base + (page << PAGE_SHIFT);
>> -	DRM_DEBUG("base = 0x%lx entry->bound = 0x%lx\n",
>> -		  dev->agp->base, entry->bound);
>> +	drm_dbg_core(dev, "base = 0x%lx entry->bound = 0x%lx\n",
>> +		     dev->agp->base, entry->bound);
>>  	return 0;
>>  }
>>  EXPORT_SYMBOL(drm_agp_bind);
>> diff --git a/drivers/gpu/drm/drm_atomic.c b/drivers/gpu/drm/drm_atomic.c
>> index 14aeaf736321..8494b1c29bf0 100644
>> --- a/drivers/gpu/drm/drm_atomic.c
>> +++ b/drivers/gpu/drm/drm_atomic.c
>> @@ -99,7 +99,7 @@ drm_atomic_state_init(struct drm_device *dev, struct drm_atomic_state *state)
>>  
>>  	state->dev = dev;
>>  
>> -	DRM_DEBUG_ATOMIC("Allocated atomic state %p\n", state);
>> +	drm_dbg_atomic(dev, "Allocated atomic state %p\n", state);
>>  
>>  	return 0;
>>  fail:
>> @@ -150,7 +150,7 @@ void drm_atomic_state_default_clear(struct drm_atomic_state *state)
>>  	struct drm_mode_config *config = &dev->mode_config;
>>  	int i;
>>  
>> -	DRM_DEBUG_ATOMIC("Clearing atomic state %p\n", state);
>> +	drm_dbg_atomic(dev, "Clearing atomic state %p\n", state);
>>  
>>  	for (i = 0; i < state->num_connector; i++) {
>>  		struct drm_connector *connector = state->connectors[i].ptr;
>> @@ -256,11 +256,12 @@ EXPORT_SYMBOL(drm_atomic_state_clear);
>>  void __drm_atomic_state_free(struct kref *ref)
>>  {
>>  	struct drm_atomic_state *state = container_of(ref, typeof(*state), ref);
>> -	struct drm_mode_config *config = &state->dev->mode_config;
>> +	struct drm_device *dev = state->dev;
>> +	struct drm_mode_config *config = &dev->mode_config;
>>  
>>  	drm_atomic_state_clear(state);
>>  
>> -	DRM_DEBUG_ATOMIC("Freeing atomic state %p\n", state);
>> +	drm_dbg_atomic(dev, "Freeing atomic state %p\n", state);
>>  
>>  	if (config->funcs->atomic_state_free) {
>>  		config->funcs->atomic_state_free(state);
>> @@ -290,8 +291,9 @@ struct drm_crtc_state *
>>  drm_atomic_get_crtc_state(struct drm_atomic_state *state,
>>  			  struct drm_crtc *crtc)
>>  {
>> -	int ret, index = drm_crtc_index(crtc);
>> +	struct drm_device *dev = state->dev;
>>  	struct drm_crtc_state *crtc_state;
>> +	int ret, index = drm_crtc_index(crtc);
>>  
>>  	WARN_ON(!state->acquire_ctx);
>>  
>> @@ -313,8 +315,8 @@ drm_atomic_get_crtc_state(struct drm_atomic_state *state,
>>  	state->crtcs[index].ptr = crtc;
>>  	crtc_state->state = state;
>>  
>> -	DRM_DEBUG_ATOMIC("Added [CRTC:%d:%s] %p state to %p\n",
>> -			 crtc->base.id, crtc->name, crtc_state, state);
>> +	drm_dbg_atomic(dev, "Added [CRTC:%d:%s] %p state to %p\n",
>> +		       crtc->base.id, crtc->name, crtc_state, state);
>>  
>>  	return crtc_state;
>>  }
>> @@ -324,6 +326,7 @@ static int drm_atomic_crtc_check(const struct drm_crtc_state *old_crtc_state,
>>  				 const struct drm_crtc_state *new_crtc_state)
>>  {
>>  	struct drm_crtc *crtc = new_crtc_state->crtc;
>> +	struct drm_device *dev = crtc->dev;
>>  
>>  	/* NOTE: we explicitly don't enforce constraints such as primary
>>  	 * layer covering entire screen, since that is something we want
>> @@ -334,25 +337,25 @@ static int drm_atomic_crtc_check(const struct drm_crtc_state *old_crtc_state,
>>  	 */
>>  
>>  	if (new_crtc_state->active && !new_crtc_state->enable) {
>> -		DRM_DEBUG_ATOMIC("[CRTC:%d:%s] active without enabled\n",
>> -				 crtc->base.id, crtc->name);
>> +		drm_dbg_atomic(dev, "[CRTC:%d:%s] active without enabled\n",
>> +			       crtc->base.id, crtc->name);
>
> Can we add a new dedicated print level for these atomic check error msg,
> In practice we more care about the atomic check errors, it is annoy to
> pick it out from (so many) DRM_DEBUG_ATOMIC() msgs.

Please let's try to converge on the patches at hand instead of diverging
to things that are unrelated to what this patch series tries to achieve.


BR,
Jani.

>
> Thanks
> James
>
>>  		return -EINVAL;
>>  	}
>>  
>>  	/* The state->enable vs. state->mode_blob checks can be WARN_ON,
>>  	 * as this is a kernel-internal detail that userspace should never
>>  	 * be able to trigger. */
>> -	if (drm_core_check_feature(crtc->dev, DRIVER_ATOMIC) &&
>> +	if (drm_core_check_feature(dev, DRIVER_ATOMIC) &&
>>  	    WARN_ON(new_crtc_state->enable && !new_crtc_state->mode_blob)) {
>> -		DRM_DEBUG_ATOMIC("[CRTC:%d:%s] enabled without mode blob\n",
>> -				 crtc->base.id, crtc->name);
>> +		drm_dbg_atomic(dev, "[CRTC:%d:%s] enabled without mode blob\n",
>> +			       crtc->base.id, crtc->name);
>>  		return -EINVAL;
>>  	}
>>  
>> -	if (drm_core_check_feature(crtc->dev, DRIVER_ATOMIC) &&
>> +	if (drm_core_check_feature(dev, DRIVER_ATOMIC) &&
>>  	    WARN_ON(!new_crtc_state->enable && new_crtc_state->mode_blob)) {
>> -		DRM_DEBUG_ATOMIC("[CRTC:%d:%s] disabled with mode blob\n",
>> -				 crtc->base.id, crtc->name);
>> +		drm_dbg_atomic(dev, "[CRTC:%d:%s] disabled with mode blob\n",
>> +			       crtc->base.id, crtc->name);
>>  		return -EINVAL;
>>  	}
>>  
>> @@ -368,8 +371,8 @@ static int drm_atomic_crtc_check(const struct drm_crtc_state *old_crtc_state,
>>  	 */
>>  	if (new_crtc_state->event &&
>>  	    !new_crtc_state->active && !old_crtc_state->active) {
>> -		DRM_DEBUG_ATOMIC("[CRTC:%d:%s] requesting event but off\n",
>> -				 crtc->base.id, crtc->name);
>> +		drm_dbg_atomic(dev, "[CRTC:%d:%s] requesting event but off\n",
>> +			       crtc->base.id, crtc->name);
>>  		return -EINVAL;
>>  	}
>>  
>> @@ -402,6 +405,7 @@ static void drm_atomic_crtc_print_state(struct drm_printer *p,
>>  static int drm_atomic_connector_check(struct drm_connector *connector,
>>  		struct drm_connector_state *state)
>>  {
>> +	struct drm_device *dev = connector->dev;
>>  	struct drm_crtc_state *crtc_state;
>>  	struct drm_writeback_job *writeback_job = state->writeback_job;
>>  	const struct drm_display_info *info = &connector->display_info;
>> @@ -414,8 +418,8 @@ static int drm_atomic_connector_check(struct drm_connector *connector,
>>  		return 0;
>>  
>>  	if (writeback_job->fb && !state->crtc) {
>> -		DRM_DEBUG_ATOMIC("[CONNECTOR:%d:%s] framebuffer without CRTC\n",
>> -				 connector->base.id, connector->name);
>> +		drm_dbg_atomic(dev, "[CONNECTOR:%d:%s] framebuffer without CRTC\n",
>> +			       connector->base.id, connector->name);
>>  		return -EINVAL;
>>  	}
>>  
>> @@ -424,16 +428,16 @@ static int drm_atomic_connector_check(struct drm_connector *connector,
>>  								state->crtc);
>>  
>>  	if (writeback_job->fb && !crtc_state->active) {
>> -		DRM_DEBUG_ATOMIC("[CONNECTOR:%d:%s] has framebuffer, but [CRTC:%d] is off\n",
>> -				 connector->base.id, connector->name,
>> -				 state->crtc->base.id);
>> +		drm_dbg_atomic(dev, "[CONNECTOR:%d:%s] has framebuffer, but [CRTC:%d] is off\n",
>> +			       connector->base.id, connector->name,
>> +			       state->crtc->base.id);
>>  		return -EINVAL;
>>  	}
>>  
>>  	if (!writeback_job->fb) {
>>  		if (writeback_job->out_fence) {
>> -			DRM_DEBUG_ATOMIC("[CONNECTOR:%d:%s] requesting out-fence without framebuffer\n",
>> -					 connector->base.id, connector->name);
>> +			drm_dbg_atomic(dev, "[CONNECTOR:%d:%s] requesting out-fence without framebuffer\n",
>> +				       connector->base.id, connector->name);
>>  			return -EINVAL;
>>  		}
>>  
>> @@ -463,8 +467,9 @@ struct drm_plane_state *
>>  drm_atomic_get_plane_state(struct drm_atomic_state *state,
>>  			  struct drm_plane *plane)
>>  {
>> -	int ret, index = drm_plane_index(plane);
>> +	struct drm_device *dev = state->dev;
>>  	struct drm_plane_state *plane_state;
>> +	int ret, index = drm_plane_index(plane);
>>  
>>  	WARN_ON(!state->acquire_ctx);
>>  
>> @@ -491,8 +496,8 @@ drm_atomic_get_plane_state(struct drm_atomic_state *state,
>>  	state->planes[index].new_state = plane_state;
>>  	plane_state->state = state;
>>  
>> -	DRM_DEBUG_ATOMIC("Added [PLANE:%d:%s] %p state to %p\n",
>> -			 plane->base.id, plane->name, plane_state, state);
>> +	drm_dbg_atomic(dev, "Added [PLANE:%d:%s] %p state to %p\n",
>> +		       plane->base.id, plane->name, plane_state, state);
>>  
>>  	if (plane_state->crtc) {
>>  		struct drm_crtc_state *crtc_state;
>> @@ -539,6 +544,7 @@ static int drm_atomic_plane_check(const struct drm_plane_state *old_plane_state,
>>  				  const struct drm_plane_state *new_plane_state)
>>  {
>>  	struct drm_plane *plane = new_plane_state->plane;
>> +	struct drm_device *dev = plane->dev;
>>  	struct drm_crtc *crtc = new_plane_state->crtc;
>>  	const struct drm_framebuffer *fb = new_plane_state->fb;
>>  	unsigned int fb_width, fb_height;
>> @@ -548,12 +554,12 @@ static int drm_atomic_plane_check(const struct drm_plane_state *old_plane_state,
>>  
>>  	/* either *both* CRTC and FB must be set, or neither */
>>  	if (crtc && !fb) {
>> -		DRM_DEBUG_ATOMIC("[PLANE:%d:%s] CRTC set but no FB\n",
>> -				 plane->base.id, plane->name);
>> +		drm_dbg_atomic(dev, "[PLANE:%d:%s] CRTC set but no FB\n",
>> +			       plane->base.id, plane->name);
>>  		return -EINVAL;
>>  	} else if (fb && !crtc) {
>> -		DRM_DEBUG_ATOMIC("[PLANE:%d:%s] FB set but no CRTC\n",
>> -				 plane->base.id, plane->name);
>> +		drm_dbg_atomic(dev, "[PLANE:%d:%s] FB set but no CRTC\n",
>> +			       plane->base.id, plane->name);
>>  		return -EINVAL;
>>  	}
>>  
>> @@ -563,9 +569,9 @@ static int drm_atomic_plane_check(const struct drm_plane_state *old_plane_state,
>>  
>>  	/* Check whether this plane is usable on this CRTC */
>>  	if (!(plane->possible_crtcs & drm_crtc_mask(crtc))) {
>> -		DRM_DEBUG_ATOMIC("Invalid [CRTC:%d:%s] for [PLANE:%d:%s]\n",
>> -				 crtc->base.id, crtc->name,
>> -				 plane->base.id, plane->name);
>> +		drm_dbg_atomic(dev, "Invalid [CRTC:%d:%s] for [PLANE:%d:%s]\n",
>> +			       crtc->base.id, crtc->name,
>> +			       plane->base.id, plane->name);
>>  		return -EINVAL;
>>  	}
>>  
>> @@ -574,11 +580,11 @@ static int drm_atomic_plane_check(const struct drm_plane_state *old_plane_state,
>>  					   fb->modifier);
>>  	if (ret) {
>>  		struct drm_format_name_buf format_name;
>> -		DRM_DEBUG_ATOMIC("[PLANE:%d:%s] invalid pixel format %s, modifier 0x%llx\n",
>> -				 plane->base.id, plane->name,
>> -				 drm_get_format_name(fb->format->format,
>> -						     &format_name),
>> -				 fb->modifier);
>> +		drm_dbg_atomic(dev, "[PLANE:%d:%s] invalid pixel format %s, modifier 0x%llx\n",
>> +			       plane->base.id, plane->name,
>> +			       drm_get_format_name(fb->format->format,
>> +						   &format_name),
>> +			       fb->modifier);
>>  		return ret;
>>  	}
>>  
>> @@ -587,10 +593,10 @@ static int drm_atomic_plane_check(const struct drm_plane_state *old_plane_state,
>>  	    new_plane_state->crtc_x > INT_MAX - (int32_t) new_plane_state->crtc_w ||
>>  	    new_plane_state->crtc_h > INT_MAX ||
>>  	    new_plane_state->crtc_y > INT_MAX - (int32_t) new_plane_state->crtc_h) {
>> -		DRM_DEBUG_ATOMIC("[PLANE:%d:%s] invalid CRTC coordinates %ux%u+%d+%d\n",
>> -				 plane->base.id, plane->name,
>> -				 new_plane_state->crtc_w, new_plane_state->crtc_h,
>> -				 new_plane_state->crtc_x, new_plane_state->crtc_y);
>> +		drm_dbg_atomic(dev, "[PLANE:%d:%s] invalid CRTC coordinates %ux%u+%d+%d\n",
>> +			       plane->base.id, plane->name,
>> +			       new_plane_state->crtc_w, new_plane_state->crtc_h,
>> +			       new_plane_state->crtc_x, new_plane_state->crtc_y);
>>  		return -ERANGE;
>>  	}
>>  
>> @@ -602,18 +608,18 @@ static int drm_atomic_plane_check(const struct drm_plane_state *old_plane_state,
>>  	    new_plane_state->src_x > fb_width - new_plane_state->src_w ||
>>  	    new_plane_state->src_h > fb_height ||
>>  	    new_plane_state->src_y > fb_height - new_plane_state->src_h) {
>> -		DRM_DEBUG_ATOMIC("[PLANE:%d:%s] invalid source coordinates "
>> -				 "%u.%06ux%u.%06u+%u.%06u+%u.%06u (fb %ux%u)\n",
>> -				 plane->base.id, plane->name,
>> -				 new_plane_state->src_w >> 16,
>> -				 ((new_plane_state->src_w & 0xffff) * 15625) >> 10,
>> -				 new_plane_state->src_h >> 16,
>> -				 ((new_plane_state->src_h & 0xffff) * 15625) >> 10,
>> -				 new_plane_state->src_x >> 16,
>> -				 ((new_plane_state->src_x & 0xffff) * 15625) >> 10,
>> -				 new_plane_state->src_y >> 16,
>> -				 ((new_plane_state->src_y & 0xffff) * 15625) >> 10,
>> -				 fb->width, fb->height);
>> +		drm_dbg_atomic(dev, "[PLANE:%d:%s] invalid source coordinates "
>> +			       "%u.%06ux%u.%06u+%u.%06u+%u.%06u (fb %ux%u)\n",
>> +			       plane->base.id, plane->name,
>> +			       new_plane_state->src_w >> 16,
>> +			       ((new_plane_state->src_w & 0xffff) * 15625) >> 10,
>> +			       new_plane_state->src_h >> 16,
>> +			       ((new_plane_state->src_h & 0xffff) * 15625) >> 10,
>> +			       new_plane_state->src_x >> 16,
>> +			       ((new_plane_state->src_x & 0xffff) * 15625) >> 10,
>> +			       new_plane_state->src_y >> 16,
>> +			       ((new_plane_state->src_y & 0xffff) * 15625) >> 10,
>> +			       fb->width, fb->height);
>>  		return -ENOSPC;
>>  	}
>>  
>> @@ -628,9 +634,9 @@ static int drm_atomic_plane_check(const struct drm_plane_state *old_plane_state,
>>  		    clips->y1 < 0 ||
>>  		    clips->x2 > fb_width ||
>>  		    clips->y2 > fb_height) {
>> -			DRM_DEBUG_ATOMIC("[PLANE:%d:%s] invalid damage clip %d %d %d %d\n",
>> -					 plane->base.id, plane->name, clips->x1,
>> -					 clips->y1, clips->x2, clips->y2);
>> +			drm_dbg_atomic(dev, "[PLANE:%d:%s] invalid damage clip %d %d %d %d\n",
>> +				       plane->base.id, plane->name, clips->x1,
>> +				       clips->y1, clips->x2, clips->y2);
>>  			return -EINVAL;
>>  		}
>>  		clips++;
>> @@ -638,8 +644,8 @@ static int drm_atomic_plane_check(const struct drm_plane_state *old_plane_state,
>>  	}
>>  
>>  	if (plane_switching_crtc(old_plane_state, new_plane_state)) {
>> -		DRM_DEBUG_ATOMIC("[PLANE:%d:%s] switching CRTC directly\n",
>> -				 plane->base.id, plane->name);
>> +		drm_dbg_atomic(dev, "[PLANE:%d:%s] switching CRTC directly\n",
>> +			       plane->base.id, plane->name);
>>  		return -EINVAL;
>>  	}
>>  
>> @@ -766,6 +772,7 @@ struct drm_private_state *
>>  drm_atomic_get_private_obj_state(struct drm_atomic_state *state,
>>  				 struct drm_private_obj *obj)
>>  {
>> +	struct drm_device *dev = state->dev;
>>  	int index, num_objs, i, ret;
>>  	size_t size;
>>  	struct __drm_private_objs_state *arr;
>> @@ -801,8 +808,8 @@ drm_atomic_get_private_obj_state(struct drm_atomic_state *state,
>>  
>>  	state->num_private_objs = num_objs;
>>  
>> -	DRM_DEBUG_ATOMIC("Added new private object %p state %p to %p\n",
>> -			 obj, obj_state, state);
>> +	drm_dbg_atomic(dev, "Added new private object %p state %p to %p\n",
>> +		       obj, obj_state, state);
>>  
>>  	return obj_state;
>>  }
>> @@ -940,6 +947,7 @@ struct drm_connector_state *
>>  drm_atomic_get_connector_state(struct drm_atomic_state *state,
>>  			  struct drm_connector *connector)
>>  {
>> +	struct drm_device *dev = state->dev;
>>  	int ret, index;
>>  	struct drm_mode_config *config = &connector->dev->mode_config;
>>  	struct drm_connector_state *connector_state;
>> @@ -981,9 +989,9 @@ drm_atomic_get_connector_state(struct drm_atomic_state *state,
>>  	state->connectors[index].ptr = connector;
>>  	connector_state->state = state;
>>  
>> -	DRM_DEBUG_ATOMIC("Added [CONNECTOR:%d:%s] %p state to %p\n",
>> -			 connector->base.id, connector->name,
>> -			 connector_state, state);
>> +	drm_dbg_atomic(dev, "Added [CONNECTOR:%d:%s] %p state to %p\n",
>> +		       connector->base.id, connector->name,
>> +		       connector_state, state);
>>  
>>  	if (connector_state->crtc) {
>>  		struct drm_crtc_state *crtc_state;
>> @@ -1036,7 +1044,8 @@ int
>>  drm_atomic_add_affected_connectors(struct drm_atomic_state *state,
>>  				   struct drm_crtc *crtc)
>>  {
>> -	struct drm_mode_config *config = &state->dev->mode_config;
>> +	struct drm_device *dev = state->dev;
>> +	struct drm_mode_config *config = &dev->mode_config;
>>  	struct drm_connector *connector;
>>  	struct drm_connector_state *conn_state;
>>  	struct drm_connector_list_iter conn_iter;
>> @@ -1051,8 +1060,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:%s] to %p\n",
>> -			 crtc->base.id, crtc->name, state);
>> +	drm_dbg_atomic(dev, "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
>> @@ -1099,14 +1108,15 @@ int
>>  drm_atomic_add_affected_planes(struct drm_atomic_state *state,
>>  			       struct drm_crtc *crtc)
>>  {
>> +	struct drm_device *dev = state->dev;
>>  	const struct drm_crtc_state *old_crtc_state =
>>  		drm_atomic_get_old_crtc_state(state, crtc);
>>  	struct drm_plane *plane;
>>  
>>  	WARN_ON(!drm_atomic_get_new_crtc_state(state, crtc));
>>  
>> -	DRM_DEBUG_ATOMIC("Adding all current planes for [CRTC:%d:%s] to %p\n",
>> -			 crtc->base.id, crtc->name, state);
>> +	drm_dbg_atomic(dev, "Adding all current planes for [CRTC:%d:%s] to %p\n",
>> +		       crtc->base.id, crtc->name, state);
>>  
>>  	drm_for_each_plane_mask(plane, state->dev, old_crtc_state->plane_mask) {
>>  		struct drm_plane_state *plane_state =
>> @@ -1144,13 +1154,13 @@ int drm_atomic_check_only(struct drm_atomic_state *state)
>>  	struct drm_connector_state *conn_state;
>>  	int i, ret = 0;
>>  
>> -	DRM_DEBUG_ATOMIC("checking %p\n", state);
>> +	drm_dbg_atomic(dev, "checking %p\n", state);
>>  
>>  	for_each_oldnew_plane_in_state(state, plane, old_plane_state, new_plane_state, i) {
>>  		ret = drm_atomic_plane_check(old_plane_state, new_plane_state);
>>  		if (ret) {
>> -			DRM_DEBUG_ATOMIC("[PLANE:%d:%s] atomic core check failed\n",
>> -					 plane->base.id, plane->name);
>> +			drm_dbg_atomic(dev, "[PLANE:%d:%s] atomic core check failed\n",
>> +				       plane->base.id, plane->name);
>>  			return ret;
>>  		}
>>  	}
>> @@ -1158,8 +1168,8 @@ int drm_atomic_check_only(struct drm_atomic_state *state)
>>  	for_each_oldnew_crtc_in_state(state, crtc, old_crtc_state, new_crtc_state, i) {
>>  		ret = drm_atomic_crtc_check(old_crtc_state, new_crtc_state);
>>  		if (ret) {
>> -			DRM_DEBUG_ATOMIC("[CRTC:%d:%s] atomic core check failed\n",
>> -					 crtc->base.id, crtc->name);
>> +			drm_dbg_atomic(dev, "[CRTC:%d:%s] atomic core check failed\n",
>> +				       crtc->base.id, crtc->name);
>>  			return ret;
>>  		}
>>  	}
>> @@ -1167,8 +1177,8 @@ int drm_atomic_check_only(struct drm_atomic_state *state)
>>  	for_each_new_connector_in_state(state, conn, conn_state, i) {
>>  		ret = drm_atomic_connector_check(conn, conn_state);
>>  		if (ret) {
>> -			DRM_DEBUG_ATOMIC("[CONNECTOR:%d:%s] atomic core check failed\n",
>> -					 conn->base.id, conn->name);
>> +			drm_dbg_atomic(dev, "[CONNECTOR:%d:%s] atomic core check failed\n",
>> +				       conn->base.id, conn->name);
>>  			return ret;
>>  		}
>>  	}
>> @@ -1177,8 +1187,8 @@ int drm_atomic_check_only(struct drm_atomic_state *state)
>>  		ret = config->funcs->atomic_check(state->dev, state);
>>  
>>  		if (ret) {
>> -			DRM_DEBUG_ATOMIC("atomic driver check for %p failed: %d\n",
>> -					 state, ret);
>> +			drm_dbg_atomic(dev, "atomic driver check for %p failed: %d\n",
>> +				       state, ret);
>>  			return ret;
>>  		}
>>  	}
>> @@ -1186,8 +1196,8 @@ int drm_atomic_check_only(struct drm_atomic_state *state)
>>  	if (!state->allow_modeset) {
>>  		for_each_new_crtc_in_state(state, crtc, new_crtc_state, i) {
>>  			if (drm_atomic_crtc_needs_modeset(new_crtc_state)) {
>> -				DRM_DEBUG_ATOMIC("[CRTC:%d:%s] requires full modeset\n",
>> -						 crtc->base.id, crtc->name);
>> +				drm_dbg_atomic(dev, "[CRTC:%d:%s] requires full modeset\n",
>> +					       crtc->base.id, crtc->name);
>>  				return -EINVAL;
>>  			}
>>  		}
>> @@ -1213,14 +1223,15 @@ EXPORT_SYMBOL(drm_atomic_check_only);
>>   */
>>  int drm_atomic_commit(struct drm_atomic_state *state)
>>  {
>> -	struct drm_mode_config *config = &state->dev->mode_config;
>> +	struct drm_device *dev = state->dev;
>> +	struct drm_mode_config *config = &dev->mode_config;
>>  	int ret;
>>  
>>  	ret = drm_atomic_check_only(state);
>>  	if (ret)
>>  		return ret;
>>  
>> -	DRM_DEBUG_ATOMIC("committing %p\n", state);
>> +	drm_dbg_atomic(dev, "committing %p\n", state);
>>  
>>  	return config->funcs->atomic_commit(state->dev, state, false);
>>  }
>> @@ -1242,14 +1253,15 @@ EXPORT_SYMBOL(drm_atomic_commit);
>>   */
>>  int drm_atomic_nonblocking_commit(struct drm_atomic_state *state)
>>  {
>> -	struct drm_mode_config *config = &state->dev->mode_config;
>> +	struct drm_device *dev = state->dev;
>> +	struct drm_mode_config *config = &dev->mode_config;
>>  	int ret;
>>  
>>  	ret = drm_atomic_check_only(state);
>>  	if (ret)
>>  		return ret;
>>  
>> -	DRM_DEBUG_ATOMIC("committing %p nonblocking\n", state);
>> +	drm_dbg_atomic(dev, "committing %p nonblocking\n", state);
>>  
>>  	return config->funcs->atomic_commit(state->dev, state, true);
>>  }
>> @@ -1425,7 +1437,8 @@ EXPORT_SYMBOL(__drm_atomic_helper_set_config);
>>  
>>  void drm_atomic_print_state(const struct drm_atomic_state *state)
>>  {
>> -	struct drm_printer p = drm_info_printer(state->dev->dev);
>> +	struct drm_device *dev = state->dev;
>> +	struct drm_printer p = drm_info_printer(dev->dev);
>>  	struct drm_plane *plane;
>>  	struct drm_plane_state *plane_state;
>>  	struct drm_crtc *crtc;
>> @@ -1434,7 +1447,7 @@ void drm_atomic_print_state(const struct drm_atomic_state *state)
>>  	struct drm_connector_state *connector_state;
>>  	int i;
>>  
>> -	DRM_DEBUG_ATOMIC("checking %p\n", state);
>> +	drm_dbg_atomic(dev, "checking %p\n", state);
>>  
>>  	for_each_new_plane_in_state(state, plane, plane_state, i)
>>  		drm_atomic_plane_print_state(&p, plane_state);

-- 
Jani Nikula, Intel Open Source Graphics Center
_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx

^ permalink raw reply	[flat|nested] 53+ messages in thread

* Re: [PATCH 1/8] drm/print: introduce new struct drm_device based logging macros
  2019-12-10 12:30 ` [Intel-gfx] " Jani Nikula
@ 2019-12-12 21:53   ` Sam Ravnborg
  -1 siblings, 0 replies; 53+ messages in thread
From: Sam Ravnborg @ 2019-12-12 21:53 UTC (permalink / raw)
  To: Jani Nikula; +Cc: intel-gfx, Sean Paul, dri-devel, Rodrigo Vivi

Hi Jani.

On Tue, Dec 10, 2019 at 02:30:43PM +0200, Jani Nikula wrote:
> Add new struct drm_device based logging macros modeled after the core
> kernel device based logging macros. These would be preferred over the
> drm printk and struct device based macros in drm code, where possible.
> 
> We have existing drm specific struct device based logging functions, but
> they are too verbose to use for two main reasons:
> 
>  * The names are unnecessarily long, for example DRM_DEV_DEBUG_KMS().
> 
>  * The use of struct device over struct drm_device is too generic for
>    most users, leading to an extra dereference.
> 
> For example:
> 
> 	DRM_DEV_DEBUG_KMS(drm->dev, "Hello, world\n");
> 
> vs.
> 
> 	drm_dbg_kms(drm, "Hello, world\n");
> 
> It's a matter of taste, but the SHOUTING UPPERCASE has been argued to be
> less readable than lowercase.
> 
> Some names are changed from old DRM names to be based on the core kernel
> logging functions. For example, NOTE -> notice, ERROR -> err, DEBUG ->
> dbg.
> 
> Due to the conflation of DRM_DEBUG and DRM_DEBUG_DRIVER macro use
> (DRM_DEBUG is used widely in drivers though it's supposed to be a core
> debugging category), they are named as drm_dbg_core and drm_dbg,
> respectively.
> 
> The drm_err and _once/_ratelimited variants no longer include the
> function name in order to be able to use the core device based logging
> macros. Arguably this is not a significant change; error messages should
> not be so common to be only distinguishable by the function name.
> 
> Ratelimited debug logging macros are to be added later.
> 
> Cc: Sam Ravnborg <sam@ravnborg.org>
> Acked-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
> Reviewed-by: Rodrigo Vivi <rodrigo.vivi@intel.com>
> Acked-by: Sean Paul <sean@poorly.run>
> Signed-off-by: Jani Nikula <jani.nikula@intel.com>

To my sensitive eyes the lower case variants are much preferable.

As a follow-up it could be nice to clean up drm_print.h:
- Make it obvious that the old variants are deprecated
- Let the old variants use the new variants - to make it obvious they
  are obsolete wrappers.
- Add some intro that explains for newbies when to use what variant

And then add a todo item - so we can get some janitorials to help with the
conversion to the new varaints.


For logging we have three cases:
- We have a drm_device pointer - nicely covered by this patchset
- We have a device * - what do we do here?
- We have no pointers to device nor drm_device - what do we do here?

Would it be OK to consider drm variants for all the above - so we get
consistent prefix on logging?

Idea:

drm_<level>[_system] - example: drm_info(drm_device *, ..) or drm_info_core(drm_device *, ..)

drm_dev_<level>[_system] - example: drm_dev_info(device *, ..)

drm_pr_<level>[_system] - example: drm_pr_info(..)

level could be info, info_once, info_ratelimited and so on for dbg, err,
notice, warn

With the above I can see we can make a clean shift to drm based logging.
And we do not need to mix different ways to log stuf.

The preferred:
drm_info()
drm_dev_info()
drm_pr_info()

versus:
drm_info()
dev_info()
pr_info()

The patch is OK without the suggested change, but see this as
suggestions for improvements.
So patch as is has my:
Acked-by: Sam Ravnborg <sam@ravnborg.org>


	Sam


> 
> ---
> 
> With something like this, I think i915 could start migrating to
> drm_device based logging. I have a hard time convincing myself or anyone
> about migrating to the DRM_DEV_* variants.
> ---
>  include/drm/drm_print.h | 65 +++++++++++++++++++++++++++++++++++++++++
>  1 file changed, 65 insertions(+)
> 
> diff --git a/include/drm/drm_print.h b/include/drm/drm_print.h
> index 085a9685270c..8f99d389792d 100644
> --- a/include/drm/drm_print.h
> +++ b/include/drm/drm_print.h
> @@ -322,6 +322,8 @@ static inline bool drm_debug_enabled(enum drm_debug_category category)
>  
>  /*
>   * struct device based logging
> + *
> + * Prefer drm_device based logging over device or prink based logging.
>   */
>  
>  __printf(3, 4)
> @@ -417,8 +419,71 @@ void drm_dev_dbg(const struct device *dev, enum drm_debug_category category,
>  	_DRM_DEV_DEFINE_DEBUG_RATELIMITED(dev, DRM_UT_PRIME,		\
>  					  fmt, ##__VA_ARGS__)
>  
> +/*
> + * struct drm_device based logging
> + *
> + * Prefer drm_device based logging over device or prink based logging.
> + */
> +
> +/* Helper for struct drm_device based logging. */
> +#define __drm_printk(drm, level, type, fmt, ...)			\
> +	dev_##level##type((drm)->dev, "[drm] " fmt, ##__VA_ARGS__)
> +
> +
> +#define drm_info(drm, fmt, ...)					\
> +	__drm_printk((drm), info,, fmt, ##__VA_ARGS__)
> +
> +#define drm_notice(drm, fmt, ...)				\
> +	__drm_printk((drm), notice,, fmt, ##__VA_ARGS__)
> +
> +#define drm_warn(drm, fmt, ...)					\
> +	__drm_printk((drm), warn,, fmt, ##__VA_ARGS__)
> +
> +#define drm_err(drm, fmt, ...)					\
> +	__drm_printk((drm), err,, "*ERROR* " fmt, ##__VA_ARGS__)
> +
> +
> +#define drm_info_once(drm, fmt, ...)				\
> +	__drm_printk((drm), info, _once, fmt, ##__VA_ARGS__)
> +
> +#define drm_notice_once(drm, fmt, ...)				\
> +	__drm_printk((drm), notice, _once, fmt, ##__VA_ARGS__)
> +
> +#define drm_warn_once(drm, fmt, ...)				\
> +	__drm_printk((drm), warn, _once, fmt, ##__VA_ARGS__)
> +
> +#define drm_err_once(drm, fmt, ...)				\
> +	__drm_printk((drm), err, _once, "*ERROR* " fmt, ##__VA_ARGS__)
> +
> +
> +#define drm_err_ratelimited(drm, fmt, ...)				\
> +	__drm_printk((drm), err, _ratelimited, "*ERROR* " fmt, ##__VA_ARGS__)
> +
> +
> +#define drm_dbg_core(drm, fmt, ...)					\
> +	drm_dev_dbg((drm)->dev, DRM_UT_CORE, fmt, ##__VA_ARGS__)
> +#define drm_dbg(drm, fmt, ...)						\
> +	drm_dev_dbg((drm)->dev, DRM_UT_DRIVER, fmt, ##__VA_ARGS__)
> +#define drm_dbg_kms(drm, fmt, ...)					\
> +	drm_dev_dbg((drm)->dev, DRM_UT_KMS, fmt, ##__VA_ARGS__)
> +#define drm_dbg_prime(drm, fmt, ...)					\
> +	drm_dev_dbg((drm)->dev, DRM_UT_PRIME, fmt, ##__VA_ARGS__)
> +#define drm_dbg_atomic(drm, fmt, ...)					\
> +	drm_dev_dbg((drm)->dev, DRM_UT_ATOMIC, fmt, ##__VA_ARGS__)
> +#define drm_dbg_vbl(drm, fmt, ...)					\
> +	drm_dev_dbg((drm)->dev, DRM_UT_VBL, fmt, ##__VA_ARGS__)
> +#define drm_dbg_state(drm, fmt, ...)					\
> +	drm_dev_dbg((drm)->dev, DRM_UT_STATE, fmt, ##__VA_ARGS__)
> +#define drm_dbg_lease(drm, fmt, ...)					\
> +	drm_dev_dbg((drm)->dev, DRM_UT_LEASE, fmt, ##__VA_ARGS__)
> +#define drm_dbg_dp(drm, fmt, ...)					\
> +	drm_dev_dbg((drm)->dev, DRM_UT_DP, fmt, ##__VA_ARGS__)
> +
> +
>  /*
>   * printk based logging
> + *
> + * Prefer drm_device based logging over device or prink based logging.
>   */
>  
>  __printf(2, 3)
> -- 
> 2.20.1
_______________________________________________
dri-devel mailing list
dri-devel@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/dri-devel

^ permalink raw reply	[flat|nested] 53+ messages in thread

* Re: [Intel-gfx] [PATCH 1/8] drm/print: introduce new struct drm_device based logging macros
@ 2019-12-12 21:53   ` Sam Ravnborg
  0 siblings, 0 replies; 53+ messages in thread
From: Sam Ravnborg @ 2019-12-12 21:53 UTC (permalink / raw)
  To: Jani Nikula; +Cc: intel-gfx, dri-devel

Hi Jani.

On Tue, Dec 10, 2019 at 02:30:43PM +0200, Jani Nikula wrote:
> Add new struct drm_device based logging macros modeled after the core
> kernel device based logging macros. These would be preferred over the
> drm printk and struct device based macros in drm code, where possible.
> 
> We have existing drm specific struct device based logging functions, but
> they are too verbose to use for two main reasons:
> 
>  * The names are unnecessarily long, for example DRM_DEV_DEBUG_KMS().
> 
>  * The use of struct device over struct drm_device is too generic for
>    most users, leading to an extra dereference.
> 
> For example:
> 
> 	DRM_DEV_DEBUG_KMS(drm->dev, "Hello, world\n");
> 
> vs.
> 
> 	drm_dbg_kms(drm, "Hello, world\n");
> 
> It's a matter of taste, but the SHOUTING UPPERCASE has been argued to be
> less readable than lowercase.
> 
> Some names are changed from old DRM names to be based on the core kernel
> logging functions. For example, NOTE -> notice, ERROR -> err, DEBUG ->
> dbg.
> 
> Due to the conflation of DRM_DEBUG and DRM_DEBUG_DRIVER macro use
> (DRM_DEBUG is used widely in drivers though it's supposed to be a core
> debugging category), they are named as drm_dbg_core and drm_dbg,
> respectively.
> 
> The drm_err and _once/_ratelimited variants no longer include the
> function name in order to be able to use the core device based logging
> macros. Arguably this is not a significant change; error messages should
> not be so common to be only distinguishable by the function name.
> 
> Ratelimited debug logging macros are to be added later.
> 
> Cc: Sam Ravnborg <sam@ravnborg.org>
> Acked-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
> Reviewed-by: Rodrigo Vivi <rodrigo.vivi@intel.com>
> Acked-by: Sean Paul <sean@poorly.run>
> Signed-off-by: Jani Nikula <jani.nikula@intel.com>

To my sensitive eyes the lower case variants are much preferable.

As a follow-up it could be nice to clean up drm_print.h:
- Make it obvious that the old variants are deprecated
- Let the old variants use the new variants - to make it obvious they
  are obsolete wrappers.
- Add some intro that explains for newbies when to use what variant

And then add a todo item - so we can get some janitorials to help with the
conversion to the new varaints.


For logging we have three cases:
- We have a drm_device pointer - nicely covered by this patchset
- We have a device * - what do we do here?
- We have no pointers to device nor drm_device - what do we do here?

Would it be OK to consider drm variants for all the above - so we get
consistent prefix on logging?

Idea:

drm_<level>[_system] - example: drm_info(drm_device *, ..) or drm_info_core(drm_device *, ..)

drm_dev_<level>[_system] - example: drm_dev_info(device *, ..)

drm_pr_<level>[_system] - example: drm_pr_info(..)

level could be info, info_once, info_ratelimited and so on for dbg, err,
notice, warn

With the above I can see we can make a clean shift to drm based logging.
And we do not need to mix different ways to log stuf.

The preferred:
drm_info()
drm_dev_info()
drm_pr_info()

versus:
drm_info()
dev_info()
pr_info()

The patch is OK without the suggested change, but see this as
suggestions for improvements.
So patch as is has my:
Acked-by: Sam Ravnborg <sam@ravnborg.org>


	Sam


> 
> ---
> 
> With something like this, I think i915 could start migrating to
> drm_device based logging. I have a hard time convincing myself or anyone
> about migrating to the DRM_DEV_* variants.
> ---
>  include/drm/drm_print.h | 65 +++++++++++++++++++++++++++++++++++++++++
>  1 file changed, 65 insertions(+)
> 
> diff --git a/include/drm/drm_print.h b/include/drm/drm_print.h
> index 085a9685270c..8f99d389792d 100644
> --- a/include/drm/drm_print.h
> +++ b/include/drm/drm_print.h
> @@ -322,6 +322,8 @@ static inline bool drm_debug_enabled(enum drm_debug_category category)
>  
>  /*
>   * struct device based logging
> + *
> + * Prefer drm_device based logging over device or prink based logging.
>   */
>  
>  __printf(3, 4)
> @@ -417,8 +419,71 @@ void drm_dev_dbg(const struct device *dev, enum drm_debug_category category,
>  	_DRM_DEV_DEFINE_DEBUG_RATELIMITED(dev, DRM_UT_PRIME,		\
>  					  fmt, ##__VA_ARGS__)
>  
> +/*
> + * struct drm_device based logging
> + *
> + * Prefer drm_device based logging over device or prink based logging.
> + */
> +
> +/* Helper for struct drm_device based logging. */
> +#define __drm_printk(drm, level, type, fmt, ...)			\
> +	dev_##level##type((drm)->dev, "[drm] " fmt, ##__VA_ARGS__)
> +
> +
> +#define drm_info(drm, fmt, ...)					\
> +	__drm_printk((drm), info,, fmt, ##__VA_ARGS__)
> +
> +#define drm_notice(drm, fmt, ...)				\
> +	__drm_printk((drm), notice,, fmt, ##__VA_ARGS__)
> +
> +#define drm_warn(drm, fmt, ...)					\
> +	__drm_printk((drm), warn,, fmt, ##__VA_ARGS__)
> +
> +#define drm_err(drm, fmt, ...)					\
> +	__drm_printk((drm), err,, "*ERROR* " fmt, ##__VA_ARGS__)
> +
> +
> +#define drm_info_once(drm, fmt, ...)				\
> +	__drm_printk((drm), info, _once, fmt, ##__VA_ARGS__)
> +
> +#define drm_notice_once(drm, fmt, ...)				\
> +	__drm_printk((drm), notice, _once, fmt, ##__VA_ARGS__)
> +
> +#define drm_warn_once(drm, fmt, ...)				\
> +	__drm_printk((drm), warn, _once, fmt, ##__VA_ARGS__)
> +
> +#define drm_err_once(drm, fmt, ...)				\
> +	__drm_printk((drm), err, _once, "*ERROR* " fmt, ##__VA_ARGS__)
> +
> +
> +#define drm_err_ratelimited(drm, fmt, ...)				\
> +	__drm_printk((drm), err, _ratelimited, "*ERROR* " fmt, ##__VA_ARGS__)
> +
> +
> +#define drm_dbg_core(drm, fmt, ...)					\
> +	drm_dev_dbg((drm)->dev, DRM_UT_CORE, fmt, ##__VA_ARGS__)
> +#define drm_dbg(drm, fmt, ...)						\
> +	drm_dev_dbg((drm)->dev, DRM_UT_DRIVER, fmt, ##__VA_ARGS__)
> +#define drm_dbg_kms(drm, fmt, ...)					\
> +	drm_dev_dbg((drm)->dev, DRM_UT_KMS, fmt, ##__VA_ARGS__)
> +#define drm_dbg_prime(drm, fmt, ...)					\
> +	drm_dev_dbg((drm)->dev, DRM_UT_PRIME, fmt, ##__VA_ARGS__)
> +#define drm_dbg_atomic(drm, fmt, ...)					\
> +	drm_dev_dbg((drm)->dev, DRM_UT_ATOMIC, fmt, ##__VA_ARGS__)
> +#define drm_dbg_vbl(drm, fmt, ...)					\
> +	drm_dev_dbg((drm)->dev, DRM_UT_VBL, fmt, ##__VA_ARGS__)
> +#define drm_dbg_state(drm, fmt, ...)					\
> +	drm_dev_dbg((drm)->dev, DRM_UT_STATE, fmt, ##__VA_ARGS__)
> +#define drm_dbg_lease(drm, fmt, ...)					\
> +	drm_dev_dbg((drm)->dev, DRM_UT_LEASE, fmt, ##__VA_ARGS__)
> +#define drm_dbg_dp(drm, fmt, ...)					\
> +	drm_dev_dbg((drm)->dev, DRM_UT_DP, fmt, ##__VA_ARGS__)
> +
> +
>  /*
>   * printk based logging
> + *
> + * Prefer drm_device based logging over device or prink based logging.
>   */
>  
>  __printf(2, 3)
> -- 
> 2.20.1
_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx

^ permalink raw reply	[flat|nested] 53+ messages in thread

* [Intel-gfx] ✗ Fi.CI.CHECKPATCH: warning for series starting with [1/8] drm/print: introduce new struct drm_device based logging macros (rev2)
  2019-12-10 12:30 ` [Intel-gfx] " Jani Nikula
                   ` (11 preceding siblings ...)
  (?)
@ 2019-12-13 13:48 ` Patchwork
  -1 siblings, 0 replies; 53+ messages in thread
From: Patchwork @ 2019-12-13 13:48 UTC (permalink / raw)
  To: Jani Nikula; +Cc: intel-gfx

== Series Details ==

Series: series starting with [1/8] drm/print: introduce new struct drm_device based logging macros (rev2)
URL   : https://patchwork.freedesktop.org/series/70685/
State : warning

== Summary ==

$ dim checkpatch origin/drm-tip
d7ea30d4f862 drm/print: introduce new struct drm_device based logging macros
-:83: CHECK:LINE_SPACING: Please don't use multiple blank lines
#83: FILE: include/drm/drm_print.h:432:
+
+

-:85: ERROR:SPACING: space required after that ',' (ctx:VxO)
#85: FILE: include/drm/drm_print.h:434:
+	__drm_printk((drm), info,, fmt, ##__VA_ARGS__)
 	                        ^

-:88: ERROR:SPACING: space required after that ',' (ctx:VxO)
#88: FILE: include/drm/drm_print.h:437:
+	__drm_printk((drm), notice,, fmt, ##__VA_ARGS__)
 	                          ^

-:91: ERROR:SPACING: space required after that ',' (ctx:VxO)
#91: FILE: include/drm/drm_print.h:440:
+	__drm_printk((drm), warn,, fmt, ##__VA_ARGS__)
 	                        ^

-:94: ERROR:SPACING: space required after that ',' (ctx:VxO)
#94: FILE: include/drm/drm_print.h:443:
+	__drm_printk((drm), err,, "*ERROR* " fmt, ##__VA_ARGS__)
 	                       ^

-:96: CHECK:LINE_SPACING: Please don't use multiple blank lines
#96: FILE: include/drm/drm_print.h:445:
+
+

-:109: CHECK:LINE_SPACING: Please don't use multiple blank lines
#109: FILE: include/drm/drm_print.h:458:
+
+

-:113: CHECK:LINE_SPACING: Please don't use multiple blank lines
#113: FILE: include/drm/drm_print.h:462:
+
+

-:133: CHECK:LINE_SPACING: Please don't use multiple blank lines
#133: FILE: include/drm/drm_print.h:482:
+
+

total: 4 errors, 0 warnings, 5 checks, 79 lines checked
a0f600677870 drm/client: convert to drm device based logging
61971354700a drm/fb-helper: convert to drm device based logging
95ddafc5a263 drm/gem-fb-helper: convert to drm device based logging
3b7b57f4804e drm/mipi-dbi: convert to drm device based logging
524d75ac7bcf drm/atomic: convert to drm device based logging
24153faaf3f2 drm/i915/uc: convert to drm device based logging
7d8822d0bd70 drm/i915/wopcm: convert to drm device based logging

_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx

^ permalink raw reply	[flat|nested] 53+ messages in thread

* Re: [PATCH 1/8] drm/print: introduce new struct drm_device based logging macros
  2019-12-12 21:53   ` [Intel-gfx] " Sam Ravnborg
@ 2019-12-13 14:41     ` Jani Nikula
  -1 siblings, 0 replies; 53+ messages in thread
From: Jani Nikula @ 2019-12-13 14:41 UTC (permalink / raw)
  To: Sam Ravnborg; +Cc: intel-gfx, Sean Paul, dri-devel, Rodrigo Vivi

On Thu, 12 Dec 2019, Sam Ravnborg <sam@ravnborg.org> wrote:
> Hi Jani.
>
> On Tue, Dec 10, 2019 at 02:30:43PM +0200, Jani Nikula wrote:
>> Add new struct drm_device based logging macros modeled after the core
>> kernel device based logging macros. These would be preferred over the
>> drm printk and struct device based macros in drm code, where possible.
>> 
>> We have existing drm specific struct device based logging functions, but
>> they are too verbose to use for two main reasons:
>> 
>>  * The names are unnecessarily long, for example DRM_DEV_DEBUG_KMS().
>> 
>>  * The use of struct device over struct drm_device is too generic for
>>    most users, leading to an extra dereference.
>> 
>> For example:
>> 
>> 	DRM_DEV_DEBUG_KMS(drm->dev, "Hello, world\n");
>> 
>> vs.
>> 
>> 	drm_dbg_kms(drm, "Hello, world\n");
>> 
>> It's a matter of taste, but the SHOUTING UPPERCASE has been argued to be
>> less readable than lowercase.
>> 
>> Some names are changed from old DRM names to be based on the core kernel
>> logging functions. For example, NOTE -> notice, ERROR -> err, DEBUG ->
>> dbg.
>> 
>> Due to the conflation of DRM_DEBUG and DRM_DEBUG_DRIVER macro use
>> (DRM_DEBUG is used widely in drivers though it's supposed to be a core
>> debugging category), they are named as drm_dbg_core and drm_dbg,
>> respectively.
>> 
>> The drm_err and _once/_ratelimited variants no longer include the
>> function name in order to be able to use the core device based logging
>> macros. Arguably this is not a significant change; error messages should
>> not be so common to be only distinguishable by the function name.
>> 
>> Ratelimited debug logging macros are to be added later.
>> 
>> Cc: Sam Ravnborg <sam@ravnborg.org>
>> Acked-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
>> Reviewed-by: Rodrigo Vivi <rodrigo.vivi@intel.com>
>> Acked-by: Sean Paul <sean@poorly.run>
>> Signed-off-by: Jani Nikula <jani.nikula@intel.com>
>
> To my sensitive eyes the lower case variants are much preferable.
>
> As a follow-up it could be nice to clean up drm_print.h:
> - Make it obvious that the old variants are deprecated
> - Let the old variants use the new variants - to make it obvious they
>   are obsolete wrappers.
> - Add some intro that explains for newbies when to use what variant
>
> And then add a todo item - so we can get some janitorials to help with the
> conversion to the new varaints.
>
>
> For logging we have three cases:
> - We have a drm_device pointer - nicely covered by this patchset
> - We have a device * - what do we do here?
> - We have no pointers to device nor drm_device - what do we do here?
>
> Would it be OK to consider drm variants for all the above - so we get
> consistent prefix on logging?
>
> Idea:
>
> drm_<level>[_system] - example: drm_info(drm_device *, ..) or drm_info_core(drm_device *, ..)
>
> drm_dev_<level>[_system] - example: drm_dev_info(device *, ..)
>
> drm_pr_<level>[_system] - example: drm_pr_info(..)

The main concern I have here is that converting the last two will lead
to a lot of churn with no functional change. And instead of three sets
of functions, we'd actually have five, until all of it is converted.

Also it seems to me adding the last two will validate their widespread
use, while personally I think the focus should be on transforming to use
the struct drm_device based functions introduced in this series.

Maybe we should wait until we have enough code converted to the struct
drm_device based functions, so that the rest could perhaps be converted
en masse using cocci?

Other than that, I could easily get behind your proposal.

> level could be info, info_once, info_ratelimited and so on for dbg, err,
> notice, warn
>
> With the above I can see we can make a clean shift to drm based logging.
> And we do not need to mix different ways to log stuf.
>
> The preferred:
> drm_info()
> drm_dev_info()
> drm_pr_info()
>
> versus:
> drm_info()
> dev_info()
> pr_info()
>
> The patch is OK without the suggested change, but see this as
> suggestions for improvements.
> So patch as is has my:
> Acked-by: Sam Ravnborg <sam@ravnborg.org>

Thanks, appreciated!

Still, while I'd really just like to merge this now and get done with
it, I think I'd rather have more acks behind this (at the risk of
soliciting bikeshedding...) so nobody feels like I'm sneaking this in.

BR,
Jani.


>
>
> 	Sam
>
>
>> 
>> ---
>> 
>> With something like this, I think i915 could start migrating to
>> drm_device based logging. I have a hard time convincing myself or anyone
>> about migrating to the DRM_DEV_* variants.
>> ---
>>  include/drm/drm_print.h | 65 +++++++++++++++++++++++++++++++++++++++++
>>  1 file changed, 65 insertions(+)
>> 
>> diff --git a/include/drm/drm_print.h b/include/drm/drm_print.h
>> index 085a9685270c..8f99d389792d 100644
>> --- a/include/drm/drm_print.h
>> +++ b/include/drm/drm_print.h
>> @@ -322,6 +322,8 @@ static inline bool drm_debug_enabled(enum drm_debug_category category)
>>  
>>  /*
>>   * struct device based logging
>> + *
>> + * Prefer drm_device based logging over device or prink based logging.
>>   */
>>  
>>  __printf(3, 4)
>> @@ -417,8 +419,71 @@ void drm_dev_dbg(const struct device *dev, enum drm_debug_category category,
>>  	_DRM_DEV_DEFINE_DEBUG_RATELIMITED(dev, DRM_UT_PRIME,		\
>>  					  fmt, ##__VA_ARGS__)
>>  
>> +/*
>> + * struct drm_device based logging
>> + *
>> + * Prefer drm_device based logging over device or prink based logging.
>> + */
>> +
>> +/* Helper for struct drm_device based logging. */
>> +#define __drm_printk(drm, level, type, fmt, ...)			\
>> +	dev_##level##type((drm)->dev, "[drm] " fmt, ##__VA_ARGS__)
>> +
>> +
>> +#define drm_info(drm, fmt, ...)					\
>> +	__drm_printk((drm), info,, fmt, ##__VA_ARGS__)
>> +
>> +#define drm_notice(drm, fmt, ...)				\
>> +	__drm_printk((drm), notice,, fmt, ##__VA_ARGS__)
>> +
>> +#define drm_warn(drm, fmt, ...)					\
>> +	__drm_printk((drm), warn,, fmt, ##__VA_ARGS__)
>> +
>> +#define drm_err(drm, fmt, ...)					\
>> +	__drm_printk((drm), err,, "*ERROR* " fmt, ##__VA_ARGS__)
>> +
>> +
>> +#define drm_info_once(drm, fmt, ...)				\
>> +	__drm_printk((drm), info, _once, fmt, ##__VA_ARGS__)
>> +
>> +#define drm_notice_once(drm, fmt, ...)				\
>> +	__drm_printk((drm), notice, _once, fmt, ##__VA_ARGS__)
>> +
>> +#define drm_warn_once(drm, fmt, ...)				\
>> +	__drm_printk((drm), warn, _once, fmt, ##__VA_ARGS__)
>> +
>> +#define drm_err_once(drm, fmt, ...)				\
>> +	__drm_printk((drm), err, _once, "*ERROR* " fmt, ##__VA_ARGS__)
>> +
>> +
>> +#define drm_err_ratelimited(drm, fmt, ...)				\
>> +	__drm_printk((drm), err, _ratelimited, "*ERROR* " fmt, ##__VA_ARGS__)
>> +
>> +
>> +#define drm_dbg_core(drm, fmt, ...)					\
>> +	drm_dev_dbg((drm)->dev, DRM_UT_CORE, fmt, ##__VA_ARGS__)
>> +#define drm_dbg(drm, fmt, ...)						\
>> +	drm_dev_dbg((drm)->dev, DRM_UT_DRIVER, fmt, ##__VA_ARGS__)
>> +#define drm_dbg_kms(drm, fmt, ...)					\
>> +	drm_dev_dbg((drm)->dev, DRM_UT_KMS, fmt, ##__VA_ARGS__)
>> +#define drm_dbg_prime(drm, fmt, ...)					\
>> +	drm_dev_dbg((drm)->dev, DRM_UT_PRIME, fmt, ##__VA_ARGS__)
>> +#define drm_dbg_atomic(drm, fmt, ...)					\
>> +	drm_dev_dbg((drm)->dev, DRM_UT_ATOMIC, fmt, ##__VA_ARGS__)
>> +#define drm_dbg_vbl(drm, fmt, ...)					\
>> +	drm_dev_dbg((drm)->dev, DRM_UT_VBL, fmt, ##__VA_ARGS__)
>> +#define drm_dbg_state(drm, fmt, ...)					\
>> +	drm_dev_dbg((drm)->dev, DRM_UT_STATE, fmt, ##__VA_ARGS__)
>> +#define drm_dbg_lease(drm, fmt, ...)					\
>> +	drm_dev_dbg((drm)->dev, DRM_UT_LEASE, fmt, ##__VA_ARGS__)
>> +#define drm_dbg_dp(drm, fmt, ...)					\
>> +	drm_dev_dbg((drm)->dev, DRM_UT_DP, fmt, ##__VA_ARGS__)
>> +
>> +
>>  /*
>>   * printk based logging
>> + *
>> + * Prefer drm_device based logging over device or prink based logging.
>>   */
>>  
>>  __printf(2, 3)
>> -- 
>> 2.20.1

-- 
Jani Nikula, Intel Open Source Graphics Center
_______________________________________________
dri-devel mailing list
dri-devel@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/dri-devel

^ permalink raw reply	[flat|nested] 53+ messages in thread

* Re: [Intel-gfx] [PATCH 1/8] drm/print: introduce new struct drm_device based logging macros
@ 2019-12-13 14:41     ` Jani Nikula
  0 siblings, 0 replies; 53+ messages in thread
From: Jani Nikula @ 2019-12-13 14:41 UTC (permalink / raw)
  To: Sam Ravnborg; +Cc: intel-gfx, dri-devel

On Thu, 12 Dec 2019, Sam Ravnborg <sam@ravnborg.org> wrote:
> Hi Jani.
>
> On Tue, Dec 10, 2019 at 02:30:43PM +0200, Jani Nikula wrote:
>> Add new struct drm_device based logging macros modeled after the core
>> kernel device based logging macros. These would be preferred over the
>> drm printk and struct device based macros in drm code, where possible.
>> 
>> We have existing drm specific struct device based logging functions, but
>> they are too verbose to use for two main reasons:
>> 
>>  * The names are unnecessarily long, for example DRM_DEV_DEBUG_KMS().
>> 
>>  * The use of struct device over struct drm_device is too generic for
>>    most users, leading to an extra dereference.
>> 
>> For example:
>> 
>> 	DRM_DEV_DEBUG_KMS(drm->dev, "Hello, world\n");
>> 
>> vs.
>> 
>> 	drm_dbg_kms(drm, "Hello, world\n");
>> 
>> It's a matter of taste, but the SHOUTING UPPERCASE has been argued to be
>> less readable than lowercase.
>> 
>> Some names are changed from old DRM names to be based on the core kernel
>> logging functions. For example, NOTE -> notice, ERROR -> err, DEBUG ->
>> dbg.
>> 
>> Due to the conflation of DRM_DEBUG and DRM_DEBUG_DRIVER macro use
>> (DRM_DEBUG is used widely in drivers though it's supposed to be a core
>> debugging category), they are named as drm_dbg_core and drm_dbg,
>> respectively.
>> 
>> The drm_err and _once/_ratelimited variants no longer include the
>> function name in order to be able to use the core device based logging
>> macros. Arguably this is not a significant change; error messages should
>> not be so common to be only distinguishable by the function name.
>> 
>> Ratelimited debug logging macros are to be added later.
>> 
>> Cc: Sam Ravnborg <sam@ravnborg.org>
>> Acked-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
>> Reviewed-by: Rodrigo Vivi <rodrigo.vivi@intel.com>
>> Acked-by: Sean Paul <sean@poorly.run>
>> Signed-off-by: Jani Nikula <jani.nikula@intel.com>
>
> To my sensitive eyes the lower case variants are much preferable.
>
> As a follow-up it could be nice to clean up drm_print.h:
> - Make it obvious that the old variants are deprecated
> - Let the old variants use the new variants - to make it obvious they
>   are obsolete wrappers.
> - Add some intro that explains for newbies when to use what variant
>
> And then add a todo item - so we can get some janitorials to help with the
> conversion to the new varaints.
>
>
> For logging we have three cases:
> - We have a drm_device pointer - nicely covered by this patchset
> - We have a device * - what do we do here?
> - We have no pointers to device nor drm_device - what do we do here?
>
> Would it be OK to consider drm variants for all the above - so we get
> consistent prefix on logging?
>
> Idea:
>
> drm_<level>[_system] - example: drm_info(drm_device *, ..) or drm_info_core(drm_device *, ..)
>
> drm_dev_<level>[_system] - example: drm_dev_info(device *, ..)
>
> drm_pr_<level>[_system] - example: drm_pr_info(..)

The main concern I have here is that converting the last two will lead
to a lot of churn with no functional change. And instead of three sets
of functions, we'd actually have five, until all of it is converted.

Also it seems to me adding the last two will validate their widespread
use, while personally I think the focus should be on transforming to use
the struct drm_device based functions introduced in this series.

Maybe we should wait until we have enough code converted to the struct
drm_device based functions, so that the rest could perhaps be converted
en masse using cocci?

Other than that, I could easily get behind your proposal.

> level could be info, info_once, info_ratelimited and so on for dbg, err,
> notice, warn
>
> With the above I can see we can make a clean shift to drm based logging.
> And we do not need to mix different ways to log stuf.
>
> The preferred:
> drm_info()
> drm_dev_info()
> drm_pr_info()
>
> versus:
> drm_info()
> dev_info()
> pr_info()
>
> The patch is OK without the suggested change, but see this as
> suggestions for improvements.
> So patch as is has my:
> Acked-by: Sam Ravnborg <sam@ravnborg.org>

Thanks, appreciated!

Still, while I'd really just like to merge this now and get done with
it, I think I'd rather have more acks behind this (at the risk of
soliciting bikeshedding...) so nobody feels like I'm sneaking this in.

BR,
Jani.


>
>
> 	Sam
>
>
>> 
>> ---
>> 
>> With something like this, I think i915 could start migrating to
>> drm_device based logging. I have a hard time convincing myself or anyone
>> about migrating to the DRM_DEV_* variants.
>> ---
>>  include/drm/drm_print.h | 65 +++++++++++++++++++++++++++++++++++++++++
>>  1 file changed, 65 insertions(+)
>> 
>> diff --git a/include/drm/drm_print.h b/include/drm/drm_print.h
>> index 085a9685270c..8f99d389792d 100644
>> --- a/include/drm/drm_print.h
>> +++ b/include/drm/drm_print.h
>> @@ -322,6 +322,8 @@ static inline bool drm_debug_enabled(enum drm_debug_category category)
>>  
>>  /*
>>   * struct device based logging
>> + *
>> + * Prefer drm_device based logging over device or prink based logging.
>>   */
>>  
>>  __printf(3, 4)
>> @@ -417,8 +419,71 @@ void drm_dev_dbg(const struct device *dev, enum drm_debug_category category,
>>  	_DRM_DEV_DEFINE_DEBUG_RATELIMITED(dev, DRM_UT_PRIME,		\
>>  					  fmt, ##__VA_ARGS__)
>>  
>> +/*
>> + * struct drm_device based logging
>> + *
>> + * Prefer drm_device based logging over device or prink based logging.
>> + */
>> +
>> +/* Helper for struct drm_device based logging. */
>> +#define __drm_printk(drm, level, type, fmt, ...)			\
>> +	dev_##level##type((drm)->dev, "[drm] " fmt, ##__VA_ARGS__)
>> +
>> +
>> +#define drm_info(drm, fmt, ...)					\
>> +	__drm_printk((drm), info,, fmt, ##__VA_ARGS__)
>> +
>> +#define drm_notice(drm, fmt, ...)				\
>> +	__drm_printk((drm), notice,, fmt, ##__VA_ARGS__)
>> +
>> +#define drm_warn(drm, fmt, ...)					\
>> +	__drm_printk((drm), warn,, fmt, ##__VA_ARGS__)
>> +
>> +#define drm_err(drm, fmt, ...)					\
>> +	__drm_printk((drm), err,, "*ERROR* " fmt, ##__VA_ARGS__)
>> +
>> +
>> +#define drm_info_once(drm, fmt, ...)				\
>> +	__drm_printk((drm), info, _once, fmt, ##__VA_ARGS__)
>> +
>> +#define drm_notice_once(drm, fmt, ...)				\
>> +	__drm_printk((drm), notice, _once, fmt, ##__VA_ARGS__)
>> +
>> +#define drm_warn_once(drm, fmt, ...)				\
>> +	__drm_printk((drm), warn, _once, fmt, ##__VA_ARGS__)
>> +
>> +#define drm_err_once(drm, fmt, ...)				\
>> +	__drm_printk((drm), err, _once, "*ERROR* " fmt, ##__VA_ARGS__)
>> +
>> +
>> +#define drm_err_ratelimited(drm, fmt, ...)				\
>> +	__drm_printk((drm), err, _ratelimited, "*ERROR* " fmt, ##__VA_ARGS__)
>> +
>> +
>> +#define drm_dbg_core(drm, fmt, ...)					\
>> +	drm_dev_dbg((drm)->dev, DRM_UT_CORE, fmt, ##__VA_ARGS__)
>> +#define drm_dbg(drm, fmt, ...)						\
>> +	drm_dev_dbg((drm)->dev, DRM_UT_DRIVER, fmt, ##__VA_ARGS__)
>> +#define drm_dbg_kms(drm, fmt, ...)					\
>> +	drm_dev_dbg((drm)->dev, DRM_UT_KMS, fmt, ##__VA_ARGS__)
>> +#define drm_dbg_prime(drm, fmt, ...)					\
>> +	drm_dev_dbg((drm)->dev, DRM_UT_PRIME, fmt, ##__VA_ARGS__)
>> +#define drm_dbg_atomic(drm, fmt, ...)					\
>> +	drm_dev_dbg((drm)->dev, DRM_UT_ATOMIC, fmt, ##__VA_ARGS__)
>> +#define drm_dbg_vbl(drm, fmt, ...)					\
>> +	drm_dev_dbg((drm)->dev, DRM_UT_VBL, fmt, ##__VA_ARGS__)
>> +#define drm_dbg_state(drm, fmt, ...)					\
>> +	drm_dev_dbg((drm)->dev, DRM_UT_STATE, fmt, ##__VA_ARGS__)
>> +#define drm_dbg_lease(drm, fmt, ...)					\
>> +	drm_dev_dbg((drm)->dev, DRM_UT_LEASE, fmt, ##__VA_ARGS__)
>> +#define drm_dbg_dp(drm, fmt, ...)					\
>> +	drm_dev_dbg((drm)->dev, DRM_UT_DP, fmt, ##__VA_ARGS__)
>> +
>> +
>>  /*
>>   * printk based logging
>> + *
>> + * Prefer drm_device based logging over device or prink based logging.
>>   */
>>  
>>  __printf(2, 3)
>> -- 
>> 2.20.1

-- 
Jani Nikula, Intel Open Source Graphics Center
_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx

^ permalink raw reply	[flat|nested] 53+ messages in thread

* [Intel-gfx] ✗ Fi.CI.BAT: failure for series starting with [1/8] drm/print: introduce new struct drm_device based logging macros (rev2)
  2019-12-10 12:30 ` [Intel-gfx] " Jani Nikula
                   ` (12 preceding siblings ...)
  (?)
@ 2019-12-13 15:01 ` Patchwork
  -1 siblings, 0 replies; 53+ messages in thread
From: Patchwork @ 2019-12-13 15:01 UTC (permalink / raw)
  To: Jani Nikula; +Cc: intel-gfx

== Series Details ==

Series: series starting with [1/8] drm/print: introduce new struct drm_device based logging macros (rev2)
URL   : https://patchwork.freedesktop.org/series/70685/
State : failure

== Summary ==

CI Bug Log - changes from CI_DRM_7558 -> Patchwork_15743
====================================================

Summary
-------

  **FAILURE**

  Serious unknown changes coming with Patchwork_15743 absolutely need to be
  verified manually.
  
  If you think the reported changes have nothing to do with the changes
  introduced in Patchwork_15743, please notify your bug team to allow them
  to document this new failure mode, which will reduce false positives in CI.

  External URL: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15743/index.html

Possible new issues
-------------------

  Here are the unknown changes that may have been introduced in Patchwork_15743:

### IGT changes ###

#### Possible regressions ####

  * igt@gem_ctx_create@basic-files:
    - fi-ivb-3770:        [PASS][1] -> [FAIL][2]
   [1]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7558/fi-ivb-3770/igt@gem_ctx_create@basic-files.html
   [2]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15743/fi-ivb-3770/igt@gem_ctx_create@basic-files.html

  
Known issues
------------

  Here are the changes found in Patchwork_15743 that come from known issues:

### IGT changes ###

#### Issues hit ####

  * igt@gem_close_race@basic-threads:
    - fi-byt-j1900:       [PASS][3] -> [TIMEOUT][4] ([i915#816])
   [3]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7558/fi-byt-j1900/igt@gem_close_race@basic-threads.html
   [4]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15743/fi-byt-j1900/igt@gem_close_race@basic-threads.html

  * igt@gem_exec_suspend@basic-s3:
    - fi-skl-6700k2:      [PASS][5] -> [INCOMPLETE][6] ([i915#69])
   [5]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7558/fi-skl-6700k2/igt@gem_exec_suspend@basic-s3.html
   [6]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15743/fi-skl-6700k2/igt@gem_exec_suspend@basic-s3.html

  
#### Possible fixes ####

  * igt@gem_ctx_create@basic-files:
    - {fi-tgl-guc}:       [INCOMPLETE][7] ([fdo#111735]) -> [PASS][8]
   [7]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7558/fi-tgl-guc/igt@gem_ctx_create@basic-files.html
   [8]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15743/fi-tgl-guc/igt@gem_ctx_create@basic-files.html

  * igt@i915_selftest@live_blt:
    - fi-ivb-3770:        [DMESG-FAIL][9] ([i915#725]) -> [PASS][10]
   [9]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7558/fi-ivb-3770/igt@i915_selftest@live_blt.html
   [10]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15743/fi-ivb-3770/igt@i915_selftest@live_blt.html

  * igt@i915_selftest@live_gem_contexts:
    - fi-hsw-peppy:       [INCOMPLETE][11] ([i915#694]) -> [PASS][12]
   [11]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7558/fi-hsw-peppy/igt@i915_selftest@live_gem_contexts.html
   [12]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15743/fi-hsw-peppy/igt@i915_selftest@live_gem_contexts.html
    - fi-byt-n2820:       [DMESG-FAIL][13] ([i915#722]) -> [PASS][14]
   [13]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7558/fi-byt-n2820/igt@i915_selftest@live_gem_contexts.html
   [14]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15743/fi-byt-n2820/igt@i915_selftest@live_gem_contexts.html
    - fi-cfl-guc:         [INCOMPLETE][15] ([fdo#106070] / [i915#424]) -> [PASS][16]
   [15]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7558/fi-cfl-guc/igt@i915_selftest@live_gem_contexts.html
   [16]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15743/fi-cfl-guc/igt@i915_selftest@live_gem_contexts.html

  * igt@kms_chamelium@hdmi-hpd-fast:
    - fi-kbl-7500u:       [FAIL][17] ([fdo#111096] / [i915#323]) -> [PASS][18]
   [17]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7558/fi-kbl-7500u/igt@kms_chamelium@hdmi-hpd-fast.html
   [18]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15743/fi-kbl-7500u/igt@kms_chamelium@hdmi-hpd-fast.html

  
#### Warnings ####

  * igt@gem_exec_suspend@basic-s0:
    - fi-kbl-x1275:       [DMESG-WARN][19] ([i915#62] / [i915#92] / [i915#95]) -> [DMESG-WARN][20] ([i915#62] / [i915#92]) +7 similar issues
   [19]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7558/fi-kbl-x1275/igt@gem_exec_suspend@basic-s0.html
   [20]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15743/fi-kbl-x1275/igt@gem_exec_suspend@basic-s0.html

  * igt@i915_selftest@live_blt:
    - fi-hsw-4770:        [DMESG-FAIL][21] ([i915#770]) -> [DMESG-FAIL][22] ([i915#553] / [i915#725])
   [21]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7558/fi-hsw-4770/igt@i915_selftest@live_blt.html
   [22]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15743/fi-hsw-4770/igt@i915_selftest@live_blt.html

  * igt@kms_cursor_legacy@basic-busy-flip-before-cursor-legacy:
    - fi-kbl-x1275:       [DMESG-WARN][23] ([i915#62] / [i915#92]) -> [DMESG-WARN][24] ([i915#62] / [i915#92] / [i915#95]) +8 similar issues
   [23]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7558/fi-kbl-x1275/igt@kms_cursor_legacy@basic-busy-flip-before-cursor-legacy.html
   [24]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15743/fi-kbl-x1275/igt@kms_cursor_legacy@basic-busy-flip-before-cursor-legacy.html

  
  {name}: This element is suppressed. This means it is ignored when computing
          the status of the difference (SUCCESS, WARNING, or FAILURE).

  [fdo#106070]: https://bugs.freedesktop.org/show_bug.cgi?id=106070
  [fdo#111096]: https://bugs.freedesktop.org/show_bug.cgi?id=111096
  [fdo#111735]: https://bugs.freedesktop.org/show_bug.cgi?id=111735
  [i915#323]: https://gitlab.freedesktop.org/drm/intel/issues/323
  [i915#424]: https://gitlab.freedesktop.org/drm/intel/issues/424
  [i915#553]: https://gitlab.freedesktop.org/drm/intel/issues/553
  [i915#62]: https://gitlab.freedesktop.org/drm/intel/issues/62
  [i915#69]: https://gitlab.freedesktop.org/drm/intel/issues/69
  [i915#694]: https://gitlab.freedesktop.org/drm/intel/issues/694
  [i915#722]: https://gitlab.freedesktop.org/drm/intel/issues/722
  [i915#725]: https://gitlab.freedesktop.org/drm/intel/issues/725
  [i915#770]: https://gitlab.freedesktop.org/drm/intel/issues/770
  [i915#816]: https://gitlab.freedesktop.org/drm/intel/issues/816
  [i915#92]: https://gitlab.freedesktop.org/drm/intel/issues/92
  [i915#95]: https://gitlab.freedesktop.org/drm/intel/issues/95


Participating hosts (54 -> 46)
------------------------------

  Additional (1): fi-tgl-y 
  Missing    (9): fi-hsw-4770r fi-icl-1065g7 fi-ilk-m540 fi-hsw-4200u fi-byt-squawks fi-bsw-cyan fi-ctg-p8600 fi-byt-clapper fi-bdw-samus 


Build changes
-------------

  * CI: CI-20190529 -> None
  * Linux: CI_DRM_7558 -> Patchwork_15743

  CI-20190529: 20190529
  CI_DRM_7558: 1adb846ba2ead1c3f7bb7ed753e11f7d9ee28688 @ git://anongit.freedesktop.org/gfx-ci/linux
  IGT_5349: 048f58513d8b8ec6bb307a939f0ac959bc0f0e10 @ git://anongit.freedesktop.org/xorg/app/intel-gpu-tools
  Patchwork_15743: 7d8822d0bd7042a4e659e70d5f161705e0d61ad2 @ git://anongit.freedesktop.org/gfx-ci/linux


== Linux commits ==

7d8822d0bd70 drm/i915/wopcm: convert to drm device based logging
24153faaf3f2 drm/i915/uc: convert to drm device based logging
524d75ac7bcf drm/atomic: convert to drm device based logging
3b7b57f4804e drm/mipi-dbi: convert to drm device based logging
95ddafc5a263 drm/gem-fb-helper: convert to drm device based logging
61971354700a drm/fb-helper: convert to drm device based logging
a0f600677870 drm/client: convert to drm device based logging
d7ea30d4f862 drm/print: introduce new struct drm_device based logging macros

== Logs ==

For more details see: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15743/index.html
_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx

^ permalink raw reply	[flat|nested] 53+ messages in thread

* [Intel-gfx] ✗ Fi.CI.CHECKPATCH: warning for series starting with [1/8] drm/print: introduce new struct drm_device based logging macros (rev3)
  2019-12-10 12:30 ` [Intel-gfx] " Jani Nikula
                   ` (13 preceding siblings ...)
  (?)
@ 2019-12-13 19:40 ` Patchwork
  -1 siblings, 0 replies; 53+ messages in thread
From: Patchwork @ 2019-12-13 19:40 UTC (permalink / raw)
  To: Jani Nikula; +Cc: intel-gfx

== Series Details ==

Series: series starting with [1/8] drm/print: introduce new struct drm_device based logging macros (rev3)
URL   : https://patchwork.freedesktop.org/series/70685/
State : warning

== Summary ==

$ dim checkpatch origin/drm-tip
2ccbb2bd92a4 drm/print: introduce new struct drm_device based logging macros
-:83: CHECK:LINE_SPACING: Please don't use multiple blank lines
#83: FILE: include/drm/drm_print.h:432:
+
+

-:85: ERROR:SPACING: space required after that ',' (ctx:VxO)
#85: FILE: include/drm/drm_print.h:434:
+	__drm_printk((drm), info,, fmt, ##__VA_ARGS__)
 	                        ^

-:88: ERROR:SPACING: space required after that ',' (ctx:VxO)
#88: FILE: include/drm/drm_print.h:437:
+	__drm_printk((drm), notice,, fmt, ##__VA_ARGS__)
 	                          ^

-:91: ERROR:SPACING: space required after that ',' (ctx:VxO)
#91: FILE: include/drm/drm_print.h:440:
+	__drm_printk((drm), warn,, fmt, ##__VA_ARGS__)
 	                        ^

-:94: ERROR:SPACING: space required after that ',' (ctx:VxO)
#94: FILE: include/drm/drm_print.h:443:
+	__drm_printk((drm), err,, "*ERROR* " fmt, ##__VA_ARGS__)
 	                       ^

-:96: CHECK:LINE_SPACING: Please don't use multiple blank lines
#96: FILE: include/drm/drm_print.h:445:
+
+

-:109: CHECK:LINE_SPACING: Please don't use multiple blank lines
#109: FILE: include/drm/drm_print.h:458:
+
+

-:113: CHECK:LINE_SPACING: Please don't use multiple blank lines
#113: FILE: include/drm/drm_print.h:462:
+
+

-:133: CHECK:LINE_SPACING: Please don't use multiple blank lines
#133: FILE: include/drm/drm_print.h:482:
+
+

total: 4 errors, 0 warnings, 5 checks, 79 lines checked
6e1203c54013 drm/client: convert to drm device based logging
bcf9d3cbc0bb drm/fb-helper: convert to drm device based logging
82e3e24464fc drm/gem-fb-helper: convert to drm device based logging
1ab5b849bf17 drm/mipi-dbi: convert to drm device based logging
dea0baf56927 drm/atomic: convert to drm device based logging
39839157ae6f drm/i915/uc: convert to drm device based logging
97cb51cfd412 drm/i915/wopcm: convert to drm device based logging

_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx

^ permalink raw reply	[flat|nested] 53+ messages in thread

* [Intel-gfx] ✓ Fi.CI.BAT: success for series starting with [1/8] drm/print: introduce new struct drm_device based logging macros (rev3)
  2019-12-10 12:30 ` [Intel-gfx] " Jani Nikula
                   ` (14 preceding siblings ...)
  (?)
@ 2019-12-13 20:22 ` Patchwork
  -1 siblings, 0 replies; 53+ messages in thread
From: Patchwork @ 2019-12-13 20:22 UTC (permalink / raw)
  To: Jani Nikula; +Cc: intel-gfx

== Series Details ==

Series: series starting with [1/8] drm/print: introduce new struct drm_device based logging macros (rev3)
URL   : https://patchwork.freedesktop.org/series/70685/
State : success

== Summary ==

CI Bug Log - changes from CI_DRM_7561 -> Patchwork_15749
====================================================

Summary
-------

  **SUCCESS**

  No regressions found.

  External URL: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15749/index.html

Known issues
------------

  Here are the changes found in Patchwork_15749 that come from known issues:

### IGT changes ###

#### Issues hit ####

  * igt@kms_setmode@basic-clone-single-crtc:
    - fi-kbl-x1275:       [PASS][1] -> [DMESG-WARN][2] ([i915#62] / [i915#92])
   [1]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7561/fi-kbl-x1275/igt@kms_setmode@basic-clone-single-crtc.html
   [2]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15749/fi-kbl-x1275/igt@kms_setmode@basic-clone-single-crtc.html

  
#### Possible fixes ####

  * igt@gem_exec_suspend@basic-s4-devices:
    - {fi-tgl-u}:         [INCOMPLETE][3] ([i915#460]) -> [PASS][4]
   [3]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7561/fi-tgl-u/igt@gem_exec_suspend@basic-s4-devices.html
   [4]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15749/fi-tgl-u/igt@gem_exec_suspend@basic-s4-devices.html

  * igt@gem_sync@basic-store-all:
    - fi-tgl-y:           [INCOMPLETE][5] -> [PASS][6]
   [5]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7561/fi-tgl-y/igt@gem_sync@basic-store-all.html
   [6]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15749/fi-tgl-y/igt@gem_sync@basic-store-all.html

  * igt@i915_selftest@live_blt:
    - fi-hsw-4770r:       [DMESG-FAIL][7] ([i915#553] / [i915#725]) -> [PASS][8]
   [7]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7561/fi-hsw-4770r/igt@i915_selftest@live_blt.html
   [8]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15749/fi-hsw-4770r/igt@i915_selftest@live_blt.html

  * igt@i915_selftest@live_gem_contexts:
    - fi-cfl-8700k:       [DMESG-FAIL][9] ([i915#730]) -> [PASS][10]
   [9]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7561/fi-cfl-8700k/igt@i915_selftest@live_gem_contexts.html
   [10]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15749/fi-cfl-8700k/igt@i915_selftest@live_gem_contexts.html

  
#### Warnings ####

  * igt@gem_exec_suspend@basic-s0:
    - fi-kbl-x1275:       [DMESG-WARN][11] ([i915#62] / [i915#92] / [i915#95]) -> [DMESG-WARN][12] ([i915#62] / [i915#92]) +4 similar issues
   [11]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7561/fi-kbl-x1275/igt@gem_exec_suspend@basic-s0.html
   [12]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15749/fi-kbl-x1275/igt@gem_exec_suspend@basic-s0.html

  * igt@kms_cursor_legacy@basic-busy-flip-before-cursor-legacy:
    - fi-kbl-x1275:       [DMESG-WARN][13] ([i915#62] / [i915#92]) -> [DMESG-WARN][14] ([i915#62] / [i915#92] / [i915#95]) +6 similar issues
   [13]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7561/fi-kbl-x1275/igt@kms_cursor_legacy@basic-busy-flip-before-cursor-legacy.html
   [14]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15749/fi-kbl-x1275/igt@kms_cursor_legacy@basic-busy-flip-before-cursor-legacy.html

  
  {name}: This element is suppressed. This means it is ignored when computing
          the status of the difference (SUCCESS, WARNING, or FAILURE).

  [fdo#111593]: https://bugs.freedesktop.org/show_bug.cgi?id=111593
  [i915#460]: https://gitlab.freedesktop.org/drm/intel/issues/460
  [i915#553]: https://gitlab.freedesktop.org/drm/intel/issues/553
  [i915#62]: https://gitlab.freedesktop.org/drm/intel/issues/62
  [i915#725]: https://gitlab.freedesktop.org/drm/intel/issues/725
  [i915#730]: https://gitlab.freedesktop.org/drm/intel/issues/730
  [i915#92]: https://gitlab.freedesktop.org/drm/intel/issues/92
  [i915#95]: https://gitlab.freedesktop.org/drm/intel/issues/95


Participating hosts (55 -> 47)
------------------------------

  Missing    (8): fi-icl-1065g7 fi-ilk-m540 fi-hsw-4200u fi-byt-squawks fi-bsw-cyan fi-ctg-p8600 fi-byt-clapper fi-bdw-samus 


Build changes
-------------

  * CI: CI-20190529 -> None
  * Linux: CI_DRM_7561 -> Patchwork_15749

  CI-20190529: 20190529
  CI_DRM_7561: defef87d82a872aa888a857583a2a9d7245661af @ git://anongit.freedesktop.org/gfx-ci/linux
  IGT_5349: 048f58513d8b8ec6bb307a939f0ac959bc0f0e10 @ git://anongit.freedesktop.org/xorg/app/intel-gpu-tools
  Patchwork_15749: 97cb51cfd41213d708cbde41a42c1fd64d18aa88 @ git://anongit.freedesktop.org/gfx-ci/linux


== Linux commits ==

97cb51cfd412 drm/i915/wopcm: convert to drm device based logging
39839157ae6f drm/i915/uc: convert to drm device based logging
dea0baf56927 drm/atomic: convert to drm device based logging
1ab5b849bf17 drm/mipi-dbi: convert to drm device based logging
82e3e24464fc drm/gem-fb-helper: convert to drm device based logging
bcf9d3cbc0bb drm/fb-helper: convert to drm device based logging
6e1203c54013 drm/client: convert to drm device based logging
2ccbb2bd92a4 drm/print: introduce new struct drm_device based logging macros

== Logs ==

For more details see: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15749/index.html
_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx

^ permalink raw reply	[flat|nested] 53+ messages in thread

* [Intel-gfx] ✗ Fi.CI.IGT: failure for series starting with [1/8] drm/print: introduce new struct drm_device based logging macros (rev3)
  2019-12-10 12:30 ` [Intel-gfx] " Jani Nikula
                   ` (15 preceding siblings ...)
  (?)
@ 2019-12-14 16:10 ` Patchwork
  -1 siblings, 0 replies; 53+ messages in thread
From: Patchwork @ 2019-12-14 16:10 UTC (permalink / raw)
  To: Jani Nikula; +Cc: intel-gfx

== Series Details ==

Series: series starting with [1/8] drm/print: introduce new struct drm_device based logging macros (rev3)
URL   : https://patchwork.freedesktop.org/series/70685/
State : failure

== Summary ==

CI Bug Log - changes from CI_DRM_7561_full -> Patchwork_15749_full
====================================================

Summary
-------

  **FAILURE**

  Serious unknown changes coming with Patchwork_15749_full absolutely need to be
  verified manually.
  
  If you think the reported changes have nothing to do with the changes
  introduced in Patchwork_15749_full, please notify your bug team to allow them
  to document this new failure mode, which will reduce false positives in CI.

  

Possible new issues
-------------------

  Here are the unknown changes that may have been introduced in Patchwork_15749_full:

### IGT changes ###

#### Possible regressions ####

  * igt@gem_tiled_blits@interruptible:
    - shard-hsw:          [PASS][1] -> [FAIL][2]
   [1]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7561/shard-hsw1/igt@gem_tiled_blits@interruptible.html
   [2]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15749/shard-hsw6/igt@gem_tiled_blits@interruptible.html

  
#### Suppressed ####

  The following results come from untrusted machines, tests, or statuses.
  They do not affect the overall result.

  * {igt@gen9_exec_parse@bb-start-out}:
    - shard-tglb:         NOTRUN -> [SKIP][3] +3 similar issues
   [3]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15749/shard-tglb1/igt@gen9_exec_parse@bb-start-out.html

  * {igt@gen9_exec_parse@bb-start-param}:
    - shard-iclb:         NOTRUN -> [SKIP][4] +3 similar issues
   [4]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15749/shard-iclb8/igt@gen9_exec_parse@bb-start-param.html

  
Known issues
------------

  Here are the changes found in Patchwork_15749_full that come from known issues:

### IGT changes ###

#### Issues hit ####

  * igt@gem_ctx_persistence@vcs1-hostile-preempt:
    - shard-iclb:         [PASS][5] -> [SKIP][6] ([fdo#109276] / [fdo#112080]) +3 similar issues
   [5]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7561/shard-iclb1/igt@gem_ctx_persistence@vcs1-hostile-preempt.html
   [6]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15749/shard-iclb8/igt@gem_ctx_persistence@vcs1-hostile-preempt.html

  * igt@gem_ctx_shared@q-smoketest-bsd1:
    - shard-tglb:         [PASS][7] -> [INCOMPLETE][8] ([fdo#111735])
   [7]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7561/shard-tglb8/igt@gem_ctx_shared@q-smoketest-bsd1.html
   [8]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15749/shard-tglb3/igt@gem_ctx_shared@q-smoketest-bsd1.html

  * igt@gem_exec_balancer@smoke:
    - shard-iclb:         [PASS][9] -> [SKIP][10] ([fdo#110854])
   [9]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7561/shard-iclb2/igt@gem_exec_balancer@smoke.html
   [10]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15749/shard-iclb8/igt@gem_exec_balancer@smoke.html

  * igt@gem_exec_create@forked:
    - shard-tglb:         [PASS][11] -> [INCOMPLETE][12] ([fdo#108838] / [i915#435])
   [11]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7561/shard-tglb9/igt@gem_exec_create@forked.html
   [12]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15749/shard-tglb6/igt@gem_exec_create@forked.html

  * igt@gem_exec_gttfill@basic:
    - shard-tglb:         [PASS][13] -> [INCOMPLETE][14] ([fdo#111593])
   [13]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7561/shard-tglb3/igt@gem_exec_gttfill@basic.html
   [14]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15749/shard-tglb4/igt@gem_exec_gttfill@basic.html

  * igt@gem_exec_schedule@preempt-queue-blt:
    - shard-tglb:         [PASS][15] -> [INCOMPLETE][16] ([fdo#111677])
   [15]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7561/shard-tglb1/igt@gem_exec_schedule@preempt-queue-blt.html
   [16]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15749/shard-tglb6/igt@gem_exec_schedule@preempt-queue-blt.html

  * igt@gem_exec_schedule@preemptive-hang-bsd:
    - shard-iclb:         [PASS][17] -> [SKIP][18] ([fdo#112146]) +6 similar issues
   [17]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7561/shard-iclb3/igt@gem_exec_schedule@preemptive-hang-bsd.html
   [18]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15749/shard-iclb1/igt@gem_exec_schedule@preemptive-hang-bsd.html

  * igt@gem_persistent_relocs@forked-faulting-reloc-thrash-inactive:
    - shard-tglb:         [PASS][19] -> [TIMEOUT][20] ([i915#530])
   [19]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7561/shard-tglb5/igt@gem_persistent_relocs@forked-faulting-reloc-thrash-inactive.html
   [20]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15749/shard-tglb5/igt@gem_persistent_relocs@forked-faulting-reloc-thrash-inactive.html

  * igt@gem_persistent_relocs@forked-interruptible-thrashing:
    - shard-hsw:          [PASS][21] -> [TIMEOUT][22] ([i915#530])
   [21]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7561/shard-hsw4/igt@gem_persistent_relocs@forked-interruptible-thrashing.html
   [22]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15749/shard-hsw4/igt@gem_persistent_relocs@forked-interruptible-thrashing.html

  * igt@gem_persistent_relocs@forked-thrashing:
    - shard-snb:          [PASS][23] -> [FAIL][24] ([i915#520])
   [23]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7561/shard-snb2/igt@gem_persistent_relocs@forked-thrashing.html
   [24]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15749/shard-snb7/igt@gem_persistent_relocs@forked-thrashing.html

  * igt@gem_ppgtt@flink-and-close-vma-leak:
    - shard-tglb:         [PASS][25] -> [FAIL][26] ([i915#644])
   [25]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7561/shard-tglb8/igt@gem_ppgtt@flink-and-close-vma-leak.html
   [26]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15749/shard-tglb3/igt@gem_ppgtt@flink-and-close-vma-leak.html
    - shard-kbl:          [PASS][27] -> [FAIL][28] ([i915#644])
   [27]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7561/shard-kbl6/igt@gem_ppgtt@flink-and-close-vma-leak.html
   [28]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15749/shard-kbl1/igt@gem_ppgtt@flink-and-close-vma-leak.html

  * igt@gem_sync@basic-store-each:
    - shard-tglb:         [PASS][29] -> [INCOMPLETE][30] ([i915#435] / [i915#472])
   [29]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7561/shard-tglb2/igt@gem_sync@basic-store-each.html
   [30]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15749/shard-tglb7/igt@gem_sync@basic-store-each.html

  * igt@gem_userptr_blits@map-fixed-invalidate-overlap-busy-gup:
    - shard-snb:          [PASS][31] -> [DMESG-WARN][32] ([fdo#111870])
   [31]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7561/shard-snb7/igt@gem_userptr_blits@map-fixed-invalidate-overlap-busy-gup.html
   [32]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15749/shard-snb4/igt@gem_userptr_blits@map-fixed-invalidate-overlap-busy-gup.html

  * igt@i915_pm_dc@dc6-psr:
    - shard-iclb:         [PASS][33] -> [FAIL][34] ([i915#454])
   [33]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7561/shard-iclb6/igt@i915_pm_dc@dc6-psr.html
   [34]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15749/shard-iclb2/igt@i915_pm_dc@dc6-psr.html

  * igt@i915_selftest@mock_sanitycheck:
    - shard-skl:          [PASS][35] -> [DMESG-WARN][36] ([i915#747])
   [35]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7561/shard-skl7/igt@i915_selftest@mock_sanitycheck.html
   [36]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15749/shard-skl3/igt@i915_selftest@mock_sanitycheck.html
    - shard-snb:          [PASS][37] -> [DMESG-WARN][38] ([i915#747])
   [37]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7561/shard-snb7/igt@i915_selftest@mock_sanitycheck.html
   [38]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15749/shard-snb5/igt@i915_selftest@mock_sanitycheck.html

  * igt@i915_suspend@fence-restore-untiled:
    - shard-apl:          [PASS][39] -> [DMESG-WARN][40] ([i915#180]) +1 similar issue
   [39]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7561/shard-apl1/igt@i915_suspend@fence-restore-untiled.html
   [40]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15749/shard-apl1/igt@i915_suspend@fence-restore-untiled.html

  * igt@kms_fbcon_fbt@fbc-suspend:
    - shard-tglb:         [PASS][41] -> [INCOMPLETE][42] ([i915#435] / [i915#456] / [i915#460])
   [41]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7561/shard-tglb5/igt@kms_fbcon_fbt@fbc-suspend.html
   [42]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15749/shard-tglb5/igt@kms_fbcon_fbt@fbc-suspend.html

  * igt@kms_frontbuffer_tracking@fbc-1p-primscrn-cur-indfb-draw-pwrite:
    - shard-tglb:         [PASS][43] -> [INCOMPLETE][44] ([i915#474] / [i915#667])
   [43]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7561/shard-tglb4/igt@kms_frontbuffer_tracking@fbc-1p-primscrn-cur-indfb-draw-pwrite.html
   [44]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15749/shard-tglb8/igt@kms_frontbuffer_tracking@fbc-1p-primscrn-cur-indfb-draw-pwrite.html

  * igt@kms_frontbuffer_tracking@fbcpsr-rgb565-draw-pwrite:
    - shard-tglb:         [PASS][45] -> [FAIL][46] ([i915#49]) +4 similar issues
   [45]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7561/shard-tglb2/igt@kms_frontbuffer_tracking@fbcpsr-rgb565-draw-pwrite.html
   [46]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15749/shard-tglb9/igt@kms_frontbuffer_tracking@fbcpsr-rgb565-draw-pwrite.html

  * igt@kms_pipe_crc_basic@suspend-read-crc-pipe-a:
    - shard-kbl:          [PASS][47] -> [DMESG-WARN][48] ([i915#180]) +7 similar issues
   [47]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7561/shard-kbl3/igt@kms_pipe_crc_basic@suspend-read-crc-pipe-a.html
   [48]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15749/shard-kbl1/igt@kms_pipe_crc_basic@suspend-read-crc-pipe-a.html

  * igt@kms_plane@plane-panning-bottom-right-suspend-pipe-b-planes:
    - shard-tglb:         [PASS][49] -> [INCOMPLETE][50] ([i915#456] / [i915#460]) +1 similar issue
   [49]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7561/shard-tglb6/igt@kms_plane@plane-panning-bottom-right-suspend-pipe-b-planes.html
   [50]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15749/shard-tglb1/igt@kms_plane@plane-panning-bottom-right-suspend-pipe-b-planes.html

  * igt@kms_plane_alpha_blend@pipe-b-coverage-7efc:
    - shard-skl:          [PASS][51] -> [FAIL][52] ([fdo#108145] / [i915#265])
   [51]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7561/shard-skl1/igt@kms_plane_alpha_blend@pipe-b-coverage-7efc.html
   [52]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15749/shard-skl1/igt@kms_plane_alpha_blend@pipe-b-coverage-7efc.html

  * igt@kms_psr@psr2_dpms:
    - shard-iclb:         [PASS][53] -> [SKIP][54] ([fdo#109441])
   [53]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7561/shard-iclb2/igt@kms_psr@psr2_dpms.html
   [54]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15749/shard-iclb8/igt@kms_psr@psr2_dpms.html

  * igt@perf_pmu@busy-no-semaphores-vcs1:
    - shard-iclb:         [PASS][55] -> [SKIP][56] ([fdo#112080]) +8 similar issues
   [55]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7561/shard-iclb4/igt@perf_pmu@busy-no-semaphores-vcs1.html
   [56]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15749/shard-iclb6/igt@perf_pmu@busy-no-semaphores-vcs1.html

  * igt@prime_vgem@fence-wait-bsd2:
    - shard-iclb:         [PASS][57] -> [SKIP][58] ([fdo#109276]) +12 similar issues
   [57]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7561/shard-iclb4/igt@prime_vgem@fence-wait-bsd2.html
   [58]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15749/shard-iclb6/igt@prime_vgem@fence-wait-bsd2.html

  
#### Possible fixes ####

  * igt@gem_ctx_persistence@vcs1-mixed-process:
    - shard-iclb:         [SKIP][59] ([fdo#109276] / [fdo#112080]) -> [PASS][60] +1 similar issue
   [59]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7561/shard-iclb6/igt@gem_ctx_persistence@vcs1-mixed-process.html
   [60]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15749/shard-iclb2/igt@gem_ctx_persistence@vcs1-mixed-process.html

  * igt@gem_ctx_shared@q-smoketest-bsd:
    - shard-tglb:         [INCOMPLETE][61] ([i915#461]) -> [PASS][62]
   [61]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7561/shard-tglb4/igt@gem_ctx_shared@q-smoketest-bsd.html
   [62]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15749/shard-tglb7/igt@gem_ctx_shared@q-smoketest-bsd.html

  * igt@gem_eio@hibernate:
    - shard-tglb:         [INCOMPLETE][63] ([i915#456]) -> [PASS][64]
   [63]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7561/shard-tglb8/igt@gem_eio@hibernate.html
   [64]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15749/shard-tglb9/igt@gem_eio@hibernate.html

  * {igt@gem_exec_schedule@pi-userfault-bsd}:
    - shard-iclb:         [SKIP][65] ([i915#677]) -> [PASS][66]
   [65]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7561/shard-iclb2/igt@gem_exec_schedule@pi-userfault-bsd.html
   [66]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15749/shard-iclb8/igt@gem_exec_schedule@pi-userfault-bsd.html

  * igt@gem_exec_schedule@preempt-other-chain-bsd:
    - shard-iclb:         [SKIP][67] ([fdo#112146]) -> [PASS][68] +1 similar issue
   [67]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7561/shard-iclb2/igt@gem_exec_schedule@preempt-other-chain-bsd.html
   [68]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15749/shard-iclb8/igt@gem_exec_schedule@preempt-other-chain-bsd.html

  * igt@gem_exec_schedule@preempt-queue-bsd2:
    - shard-iclb:         [SKIP][69] ([fdo#109276]) -> [PASS][70] +10 similar issues
   [69]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7561/shard-iclb6/igt@gem_exec_schedule@preempt-queue-bsd2.html
   [70]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15749/shard-iclb2/igt@gem_exec_schedule@preempt-queue-bsd2.html

  * igt@gem_softpin@noreloc-s3:
    - shard-apl:          [DMESG-WARN][71] ([i915#180]) -> [PASS][72]
   [71]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7561/shard-apl1/igt@gem_softpin@noreloc-s3.html
   [72]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15749/shard-apl7/igt@gem_softpin@noreloc-s3.html

  * igt@gem_tiled_blits@normal:
    - shard-hsw:          [FAIL][73] ([i915#818]) -> [PASS][74]
   [73]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7561/shard-hsw8/igt@gem_tiled_blits@normal.html
   [74]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15749/shard-hsw8/igt@gem_tiled_blits@normal.html

  * igt@gem_userptr_blits@dmabuf-unsync:
    - shard-snb:          [DMESG-WARN][75] ([fdo#111870]) -> [PASS][76]
   [75]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7561/shard-snb2/igt@gem_userptr_blits@dmabuf-unsync.html
   [76]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15749/shard-snb5/igt@gem_userptr_blits@dmabuf-unsync.html

  * {igt@gen9_exec_parse@allowed-single}:
    - shard-kbl:          [DMESG-WARN][77] -> [PASS][78]
   [77]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7561/shard-kbl3/igt@gen9_exec_parse@allowed-single.html
   [78]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15749/shard-kbl1/igt@gen9_exec_parse@allowed-single.html
    - shard-skl:          [DMESG-WARN][79] -> [PASS][80]
   [79]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7561/shard-skl9/igt@gen9_exec_parse@allowed-single.html
   [80]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15749/shard-skl5/igt@gen9_exec_parse@allowed-single.html

  * igt@i915_selftest@live_gt_timelines:
    - shard-tglb:         [INCOMPLETE][81] ([i915#455]) -> [PASS][82]
   [81]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7561/shard-tglb6/igt@i915_selftest@live_gt_timelines.html
   [82]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15749/shard-tglb2/igt@i915_selftest@live_gt_timelines.html

  * igt@kms_cursor_crc@pipe-a-cursor-suspend:
    - shard-kbl:          [DMESG-WARN][83] ([i915#180]) -> [PASS][84] +5 similar issues
   [83]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7561/shard-kbl1/igt@kms_cursor_crc@pipe-a-cursor-suspend.html
   [84]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15749/shard-kbl6/igt@kms_cursor_crc@pipe-a-cursor-suspend.html

  * igt@kms_cursor_crc@pipe-b-cursor-256x85-sliding:
    - shard-skl:          [FAIL][85] ([i915#54]) -> [PASS][86]
   [85]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7561/shard-skl10/igt@kms_cursor_crc@pipe-b-cursor-256x85-sliding.html
   [86]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15749/shard-skl4/igt@kms_cursor_crc@pipe-b-cursor-256x85-sliding.html

  * igt@kms_draw_crc@draw-method-xrgb8888-render-xtiled:
    - shard-tglb:         [INCOMPLETE][87] ([i915#435] / [i915#667]) -> [PASS][88]
   [87]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7561/shard-tglb2/igt@kms_draw_crc@draw-method-xrgb8888-render-xtiled.html
   [88]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15749/shard-tglb9/igt@kms_draw_crc@draw-method-xrgb8888-render-xtiled.html

  * igt@kms_flip@flip-vs-expired-vblank:
    - shard-skl:          [FAIL][89] ([i915#79]) -> [PASS][90] +1 similar issue
   [89]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7561/shard-skl3/igt@kms_flip@flip-vs-expired-vblank.html
   [90]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15749/shard-skl10/igt@kms_flip@flip-vs-expired-vblank.html

  * igt@kms_frontbuffer_tracking@fbc-1p-offscren-pri-shrfb-draw-blt:
    - shard-tglb:         [FAIL][91] ([i915#49]) -> [PASS][92] +1 similar issue
   [91]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7561/shard-tglb8/igt@kms_frontbuffer_tracking@fbc-1p-offscren-pri-shrfb-draw-blt.html
   [92]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15749/shard-tglb4/igt@kms_frontbuffer_tracking@fbc-1p-offscren-pri-shrfb-draw-blt.html

  * igt@kms_frontbuffer_tracking@fbcpsr-1p-primscrn-cur-indfb-move:
    - shard-tglb:         [INCOMPLETE][93] ([i915#474] / [i915#667]) -> [PASS][94]
   [93]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7561/shard-tglb3/igt@kms_frontbuffer_tracking@fbcpsr-1p-primscrn-cur-indfb-move.html
   [94]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15749/shard-tglb8/igt@kms_frontbuffer_tracking@fbcpsr-1p-primscrn-cur-indfb-move.html

  * igt@kms_frontbuffer_tracking@psr-1p-primscrn-spr-indfb-draw-render:
    - shard-skl:          [FAIL][95] ([i915#49]) -> [PASS][96]
   [95]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7561/shard-skl9/igt@kms_frontbuffer_tracking@psr-1p-primscrn-spr-indfb-draw-render.html
   [96]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15749/shard-skl5/igt@kms_frontbuffer_tracking@psr-1p-primscrn-spr-indfb-draw-render.html

  * igt@kms_plane@pixel-format-pipe-b-planes-source-clamping:
    - shard-skl:          [INCOMPLETE][97] ([fdo#112347] / [i915#648] / [i915#667]) -> [PASS][98]
   [97]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7561/shard-skl4/igt@kms_plane@pixel-format-pipe-b-planes-source-clamping.html
   [98]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15749/shard-skl4/igt@kms_plane@pixel-format-pipe-b-planes-source-clamping.html

  * igt@kms_psr2_su@page_flip:
    - shard-iclb:         [SKIP][99] ([fdo#109642] / [fdo#111068]) -> [PASS][100]
   [99]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7561/shard-iclb6/igt@kms_psr2_su@page_flip.html
   [100]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15749/shard-iclb2/igt@kms_psr2_su@page_flip.html

  * igt@kms_psr@psr2_suspend:
    - shard-tglb:         [DMESG-WARN][101] ([i915#402]) -> [PASS][102]
   [101]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7561/shard-tglb8/igt@kms_psr@psr2_suspend.html
   [102]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15749/shard-tglb9/igt@kms_psr@psr2_suspend.html

  * igt@kms_setmode@basic:
    - shard-apl:          [FAIL][103] ([i915#31]) -> [PASS][104]
   [103]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7561/shard-apl8/igt@kms_setmode@basic.html
   [104]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15749/shard-apl2/igt@kms_setmode@basic.html

  * igt@perf_pmu@busy-check-all-vcs1:
    - shard-iclb:         [SKIP][105] ([fdo#112080]) -> [PASS][106] +3 similar issues
   [105]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7561/shard-iclb6/igt@perf_pmu@busy-check-all-vcs1.html
   [106]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15749/shard-iclb2/igt@perf_pmu@busy-check-all-vcs1.html

  * igt@prime_mmap_coherency@ioctl-errors:
    - shard-hsw:          [FAIL][107] -> [PASS][108]
   [107]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7561/shard-hsw8/igt@prime_mmap_coherency@ioctl-errors.html
   [108]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15749/shard-hsw6/igt@prime_mmap_coherency@ioctl-errors.html

  
#### Warnings ####

  * igt@gem_ctx_isolation@vcs1-nonpriv-switch:
    - shard-iclb:         [SKIP][109] ([fdo#109276] / [fdo#112080]) -> [FAIL][110] ([IGT#28])
   [109]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7561/shard-iclb6/igt@gem_ctx_isolation@vcs1-nonpriv-switch.html
   [110]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15749/shard-iclb1/igt@gem_ctx_isolation@vcs1-nonpriv-switch.html

  * igt@gem_ctx_isolation@vcs2-s3:
    - shard-tglb:         [SKIP][111] ([fdo#111912] / [fdo#112080]) -> [SKIP][112] ([fdo#112080])
   [111]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7561/shard-tglb8/igt@gem_ctx_isolation@vcs2-s3.html
   [112]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15749/shard-tglb9/igt@gem_ctx_isolation@vcs2-s3.html

  * igt@kms_atomic_transition@6x-modeset-transitions-nonblocking:
    - shard-tglb:         [SKIP][113] ([fdo#112021]) -> [SKIP][114] ([fdo#112016] / [fdo#112021]) +1 similar issue
   [113]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7561/shard-tglb9/igt@kms_atomic_transition@6x-modeset-transitions-nonblocking.html
   [114]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15749/shard-tglb5/igt@kms_atomic_transition@6x-modeset-transitions-nonblocking.html

  * igt@kms_dp_dsc@basic-dsc-enable-edp:
    - shard-iclb:         [SKIP][115] ([fdo#109349]) -> [DMESG-WARN][116] ([fdo#107724])
   [115]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7561/shard-iclb6/igt@kms_dp_dsc@basic-dsc-enable-edp.html
   [116]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15749/shard-iclb2/igt@kms_dp_dsc@basic-dsc-enable-edp.html

  * igt@runner@aborted:
    - shard-skl:          [FAIL][117] ([i915#69]) -> [FAIL][118] ([i915#69] / [k.org#204565])
   [117]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7561/shard-skl9/igt@runner@aborted.html
   [118]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15749/shard-skl3/igt@runner@aborted.html

  
  {name}: This element is suppressed. This means it is ignored when computing
          the status of the difference (SUCCESS, WARNING, or FAILURE).

  [IGT#28]: https://gitlab.freedesktop.org/drm/igt-gpu-tools/issues/28
  [fdo#107724]: https://bugs.freedesktop.org/show_bug.cgi?id=107724
  [fdo#108145]: https://bugs.freedesktop.org/show_bug.cgi?id=108145
  [fdo#108838]: https://bugs.freedesktop.org/show_bug.cgi?id=108838
  [fdo#109276]: https://bugs.freedesktop.org/show_bug.cgi?id=109276
  [fdo#109349]: https://bugs.freedesktop.org/show_bug.cgi?id=109349
  [fdo#109441]: https://bugs.freedesktop.org/show_bug.cgi?id=109441
  [fdo#109642]: https://bugs.freedesktop.org/show_bug.cgi?id=109642
  [fdo#110854]: https://bugs.freedesktop.org/show_bug.cgi?id=110854
  [fdo#111068]: https://bugs.freedesktop.org/show_bug.cgi?id=111068
  [fdo#111593]: https://bugs.freedesktop.org/show_bug.cgi?id=111593
  [fdo#111677]: https://bugs.freedesktop.org/show_bug.cgi?id=111677
  [fdo#111735]: https://bugs.freedesktop.org/show_bug.cgi?id=111735
  [fdo#111870]: https://bugs.freedesktop.org/show_bug.cgi?id=111870
  [fdo#111912]: https://bugs.freedesktop.org/show_bug.cgi?id=111912
  [fdo#112016]: https://bugs.freedesktop.org/show_bug.cgi?id=112016
  [fdo#112021]: https://bugs.freedesktop.org/show_bug.cgi?id=112021
  [fdo#112080]: https://bugs.freedesktop.org/show_bug.cgi?id=112080
  [fdo#112146]: https://bugs.freedesktop.org/show_bug.cgi?id=112146
  [fdo#112347]: https://bugs.freedesktop.org/show_bug.cgi?id=112347
  [i915#180]: https://gitlab.freedesktop.org/drm/intel/issues/180
  [i915#265]: https://gitlab.freedesktop.org/drm/intel/issues/265
  [i915#31]: https://gitlab.freedesktop.org/drm/intel/issues/31
  [i915#402]: https://gitlab.freedesktop.org/drm/intel/issues/402
  [i915#435]: https://gitlab.freedesktop.org/drm/intel/issues/435
  [i915#454]: https://gitlab.freedesktop.org/drm/intel/issues/454
  [i915#455]: https://gitlab.freedesktop.org/drm/intel/issues/455
  [i915#456]: https://gitlab.freedesktop.org/drm/intel/issues/456
  [i915#460]: https://gitlab.freedesktop.org/drm/intel/issues/460
  [i915#461]: https://gitlab.freedesktop.org/drm/intel/issues/461
  [i915#472]: https://gitlab.freedesktop.org/drm/intel/issues/472
  [i915#474]: https://gitlab.freedesktop.org/drm/intel/issues/474
  [i915#49]: https://gitlab.freedesktop.org/drm/intel/issues/49
  [i915#520]: https://gitlab.freedesktop.org/drm/intel/issues/520
  [i915#530]: https://gitlab.freedesktop.org/drm/intel/issues/530
  [i915#54]: https://gitlab.freedesktop.org/drm/intel/issues/54
  [i915#644]: https://gitlab.freedesktop.org/drm/intel/issues/644
  [i915#648]: https://gitlab.freedesktop.org/drm/intel/issues/648
  [i915#667]: https://gitlab.freedesktop.org/drm/intel/issues/667
  [i915#677]: https://gitlab.freedesktop.org/drm/intel/issues/677
  [i915#69]: https://gitlab.freedesktop.org/drm/intel/issues/69
  [i915#747]: https://gitlab.freedesktop.org/drm/intel/issues/747
  [i915#79]: https://gitlab.freedesktop.org/drm/intel/issues/79
  [i915#818]: https://gitlab.freedesktop.org/drm/intel/issues/818
  [k.org#204565]: https://bugzilla.kernel.org/show_bug.cgi?id=204565


Participating hosts (10 -> 10)
------------------------------

  No changes in participating hosts


Build changes
-------------

  * CI: CI-20190529 -> None
  * Linux: CI_DRM_7561 -> Patchwork_15749

  CI-20190529: 20190529
  CI_DRM_7561: defef87d82a872aa888a857583a2a9d7245661af @ git://anongit.freedesktop.org/gfx-ci/linux
  IGT_5349: 048f58513d8b8ec6bb307a939f0ac959bc0f0e10 @ git://anongit.freedesktop.org/xorg/app/intel-gpu-tools
  Patchwork_15749: 97cb51cfd41213d708cbde41a42c1fd64d18aa88 @ git://anongit.freedesktop.org/gfx-ci/linux
  piglit_4509: fdc5a4ca11124ab8413c7988896eec4c97336694 @ git://anongit.freedesktop.org/piglit

== Logs ==

For more details see: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15749/index.html
_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx

^ permalink raw reply	[flat|nested] 53+ messages in thread

* Re: [PATCH 1/8] drm/print: introduce new struct drm_device based logging macros
  2019-12-10 12:30 ` [Intel-gfx] " Jani Nikula
@ 2019-12-17 14:45   ` Jani Nikula
  -1 siblings, 0 replies; 53+ messages in thread
From: Jani Nikula @ 2019-12-17 14:45 UTC (permalink / raw)
  To: dri-devel; +Cc: Sean Paul, intel-gfx, Sam Ravnborg, Rodrigo Vivi

On Tue, 10 Dec 2019, Jani Nikula <jani.nikula@intel.com> wrote:
> Add new struct drm_device based logging macros modeled after the core
> kernel device based logging macros. These would be preferred over the
> drm printk and struct device based macros in drm code, where possible.
>
> We have existing drm specific struct device based logging functions, but
> they are too verbose to use for two main reasons:
>
>  * The names are unnecessarily long, for example DRM_DEV_DEBUG_KMS().
>
>  * The use of struct device over struct drm_device is too generic for
>    most users, leading to an extra dereference.
>
> For example:
>
> 	DRM_DEV_DEBUG_KMS(drm->dev, "Hello, world\n");
>
> vs.
>
> 	drm_dbg_kms(drm, "Hello, world\n");
>
> It's a matter of taste, but the SHOUTING UPPERCASE has been argued to be
> less readable than lowercase.
>
> Some names are changed from old DRM names to be based on the core kernel
> logging functions. For example, NOTE -> notice, ERROR -> err, DEBUG ->
> dbg.
>
> Due to the conflation of DRM_DEBUG and DRM_DEBUG_DRIVER macro use
> (DRM_DEBUG is used widely in drivers though it's supposed to be a core
> debugging category), they are named as drm_dbg_core and drm_dbg,
> respectively.
>
> The drm_err and _once/_ratelimited variants no longer include the
> function name in order to be able to use the core device based logging
> macros. Arguably this is not a significant change; error messages should
> not be so common to be only distinguishable by the function name.
>
> Ratelimited debug logging macros are to be added later.
>
> Cc: Sam Ravnborg <sam@ravnborg.org>
> Acked-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
> Reviewed-by: Rodrigo Vivi <rodrigo.vivi@intel.com>
> Acked-by: Sean Paul <sean@poorly.run>
> Signed-off-by: Jani Nikula <jani.nikula@intel.com>

Pushed this one patch, thanks for the reviews and acks. The rest could
still use review. ;)

BR,
Jani.


>
> ---
>
> With something like this, I think i915 could start migrating to
> drm_device based logging. I have a hard time convincing myself or anyone
> about migrating to the DRM_DEV_* variants.
> ---
>  include/drm/drm_print.h | 65 +++++++++++++++++++++++++++++++++++++++++
>  1 file changed, 65 insertions(+)
>
> diff --git a/include/drm/drm_print.h b/include/drm/drm_print.h
> index 085a9685270c..8f99d389792d 100644
> --- a/include/drm/drm_print.h
> +++ b/include/drm/drm_print.h
> @@ -322,6 +322,8 @@ static inline bool drm_debug_enabled(enum drm_debug_category category)
>  
>  /*
>   * struct device based logging
> + *
> + * Prefer drm_device based logging over device or prink based logging.
>   */
>  
>  __printf(3, 4)
> @@ -417,8 +419,71 @@ void drm_dev_dbg(const struct device *dev, enum drm_debug_category category,
>  	_DRM_DEV_DEFINE_DEBUG_RATELIMITED(dev, DRM_UT_PRIME,		\
>  					  fmt, ##__VA_ARGS__)
>  
> +/*
> + * struct drm_device based logging
> + *
> + * Prefer drm_device based logging over device or prink based logging.
> + */
> +
> +/* Helper for struct drm_device based logging. */
> +#define __drm_printk(drm, level, type, fmt, ...)			\
> +	dev_##level##type((drm)->dev, "[drm] " fmt, ##__VA_ARGS__)
> +
> +
> +#define drm_info(drm, fmt, ...)					\
> +	__drm_printk((drm), info,, fmt, ##__VA_ARGS__)
> +
> +#define drm_notice(drm, fmt, ...)				\
> +	__drm_printk((drm), notice,, fmt, ##__VA_ARGS__)
> +
> +#define drm_warn(drm, fmt, ...)					\
> +	__drm_printk((drm), warn,, fmt, ##__VA_ARGS__)
> +
> +#define drm_err(drm, fmt, ...)					\
> +	__drm_printk((drm), err,, "*ERROR* " fmt, ##__VA_ARGS__)
> +
> +
> +#define drm_info_once(drm, fmt, ...)				\
> +	__drm_printk((drm), info, _once, fmt, ##__VA_ARGS__)
> +
> +#define drm_notice_once(drm, fmt, ...)				\
> +	__drm_printk((drm), notice, _once, fmt, ##__VA_ARGS__)
> +
> +#define drm_warn_once(drm, fmt, ...)				\
> +	__drm_printk((drm), warn, _once, fmt, ##__VA_ARGS__)
> +
> +#define drm_err_once(drm, fmt, ...)				\
> +	__drm_printk((drm), err, _once, "*ERROR* " fmt, ##__VA_ARGS__)
> +
> +
> +#define drm_err_ratelimited(drm, fmt, ...)				\
> +	__drm_printk((drm), err, _ratelimited, "*ERROR* " fmt, ##__VA_ARGS__)
> +
> +
> +#define drm_dbg_core(drm, fmt, ...)					\
> +	drm_dev_dbg((drm)->dev, DRM_UT_CORE, fmt, ##__VA_ARGS__)
> +#define drm_dbg(drm, fmt, ...)						\
> +	drm_dev_dbg((drm)->dev, DRM_UT_DRIVER, fmt, ##__VA_ARGS__)
> +#define drm_dbg_kms(drm, fmt, ...)					\
> +	drm_dev_dbg((drm)->dev, DRM_UT_KMS, fmt, ##__VA_ARGS__)
> +#define drm_dbg_prime(drm, fmt, ...)					\
> +	drm_dev_dbg((drm)->dev, DRM_UT_PRIME, fmt, ##__VA_ARGS__)
> +#define drm_dbg_atomic(drm, fmt, ...)					\
> +	drm_dev_dbg((drm)->dev, DRM_UT_ATOMIC, fmt, ##__VA_ARGS__)
> +#define drm_dbg_vbl(drm, fmt, ...)					\
> +	drm_dev_dbg((drm)->dev, DRM_UT_VBL, fmt, ##__VA_ARGS__)
> +#define drm_dbg_state(drm, fmt, ...)					\
> +	drm_dev_dbg((drm)->dev, DRM_UT_STATE, fmt, ##__VA_ARGS__)
> +#define drm_dbg_lease(drm, fmt, ...)					\
> +	drm_dev_dbg((drm)->dev, DRM_UT_LEASE, fmt, ##__VA_ARGS__)
> +#define drm_dbg_dp(drm, fmt, ...)					\
> +	drm_dev_dbg((drm)->dev, DRM_UT_DP, fmt, ##__VA_ARGS__)
> +
> +
>  /*
>   * printk based logging
> + *
> + * Prefer drm_device based logging over device or prink based logging.
>   */
>  
>  __printf(2, 3)

-- 
Jani Nikula, Intel Open Source Graphics Center
_______________________________________________
dri-devel mailing list
dri-devel@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/dri-devel

^ permalink raw reply	[flat|nested] 53+ messages in thread

* Re: [Intel-gfx] [PATCH 1/8] drm/print: introduce new struct drm_device based logging macros
@ 2019-12-17 14:45   ` Jani Nikula
  0 siblings, 0 replies; 53+ messages in thread
From: Jani Nikula @ 2019-12-17 14:45 UTC (permalink / raw)
  To: dri-devel; +Cc: intel-gfx, Sam Ravnborg

On Tue, 10 Dec 2019, Jani Nikula <jani.nikula@intel.com> wrote:
> Add new struct drm_device based logging macros modeled after the core
> kernel device based logging macros. These would be preferred over the
> drm printk and struct device based macros in drm code, where possible.
>
> We have existing drm specific struct device based logging functions, but
> they are too verbose to use for two main reasons:
>
>  * The names are unnecessarily long, for example DRM_DEV_DEBUG_KMS().
>
>  * The use of struct device over struct drm_device is too generic for
>    most users, leading to an extra dereference.
>
> For example:
>
> 	DRM_DEV_DEBUG_KMS(drm->dev, "Hello, world\n");
>
> vs.
>
> 	drm_dbg_kms(drm, "Hello, world\n");
>
> It's a matter of taste, but the SHOUTING UPPERCASE has been argued to be
> less readable than lowercase.
>
> Some names are changed from old DRM names to be based on the core kernel
> logging functions. For example, NOTE -> notice, ERROR -> err, DEBUG ->
> dbg.
>
> Due to the conflation of DRM_DEBUG and DRM_DEBUG_DRIVER macro use
> (DRM_DEBUG is used widely in drivers though it's supposed to be a core
> debugging category), they are named as drm_dbg_core and drm_dbg,
> respectively.
>
> The drm_err and _once/_ratelimited variants no longer include the
> function name in order to be able to use the core device based logging
> macros. Arguably this is not a significant change; error messages should
> not be so common to be only distinguishable by the function name.
>
> Ratelimited debug logging macros are to be added later.
>
> Cc: Sam Ravnborg <sam@ravnborg.org>
> Acked-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
> Reviewed-by: Rodrigo Vivi <rodrigo.vivi@intel.com>
> Acked-by: Sean Paul <sean@poorly.run>
> Signed-off-by: Jani Nikula <jani.nikula@intel.com>

Pushed this one patch, thanks for the reviews and acks. The rest could
still use review. ;)

BR,
Jani.


>
> ---
>
> With something like this, I think i915 could start migrating to
> drm_device based logging. I have a hard time convincing myself or anyone
> about migrating to the DRM_DEV_* variants.
> ---
>  include/drm/drm_print.h | 65 +++++++++++++++++++++++++++++++++++++++++
>  1 file changed, 65 insertions(+)
>
> diff --git a/include/drm/drm_print.h b/include/drm/drm_print.h
> index 085a9685270c..8f99d389792d 100644
> --- a/include/drm/drm_print.h
> +++ b/include/drm/drm_print.h
> @@ -322,6 +322,8 @@ static inline bool drm_debug_enabled(enum drm_debug_category category)
>  
>  /*
>   * struct device based logging
> + *
> + * Prefer drm_device based logging over device or prink based logging.
>   */
>  
>  __printf(3, 4)
> @@ -417,8 +419,71 @@ void drm_dev_dbg(const struct device *dev, enum drm_debug_category category,
>  	_DRM_DEV_DEFINE_DEBUG_RATELIMITED(dev, DRM_UT_PRIME,		\
>  					  fmt, ##__VA_ARGS__)
>  
> +/*
> + * struct drm_device based logging
> + *
> + * Prefer drm_device based logging over device or prink based logging.
> + */
> +
> +/* Helper for struct drm_device based logging. */
> +#define __drm_printk(drm, level, type, fmt, ...)			\
> +	dev_##level##type((drm)->dev, "[drm] " fmt, ##__VA_ARGS__)
> +
> +
> +#define drm_info(drm, fmt, ...)					\
> +	__drm_printk((drm), info,, fmt, ##__VA_ARGS__)
> +
> +#define drm_notice(drm, fmt, ...)				\
> +	__drm_printk((drm), notice,, fmt, ##__VA_ARGS__)
> +
> +#define drm_warn(drm, fmt, ...)					\
> +	__drm_printk((drm), warn,, fmt, ##__VA_ARGS__)
> +
> +#define drm_err(drm, fmt, ...)					\
> +	__drm_printk((drm), err,, "*ERROR* " fmt, ##__VA_ARGS__)
> +
> +
> +#define drm_info_once(drm, fmt, ...)				\
> +	__drm_printk((drm), info, _once, fmt, ##__VA_ARGS__)
> +
> +#define drm_notice_once(drm, fmt, ...)				\
> +	__drm_printk((drm), notice, _once, fmt, ##__VA_ARGS__)
> +
> +#define drm_warn_once(drm, fmt, ...)				\
> +	__drm_printk((drm), warn, _once, fmt, ##__VA_ARGS__)
> +
> +#define drm_err_once(drm, fmt, ...)				\
> +	__drm_printk((drm), err, _once, "*ERROR* " fmt, ##__VA_ARGS__)
> +
> +
> +#define drm_err_ratelimited(drm, fmt, ...)				\
> +	__drm_printk((drm), err, _ratelimited, "*ERROR* " fmt, ##__VA_ARGS__)
> +
> +
> +#define drm_dbg_core(drm, fmt, ...)					\
> +	drm_dev_dbg((drm)->dev, DRM_UT_CORE, fmt, ##__VA_ARGS__)
> +#define drm_dbg(drm, fmt, ...)						\
> +	drm_dev_dbg((drm)->dev, DRM_UT_DRIVER, fmt, ##__VA_ARGS__)
> +#define drm_dbg_kms(drm, fmt, ...)					\
> +	drm_dev_dbg((drm)->dev, DRM_UT_KMS, fmt, ##__VA_ARGS__)
> +#define drm_dbg_prime(drm, fmt, ...)					\
> +	drm_dev_dbg((drm)->dev, DRM_UT_PRIME, fmt, ##__VA_ARGS__)
> +#define drm_dbg_atomic(drm, fmt, ...)					\
> +	drm_dev_dbg((drm)->dev, DRM_UT_ATOMIC, fmt, ##__VA_ARGS__)
> +#define drm_dbg_vbl(drm, fmt, ...)					\
> +	drm_dev_dbg((drm)->dev, DRM_UT_VBL, fmt, ##__VA_ARGS__)
> +#define drm_dbg_state(drm, fmt, ...)					\
> +	drm_dev_dbg((drm)->dev, DRM_UT_STATE, fmt, ##__VA_ARGS__)
> +#define drm_dbg_lease(drm, fmt, ...)					\
> +	drm_dev_dbg((drm)->dev, DRM_UT_LEASE, fmt, ##__VA_ARGS__)
> +#define drm_dbg_dp(drm, fmt, ...)					\
> +	drm_dev_dbg((drm)->dev, DRM_UT_DP, fmt, ##__VA_ARGS__)
> +
> +
>  /*
>   * printk based logging
> + *
> + * Prefer drm_device based logging over device or prink based logging.
>   */
>  
>  __printf(2, 3)

-- 
Jani Nikula, Intel Open Source Graphics Center
_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx

^ permalink raw reply	[flat|nested] 53+ messages in thread

* Re: [PATCH 1/8] drm/print: introduce new struct drm_device based logging macros
  2019-12-17 14:45   ` [Intel-gfx] " Jani Nikula
@ 2019-12-17 16:11     ` Sam Ravnborg
  -1 siblings, 0 replies; 53+ messages in thread
From: Sam Ravnborg @ 2019-12-17 16:11 UTC (permalink / raw)
  To: Jani Nikula; +Cc: intel-gfx, Sean Paul, dri-devel, Rodrigo Vivi

Hi Jani.

Will you type a todo entry as requested by Daniel?

> Pushed this one patch, thanks for the reviews and acks. The rest could
> still use review. ;)
Will take a look again later tonight.
I recall from last time I looked they were fine but I just never sent
anything to the ML.

	Sam
_______________________________________________
dri-devel mailing list
dri-devel@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/dri-devel

^ permalink raw reply	[flat|nested] 53+ messages in thread

* Re: [Intel-gfx] [PATCH 1/8] drm/print: introduce new struct drm_device based logging macros
@ 2019-12-17 16:11     ` Sam Ravnborg
  0 siblings, 0 replies; 53+ messages in thread
From: Sam Ravnborg @ 2019-12-17 16:11 UTC (permalink / raw)
  To: Jani Nikula; +Cc: intel-gfx, dri-devel

Hi Jani.

Will you type a todo entry as requested by Daniel?

> Pushed this one patch, thanks for the reviews and acks. The rest could
> still use review. ;)
Will take a look again later tonight.
I recall from last time I looked they were fine but I just never sent
anything to the ML.

	Sam
_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx

^ permalink raw reply	[flat|nested] 53+ messages in thread

* Re: [PATCH 2/8] drm/client: convert to drm device based logging
  2019-12-10 12:30   ` [Intel-gfx] " Jani Nikula
@ 2019-12-17 18:51     ` Sam Ravnborg
  -1 siblings, 0 replies; 53+ messages in thread
From: Sam Ravnborg @ 2019-12-17 18:51 UTC (permalink / raw)
  To: Jani Nikula; +Cc: intel-gfx, dri-devel

Hi Jani.

On Tue, Dec 10, 2019 at 02:30:44PM +0200, Jani Nikula wrote:
> Prefer drm_dbg_kms() and drm_err() over DRM_DEV_DEBUG_KMS() and
> DRM_DEV_ERROR().
> 
> Signed-off-by: Jani Nikula <jani.nikula@intel.com>
Reviewed-by: Sam Ravnborg <sam@ravnborg.org>

> ---
>  drivers/gpu/drm/drm_client.c | 10 +++++-----
>  1 file changed, 5 insertions(+), 5 deletions(-)
> 
> diff --git a/drivers/gpu/drm/drm_client.c b/drivers/gpu/drm/drm_client.c
> index d9a2e3695525..b031b45aa8ef 100644
> --- a/drivers/gpu/drm/drm_client.c
> +++ b/drivers/gpu/drm/drm_client.c
> @@ -150,7 +150,7 @@ void drm_client_release(struct drm_client_dev *client)
>  {
>  	struct drm_device *dev = client->dev;
>  
> -	DRM_DEV_DEBUG_KMS(dev->dev, "%s\n", client->name);
> +	drm_dbg_kms(dev, "%s\n", client->name);
>  
>  	drm_client_modeset_free(client);
>  	drm_client_close(client);
> @@ -203,7 +203,7 @@ void drm_client_dev_hotplug(struct drm_device *dev)
>  			continue;
>  
>  		ret = client->funcs->hotplug(client);
> -		DRM_DEV_DEBUG_KMS(dev->dev, "%s: ret=%d\n", client->name, ret);
> +		drm_dbg_kms(dev, "%s: ret=%d\n", client->name, ret);
>  	}
>  	mutex_unlock(&dev->clientlist_mutex);
>  }
> @@ -223,7 +223,7 @@ void drm_client_dev_restore(struct drm_device *dev)
>  			continue;
>  
>  		ret = client->funcs->restore(client);
> -		DRM_DEV_DEBUG_KMS(dev->dev, "%s: ret=%d\n", client->name, ret);
> +		drm_dbg_kms(dev, "%s: ret=%d\n", client->name, ret);
>  		if (!ret) /* The first one to return zero gets the privilege to restore */
>  			break;
>  	}
> @@ -351,8 +351,8 @@ static void drm_client_buffer_rmfb(struct drm_client_buffer *buffer)
>  
>  	ret = drm_mode_rmfb(buffer->client->dev, buffer->fb->base.id, buffer->client->file);
>  	if (ret)
> -		DRM_DEV_ERROR(buffer->client->dev->dev,
> -			      "Error removing FB:%u (%d)\n", buffer->fb->base.id, ret);
> +		drm_err(buffer->client->dev,
> +			"Error removing FB:%u (%d)\n", buffer->fb->base.id, ret);
>  
>  	buffer->fb = NULL;
>  }
> -- 
> 2.20.1
> 
> _______________________________________________
> dri-devel mailing list
> dri-devel@lists.freedesktop.org
> https://lists.freedesktop.org/mailman/listinfo/dri-devel
_______________________________________________
dri-devel mailing list
dri-devel@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/dri-devel

^ permalink raw reply	[flat|nested] 53+ messages in thread

* Re: [Intel-gfx] [PATCH 2/8] drm/client: convert to drm device based logging
@ 2019-12-17 18:51     ` Sam Ravnborg
  0 siblings, 0 replies; 53+ messages in thread
From: Sam Ravnborg @ 2019-12-17 18:51 UTC (permalink / raw)
  To: Jani Nikula; +Cc: intel-gfx, dri-devel

Hi Jani.

On Tue, Dec 10, 2019 at 02:30:44PM +0200, Jani Nikula wrote:
> Prefer drm_dbg_kms() and drm_err() over DRM_DEV_DEBUG_KMS() and
> DRM_DEV_ERROR().
> 
> Signed-off-by: Jani Nikula <jani.nikula@intel.com>
Reviewed-by: Sam Ravnborg <sam@ravnborg.org>

> ---
>  drivers/gpu/drm/drm_client.c | 10 +++++-----
>  1 file changed, 5 insertions(+), 5 deletions(-)
> 
> diff --git a/drivers/gpu/drm/drm_client.c b/drivers/gpu/drm/drm_client.c
> index d9a2e3695525..b031b45aa8ef 100644
> --- a/drivers/gpu/drm/drm_client.c
> +++ b/drivers/gpu/drm/drm_client.c
> @@ -150,7 +150,7 @@ void drm_client_release(struct drm_client_dev *client)
>  {
>  	struct drm_device *dev = client->dev;
>  
> -	DRM_DEV_DEBUG_KMS(dev->dev, "%s\n", client->name);
> +	drm_dbg_kms(dev, "%s\n", client->name);
>  
>  	drm_client_modeset_free(client);
>  	drm_client_close(client);
> @@ -203,7 +203,7 @@ void drm_client_dev_hotplug(struct drm_device *dev)
>  			continue;
>  
>  		ret = client->funcs->hotplug(client);
> -		DRM_DEV_DEBUG_KMS(dev->dev, "%s: ret=%d\n", client->name, ret);
> +		drm_dbg_kms(dev, "%s: ret=%d\n", client->name, ret);
>  	}
>  	mutex_unlock(&dev->clientlist_mutex);
>  }
> @@ -223,7 +223,7 @@ void drm_client_dev_restore(struct drm_device *dev)
>  			continue;
>  
>  		ret = client->funcs->restore(client);
> -		DRM_DEV_DEBUG_KMS(dev->dev, "%s: ret=%d\n", client->name, ret);
> +		drm_dbg_kms(dev, "%s: ret=%d\n", client->name, ret);
>  		if (!ret) /* The first one to return zero gets the privilege to restore */
>  			break;
>  	}
> @@ -351,8 +351,8 @@ static void drm_client_buffer_rmfb(struct drm_client_buffer *buffer)
>  
>  	ret = drm_mode_rmfb(buffer->client->dev, buffer->fb->base.id, buffer->client->file);
>  	if (ret)
> -		DRM_DEV_ERROR(buffer->client->dev->dev,
> -			      "Error removing FB:%u (%d)\n", buffer->fb->base.id, ret);
> +		drm_err(buffer->client->dev,
> +			"Error removing FB:%u (%d)\n", buffer->fb->base.id, ret);
>  
>  	buffer->fb = NULL;
>  }
> -- 
> 2.20.1
> 
> _______________________________________________
> dri-devel mailing list
> dri-devel@lists.freedesktop.org
> https://lists.freedesktop.org/mailman/listinfo/dri-devel
_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx

^ permalink raw reply	[flat|nested] 53+ messages in thread

* Re: [PATCH 3/8] drm/fb-helper: convert to drm device based logging
  2019-12-10 12:30   ` [Intel-gfx] " Jani Nikula
@ 2019-12-17 18:56     ` Sam Ravnborg
  -1 siblings, 0 replies; 53+ messages in thread
From: Sam Ravnborg @ 2019-12-17 18:56 UTC (permalink / raw)
  To: Jani Nikula; +Cc: intel-gfx, dri-devel

Hi Jani.

On Tue, Dec 10, 2019 at 02:30:45PM +0200, Jani Nikula wrote:
> Prefer drm_dbg_kms(), drm_info(), and drm_err() over all other
> logging. This is about KMS so switch to the KMS category while at it.
> 
> Signed-off-by: Jani Nikula <jani.nikula@intel.com>
Reviewed-by: Sam Ravnborg <sam@ravnborg.org>

> ---
>  drivers/gpu/drm/drm_fb_helper.c | 36 ++++++++++++++++++---------------
>  1 file changed, 20 insertions(+), 16 deletions(-)
> 
> diff --git a/drivers/gpu/drm/drm_fb_helper.c b/drivers/gpu/drm/drm_fb_helper.c
> index fb9bff0f4581..f8e905192608 100644
> --- a/drivers/gpu/drm/drm_fb_helper.c
> +++ b/drivers/gpu/drm/drm_fb_helper.c
> @@ -191,6 +191,7 @@ int drm_fb_helper_debug_leave(struct fb_info *info)
>  {
>  	struct drm_fb_helper *helper = info->par;
>  	struct drm_client_dev *client = &helper->client;
> +	struct drm_device *dev = helper->dev;
>  	struct drm_crtc *crtc;
>  	const struct drm_crtc_helper_funcs *funcs;
>  	struct drm_mode_set *mode_set;
> @@ -209,7 +210,7 @@ int drm_fb_helper_debug_leave(struct fb_info *info)
>  			continue;
>  
>  		if (!fb) {
> -			DRM_ERROR("no fb to restore??\n");
> +			drm_err(dev, "no fb to restore?\n");

>  			continue;
>  		}
>  
> @@ -1248,12 +1249,13 @@ int drm_fb_helper_check_var(struct fb_var_screeninfo *var,
>  {
>  	struct drm_fb_helper *fb_helper = info->par;
>  	struct drm_framebuffer *fb = fb_helper->fb;
> +	struct drm_device *dev = fb_helper->dev;
>  
>  	if (in_dbg_master())
>  		return -EINVAL;
>  
>  	if (var->pixclock != 0) {
> -		DRM_DEBUG("fbdev emulation doesn't support changing the pixel clock, value of pixclock is ignored\n");
> +		drm_dbg_kms(dev, "fbdev emulation doesn't support changing the pixel clock, value of pixclock is ignored\n");
>  		var->pixclock = 0;
>  	}
>  
> @@ -1268,7 +1270,7 @@ int drm_fb_helper_check_var(struct fb_var_screeninfo *var,
>  	if (var->bits_per_pixel != fb->format->cpp[0] * 8 ||
>  	    var->xres > fb->width || var->yres > fb->height ||
>  	    var->xres_virtual > fb->width || var->yres_virtual > fb->height) {
> -		DRM_DEBUG("fb requested width/height/bpp can't fit in current fb "
> +		drm_dbg_kms(dev, "fb requested width/height/bpp can't fit in current fb "
>  			  "request %dx%d-%d (virtual %dx%d) > %dx%d-%d\n",
>  			  var->xres, var->yres, var->bits_per_pixel,
>  			  var->xres_virtual, var->yres_virtual,
> @@ -1295,7 +1297,7 @@ int drm_fb_helper_check_var(struct fb_var_screeninfo *var,
>  	 * so reject all pixel format changing requests.
>  	 */
>  	if (!drm_fb_pixel_format_equal(var, &info->var)) {
> -		DRM_DEBUG("fbdev emulation doesn't support changing the pixel format\n");
> +		drm_dbg_kms(dev, "fbdev emulation doesn't support changing the pixel format\n");
>  		return -EINVAL;
>  	}
>  
> @@ -1320,7 +1322,7 @@ int drm_fb_helper_set_par(struct fb_info *info)
>  		return -EBUSY;
>  
>  	if (var->pixclock != 0) {
> -		DRM_ERROR("PIXEL CLOCK SET\n");
> +		drm_err(fb_helper->dev, "PIXEL CLOCK SET\n");
>  		return -EINVAL;
>  	}
>  
> @@ -1430,6 +1432,7 @@ static int drm_fb_helper_single_fb_probe(struct drm_fb_helper *fb_helper,
>  					 int preferred_bpp)
>  {
>  	struct drm_client_dev *client = &fb_helper->client;
> +	struct drm_device *dev = fb_helper->dev;
>  	int ret = 0;
>  	int crtc_count = 0;
>  	struct drm_connector_list_iter conn_iter;
> @@ -1493,7 +1496,7 @@ static int drm_fb_helper_single_fb_probe(struct drm_fb_helper *fb_helper,
>  		struct drm_plane *plane = crtc->primary;
>  		int j;
>  
> -		DRM_DEBUG("test CRTC %u primary plane\n", drm_crtc_index(crtc));
> +		drm_dbg_kms(dev, "test CRTC %u primary plane\n", drm_crtc_index(crtc));
>  
>  		for (j = 0; j < plane->format_count; j++) {
>  			const struct drm_format_info *fmt;
> @@ -1526,7 +1529,7 @@ static int drm_fb_helper_single_fb_probe(struct drm_fb_helper *fb_helper,
>  		}
>  	}
>  	if (sizes.surface_depth != best_depth && best_depth) {
> -		DRM_INFO("requested bpp %d, scaled depth down to %d",
> +		drm_info(dev, "requested bpp %d, scaled depth down to %d",
>  			 sizes.surface_bpp, best_depth);
>  		sizes.surface_depth = best_depth;
>  	}
> @@ -1574,7 +1577,7 @@ static int drm_fb_helper_single_fb_probe(struct drm_fb_helper *fb_helper,
>  	mutex_unlock(&client->modeset_mutex);
>  
>  	if (crtc_count == 0 || sizes.fb_width == -1 || sizes.fb_height == -1) {
> -		DRM_INFO("Cannot find any crtc or sizes\n");
> +		drm_info(dev, "Cannot find any crtc or sizes\n");
>  
>  		/* First time: disable all crtc's.. */
>  		if (!fb_helper->deferred_setup)
> @@ -1889,7 +1892,7 @@ int drm_fb_helper_hotplug_event(struct drm_fb_helper *fb_helper)
>  
>  	drm_master_internal_release(fb_helper->dev);
>  
> -	DRM_DEBUG_KMS("\n");
> +	drm_dbg_kms(fb_helper->dev, "\n");
>  
>  	drm_client_modeset_probe(&fb_helper->client, fb_helper->fb->width, fb_helper->fb->height);
>  	drm_setup_crtcs_fb(fb_helper);
> @@ -2026,15 +2029,16 @@ static int drm_fb_helper_generic_probe(struct drm_fb_helper *fb_helper,
>  				       struct drm_fb_helper_surface_size *sizes)
>  {
>  	struct drm_client_dev *client = &fb_helper->client;
> +	struct drm_device *dev = fb_helper->dev;
>  	struct drm_client_buffer *buffer;
>  	struct drm_framebuffer *fb;
>  	struct fb_info *fbi;
>  	u32 format;
>  	void *vaddr;
>  
> -	DRM_DEBUG_KMS("surface width(%d), height(%d) and bpp(%d)\n",
> -		      sizes->surface_width, sizes->surface_height,
> -		      sizes->surface_bpp);
> +	drm_dbg_kms(dev, "surface width(%d), height(%d) and bpp(%d)\n",
> +		    sizes->surface_width, sizes->surface_height,
> +		    sizes->surface_bpp);
>  
>  	format = drm_mode_legacy_fb_format(sizes->surface_bpp, sizes->surface_depth);
>  	buffer = drm_client_framebuffer_create(client, sizes->surface_width,
> @@ -2118,7 +2122,7 @@ static int drm_fbdev_client_hotplug(struct drm_client_dev *client)
>  		return drm_fb_helper_hotplug_event(dev->fb_helper);
>  
>  	if (!dev->mode_config.num_connector) {
> -		DRM_DEV_DEBUG(dev->dev, "No connectors found, will not create framebuffer!\n");
> +		drm_dbg_kms(dev, "No connectors found, will not create framebuffer!\n");
>  		return 0;
>  	}
>  
> @@ -2143,7 +2147,7 @@ static int drm_fbdev_client_hotplug(struct drm_client_dev *client)
>  	fb_helper->dev = NULL;
>  	fb_helper->fbdev = NULL;
>  
> -	DRM_DEV_ERROR(dev->dev, "fbdev: Failed to setup generic emulation (ret=%d)\n", ret);
> +	drm_err(dev, "fbdev: Failed to setup generic emulation (ret=%d)\n", ret);
>  
>  	return ret;
>  }
> @@ -2200,7 +2204,7 @@ int drm_fbdev_generic_setup(struct drm_device *dev, unsigned int preferred_bpp)
>  	ret = drm_client_init(dev, &fb_helper->client, "fbdev", &drm_fbdev_client_funcs);
>  	if (ret) {
>  		kfree(fb_helper);
> -		DRM_DEV_ERROR(dev->dev, "Failed to register client: %d\n", ret);
> +		drm_err(dev, "Failed to register client: %d\n", ret);
>  		return ret;
>  	}
>  
> @@ -2212,7 +2216,7 @@ int drm_fbdev_generic_setup(struct drm_device *dev, unsigned int preferred_bpp)
>  
>  	ret = drm_fbdev_client_hotplug(&fb_helper->client);
>  	if (ret)
> -		DRM_DEV_DEBUG(dev->dev, "client hotplug ret=%d\n", ret);
> +		drm_dbg_kms(dev, "client hotplug ret=%d\n", ret);
>  
>  	drm_client_register(&fb_helper->client);
>  
> -- 
> 2.20.1
> 
> _______________________________________________
> dri-devel mailing list
> dri-devel@lists.freedesktop.org
> https://lists.freedesktop.org/mailman/listinfo/dri-devel
_______________________________________________
dri-devel mailing list
dri-devel@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/dri-devel

^ permalink raw reply	[flat|nested] 53+ messages in thread

* Re: [Intel-gfx] [PATCH 3/8] drm/fb-helper: convert to drm device based logging
@ 2019-12-17 18:56     ` Sam Ravnborg
  0 siblings, 0 replies; 53+ messages in thread
From: Sam Ravnborg @ 2019-12-17 18:56 UTC (permalink / raw)
  To: Jani Nikula; +Cc: intel-gfx, dri-devel

Hi Jani.

On Tue, Dec 10, 2019 at 02:30:45PM +0200, Jani Nikula wrote:
> Prefer drm_dbg_kms(), drm_info(), and drm_err() over all other
> logging. This is about KMS so switch to the KMS category while at it.
> 
> Signed-off-by: Jani Nikula <jani.nikula@intel.com>
Reviewed-by: Sam Ravnborg <sam@ravnborg.org>

> ---
>  drivers/gpu/drm/drm_fb_helper.c | 36 ++++++++++++++++++---------------
>  1 file changed, 20 insertions(+), 16 deletions(-)
> 
> diff --git a/drivers/gpu/drm/drm_fb_helper.c b/drivers/gpu/drm/drm_fb_helper.c
> index fb9bff0f4581..f8e905192608 100644
> --- a/drivers/gpu/drm/drm_fb_helper.c
> +++ b/drivers/gpu/drm/drm_fb_helper.c
> @@ -191,6 +191,7 @@ int drm_fb_helper_debug_leave(struct fb_info *info)
>  {
>  	struct drm_fb_helper *helper = info->par;
>  	struct drm_client_dev *client = &helper->client;
> +	struct drm_device *dev = helper->dev;
>  	struct drm_crtc *crtc;
>  	const struct drm_crtc_helper_funcs *funcs;
>  	struct drm_mode_set *mode_set;
> @@ -209,7 +210,7 @@ int drm_fb_helper_debug_leave(struct fb_info *info)
>  			continue;
>  
>  		if (!fb) {
> -			DRM_ERROR("no fb to restore??\n");
> +			drm_err(dev, "no fb to restore?\n");

>  			continue;
>  		}
>  
> @@ -1248,12 +1249,13 @@ int drm_fb_helper_check_var(struct fb_var_screeninfo *var,
>  {
>  	struct drm_fb_helper *fb_helper = info->par;
>  	struct drm_framebuffer *fb = fb_helper->fb;
> +	struct drm_device *dev = fb_helper->dev;
>  
>  	if (in_dbg_master())
>  		return -EINVAL;
>  
>  	if (var->pixclock != 0) {
> -		DRM_DEBUG("fbdev emulation doesn't support changing the pixel clock, value of pixclock is ignored\n");
> +		drm_dbg_kms(dev, "fbdev emulation doesn't support changing the pixel clock, value of pixclock is ignored\n");
>  		var->pixclock = 0;
>  	}
>  
> @@ -1268,7 +1270,7 @@ int drm_fb_helper_check_var(struct fb_var_screeninfo *var,
>  	if (var->bits_per_pixel != fb->format->cpp[0] * 8 ||
>  	    var->xres > fb->width || var->yres > fb->height ||
>  	    var->xres_virtual > fb->width || var->yres_virtual > fb->height) {
> -		DRM_DEBUG("fb requested width/height/bpp can't fit in current fb "
> +		drm_dbg_kms(dev, "fb requested width/height/bpp can't fit in current fb "
>  			  "request %dx%d-%d (virtual %dx%d) > %dx%d-%d\n",
>  			  var->xres, var->yres, var->bits_per_pixel,
>  			  var->xres_virtual, var->yres_virtual,
> @@ -1295,7 +1297,7 @@ int drm_fb_helper_check_var(struct fb_var_screeninfo *var,
>  	 * so reject all pixel format changing requests.
>  	 */
>  	if (!drm_fb_pixel_format_equal(var, &info->var)) {
> -		DRM_DEBUG("fbdev emulation doesn't support changing the pixel format\n");
> +		drm_dbg_kms(dev, "fbdev emulation doesn't support changing the pixel format\n");
>  		return -EINVAL;
>  	}
>  
> @@ -1320,7 +1322,7 @@ int drm_fb_helper_set_par(struct fb_info *info)
>  		return -EBUSY;
>  
>  	if (var->pixclock != 0) {
> -		DRM_ERROR("PIXEL CLOCK SET\n");
> +		drm_err(fb_helper->dev, "PIXEL CLOCK SET\n");
>  		return -EINVAL;
>  	}
>  
> @@ -1430,6 +1432,7 @@ static int drm_fb_helper_single_fb_probe(struct drm_fb_helper *fb_helper,
>  					 int preferred_bpp)
>  {
>  	struct drm_client_dev *client = &fb_helper->client;
> +	struct drm_device *dev = fb_helper->dev;
>  	int ret = 0;
>  	int crtc_count = 0;
>  	struct drm_connector_list_iter conn_iter;
> @@ -1493,7 +1496,7 @@ static int drm_fb_helper_single_fb_probe(struct drm_fb_helper *fb_helper,
>  		struct drm_plane *plane = crtc->primary;
>  		int j;
>  
> -		DRM_DEBUG("test CRTC %u primary plane\n", drm_crtc_index(crtc));
> +		drm_dbg_kms(dev, "test CRTC %u primary plane\n", drm_crtc_index(crtc));
>  
>  		for (j = 0; j < plane->format_count; j++) {
>  			const struct drm_format_info *fmt;
> @@ -1526,7 +1529,7 @@ static int drm_fb_helper_single_fb_probe(struct drm_fb_helper *fb_helper,
>  		}
>  	}
>  	if (sizes.surface_depth != best_depth && best_depth) {
> -		DRM_INFO("requested bpp %d, scaled depth down to %d",
> +		drm_info(dev, "requested bpp %d, scaled depth down to %d",
>  			 sizes.surface_bpp, best_depth);
>  		sizes.surface_depth = best_depth;
>  	}
> @@ -1574,7 +1577,7 @@ static int drm_fb_helper_single_fb_probe(struct drm_fb_helper *fb_helper,
>  	mutex_unlock(&client->modeset_mutex);
>  
>  	if (crtc_count == 0 || sizes.fb_width == -1 || sizes.fb_height == -1) {
> -		DRM_INFO("Cannot find any crtc or sizes\n");
> +		drm_info(dev, "Cannot find any crtc or sizes\n");
>  
>  		/* First time: disable all crtc's.. */
>  		if (!fb_helper->deferred_setup)
> @@ -1889,7 +1892,7 @@ int drm_fb_helper_hotplug_event(struct drm_fb_helper *fb_helper)
>  
>  	drm_master_internal_release(fb_helper->dev);
>  
> -	DRM_DEBUG_KMS("\n");
> +	drm_dbg_kms(fb_helper->dev, "\n");
>  
>  	drm_client_modeset_probe(&fb_helper->client, fb_helper->fb->width, fb_helper->fb->height);
>  	drm_setup_crtcs_fb(fb_helper);
> @@ -2026,15 +2029,16 @@ static int drm_fb_helper_generic_probe(struct drm_fb_helper *fb_helper,
>  				       struct drm_fb_helper_surface_size *sizes)
>  {
>  	struct drm_client_dev *client = &fb_helper->client;
> +	struct drm_device *dev = fb_helper->dev;
>  	struct drm_client_buffer *buffer;
>  	struct drm_framebuffer *fb;
>  	struct fb_info *fbi;
>  	u32 format;
>  	void *vaddr;
>  
> -	DRM_DEBUG_KMS("surface width(%d), height(%d) and bpp(%d)\n",
> -		      sizes->surface_width, sizes->surface_height,
> -		      sizes->surface_bpp);
> +	drm_dbg_kms(dev, "surface width(%d), height(%d) and bpp(%d)\n",
> +		    sizes->surface_width, sizes->surface_height,
> +		    sizes->surface_bpp);
>  
>  	format = drm_mode_legacy_fb_format(sizes->surface_bpp, sizes->surface_depth);
>  	buffer = drm_client_framebuffer_create(client, sizes->surface_width,
> @@ -2118,7 +2122,7 @@ static int drm_fbdev_client_hotplug(struct drm_client_dev *client)
>  		return drm_fb_helper_hotplug_event(dev->fb_helper);
>  
>  	if (!dev->mode_config.num_connector) {
> -		DRM_DEV_DEBUG(dev->dev, "No connectors found, will not create framebuffer!\n");
> +		drm_dbg_kms(dev, "No connectors found, will not create framebuffer!\n");
>  		return 0;
>  	}
>  
> @@ -2143,7 +2147,7 @@ static int drm_fbdev_client_hotplug(struct drm_client_dev *client)
>  	fb_helper->dev = NULL;
>  	fb_helper->fbdev = NULL;
>  
> -	DRM_DEV_ERROR(dev->dev, "fbdev: Failed to setup generic emulation (ret=%d)\n", ret);
> +	drm_err(dev, "fbdev: Failed to setup generic emulation (ret=%d)\n", ret);
>  
>  	return ret;
>  }
> @@ -2200,7 +2204,7 @@ int drm_fbdev_generic_setup(struct drm_device *dev, unsigned int preferred_bpp)
>  	ret = drm_client_init(dev, &fb_helper->client, "fbdev", &drm_fbdev_client_funcs);
>  	if (ret) {
>  		kfree(fb_helper);
> -		DRM_DEV_ERROR(dev->dev, "Failed to register client: %d\n", ret);
> +		drm_err(dev, "Failed to register client: %d\n", ret);
>  		return ret;
>  	}
>  
> @@ -2212,7 +2216,7 @@ int drm_fbdev_generic_setup(struct drm_device *dev, unsigned int preferred_bpp)
>  
>  	ret = drm_fbdev_client_hotplug(&fb_helper->client);
>  	if (ret)
> -		DRM_DEV_DEBUG(dev->dev, "client hotplug ret=%d\n", ret);
> +		drm_dbg_kms(dev, "client hotplug ret=%d\n", ret);
>  
>  	drm_client_register(&fb_helper->client);
>  
> -- 
> 2.20.1
> 
> _______________________________________________
> dri-devel mailing list
> dri-devel@lists.freedesktop.org
> https://lists.freedesktop.org/mailman/listinfo/dri-devel
_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx

^ permalink raw reply	[flat|nested] 53+ messages in thread

* Re: [PATCH 4/8] drm/gem-fb-helper: convert to drm device based logging
  2019-12-10 12:30   ` [Intel-gfx] " Jani Nikula
@ 2019-12-17 18:57     ` Sam Ravnborg
  -1 siblings, 0 replies; 53+ messages in thread
From: Sam Ravnborg @ 2019-12-17 18:57 UTC (permalink / raw)
  To: Jani Nikula; +Cc: intel-gfx, dri-devel

On Tue, Dec 10, 2019 at 02:30:46PM +0200, Jani Nikula wrote:
> Prefer drm_dbg_kms() and drm_err() over all other logging.
> 
> Signed-off-by: Jani Nikula <jani.nikula@intel.com>
Reviewed-by: Sam Ravnborg <sam@ravnborg.org>

> ---
>  drivers/gpu/drm/drm_gem_framebuffer_helper.c | 5 ++---
>  1 file changed, 2 insertions(+), 3 deletions(-)
> 
> diff --git a/drivers/gpu/drm/drm_gem_framebuffer_helper.c b/drivers/gpu/drm/drm_gem_framebuffer_helper.c
> index b9bcd310ca2d..3a7ace19a902 100644
> --- a/drivers/gpu/drm/drm_gem_framebuffer_helper.c
> +++ b/drivers/gpu/drm/drm_gem_framebuffer_helper.c
> @@ -74,8 +74,7 @@ drm_gem_fb_alloc(struct drm_device *dev,
>  
>  	ret = drm_framebuffer_init(dev, fb, funcs);
>  	if (ret) {
> -		DRM_DEV_ERROR(dev->dev, "Failed to init framebuffer: %d\n",
> -			      ret);
> +		drm_err(dev, "Failed to init framebuffer: %d\n", ret);
>  		kfree(fb);
>  		return ERR_PTR(ret);
>  	}
> @@ -160,7 +159,7 @@ drm_gem_fb_create_with_funcs(struct drm_device *dev, struct drm_file *file,
>  
>  		objs[i] = drm_gem_object_lookup(file, mode_cmd->handles[i]);
>  		if (!objs[i]) {
> -			DRM_DEBUG_KMS("Failed to lookup GEM object\n");
> +			drm_dbg_kms(dev, "Failed to lookup GEM object\n");
>  			ret = -ENOENT;
>  			goto err_gem_object_put;
>  		}
> -- 
> 2.20.1
> 
> _______________________________________________
> dri-devel mailing list
> dri-devel@lists.freedesktop.org
> https://lists.freedesktop.org/mailman/listinfo/dri-devel
_______________________________________________
dri-devel mailing list
dri-devel@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/dri-devel

^ permalink raw reply	[flat|nested] 53+ messages in thread

* Re: [Intel-gfx] [PATCH 4/8] drm/gem-fb-helper: convert to drm device based logging
@ 2019-12-17 18:57     ` Sam Ravnborg
  0 siblings, 0 replies; 53+ messages in thread
From: Sam Ravnborg @ 2019-12-17 18:57 UTC (permalink / raw)
  To: Jani Nikula; +Cc: intel-gfx, dri-devel

On Tue, Dec 10, 2019 at 02:30:46PM +0200, Jani Nikula wrote:
> Prefer drm_dbg_kms() and drm_err() over all other logging.
> 
> Signed-off-by: Jani Nikula <jani.nikula@intel.com>
Reviewed-by: Sam Ravnborg <sam@ravnborg.org>

> ---
>  drivers/gpu/drm/drm_gem_framebuffer_helper.c | 5 ++---
>  1 file changed, 2 insertions(+), 3 deletions(-)
> 
> diff --git a/drivers/gpu/drm/drm_gem_framebuffer_helper.c b/drivers/gpu/drm/drm_gem_framebuffer_helper.c
> index b9bcd310ca2d..3a7ace19a902 100644
> --- a/drivers/gpu/drm/drm_gem_framebuffer_helper.c
> +++ b/drivers/gpu/drm/drm_gem_framebuffer_helper.c
> @@ -74,8 +74,7 @@ drm_gem_fb_alloc(struct drm_device *dev,
>  
>  	ret = drm_framebuffer_init(dev, fb, funcs);
>  	if (ret) {
> -		DRM_DEV_ERROR(dev->dev, "Failed to init framebuffer: %d\n",
> -			      ret);
> +		drm_err(dev, "Failed to init framebuffer: %d\n", ret);
>  		kfree(fb);
>  		return ERR_PTR(ret);
>  	}
> @@ -160,7 +159,7 @@ drm_gem_fb_create_with_funcs(struct drm_device *dev, struct drm_file *file,
>  
>  		objs[i] = drm_gem_object_lookup(file, mode_cmd->handles[i]);
>  		if (!objs[i]) {
> -			DRM_DEBUG_KMS("Failed to lookup GEM object\n");
> +			drm_dbg_kms(dev, "Failed to lookup GEM object\n");
>  			ret = -ENOENT;
>  			goto err_gem_object_put;
>  		}
> -- 
> 2.20.1
> 
> _______________________________________________
> dri-devel mailing list
> dri-devel@lists.freedesktop.org
> https://lists.freedesktop.org/mailman/listinfo/dri-devel
_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx

^ permalink raw reply	[flat|nested] 53+ messages in thread

* Re: [PATCH 5/8] drm/mipi-dbi: convert to drm device based logging
  2019-12-10 12:30   ` [Intel-gfx] " Jani Nikula
@ 2019-12-17 19:00     ` Sam Ravnborg
  -1 siblings, 0 replies; 53+ messages in thread
From: Sam Ravnborg @ 2019-12-17 19:00 UTC (permalink / raw)
  To: Jani Nikula; +Cc: intel-gfx, dri-devel

On Tue, Dec 10, 2019 at 02:30:47PM +0200, Jani Nikula wrote:
> Prefer drm device based logging where possible.
> 
> Signed-off-by: Jani Nikula <jani.nikula@intel.com>
> ---
>  drivers/gpu/drm/drm_mipi_dbi.c | 15 ++++++++-------
>  1 file changed, 8 insertions(+), 7 deletions(-)
> 
> diff --git a/drivers/gpu/drm/drm_mipi_dbi.c b/drivers/gpu/drm/drm_mipi_dbi.c
> index e34058c721be..86d98e7fc30a 100644
> --- a/drivers/gpu/drm/drm_mipi_dbi.c
> +++ b/drivers/gpu/drm/drm_mipi_dbi.c
> @@ -225,7 +225,7 @@ int mipi_dbi_buf_copy(void *dst, struct drm_framebuffer *fb,
>  		drm_fb_xrgb8888_to_rgb565(dst, src, fb, clip, swap);
>  		break;
>  	default:
> -		dev_err_once(fb->dev->dev, "Format is not supported: %s\n",
> +		drm_err_once(fb->dev, "Format is not supported: %s\n",
>  			     drm_get_format_name(fb->format->format,
>  						 &format_name));
>  		return -EINVAL;
> @@ -242,7 +242,8 @@ static void mipi_dbi_fb_dirty(struct drm_framebuffer *fb, struct drm_rect *rect)
>  {
>  	struct drm_gem_object *gem = drm_gem_fb_get_obj(fb, 0);
>  	struct drm_gem_cma_object *cma_obj = to_drm_gem_cma_obj(gem);
> -	struct mipi_dbi_dev *dbidev = drm_to_mipi_dbi_dev(fb->dev);
> +	struct drm_device *dev = fb->dev;

In this file the pattern is to use the variable name "drm" for a
drm_device *. Your changes should follow the same pattern.

	Sam

> +	struct mipi_dbi_dev *dbidev = drm_to_mipi_dbi_dev(dev);
>  	unsigned int height = rect->y2 - rect->y1;
>  	unsigned int width = rect->x2 - rect->x1;
>  	struct mipi_dbi *dbi = &dbidev->dbi;
> @@ -259,7 +260,7 @@ static void mipi_dbi_fb_dirty(struct drm_framebuffer *fb, struct drm_rect *rect)
>  
>  	full = width == fb->width && height == fb->height;
>  
> -	DRM_DEBUG_KMS("Flushing [FB:%d] " DRM_RECT_FMT "\n", fb->base.id, DRM_RECT_ARG(rect));
> +	drm_dbg_kms(dev, "Flushing [FB:%d] " DRM_RECT_FMT "\n", fb->base.id, DRM_RECT_ARG(rect));
>  
>  	if (!dbi->dc || !full || swap ||
>  	    fb->format->format == DRM_FORMAT_XRGB8888) {
> @@ -282,7 +283,7 @@ static void mipi_dbi_fb_dirty(struct drm_framebuffer *fb, struct drm_rect *rect)
>  				   width * height * 2);
>  err_msg:
>  	if (ret)
> -		dev_err_once(fb->dev->dev, "Failed to update display %d\n", ret);
> +		drm_err_once(dev, "Failed to update display %d\n", ret);
>  
>  	drm_dev_exit(idx);
>  }
> @@ -649,14 +650,14 @@ EXPORT_SYMBOL(mipi_dbi_display_is_on);
>  
>  static int mipi_dbi_poweron_reset_conditional(struct mipi_dbi_dev *dbidev, bool cond)
>  {
> -	struct device *dev = dbidev->drm.dev;
> +	struct drm_device *dev = &dbidev->drm;
>  	struct mipi_dbi *dbi = &dbidev->dbi;
>  	int ret;
>  
>  	if (dbidev->regulator) {
>  		ret = regulator_enable(dbidev->regulator);
>  		if (ret) {
> -			DRM_DEV_ERROR(dev, "Failed to enable regulator (%d)\n", ret);
> +			drm_err(dev, "Failed to enable regulator (%d)\n", ret);
>  			return ret;
>  		}
>  	}
> @@ -667,7 +668,7 @@ static int mipi_dbi_poweron_reset_conditional(struct mipi_dbi_dev *dbidev, bool
>  	mipi_dbi_hw_reset(dbi);
>  	ret = mipi_dbi_command(dbi, MIPI_DCS_SOFT_RESET);
>  	if (ret) {
> -		DRM_DEV_ERROR(dev, "Failed to send reset command (%d)\n", ret);
> +		drm_err(dev, "Failed to send reset command (%d)\n", ret);
>  		if (dbidev->regulator)
>  			regulator_disable(dbidev->regulator);
>  		return ret;
> -- 
> 2.20.1
> 
> _______________________________________________
> dri-devel mailing list
> dri-devel@lists.freedesktop.org
> https://lists.freedesktop.org/mailman/listinfo/dri-devel
_______________________________________________
dri-devel mailing list
dri-devel@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/dri-devel

^ permalink raw reply	[flat|nested] 53+ messages in thread

* Re: [Intel-gfx] [PATCH 5/8] drm/mipi-dbi: convert to drm device based logging
@ 2019-12-17 19:00     ` Sam Ravnborg
  0 siblings, 0 replies; 53+ messages in thread
From: Sam Ravnborg @ 2019-12-17 19:00 UTC (permalink / raw)
  To: Jani Nikula; +Cc: intel-gfx, dri-devel

On Tue, Dec 10, 2019 at 02:30:47PM +0200, Jani Nikula wrote:
> Prefer drm device based logging where possible.
> 
> Signed-off-by: Jani Nikula <jani.nikula@intel.com>
> ---
>  drivers/gpu/drm/drm_mipi_dbi.c | 15 ++++++++-------
>  1 file changed, 8 insertions(+), 7 deletions(-)
> 
> diff --git a/drivers/gpu/drm/drm_mipi_dbi.c b/drivers/gpu/drm/drm_mipi_dbi.c
> index e34058c721be..86d98e7fc30a 100644
> --- a/drivers/gpu/drm/drm_mipi_dbi.c
> +++ b/drivers/gpu/drm/drm_mipi_dbi.c
> @@ -225,7 +225,7 @@ int mipi_dbi_buf_copy(void *dst, struct drm_framebuffer *fb,
>  		drm_fb_xrgb8888_to_rgb565(dst, src, fb, clip, swap);
>  		break;
>  	default:
> -		dev_err_once(fb->dev->dev, "Format is not supported: %s\n",
> +		drm_err_once(fb->dev, "Format is not supported: %s\n",
>  			     drm_get_format_name(fb->format->format,
>  						 &format_name));
>  		return -EINVAL;
> @@ -242,7 +242,8 @@ static void mipi_dbi_fb_dirty(struct drm_framebuffer *fb, struct drm_rect *rect)
>  {
>  	struct drm_gem_object *gem = drm_gem_fb_get_obj(fb, 0);
>  	struct drm_gem_cma_object *cma_obj = to_drm_gem_cma_obj(gem);
> -	struct mipi_dbi_dev *dbidev = drm_to_mipi_dbi_dev(fb->dev);
> +	struct drm_device *dev = fb->dev;

In this file the pattern is to use the variable name "drm" for a
drm_device *. Your changes should follow the same pattern.

	Sam

> +	struct mipi_dbi_dev *dbidev = drm_to_mipi_dbi_dev(dev);
>  	unsigned int height = rect->y2 - rect->y1;
>  	unsigned int width = rect->x2 - rect->x1;
>  	struct mipi_dbi *dbi = &dbidev->dbi;
> @@ -259,7 +260,7 @@ static void mipi_dbi_fb_dirty(struct drm_framebuffer *fb, struct drm_rect *rect)
>  
>  	full = width == fb->width && height == fb->height;
>  
> -	DRM_DEBUG_KMS("Flushing [FB:%d] " DRM_RECT_FMT "\n", fb->base.id, DRM_RECT_ARG(rect));
> +	drm_dbg_kms(dev, "Flushing [FB:%d] " DRM_RECT_FMT "\n", fb->base.id, DRM_RECT_ARG(rect));
>  
>  	if (!dbi->dc || !full || swap ||
>  	    fb->format->format == DRM_FORMAT_XRGB8888) {
> @@ -282,7 +283,7 @@ static void mipi_dbi_fb_dirty(struct drm_framebuffer *fb, struct drm_rect *rect)
>  				   width * height * 2);
>  err_msg:
>  	if (ret)
> -		dev_err_once(fb->dev->dev, "Failed to update display %d\n", ret);
> +		drm_err_once(dev, "Failed to update display %d\n", ret);
>  
>  	drm_dev_exit(idx);
>  }
> @@ -649,14 +650,14 @@ EXPORT_SYMBOL(mipi_dbi_display_is_on);
>  
>  static int mipi_dbi_poweron_reset_conditional(struct mipi_dbi_dev *dbidev, bool cond)
>  {
> -	struct device *dev = dbidev->drm.dev;
> +	struct drm_device *dev = &dbidev->drm;
>  	struct mipi_dbi *dbi = &dbidev->dbi;
>  	int ret;
>  
>  	if (dbidev->regulator) {
>  		ret = regulator_enable(dbidev->regulator);
>  		if (ret) {
> -			DRM_DEV_ERROR(dev, "Failed to enable regulator (%d)\n", ret);
> +			drm_err(dev, "Failed to enable regulator (%d)\n", ret);
>  			return ret;
>  		}
>  	}
> @@ -667,7 +668,7 @@ static int mipi_dbi_poweron_reset_conditional(struct mipi_dbi_dev *dbidev, bool
>  	mipi_dbi_hw_reset(dbi);
>  	ret = mipi_dbi_command(dbi, MIPI_DCS_SOFT_RESET);
>  	if (ret) {
> -		DRM_DEV_ERROR(dev, "Failed to send reset command (%d)\n", ret);
> +		drm_err(dev, "Failed to send reset command (%d)\n", ret);
>  		if (dbidev->regulator)
>  			regulator_disable(dbidev->regulator);
>  		return ret;
> -- 
> 2.20.1
> 
> _______________________________________________
> dri-devel mailing list
> dri-devel@lists.freedesktop.org
> https://lists.freedesktop.org/mailman/listinfo/dri-devel
_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx

^ permalink raw reply	[flat|nested] 53+ messages in thread

* Re: [PATCH 6/8] drm/atomic: convert to drm device based logging
  2019-12-10 12:30   ` [Intel-gfx] " Jani Nikula
@ 2019-12-17 19:07     ` Sam Ravnborg
  -1 siblings, 0 replies; 53+ messages in thread
From: Sam Ravnborg @ 2019-12-17 19:07 UTC (permalink / raw)
  To: Jani Nikula; +Cc: intel-gfx, dri-devel

Hi Jani.

On Tue, Dec 10, 2019 at 02:30:48PM +0200, Jani Nikula wrote:
> Prefer drm_dbg_atomic().

This patch simplify code by introducing a local drm_device varialble
which is good. But this is not mentioned in the cahngelog.

Anf the patch uses more than just drm_dbg_atomic(), see for example the
first patch below.

With updated changelog and small nit mentioned later fixed:
Reviewed-by: Sam Ravnborg <sam@ravnborg.org>

	Sam

> 
> Signed-off-by: Jani Nikula <jani.nikula@intel.com>
> ---
>  drivers/gpu/drm/drm_agpsupport.c |   4 +-
>  drivers/gpu/drm/drm_atomic.c     | 187 +++++++++++++++++--------------
>  2 files changed, 102 insertions(+), 89 deletions(-)
> 
> diff --git a/drivers/gpu/drm/drm_agpsupport.c b/drivers/gpu/drm/drm_agpsupport.c
> index 4c7ad46fdd21..cd675e58de50 100644
> --- a/drivers/gpu/drm/drm_agpsupport.c
> +++ b/drivers/gpu/drm/drm_agpsupport.c
> @@ -330,8 +330,8 @@ int drm_agp_bind(struct drm_device *dev, struct drm_agp_binding *request)
>  	if (retcode)
>  		return retcode;
>  	entry->bound = dev->agp->base + (page << PAGE_SHIFT);
> -	DRM_DEBUG("base = 0x%lx entry->bound = 0x%lx\n",
> -		  dev->agp->base, entry->bound);
> +	drm_dbg_core(dev, "base = 0x%lx entry->bound = 0x%lx\n",
> +		     dev->agp->base, entry->bound);
>  	return 0;
>  }
>  EXPORT_SYMBOL(drm_agp_bind);
> diff --git a/drivers/gpu/drm/drm_atomic.c b/drivers/gpu/drm/drm_atomic.c
> index 14aeaf736321..8494b1c29bf0 100644
> --- a/drivers/gpu/drm/drm_atomic.c
> +++ b/drivers/gpu/drm/drm_atomic.c
> @@ -99,7 +99,7 @@ drm_atomic_state_init(struct drm_device *dev, struct drm_atomic_state *state)
>  
>  	state->dev = dev;
>  
> -	DRM_DEBUG_ATOMIC("Allocated atomic state %p\n", state);
> +	drm_dbg_atomic(dev, "Allocated atomic state %p\n", state);
>  
>  	return 0;
>  fail:
> @@ -150,7 +150,7 @@ void drm_atomic_state_default_clear(struct drm_atomic_state *state)
>  	struct drm_mode_config *config = &dev->mode_config;
>  	int i;
>  
> -	DRM_DEBUG_ATOMIC("Clearing atomic state %p\n", state);
> +	drm_dbg_atomic(dev, "Clearing atomic state %p\n", state);
>  
>  	for (i = 0; i < state->num_connector; i++) {
>  		struct drm_connector *connector = state->connectors[i].ptr;
> @@ -256,11 +256,12 @@ EXPORT_SYMBOL(drm_atomic_state_clear);
>  void __drm_atomic_state_free(struct kref *ref)
>  {
>  	struct drm_atomic_state *state = container_of(ref, typeof(*state), ref);
> -	struct drm_mode_config *config = &state->dev->mode_config;
> +	struct drm_device *dev = state->dev;
> +	struct drm_mode_config *config = &dev->mode_config;
>  
>  	drm_atomic_state_clear(state);
>  
> -	DRM_DEBUG_ATOMIC("Freeing atomic state %p\n", state);
> +	drm_dbg_atomic(dev, "Freeing atomic state %p\n", state);
>  
>  	if (config->funcs->atomic_state_free) {
>  		config->funcs->atomic_state_free(state);
> @@ -290,8 +291,9 @@ struct drm_crtc_state *
>  drm_atomic_get_crtc_state(struct drm_atomic_state *state,
>  			  struct drm_crtc *crtc)
>  {
> -	int ret, index = drm_crtc_index(crtc);
> +	struct drm_device *dev = state->dev;
>  	struct drm_crtc_state *crtc_state;
> +	int ret, index = drm_crtc_index(crtc);
>  
>  	WARN_ON(!state->acquire_ctx);
>  
> @@ -313,8 +315,8 @@ drm_atomic_get_crtc_state(struct drm_atomic_state *state,
>  	state->crtcs[index].ptr = crtc;
>  	crtc_state->state = state;
>  
> -	DRM_DEBUG_ATOMIC("Added [CRTC:%d:%s] %p state to %p\n",
> -			 crtc->base.id, crtc->name, crtc_state, state);
> +	drm_dbg_atomic(dev, "Added [CRTC:%d:%s] %p state to %p\n",
> +		       crtc->base.id, crtc->name, crtc_state, state);
>  
>  	return crtc_state;
>  }
> @@ -324,6 +326,7 @@ static int drm_atomic_crtc_check(const struct drm_crtc_state *old_crtc_state,
>  				 const struct drm_crtc_state *new_crtc_state)
>  {
>  	struct drm_crtc *crtc = new_crtc_state->crtc;
> +	struct drm_device *dev = crtc->dev;
>  
>  	/* NOTE: we explicitly don't enforce constraints such as primary
>  	 * layer covering entire screen, since that is something we want
> @@ -334,25 +337,25 @@ static int drm_atomic_crtc_check(const struct drm_crtc_state *old_crtc_state,
>  	 */
>  
>  	if (new_crtc_state->active && !new_crtc_state->enable) {
> -		DRM_DEBUG_ATOMIC("[CRTC:%d:%s] active without enabled\n",
> -				 crtc->base.id, crtc->name);
> +		drm_dbg_atomic(dev, "[CRTC:%d:%s] active without enabled\n",
> +			       crtc->base.id, crtc->name);
>  		return -EINVAL;
>  	}
>  
>  	/* The state->enable vs. state->mode_blob checks can be WARN_ON,
>  	 * as this is a kernel-internal detail that userspace should never
>  	 * be able to trigger. */
> -	if (drm_core_check_feature(crtc->dev, DRIVER_ATOMIC) &&
> +	if (drm_core_check_feature(dev, DRIVER_ATOMIC) &&
>  	    WARN_ON(new_crtc_state->enable && !new_crtc_state->mode_blob)) {
> -		DRM_DEBUG_ATOMIC("[CRTC:%d:%s] enabled without mode blob\n",
> -				 crtc->base.id, crtc->name);
> +		drm_dbg_atomic(dev, "[CRTC:%d:%s] enabled without mode blob\n",
> +			       crtc->base.id, crtc->name);
>  		return -EINVAL;
>  	}
>  
> -	if (drm_core_check_feature(crtc->dev, DRIVER_ATOMIC) &&
> +	if (drm_core_check_feature(dev, DRIVER_ATOMIC) &&
>  	    WARN_ON(!new_crtc_state->enable && new_crtc_state->mode_blob)) {
> -		DRM_DEBUG_ATOMIC("[CRTC:%d:%s] disabled with mode blob\n",
> -				 crtc->base.id, crtc->name);
> +		drm_dbg_atomic(dev, "[CRTC:%d:%s] disabled with mode blob\n",
> +			       crtc->base.id, crtc->name);
>  		return -EINVAL;
>  	}
>  
> @@ -368,8 +371,8 @@ static int drm_atomic_crtc_check(const struct drm_crtc_state *old_crtc_state,
>  	 */
>  	if (new_crtc_state->event &&
>  	    !new_crtc_state->active && !old_crtc_state->active) {
> -		DRM_DEBUG_ATOMIC("[CRTC:%d:%s] requesting event but off\n",
> -				 crtc->base.id, crtc->name);
> +		drm_dbg_atomic(dev, "[CRTC:%d:%s] requesting event but off\n",
> +			       crtc->base.id, crtc->name);
>  		return -EINVAL;
>  	}
>  
> @@ -402,6 +405,7 @@ static void drm_atomic_crtc_print_state(struct drm_printer *p,
>  static int drm_atomic_connector_check(struct drm_connector *connector,
>  		struct drm_connector_state *state)
>  {
> +	struct drm_device *dev = connector->dev;
>  	struct drm_crtc_state *crtc_state;
>  	struct drm_writeback_job *writeback_job = state->writeback_job;
>  	const struct drm_display_info *info = &connector->display_info;
> @@ -414,8 +418,8 @@ static int drm_atomic_connector_check(struct drm_connector *connector,
>  		return 0;
>  
>  	if (writeback_job->fb && !state->crtc) {
> -		DRM_DEBUG_ATOMIC("[CONNECTOR:%d:%s] framebuffer without CRTC\n",
> -				 connector->base.id, connector->name);
> +		drm_dbg_atomic(dev, "[CONNECTOR:%d:%s] framebuffer without CRTC\n",
> +			       connector->base.id, connector->name);
>  		return -EINVAL;
>  	}
>  
> @@ -424,16 +428,16 @@ static int drm_atomic_connector_check(struct drm_connector *connector,
>  								state->crtc);
>  
>  	if (writeback_job->fb && !crtc_state->active) {
> -		DRM_DEBUG_ATOMIC("[CONNECTOR:%d:%s] has framebuffer, but [CRTC:%d] is off\n",
> -				 connector->base.id, connector->name,
> -				 state->crtc->base.id);
> +		drm_dbg_atomic(dev, "[CONNECTOR:%d:%s] has framebuffer, but [CRTC:%d] is off\n",
> +			       connector->base.id, connector->name,
> +			       state->crtc->base.id);
>  		return -EINVAL;
>  	}
>  
>  	if (!writeback_job->fb) {
>  		if (writeback_job->out_fence) {
> -			DRM_DEBUG_ATOMIC("[CONNECTOR:%d:%s] requesting out-fence without framebuffer\n",
> -					 connector->base.id, connector->name);
> +			drm_dbg_atomic(dev, "[CONNECTOR:%d:%s] requesting out-fence without framebuffer\n",
> +				       connector->base.id, connector->name);
>  			return -EINVAL;
>  		}
>  
> @@ -463,8 +467,9 @@ struct drm_plane_state *
>  drm_atomic_get_plane_state(struct drm_atomic_state *state,
>  			  struct drm_plane *plane)
>  {
> -	int ret, index = drm_plane_index(plane);
> +	struct drm_device *dev = state->dev;
>  	struct drm_plane_state *plane_state;
> +	int ret, index = drm_plane_index(plane);
We often see inverse xmas used for local variables.
Here you move a line to make it xmas style.
Could we avoid this extra change?

>  
>  	WARN_ON(!state->acquire_ctx);
>  
> @@ -491,8 +496,8 @@ drm_atomic_get_plane_state(struct drm_atomic_state *state,
>  	state->planes[index].new_state = plane_state;
>  	plane_state->state = state;
>  
> -	DRM_DEBUG_ATOMIC("Added [PLANE:%d:%s] %p state to %p\n",
> -			 plane->base.id, plane->name, plane_state, state);
> +	drm_dbg_atomic(dev, "Added [PLANE:%d:%s] %p state to %p\n",
> +		       plane->base.id, plane->name, plane_state, state);
>  
>  	if (plane_state->crtc) {
>  		struct drm_crtc_state *crtc_state;
> @@ -539,6 +544,7 @@ static int drm_atomic_plane_check(const struct drm_plane_state *old_plane_state,
>  				  const struct drm_plane_state *new_plane_state)
>  {
>  	struct drm_plane *plane = new_plane_state->plane;
> +	struct drm_device *dev = plane->dev;
>  	struct drm_crtc *crtc = new_plane_state->crtc;
>  	const struct drm_framebuffer *fb = new_plane_state->fb;
>  	unsigned int fb_width, fb_height;
> @@ -548,12 +554,12 @@ static int drm_atomic_plane_check(const struct drm_plane_state *old_plane_state,
>  
>  	/* either *both* CRTC and FB must be set, or neither */
>  	if (crtc && !fb) {
> -		DRM_DEBUG_ATOMIC("[PLANE:%d:%s] CRTC set but no FB\n",
> -				 plane->base.id, plane->name);
> +		drm_dbg_atomic(dev, "[PLANE:%d:%s] CRTC set but no FB\n",
> +			       plane->base.id, plane->name);
>  		return -EINVAL;
>  	} else if (fb && !crtc) {
> -		DRM_DEBUG_ATOMIC("[PLANE:%d:%s] FB set but no CRTC\n",
> -				 plane->base.id, plane->name);
> +		drm_dbg_atomic(dev, "[PLANE:%d:%s] FB set but no CRTC\n",
> +			       plane->base.id, plane->name);
>  		return -EINVAL;
>  	}
>  
> @@ -563,9 +569,9 @@ static int drm_atomic_plane_check(const struct drm_plane_state *old_plane_state,
>  
>  	/* Check whether this plane is usable on this CRTC */
>  	if (!(plane->possible_crtcs & drm_crtc_mask(crtc))) {
> -		DRM_DEBUG_ATOMIC("Invalid [CRTC:%d:%s] for [PLANE:%d:%s]\n",
> -				 crtc->base.id, crtc->name,
> -				 plane->base.id, plane->name);
> +		drm_dbg_atomic(dev, "Invalid [CRTC:%d:%s] for [PLANE:%d:%s]\n",
> +			       crtc->base.id, crtc->name,
> +			       plane->base.id, plane->name);
>  		return -EINVAL;
>  	}
>  
> @@ -574,11 +580,11 @@ static int drm_atomic_plane_check(const struct drm_plane_state *old_plane_state,
>  					   fb->modifier);
>  	if (ret) {
>  		struct drm_format_name_buf format_name;
> -		DRM_DEBUG_ATOMIC("[PLANE:%d:%s] invalid pixel format %s, modifier 0x%llx\n",
> -				 plane->base.id, plane->name,
> -				 drm_get_format_name(fb->format->format,
> -						     &format_name),
> -				 fb->modifier);
> +		drm_dbg_atomic(dev, "[PLANE:%d:%s] invalid pixel format %s, modifier 0x%llx\n",
> +			       plane->base.id, plane->name,
> +			       drm_get_format_name(fb->format->format,
> +						   &format_name),
> +			       fb->modifier);
>  		return ret;
>  	}
>  
> @@ -587,10 +593,10 @@ static int drm_atomic_plane_check(const struct drm_plane_state *old_plane_state,
>  	    new_plane_state->crtc_x > INT_MAX - (int32_t) new_plane_state->crtc_w ||
>  	    new_plane_state->crtc_h > INT_MAX ||
>  	    new_plane_state->crtc_y > INT_MAX - (int32_t) new_plane_state->crtc_h) {
> -		DRM_DEBUG_ATOMIC("[PLANE:%d:%s] invalid CRTC coordinates %ux%u+%d+%d\n",
> -				 plane->base.id, plane->name,
> -				 new_plane_state->crtc_w, new_plane_state->crtc_h,
> -				 new_plane_state->crtc_x, new_plane_state->crtc_y);
> +		drm_dbg_atomic(dev, "[PLANE:%d:%s] invalid CRTC coordinates %ux%u+%d+%d\n",
> +			       plane->base.id, plane->name,
> +			       new_plane_state->crtc_w, new_plane_state->crtc_h,
> +			       new_plane_state->crtc_x, new_plane_state->crtc_y);
>  		return -ERANGE;
>  	}
>  
> @@ -602,18 +608,18 @@ static int drm_atomic_plane_check(const struct drm_plane_state *old_plane_state,
>  	    new_plane_state->src_x > fb_width - new_plane_state->src_w ||
>  	    new_plane_state->src_h > fb_height ||
>  	    new_plane_state->src_y > fb_height - new_plane_state->src_h) {
> -		DRM_DEBUG_ATOMIC("[PLANE:%d:%s] invalid source coordinates "
> -				 "%u.%06ux%u.%06u+%u.%06u+%u.%06u (fb %ux%u)\n",
> -				 plane->base.id, plane->name,
> -				 new_plane_state->src_w >> 16,
> -				 ((new_plane_state->src_w & 0xffff) * 15625) >> 10,
> -				 new_plane_state->src_h >> 16,
> -				 ((new_plane_state->src_h & 0xffff) * 15625) >> 10,
> -				 new_plane_state->src_x >> 16,
> -				 ((new_plane_state->src_x & 0xffff) * 15625) >> 10,
> -				 new_plane_state->src_y >> 16,
> -				 ((new_plane_state->src_y & 0xffff) * 15625) >> 10,
> -				 fb->width, fb->height);
> +		drm_dbg_atomic(dev, "[PLANE:%d:%s] invalid source coordinates "
> +			       "%u.%06ux%u.%06u+%u.%06u+%u.%06u (fb %ux%u)\n",
> +			       plane->base.id, plane->name,
> +			       new_plane_state->src_w >> 16,
> +			       ((new_plane_state->src_w & 0xffff) * 15625) >> 10,
> +			       new_plane_state->src_h >> 16,
> +			       ((new_plane_state->src_h & 0xffff) * 15625) >> 10,
> +			       new_plane_state->src_x >> 16,
> +			       ((new_plane_state->src_x & 0xffff) * 15625) >> 10,
> +			       new_plane_state->src_y >> 16,
> +			       ((new_plane_state->src_y & 0xffff) * 15625) >> 10,
> +			       fb->width, fb->height);
>  		return -ENOSPC;
>  	}
>  
> @@ -628,9 +634,9 @@ static int drm_atomic_plane_check(const struct drm_plane_state *old_plane_state,
>  		    clips->y1 < 0 ||
>  		    clips->x2 > fb_width ||
>  		    clips->y2 > fb_height) {
> -			DRM_DEBUG_ATOMIC("[PLANE:%d:%s] invalid damage clip %d %d %d %d\n",
> -					 plane->base.id, plane->name, clips->x1,
> -					 clips->y1, clips->x2, clips->y2);
> +			drm_dbg_atomic(dev, "[PLANE:%d:%s] invalid damage clip %d %d %d %d\n",
> +				       plane->base.id, plane->name, clips->x1,
> +				       clips->y1, clips->x2, clips->y2);
>  			return -EINVAL;
>  		}
>  		clips++;
> @@ -638,8 +644,8 @@ static int drm_atomic_plane_check(const struct drm_plane_state *old_plane_state,
>  	}
>  
>  	if (plane_switching_crtc(old_plane_state, new_plane_state)) {
> -		DRM_DEBUG_ATOMIC("[PLANE:%d:%s] switching CRTC directly\n",
> -				 plane->base.id, plane->name);
> +		drm_dbg_atomic(dev, "[PLANE:%d:%s] switching CRTC directly\n",
> +			       plane->base.id, plane->name);
>  		return -EINVAL;
>  	}
>  
> @@ -766,6 +772,7 @@ struct drm_private_state *
>  drm_atomic_get_private_obj_state(struct drm_atomic_state *state,
>  				 struct drm_private_obj *obj)
>  {
> +	struct drm_device *dev = state->dev;
>  	int index, num_objs, i, ret;
>  	size_t size;
>  	struct __drm_private_objs_state *arr;
> @@ -801,8 +808,8 @@ drm_atomic_get_private_obj_state(struct drm_atomic_state *state,
>  
>  	state->num_private_objs = num_objs;
>  
> -	DRM_DEBUG_ATOMIC("Added new private object %p state %p to %p\n",
> -			 obj, obj_state, state);
> +	drm_dbg_atomic(dev, "Added new private object %p state %p to %p\n",
> +		       obj, obj_state, state);
>  
>  	return obj_state;
>  }
> @@ -940,6 +947,7 @@ struct drm_connector_state *
>  drm_atomic_get_connector_state(struct drm_atomic_state *state,
>  			  struct drm_connector *connector)
>  {
> +	struct drm_device *dev = state->dev;
>  	int ret, index;
>  	struct drm_mode_config *config = &connector->dev->mode_config;
>  	struct drm_connector_state *connector_state;
> @@ -981,9 +989,9 @@ drm_atomic_get_connector_state(struct drm_atomic_state *state,
>  	state->connectors[index].ptr = connector;
>  	connector_state->state = state;
>  
> -	DRM_DEBUG_ATOMIC("Added [CONNECTOR:%d:%s] %p state to %p\n",
> -			 connector->base.id, connector->name,
> -			 connector_state, state);
> +	drm_dbg_atomic(dev, "Added [CONNECTOR:%d:%s] %p state to %p\n",
> +		       connector->base.id, connector->name,
> +		       connector_state, state);
>  
>  	if (connector_state->crtc) {
>  		struct drm_crtc_state *crtc_state;
> @@ -1036,7 +1044,8 @@ int
>  drm_atomic_add_affected_connectors(struct drm_atomic_state *state,
>  				   struct drm_crtc *crtc)
>  {
> -	struct drm_mode_config *config = &state->dev->mode_config;
> +	struct drm_device *dev = state->dev;
> +	struct drm_mode_config *config = &dev->mode_config;
>  	struct drm_connector *connector;
>  	struct drm_connector_state *conn_state;
>  	struct drm_connector_list_iter conn_iter;
> @@ -1051,8 +1060,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:%s] to %p\n",
> -			 crtc->base.id, crtc->name, state);
> +	drm_dbg_atomic(dev, "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
> @@ -1099,14 +1108,15 @@ int
>  drm_atomic_add_affected_planes(struct drm_atomic_state *state,
>  			       struct drm_crtc *crtc)
>  {
> +	struct drm_device *dev = state->dev;
>  	const struct drm_crtc_state *old_crtc_state =
>  		drm_atomic_get_old_crtc_state(state, crtc);
>  	struct drm_plane *plane;
>  
>  	WARN_ON(!drm_atomic_get_new_crtc_state(state, crtc));
>  
> -	DRM_DEBUG_ATOMIC("Adding all current planes for [CRTC:%d:%s] to %p\n",
> -			 crtc->base.id, crtc->name, state);
> +	drm_dbg_atomic(dev, "Adding all current planes for [CRTC:%d:%s] to %p\n",
> +		       crtc->base.id, crtc->name, state);
>  
>  	drm_for_each_plane_mask(plane, state->dev, old_crtc_state->plane_mask) {
>  		struct drm_plane_state *plane_state =
> @@ -1144,13 +1154,13 @@ int drm_atomic_check_only(struct drm_atomic_state *state)
>  	struct drm_connector_state *conn_state;
>  	int i, ret = 0;
>  
> -	DRM_DEBUG_ATOMIC("checking %p\n", state);
> +	drm_dbg_atomic(dev, "checking %p\n", state);
>  
>  	for_each_oldnew_plane_in_state(state, plane, old_plane_state, new_plane_state, i) {
>  		ret = drm_atomic_plane_check(old_plane_state, new_plane_state);
>  		if (ret) {
> -			DRM_DEBUG_ATOMIC("[PLANE:%d:%s] atomic core check failed\n",
> -					 plane->base.id, plane->name);
> +			drm_dbg_atomic(dev, "[PLANE:%d:%s] atomic core check failed\n",
> +				       plane->base.id, plane->name);
>  			return ret;
>  		}
>  	}
> @@ -1158,8 +1168,8 @@ int drm_atomic_check_only(struct drm_atomic_state *state)
>  	for_each_oldnew_crtc_in_state(state, crtc, old_crtc_state, new_crtc_state, i) {
>  		ret = drm_atomic_crtc_check(old_crtc_state, new_crtc_state);
>  		if (ret) {
> -			DRM_DEBUG_ATOMIC("[CRTC:%d:%s] atomic core check failed\n",
> -					 crtc->base.id, crtc->name);
> +			drm_dbg_atomic(dev, "[CRTC:%d:%s] atomic core check failed\n",
> +				       crtc->base.id, crtc->name);
>  			return ret;
>  		}
>  	}
> @@ -1167,8 +1177,8 @@ int drm_atomic_check_only(struct drm_atomic_state *state)
>  	for_each_new_connector_in_state(state, conn, conn_state, i) {
>  		ret = drm_atomic_connector_check(conn, conn_state);
>  		if (ret) {
> -			DRM_DEBUG_ATOMIC("[CONNECTOR:%d:%s] atomic core check failed\n",
> -					 conn->base.id, conn->name);
> +			drm_dbg_atomic(dev, "[CONNECTOR:%d:%s] atomic core check failed\n",
> +				       conn->base.id, conn->name);
>  			return ret;
>  		}
>  	}
> @@ -1177,8 +1187,8 @@ int drm_atomic_check_only(struct drm_atomic_state *state)
>  		ret = config->funcs->atomic_check(state->dev, state);
>  
>  		if (ret) {
> -			DRM_DEBUG_ATOMIC("atomic driver check for %p failed: %d\n",
> -					 state, ret);
> +			drm_dbg_atomic(dev, "atomic driver check for %p failed: %d\n",
> +				       state, ret);
>  			return ret;
>  		}
>  	}
> @@ -1186,8 +1196,8 @@ int drm_atomic_check_only(struct drm_atomic_state *state)
>  	if (!state->allow_modeset) {
>  		for_each_new_crtc_in_state(state, crtc, new_crtc_state, i) {
>  			if (drm_atomic_crtc_needs_modeset(new_crtc_state)) {
> -				DRM_DEBUG_ATOMIC("[CRTC:%d:%s] requires full modeset\n",
> -						 crtc->base.id, crtc->name);
> +				drm_dbg_atomic(dev, "[CRTC:%d:%s] requires full modeset\n",
> +					       crtc->base.id, crtc->name);
>  				return -EINVAL;
>  			}
>  		}
> @@ -1213,14 +1223,15 @@ EXPORT_SYMBOL(drm_atomic_check_only);
>   */
>  int drm_atomic_commit(struct drm_atomic_state *state)
>  {
> -	struct drm_mode_config *config = &state->dev->mode_config;
> +	struct drm_device *dev = state->dev;
> +	struct drm_mode_config *config = &dev->mode_config;
>  	int ret;
>  
>  	ret = drm_atomic_check_only(state);
>  	if (ret)
>  		return ret;
>  
> -	DRM_DEBUG_ATOMIC("committing %p\n", state);
> +	drm_dbg_atomic(dev, "committing %p\n", state);
>  
>  	return config->funcs->atomic_commit(state->dev, state, false);
>  }
> @@ -1242,14 +1253,15 @@ EXPORT_SYMBOL(drm_atomic_commit);
>   */
>  int drm_atomic_nonblocking_commit(struct drm_atomic_state *state)
>  {
> -	struct drm_mode_config *config = &state->dev->mode_config;
> +	struct drm_device *dev = state->dev;
> +	struct drm_mode_config *config = &dev->mode_config;
>  	int ret;
>  
>  	ret = drm_atomic_check_only(state);
>  	if (ret)
>  		return ret;
>  
> -	DRM_DEBUG_ATOMIC("committing %p nonblocking\n", state);
> +	drm_dbg_atomic(dev, "committing %p nonblocking\n", state);
>  
>  	return config->funcs->atomic_commit(state->dev, state, true);
>  }
> @@ -1425,7 +1437,8 @@ EXPORT_SYMBOL(__drm_atomic_helper_set_config);
>  
>  void drm_atomic_print_state(const struct drm_atomic_state *state)
>  {
> -	struct drm_printer p = drm_info_printer(state->dev->dev);
> +	struct drm_device *dev = state->dev;
> +	struct drm_printer p = drm_info_printer(dev->dev);
>  	struct drm_plane *plane;
>  	struct drm_plane_state *plane_state;
>  	struct drm_crtc *crtc;
> @@ -1434,7 +1447,7 @@ void drm_atomic_print_state(const struct drm_atomic_state *state)
>  	struct drm_connector_state *connector_state;
>  	int i;
>  
> -	DRM_DEBUG_ATOMIC("checking %p\n", state);
> +	drm_dbg_atomic(dev, "checking %p\n", state);
>  
>  	for_each_new_plane_in_state(state, plane, plane_state, i)
>  		drm_atomic_plane_print_state(&p, plane_state);
> -- 
> 2.20.1
> 
> _______________________________________________
> dri-devel mailing list
> dri-devel@lists.freedesktop.org
> https://lists.freedesktop.org/mailman/listinfo/dri-devel
_______________________________________________
dri-devel mailing list
dri-devel@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/dri-devel

^ permalink raw reply	[flat|nested] 53+ messages in thread

* Re: [Intel-gfx] [PATCH 6/8] drm/atomic: convert to drm device based logging
@ 2019-12-17 19:07     ` Sam Ravnborg
  0 siblings, 0 replies; 53+ messages in thread
From: Sam Ravnborg @ 2019-12-17 19:07 UTC (permalink / raw)
  To: Jani Nikula; +Cc: intel-gfx, dri-devel

Hi Jani.

On Tue, Dec 10, 2019 at 02:30:48PM +0200, Jani Nikula wrote:
> Prefer drm_dbg_atomic().

This patch simplify code by introducing a local drm_device varialble
which is good. But this is not mentioned in the cahngelog.

Anf the patch uses more than just drm_dbg_atomic(), see for example the
first patch below.

With updated changelog and small nit mentioned later fixed:
Reviewed-by: Sam Ravnborg <sam@ravnborg.org>

	Sam

> 
> Signed-off-by: Jani Nikula <jani.nikula@intel.com>
> ---
>  drivers/gpu/drm/drm_agpsupport.c |   4 +-
>  drivers/gpu/drm/drm_atomic.c     | 187 +++++++++++++++++--------------
>  2 files changed, 102 insertions(+), 89 deletions(-)
> 
> diff --git a/drivers/gpu/drm/drm_agpsupport.c b/drivers/gpu/drm/drm_agpsupport.c
> index 4c7ad46fdd21..cd675e58de50 100644
> --- a/drivers/gpu/drm/drm_agpsupport.c
> +++ b/drivers/gpu/drm/drm_agpsupport.c
> @@ -330,8 +330,8 @@ int drm_agp_bind(struct drm_device *dev, struct drm_agp_binding *request)
>  	if (retcode)
>  		return retcode;
>  	entry->bound = dev->agp->base + (page << PAGE_SHIFT);
> -	DRM_DEBUG("base = 0x%lx entry->bound = 0x%lx\n",
> -		  dev->agp->base, entry->bound);
> +	drm_dbg_core(dev, "base = 0x%lx entry->bound = 0x%lx\n",
> +		     dev->agp->base, entry->bound);
>  	return 0;
>  }
>  EXPORT_SYMBOL(drm_agp_bind);
> diff --git a/drivers/gpu/drm/drm_atomic.c b/drivers/gpu/drm/drm_atomic.c
> index 14aeaf736321..8494b1c29bf0 100644
> --- a/drivers/gpu/drm/drm_atomic.c
> +++ b/drivers/gpu/drm/drm_atomic.c
> @@ -99,7 +99,7 @@ drm_atomic_state_init(struct drm_device *dev, struct drm_atomic_state *state)
>  
>  	state->dev = dev;
>  
> -	DRM_DEBUG_ATOMIC("Allocated atomic state %p\n", state);
> +	drm_dbg_atomic(dev, "Allocated atomic state %p\n", state);
>  
>  	return 0;
>  fail:
> @@ -150,7 +150,7 @@ void drm_atomic_state_default_clear(struct drm_atomic_state *state)
>  	struct drm_mode_config *config = &dev->mode_config;
>  	int i;
>  
> -	DRM_DEBUG_ATOMIC("Clearing atomic state %p\n", state);
> +	drm_dbg_atomic(dev, "Clearing atomic state %p\n", state);
>  
>  	for (i = 0; i < state->num_connector; i++) {
>  		struct drm_connector *connector = state->connectors[i].ptr;
> @@ -256,11 +256,12 @@ EXPORT_SYMBOL(drm_atomic_state_clear);
>  void __drm_atomic_state_free(struct kref *ref)
>  {
>  	struct drm_atomic_state *state = container_of(ref, typeof(*state), ref);
> -	struct drm_mode_config *config = &state->dev->mode_config;
> +	struct drm_device *dev = state->dev;
> +	struct drm_mode_config *config = &dev->mode_config;
>  
>  	drm_atomic_state_clear(state);
>  
> -	DRM_DEBUG_ATOMIC("Freeing atomic state %p\n", state);
> +	drm_dbg_atomic(dev, "Freeing atomic state %p\n", state);
>  
>  	if (config->funcs->atomic_state_free) {
>  		config->funcs->atomic_state_free(state);
> @@ -290,8 +291,9 @@ struct drm_crtc_state *
>  drm_atomic_get_crtc_state(struct drm_atomic_state *state,
>  			  struct drm_crtc *crtc)
>  {
> -	int ret, index = drm_crtc_index(crtc);
> +	struct drm_device *dev = state->dev;
>  	struct drm_crtc_state *crtc_state;
> +	int ret, index = drm_crtc_index(crtc);
>  
>  	WARN_ON(!state->acquire_ctx);
>  
> @@ -313,8 +315,8 @@ drm_atomic_get_crtc_state(struct drm_atomic_state *state,
>  	state->crtcs[index].ptr = crtc;
>  	crtc_state->state = state;
>  
> -	DRM_DEBUG_ATOMIC("Added [CRTC:%d:%s] %p state to %p\n",
> -			 crtc->base.id, crtc->name, crtc_state, state);
> +	drm_dbg_atomic(dev, "Added [CRTC:%d:%s] %p state to %p\n",
> +		       crtc->base.id, crtc->name, crtc_state, state);
>  
>  	return crtc_state;
>  }
> @@ -324,6 +326,7 @@ static int drm_atomic_crtc_check(const struct drm_crtc_state *old_crtc_state,
>  				 const struct drm_crtc_state *new_crtc_state)
>  {
>  	struct drm_crtc *crtc = new_crtc_state->crtc;
> +	struct drm_device *dev = crtc->dev;
>  
>  	/* NOTE: we explicitly don't enforce constraints such as primary
>  	 * layer covering entire screen, since that is something we want
> @@ -334,25 +337,25 @@ static int drm_atomic_crtc_check(const struct drm_crtc_state *old_crtc_state,
>  	 */
>  
>  	if (new_crtc_state->active && !new_crtc_state->enable) {
> -		DRM_DEBUG_ATOMIC("[CRTC:%d:%s] active without enabled\n",
> -				 crtc->base.id, crtc->name);
> +		drm_dbg_atomic(dev, "[CRTC:%d:%s] active without enabled\n",
> +			       crtc->base.id, crtc->name);
>  		return -EINVAL;
>  	}
>  
>  	/* The state->enable vs. state->mode_blob checks can be WARN_ON,
>  	 * as this is a kernel-internal detail that userspace should never
>  	 * be able to trigger. */
> -	if (drm_core_check_feature(crtc->dev, DRIVER_ATOMIC) &&
> +	if (drm_core_check_feature(dev, DRIVER_ATOMIC) &&
>  	    WARN_ON(new_crtc_state->enable && !new_crtc_state->mode_blob)) {
> -		DRM_DEBUG_ATOMIC("[CRTC:%d:%s] enabled without mode blob\n",
> -				 crtc->base.id, crtc->name);
> +		drm_dbg_atomic(dev, "[CRTC:%d:%s] enabled without mode blob\n",
> +			       crtc->base.id, crtc->name);
>  		return -EINVAL;
>  	}
>  
> -	if (drm_core_check_feature(crtc->dev, DRIVER_ATOMIC) &&
> +	if (drm_core_check_feature(dev, DRIVER_ATOMIC) &&
>  	    WARN_ON(!new_crtc_state->enable && new_crtc_state->mode_blob)) {
> -		DRM_DEBUG_ATOMIC("[CRTC:%d:%s] disabled with mode blob\n",
> -				 crtc->base.id, crtc->name);
> +		drm_dbg_atomic(dev, "[CRTC:%d:%s] disabled with mode blob\n",
> +			       crtc->base.id, crtc->name);
>  		return -EINVAL;
>  	}
>  
> @@ -368,8 +371,8 @@ static int drm_atomic_crtc_check(const struct drm_crtc_state *old_crtc_state,
>  	 */
>  	if (new_crtc_state->event &&
>  	    !new_crtc_state->active && !old_crtc_state->active) {
> -		DRM_DEBUG_ATOMIC("[CRTC:%d:%s] requesting event but off\n",
> -				 crtc->base.id, crtc->name);
> +		drm_dbg_atomic(dev, "[CRTC:%d:%s] requesting event but off\n",
> +			       crtc->base.id, crtc->name);
>  		return -EINVAL;
>  	}
>  
> @@ -402,6 +405,7 @@ static void drm_atomic_crtc_print_state(struct drm_printer *p,
>  static int drm_atomic_connector_check(struct drm_connector *connector,
>  		struct drm_connector_state *state)
>  {
> +	struct drm_device *dev = connector->dev;
>  	struct drm_crtc_state *crtc_state;
>  	struct drm_writeback_job *writeback_job = state->writeback_job;
>  	const struct drm_display_info *info = &connector->display_info;
> @@ -414,8 +418,8 @@ static int drm_atomic_connector_check(struct drm_connector *connector,
>  		return 0;
>  
>  	if (writeback_job->fb && !state->crtc) {
> -		DRM_DEBUG_ATOMIC("[CONNECTOR:%d:%s] framebuffer without CRTC\n",
> -				 connector->base.id, connector->name);
> +		drm_dbg_atomic(dev, "[CONNECTOR:%d:%s] framebuffer without CRTC\n",
> +			       connector->base.id, connector->name);
>  		return -EINVAL;
>  	}
>  
> @@ -424,16 +428,16 @@ static int drm_atomic_connector_check(struct drm_connector *connector,
>  								state->crtc);
>  
>  	if (writeback_job->fb && !crtc_state->active) {
> -		DRM_DEBUG_ATOMIC("[CONNECTOR:%d:%s] has framebuffer, but [CRTC:%d] is off\n",
> -				 connector->base.id, connector->name,
> -				 state->crtc->base.id);
> +		drm_dbg_atomic(dev, "[CONNECTOR:%d:%s] has framebuffer, but [CRTC:%d] is off\n",
> +			       connector->base.id, connector->name,
> +			       state->crtc->base.id);
>  		return -EINVAL;
>  	}
>  
>  	if (!writeback_job->fb) {
>  		if (writeback_job->out_fence) {
> -			DRM_DEBUG_ATOMIC("[CONNECTOR:%d:%s] requesting out-fence without framebuffer\n",
> -					 connector->base.id, connector->name);
> +			drm_dbg_atomic(dev, "[CONNECTOR:%d:%s] requesting out-fence without framebuffer\n",
> +				       connector->base.id, connector->name);
>  			return -EINVAL;
>  		}
>  
> @@ -463,8 +467,9 @@ struct drm_plane_state *
>  drm_atomic_get_plane_state(struct drm_atomic_state *state,
>  			  struct drm_plane *plane)
>  {
> -	int ret, index = drm_plane_index(plane);
> +	struct drm_device *dev = state->dev;
>  	struct drm_plane_state *plane_state;
> +	int ret, index = drm_plane_index(plane);
We often see inverse xmas used for local variables.
Here you move a line to make it xmas style.
Could we avoid this extra change?

>  
>  	WARN_ON(!state->acquire_ctx);
>  
> @@ -491,8 +496,8 @@ drm_atomic_get_plane_state(struct drm_atomic_state *state,
>  	state->planes[index].new_state = plane_state;
>  	plane_state->state = state;
>  
> -	DRM_DEBUG_ATOMIC("Added [PLANE:%d:%s] %p state to %p\n",
> -			 plane->base.id, plane->name, plane_state, state);
> +	drm_dbg_atomic(dev, "Added [PLANE:%d:%s] %p state to %p\n",
> +		       plane->base.id, plane->name, plane_state, state);
>  
>  	if (plane_state->crtc) {
>  		struct drm_crtc_state *crtc_state;
> @@ -539,6 +544,7 @@ static int drm_atomic_plane_check(const struct drm_plane_state *old_plane_state,
>  				  const struct drm_plane_state *new_plane_state)
>  {
>  	struct drm_plane *plane = new_plane_state->plane;
> +	struct drm_device *dev = plane->dev;
>  	struct drm_crtc *crtc = new_plane_state->crtc;
>  	const struct drm_framebuffer *fb = new_plane_state->fb;
>  	unsigned int fb_width, fb_height;
> @@ -548,12 +554,12 @@ static int drm_atomic_plane_check(const struct drm_plane_state *old_plane_state,
>  
>  	/* either *both* CRTC and FB must be set, or neither */
>  	if (crtc && !fb) {
> -		DRM_DEBUG_ATOMIC("[PLANE:%d:%s] CRTC set but no FB\n",
> -				 plane->base.id, plane->name);
> +		drm_dbg_atomic(dev, "[PLANE:%d:%s] CRTC set but no FB\n",
> +			       plane->base.id, plane->name);
>  		return -EINVAL;
>  	} else if (fb && !crtc) {
> -		DRM_DEBUG_ATOMIC("[PLANE:%d:%s] FB set but no CRTC\n",
> -				 plane->base.id, plane->name);
> +		drm_dbg_atomic(dev, "[PLANE:%d:%s] FB set but no CRTC\n",
> +			       plane->base.id, plane->name);
>  		return -EINVAL;
>  	}
>  
> @@ -563,9 +569,9 @@ static int drm_atomic_plane_check(const struct drm_plane_state *old_plane_state,
>  
>  	/* Check whether this plane is usable on this CRTC */
>  	if (!(plane->possible_crtcs & drm_crtc_mask(crtc))) {
> -		DRM_DEBUG_ATOMIC("Invalid [CRTC:%d:%s] for [PLANE:%d:%s]\n",
> -				 crtc->base.id, crtc->name,
> -				 plane->base.id, plane->name);
> +		drm_dbg_atomic(dev, "Invalid [CRTC:%d:%s] for [PLANE:%d:%s]\n",
> +			       crtc->base.id, crtc->name,
> +			       plane->base.id, plane->name);
>  		return -EINVAL;
>  	}
>  
> @@ -574,11 +580,11 @@ static int drm_atomic_plane_check(const struct drm_plane_state *old_plane_state,
>  					   fb->modifier);
>  	if (ret) {
>  		struct drm_format_name_buf format_name;
> -		DRM_DEBUG_ATOMIC("[PLANE:%d:%s] invalid pixel format %s, modifier 0x%llx\n",
> -				 plane->base.id, plane->name,
> -				 drm_get_format_name(fb->format->format,
> -						     &format_name),
> -				 fb->modifier);
> +		drm_dbg_atomic(dev, "[PLANE:%d:%s] invalid pixel format %s, modifier 0x%llx\n",
> +			       plane->base.id, plane->name,
> +			       drm_get_format_name(fb->format->format,
> +						   &format_name),
> +			       fb->modifier);
>  		return ret;
>  	}
>  
> @@ -587,10 +593,10 @@ static int drm_atomic_plane_check(const struct drm_plane_state *old_plane_state,
>  	    new_plane_state->crtc_x > INT_MAX - (int32_t) new_plane_state->crtc_w ||
>  	    new_plane_state->crtc_h > INT_MAX ||
>  	    new_plane_state->crtc_y > INT_MAX - (int32_t) new_plane_state->crtc_h) {
> -		DRM_DEBUG_ATOMIC("[PLANE:%d:%s] invalid CRTC coordinates %ux%u+%d+%d\n",
> -				 plane->base.id, plane->name,
> -				 new_plane_state->crtc_w, new_plane_state->crtc_h,
> -				 new_plane_state->crtc_x, new_plane_state->crtc_y);
> +		drm_dbg_atomic(dev, "[PLANE:%d:%s] invalid CRTC coordinates %ux%u+%d+%d\n",
> +			       plane->base.id, plane->name,
> +			       new_plane_state->crtc_w, new_plane_state->crtc_h,
> +			       new_plane_state->crtc_x, new_plane_state->crtc_y);
>  		return -ERANGE;
>  	}
>  
> @@ -602,18 +608,18 @@ static int drm_atomic_plane_check(const struct drm_plane_state *old_plane_state,
>  	    new_plane_state->src_x > fb_width - new_plane_state->src_w ||
>  	    new_plane_state->src_h > fb_height ||
>  	    new_plane_state->src_y > fb_height - new_plane_state->src_h) {
> -		DRM_DEBUG_ATOMIC("[PLANE:%d:%s] invalid source coordinates "
> -				 "%u.%06ux%u.%06u+%u.%06u+%u.%06u (fb %ux%u)\n",
> -				 plane->base.id, plane->name,
> -				 new_plane_state->src_w >> 16,
> -				 ((new_plane_state->src_w & 0xffff) * 15625) >> 10,
> -				 new_plane_state->src_h >> 16,
> -				 ((new_plane_state->src_h & 0xffff) * 15625) >> 10,
> -				 new_plane_state->src_x >> 16,
> -				 ((new_plane_state->src_x & 0xffff) * 15625) >> 10,
> -				 new_plane_state->src_y >> 16,
> -				 ((new_plane_state->src_y & 0xffff) * 15625) >> 10,
> -				 fb->width, fb->height);
> +		drm_dbg_atomic(dev, "[PLANE:%d:%s] invalid source coordinates "
> +			       "%u.%06ux%u.%06u+%u.%06u+%u.%06u (fb %ux%u)\n",
> +			       plane->base.id, plane->name,
> +			       new_plane_state->src_w >> 16,
> +			       ((new_plane_state->src_w & 0xffff) * 15625) >> 10,
> +			       new_plane_state->src_h >> 16,
> +			       ((new_plane_state->src_h & 0xffff) * 15625) >> 10,
> +			       new_plane_state->src_x >> 16,
> +			       ((new_plane_state->src_x & 0xffff) * 15625) >> 10,
> +			       new_plane_state->src_y >> 16,
> +			       ((new_plane_state->src_y & 0xffff) * 15625) >> 10,
> +			       fb->width, fb->height);
>  		return -ENOSPC;
>  	}
>  
> @@ -628,9 +634,9 @@ static int drm_atomic_plane_check(const struct drm_plane_state *old_plane_state,
>  		    clips->y1 < 0 ||
>  		    clips->x2 > fb_width ||
>  		    clips->y2 > fb_height) {
> -			DRM_DEBUG_ATOMIC("[PLANE:%d:%s] invalid damage clip %d %d %d %d\n",
> -					 plane->base.id, plane->name, clips->x1,
> -					 clips->y1, clips->x2, clips->y2);
> +			drm_dbg_atomic(dev, "[PLANE:%d:%s] invalid damage clip %d %d %d %d\n",
> +				       plane->base.id, plane->name, clips->x1,
> +				       clips->y1, clips->x2, clips->y2);
>  			return -EINVAL;
>  		}
>  		clips++;
> @@ -638,8 +644,8 @@ static int drm_atomic_plane_check(const struct drm_plane_state *old_plane_state,
>  	}
>  
>  	if (plane_switching_crtc(old_plane_state, new_plane_state)) {
> -		DRM_DEBUG_ATOMIC("[PLANE:%d:%s] switching CRTC directly\n",
> -				 plane->base.id, plane->name);
> +		drm_dbg_atomic(dev, "[PLANE:%d:%s] switching CRTC directly\n",
> +			       plane->base.id, plane->name);
>  		return -EINVAL;
>  	}
>  
> @@ -766,6 +772,7 @@ struct drm_private_state *
>  drm_atomic_get_private_obj_state(struct drm_atomic_state *state,
>  				 struct drm_private_obj *obj)
>  {
> +	struct drm_device *dev = state->dev;
>  	int index, num_objs, i, ret;
>  	size_t size;
>  	struct __drm_private_objs_state *arr;
> @@ -801,8 +808,8 @@ drm_atomic_get_private_obj_state(struct drm_atomic_state *state,
>  
>  	state->num_private_objs = num_objs;
>  
> -	DRM_DEBUG_ATOMIC("Added new private object %p state %p to %p\n",
> -			 obj, obj_state, state);
> +	drm_dbg_atomic(dev, "Added new private object %p state %p to %p\n",
> +		       obj, obj_state, state);
>  
>  	return obj_state;
>  }
> @@ -940,6 +947,7 @@ struct drm_connector_state *
>  drm_atomic_get_connector_state(struct drm_atomic_state *state,
>  			  struct drm_connector *connector)
>  {
> +	struct drm_device *dev = state->dev;
>  	int ret, index;
>  	struct drm_mode_config *config = &connector->dev->mode_config;
>  	struct drm_connector_state *connector_state;
> @@ -981,9 +989,9 @@ drm_atomic_get_connector_state(struct drm_atomic_state *state,
>  	state->connectors[index].ptr = connector;
>  	connector_state->state = state;
>  
> -	DRM_DEBUG_ATOMIC("Added [CONNECTOR:%d:%s] %p state to %p\n",
> -			 connector->base.id, connector->name,
> -			 connector_state, state);
> +	drm_dbg_atomic(dev, "Added [CONNECTOR:%d:%s] %p state to %p\n",
> +		       connector->base.id, connector->name,
> +		       connector_state, state);
>  
>  	if (connector_state->crtc) {
>  		struct drm_crtc_state *crtc_state;
> @@ -1036,7 +1044,8 @@ int
>  drm_atomic_add_affected_connectors(struct drm_atomic_state *state,
>  				   struct drm_crtc *crtc)
>  {
> -	struct drm_mode_config *config = &state->dev->mode_config;
> +	struct drm_device *dev = state->dev;
> +	struct drm_mode_config *config = &dev->mode_config;
>  	struct drm_connector *connector;
>  	struct drm_connector_state *conn_state;
>  	struct drm_connector_list_iter conn_iter;
> @@ -1051,8 +1060,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:%s] to %p\n",
> -			 crtc->base.id, crtc->name, state);
> +	drm_dbg_atomic(dev, "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
> @@ -1099,14 +1108,15 @@ int
>  drm_atomic_add_affected_planes(struct drm_atomic_state *state,
>  			       struct drm_crtc *crtc)
>  {
> +	struct drm_device *dev = state->dev;
>  	const struct drm_crtc_state *old_crtc_state =
>  		drm_atomic_get_old_crtc_state(state, crtc);
>  	struct drm_plane *plane;
>  
>  	WARN_ON(!drm_atomic_get_new_crtc_state(state, crtc));
>  
> -	DRM_DEBUG_ATOMIC("Adding all current planes for [CRTC:%d:%s] to %p\n",
> -			 crtc->base.id, crtc->name, state);
> +	drm_dbg_atomic(dev, "Adding all current planes for [CRTC:%d:%s] to %p\n",
> +		       crtc->base.id, crtc->name, state);
>  
>  	drm_for_each_plane_mask(plane, state->dev, old_crtc_state->plane_mask) {
>  		struct drm_plane_state *plane_state =
> @@ -1144,13 +1154,13 @@ int drm_atomic_check_only(struct drm_atomic_state *state)
>  	struct drm_connector_state *conn_state;
>  	int i, ret = 0;
>  
> -	DRM_DEBUG_ATOMIC("checking %p\n", state);
> +	drm_dbg_atomic(dev, "checking %p\n", state);
>  
>  	for_each_oldnew_plane_in_state(state, plane, old_plane_state, new_plane_state, i) {
>  		ret = drm_atomic_plane_check(old_plane_state, new_plane_state);
>  		if (ret) {
> -			DRM_DEBUG_ATOMIC("[PLANE:%d:%s] atomic core check failed\n",
> -					 plane->base.id, plane->name);
> +			drm_dbg_atomic(dev, "[PLANE:%d:%s] atomic core check failed\n",
> +				       plane->base.id, plane->name);
>  			return ret;
>  		}
>  	}
> @@ -1158,8 +1168,8 @@ int drm_atomic_check_only(struct drm_atomic_state *state)
>  	for_each_oldnew_crtc_in_state(state, crtc, old_crtc_state, new_crtc_state, i) {
>  		ret = drm_atomic_crtc_check(old_crtc_state, new_crtc_state);
>  		if (ret) {
> -			DRM_DEBUG_ATOMIC("[CRTC:%d:%s] atomic core check failed\n",
> -					 crtc->base.id, crtc->name);
> +			drm_dbg_atomic(dev, "[CRTC:%d:%s] atomic core check failed\n",
> +				       crtc->base.id, crtc->name);
>  			return ret;
>  		}
>  	}
> @@ -1167,8 +1177,8 @@ int drm_atomic_check_only(struct drm_atomic_state *state)
>  	for_each_new_connector_in_state(state, conn, conn_state, i) {
>  		ret = drm_atomic_connector_check(conn, conn_state);
>  		if (ret) {
> -			DRM_DEBUG_ATOMIC("[CONNECTOR:%d:%s] atomic core check failed\n",
> -					 conn->base.id, conn->name);
> +			drm_dbg_atomic(dev, "[CONNECTOR:%d:%s] atomic core check failed\n",
> +				       conn->base.id, conn->name);
>  			return ret;
>  		}
>  	}
> @@ -1177,8 +1187,8 @@ int drm_atomic_check_only(struct drm_atomic_state *state)
>  		ret = config->funcs->atomic_check(state->dev, state);
>  
>  		if (ret) {
> -			DRM_DEBUG_ATOMIC("atomic driver check for %p failed: %d\n",
> -					 state, ret);
> +			drm_dbg_atomic(dev, "atomic driver check for %p failed: %d\n",
> +				       state, ret);
>  			return ret;
>  		}
>  	}
> @@ -1186,8 +1196,8 @@ int drm_atomic_check_only(struct drm_atomic_state *state)
>  	if (!state->allow_modeset) {
>  		for_each_new_crtc_in_state(state, crtc, new_crtc_state, i) {
>  			if (drm_atomic_crtc_needs_modeset(new_crtc_state)) {
> -				DRM_DEBUG_ATOMIC("[CRTC:%d:%s] requires full modeset\n",
> -						 crtc->base.id, crtc->name);
> +				drm_dbg_atomic(dev, "[CRTC:%d:%s] requires full modeset\n",
> +					       crtc->base.id, crtc->name);
>  				return -EINVAL;
>  			}
>  		}
> @@ -1213,14 +1223,15 @@ EXPORT_SYMBOL(drm_atomic_check_only);
>   */
>  int drm_atomic_commit(struct drm_atomic_state *state)
>  {
> -	struct drm_mode_config *config = &state->dev->mode_config;
> +	struct drm_device *dev = state->dev;
> +	struct drm_mode_config *config = &dev->mode_config;
>  	int ret;
>  
>  	ret = drm_atomic_check_only(state);
>  	if (ret)
>  		return ret;
>  
> -	DRM_DEBUG_ATOMIC("committing %p\n", state);
> +	drm_dbg_atomic(dev, "committing %p\n", state);
>  
>  	return config->funcs->atomic_commit(state->dev, state, false);
>  }
> @@ -1242,14 +1253,15 @@ EXPORT_SYMBOL(drm_atomic_commit);
>   */
>  int drm_atomic_nonblocking_commit(struct drm_atomic_state *state)
>  {
> -	struct drm_mode_config *config = &state->dev->mode_config;
> +	struct drm_device *dev = state->dev;
> +	struct drm_mode_config *config = &dev->mode_config;
>  	int ret;
>  
>  	ret = drm_atomic_check_only(state);
>  	if (ret)
>  		return ret;
>  
> -	DRM_DEBUG_ATOMIC("committing %p nonblocking\n", state);
> +	drm_dbg_atomic(dev, "committing %p nonblocking\n", state);
>  
>  	return config->funcs->atomic_commit(state->dev, state, true);
>  }
> @@ -1425,7 +1437,8 @@ EXPORT_SYMBOL(__drm_atomic_helper_set_config);
>  
>  void drm_atomic_print_state(const struct drm_atomic_state *state)
>  {
> -	struct drm_printer p = drm_info_printer(state->dev->dev);
> +	struct drm_device *dev = state->dev;
> +	struct drm_printer p = drm_info_printer(dev->dev);
>  	struct drm_plane *plane;
>  	struct drm_plane_state *plane_state;
>  	struct drm_crtc *crtc;
> @@ -1434,7 +1447,7 @@ void drm_atomic_print_state(const struct drm_atomic_state *state)
>  	struct drm_connector_state *connector_state;
>  	int i;
>  
> -	DRM_DEBUG_ATOMIC("checking %p\n", state);
> +	drm_dbg_atomic(dev, "checking %p\n", state);
>  
>  	for_each_new_plane_in_state(state, plane, plane_state, i)
>  		drm_atomic_plane_print_state(&p, plane_state);
> -- 
> 2.20.1
> 
> _______________________________________________
> dri-devel mailing list
> dri-devel@lists.freedesktop.org
> https://lists.freedesktop.org/mailman/listinfo/dri-devel
_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx

^ permalink raw reply	[flat|nested] 53+ messages in thread

* Re: [PATCH 5/8] drm/mipi-dbi: convert to drm device based logging
  2019-12-17 19:00     ` [Intel-gfx] " Sam Ravnborg
@ 2019-12-17 19:10       ` Sam Ravnborg
  -1 siblings, 0 replies; 53+ messages in thread
From: Sam Ravnborg @ 2019-12-17 19:10 UTC (permalink / raw)
  To: Jani Nikula; +Cc: intel-gfx, dri-devel

On Tue, Dec 17, 2019 at 08:00:11PM +0100, Sam Ravnborg wrote:
> On Tue, Dec 10, 2019 at 02:30:47PM +0200, Jani Nikula wrote:
> > Prefer drm device based logging where possible.
> > 
> > Signed-off-by: Jani Nikula <jani.nikula@intel.com>
> > ---
> >  drivers/gpu/drm/drm_mipi_dbi.c | 15 ++++++++-------
> >  1 file changed, 8 insertions(+), 7 deletions(-)
> > 
> > diff --git a/drivers/gpu/drm/drm_mipi_dbi.c b/drivers/gpu/drm/drm_mipi_dbi.c
> > index e34058c721be..86d98e7fc30a 100644
> > --- a/drivers/gpu/drm/drm_mipi_dbi.c
> > +++ b/drivers/gpu/drm/drm_mipi_dbi.c
> > @@ -225,7 +225,7 @@ int mipi_dbi_buf_copy(void *dst, struct drm_framebuffer *fb,
> >  		drm_fb_xrgb8888_to_rgb565(dst, src, fb, clip, swap);
> >  		break;
> >  	default:
> > -		dev_err_once(fb->dev->dev, "Format is not supported: %s\n",
> > +		drm_err_once(fb->dev, "Format is not supported: %s\n",
> >  			     drm_get_format_name(fb->format->format,
> >  						 &format_name));
> >  		return -EINVAL;
> > @@ -242,7 +242,8 @@ static void mipi_dbi_fb_dirty(struct drm_framebuffer *fb, struct drm_rect *rect)
> >  {
> >  	struct drm_gem_object *gem = drm_gem_fb_get_obj(fb, 0);
> >  	struct drm_gem_cma_object *cma_obj = to_drm_gem_cma_obj(gem);
> > -	struct mipi_dbi_dev *dbidev = drm_to_mipi_dbi_dev(fb->dev);
> > +	struct drm_device *dev = fb->dev;
> 
> In this file the pattern is to use the variable name "drm" for a
> drm_device *. Your changes should follow the same pattern.
With this fixed:
Reviewed-by: Sam Ravnborg <sam@ravnborg.org>

> 
> 	Sam
> 
> > +	struct mipi_dbi_dev *dbidev = drm_to_mipi_dbi_dev(dev);
> >  	unsigned int height = rect->y2 - rect->y1;
> >  	unsigned int width = rect->x2 - rect->x1;
> >  	struct mipi_dbi *dbi = &dbidev->dbi;
> > @@ -259,7 +260,7 @@ static void mipi_dbi_fb_dirty(struct drm_framebuffer *fb, struct drm_rect *rect)
> >  
> >  	full = width == fb->width && height == fb->height;
> >  
> > -	DRM_DEBUG_KMS("Flushing [FB:%d] " DRM_RECT_FMT "\n", fb->base.id, DRM_RECT_ARG(rect));
> > +	drm_dbg_kms(dev, "Flushing [FB:%d] " DRM_RECT_FMT "\n", fb->base.id, DRM_RECT_ARG(rect));
> >  
> >  	if (!dbi->dc || !full || swap ||
> >  	    fb->format->format == DRM_FORMAT_XRGB8888) {
> > @@ -282,7 +283,7 @@ static void mipi_dbi_fb_dirty(struct drm_framebuffer *fb, struct drm_rect *rect)
> >  				   width * height * 2);
> >  err_msg:
> >  	if (ret)
> > -		dev_err_once(fb->dev->dev, "Failed to update display %d\n", ret);
> > +		drm_err_once(dev, "Failed to update display %d\n", ret);
> >  
> >  	drm_dev_exit(idx);
> >  }
> > @@ -649,14 +650,14 @@ EXPORT_SYMBOL(mipi_dbi_display_is_on);
> >  
> >  static int mipi_dbi_poweron_reset_conditional(struct mipi_dbi_dev *dbidev, bool cond)
> >  {
> > -	struct device *dev = dbidev->drm.dev;
> > +	struct drm_device *dev = &dbidev->drm;
> >  	struct mipi_dbi *dbi = &dbidev->dbi;
> >  	int ret;
> >  
> >  	if (dbidev->regulator) {
> >  		ret = regulator_enable(dbidev->regulator);
> >  		if (ret) {
> > -			DRM_DEV_ERROR(dev, "Failed to enable regulator (%d)\n", ret);
> > +			drm_err(dev, "Failed to enable regulator (%d)\n", ret);
> >  			return ret;
> >  		}
> >  	}
> > @@ -667,7 +668,7 @@ static int mipi_dbi_poweron_reset_conditional(struct mipi_dbi_dev *dbidev, bool
> >  	mipi_dbi_hw_reset(dbi);
> >  	ret = mipi_dbi_command(dbi, MIPI_DCS_SOFT_RESET);
> >  	if (ret) {
> > -		DRM_DEV_ERROR(dev, "Failed to send reset command (%d)\n", ret);
> > +		drm_err(dev, "Failed to send reset command (%d)\n", ret);
> >  		if (dbidev->regulator)
> >  			regulator_disable(dbidev->regulator);
> >  		return ret;
> > -- 
> > 2.20.1
> > 
> > _______________________________________________
> > dri-devel mailing list
> > dri-devel@lists.freedesktop.org
> > https://lists.freedesktop.org/mailman/listinfo/dri-devel
> _______________________________________________
> dri-devel mailing list
> dri-devel@lists.freedesktop.org
> https://lists.freedesktop.org/mailman/listinfo/dri-devel
_______________________________________________
dri-devel mailing list
dri-devel@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/dri-devel

^ permalink raw reply	[flat|nested] 53+ messages in thread

* Re: [Intel-gfx] [PATCH 5/8] drm/mipi-dbi: convert to drm device based logging
@ 2019-12-17 19:10       ` Sam Ravnborg
  0 siblings, 0 replies; 53+ messages in thread
From: Sam Ravnborg @ 2019-12-17 19:10 UTC (permalink / raw)
  To: Jani Nikula; +Cc: intel-gfx, dri-devel

On Tue, Dec 17, 2019 at 08:00:11PM +0100, Sam Ravnborg wrote:
> On Tue, Dec 10, 2019 at 02:30:47PM +0200, Jani Nikula wrote:
> > Prefer drm device based logging where possible.
> > 
> > Signed-off-by: Jani Nikula <jani.nikula@intel.com>
> > ---
> >  drivers/gpu/drm/drm_mipi_dbi.c | 15 ++++++++-------
> >  1 file changed, 8 insertions(+), 7 deletions(-)
> > 
> > diff --git a/drivers/gpu/drm/drm_mipi_dbi.c b/drivers/gpu/drm/drm_mipi_dbi.c
> > index e34058c721be..86d98e7fc30a 100644
> > --- a/drivers/gpu/drm/drm_mipi_dbi.c
> > +++ b/drivers/gpu/drm/drm_mipi_dbi.c
> > @@ -225,7 +225,7 @@ int mipi_dbi_buf_copy(void *dst, struct drm_framebuffer *fb,
> >  		drm_fb_xrgb8888_to_rgb565(dst, src, fb, clip, swap);
> >  		break;
> >  	default:
> > -		dev_err_once(fb->dev->dev, "Format is not supported: %s\n",
> > +		drm_err_once(fb->dev, "Format is not supported: %s\n",
> >  			     drm_get_format_name(fb->format->format,
> >  						 &format_name));
> >  		return -EINVAL;
> > @@ -242,7 +242,8 @@ static void mipi_dbi_fb_dirty(struct drm_framebuffer *fb, struct drm_rect *rect)
> >  {
> >  	struct drm_gem_object *gem = drm_gem_fb_get_obj(fb, 0);
> >  	struct drm_gem_cma_object *cma_obj = to_drm_gem_cma_obj(gem);
> > -	struct mipi_dbi_dev *dbidev = drm_to_mipi_dbi_dev(fb->dev);
> > +	struct drm_device *dev = fb->dev;
> 
> In this file the pattern is to use the variable name "drm" for a
> drm_device *. Your changes should follow the same pattern.
With this fixed:
Reviewed-by: Sam Ravnborg <sam@ravnborg.org>

> 
> 	Sam
> 
> > +	struct mipi_dbi_dev *dbidev = drm_to_mipi_dbi_dev(dev);
> >  	unsigned int height = rect->y2 - rect->y1;
> >  	unsigned int width = rect->x2 - rect->x1;
> >  	struct mipi_dbi *dbi = &dbidev->dbi;
> > @@ -259,7 +260,7 @@ static void mipi_dbi_fb_dirty(struct drm_framebuffer *fb, struct drm_rect *rect)
> >  
> >  	full = width == fb->width && height == fb->height;
> >  
> > -	DRM_DEBUG_KMS("Flushing [FB:%d] " DRM_RECT_FMT "\n", fb->base.id, DRM_RECT_ARG(rect));
> > +	drm_dbg_kms(dev, "Flushing [FB:%d] " DRM_RECT_FMT "\n", fb->base.id, DRM_RECT_ARG(rect));
> >  
> >  	if (!dbi->dc || !full || swap ||
> >  	    fb->format->format == DRM_FORMAT_XRGB8888) {
> > @@ -282,7 +283,7 @@ static void mipi_dbi_fb_dirty(struct drm_framebuffer *fb, struct drm_rect *rect)
> >  				   width * height * 2);
> >  err_msg:
> >  	if (ret)
> > -		dev_err_once(fb->dev->dev, "Failed to update display %d\n", ret);
> > +		drm_err_once(dev, "Failed to update display %d\n", ret);
> >  
> >  	drm_dev_exit(idx);
> >  }
> > @@ -649,14 +650,14 @@ EXPORT_SYMBOL(mipi_dbi_display_is_on);
> >  
> >  static int mipi_dbi_poweron_reset_conditional(struct mipi_dbi_dev *dbidev, bool cond)
> >  {
> > -	struct device *dev = dbidev->drm.dev;
> > +	struct drm_device *dev = &dbidev->drm;
> >  	struct mipi_dbi *dbi = &dbidev->dbi;
> >  	int ret;
> >  
> >  	if (dbidev->regulator) {
> >  		ret = regulator_enable(dbidev->regulator);
> >  		if (ret) {
> > -			DRM_DEV_ERROR(dev, "Failed to enable regulator (%d)\n", ret);
> > +			drm_err(dev, "Failed to enable regulator (%d)\n", ret);
> >  			return ret;
> >  		}
> >  	}
> > @@ -667,7 +668,7 @@ static int mipi_dbi_poweron_reset_conditional(struct mipi_dbi_dev *dbidev, bool
> >  	mipi_dbi_hw_reset(dbi);
> >  	ret = mipi_dbi_command(dbi, MIPI_DCS_SOFT_RESET);
> >  	if (ret) {
> > -		DRM_DEV_ERROR(dev, "Failed to send reset command (%d)\n", ret);
> > +		drm_err(dev, "Failed to send reset command (%d)\n", ret);
> >  		if (dbidev->regulator)
> >  			regulator_disable(dbidev->regulator);
> >  		return ret;
> > -- 
> > 2.20.1
> > 
> > _______________________________________________
> > dri-devel mailing list
> > dri-devel@lists.freedesktop.org
> > https://lists.freedesktop.org/mailman/listinfo/dri-devel
> _______________________________________________
> dri-devel mailing list
> dri-devel@lists.freedesktop.org
> https://lists.freedesktop.org/mailman/listinfo/dri-devel
_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx

^ permalink raw reply	[flat|nested] 53+ messages in thread

* Re: [PATCH 4/8] drm/gem-fb-helper: convert to drm device based logging
  2019-12-17 18:57     ` [Intel-gfx] " Sam Ravnborg
@ 2019-12-19 14:23       ` Jani Nikula
  -1 siblings, 0 replies; 53+ messages in thread
From: Jani Nikula @ 2019-12-19 14:23 UTC (permalink / raw)
  To: Sam Ravnborg; +Cc: intel-gfx, dri-devel

On Tue, 17 Dec 2019, Sam Ravnborg <sam@ravnborg.org> wrote:
> On Tue, Dec 10, 2019 at 02:30:46PM +0200, Jani Nikula wrote:
>> Prefer drm_dbg_kms() and drm_err() over all other logging.
>> 
>> Signed-off-by: Jani Nikula <jani.nikula@intel.com>
> Reviewed-by: Sam Ravnborg <sam@ravnborg.org>

Thanks for the review, pushed up to this patch.

BR,
Jani.

>
>> ---
>>  drivers/gpu/drm/drm_gem_framebuffer_helper.c | 5 ++---
>>  1 file changed, 2 insertions(+), 3 deletions(-)
>> 
>> diff --git a/drivers/gpu/drm/drm_gem_framebuffer_helper.c b/drivers/gpu/drm/drm_gem_framebuffer_helper.c
>> index b9bcd310ca2d..3a7ace19a902 100644
>> --- a/drivers/gpu/drm/drm_gem_framebuffer_helper.c
>> +++ b/drivers/gpu/drm/drm_gem_framebuffer_helper.c
>> @@ -74,8 +74,7 @@ drm_gem_fb_alloc(struct drm_device *dev,
>>  
>>  	ret = drm_framebuffer_init(dev, fb, funcs);
>>  	if (ret) {
>> -		DRM_DEV_ERROR(dev->dev, "Failed to init framebuffer: %d\n",
>> -			      ret);
>> +		drm_err(dev, "Failed to init framebuffer: %d\n", ret);
>>  		kfree(fb);
>>  		return ERR_PTR(ret);
>>  	}
>> @@ -160,7 +159,7 @@ drm_gem_fb_create_with_funcs(struct drm_device *dev, struct drm_file *file,
>>  
>>  		objs[i] = drm_gem_object_lookup(file, mode_cmd->handles[i]);
>>  		if (!objs[i]) {
>> -			DRM_DEBUG_KMS("Failed to lookup GEM object\n");
>> +			drm_dbg_kms(dev, "Failed to lookup GEM object\n");
>>  			ret = -ENOENT;
>>  			goto err_gem_object_put;
>>  		}
>> -- 
>> 2.20.1
>> 
>> _______________________________________________
>> dri-devel mailing list
>> dri-devel@lists.freedesktop.org
>> https://lists.freedesktop.org/mailman/listinfo/dri-devel
> _______________________________________________
> dri-devel mailing list
> dri-devel@lists.freedesktop.org
> https://lists.freedesktop.org/mailman/listinfo/dri-devel

-- 
Jani Nikula, Intel Open Source Graphics Center
_______________________________________________
dri-devel mailing list
dri-devel@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/dri-devel

^ permalink raw reply	[flat|nested] 53+ messages in thread

* Re: [Intel-gfx] [PATCH 4/8] drm/gem-fb-helper: convert to drm device based logging
@ 2019-12-19 14:23       ` Jani Nikula
  0 siblings, 0 replies; 53+ messages in thread
From: Jani Nikula @ 2019-12-19 14:23 UTC (permalink / raw)
  To: Sam Ravnborg; +Cc: intel-gfx, dri-devel

On Tue, 17 Dec 2019, Sam Ravnborg <sam@ravnborg.org> wrote:
> On Tue, Dec 10, 2019 at 02:30:46PM +0200, Jani Nikula wrote:
>> Prefer drm_dbg_kms() and drm_err() over all other logging.
>> 
>> Signed-off-by: Jani Nikula <jani.nikula@intel.com>
> Reviewed-by: Sam Ravnborg <sam@ravnborg.org>

Thanks for the review, pushed up to this patch.

BR,
Jani.

>
>> ---
>>  drivers/gpu/drm/drm_gem_framebuffer_helper.c | 5 ++---
>>  1 file changed, 2 insertions(+), 3 deletions(-)
>> 
>> diff --git a/drivers/gpu/drm/drm_gem_framebuffer_helper.c b/drivers/gpu/drm/drm_gem_framebuffer_helper.c
>> index b9bcd310ca2d..3a7ace19a902 100644
>> --- a/drivers/gpu/drm/drm_gem_framebuffer_helper.c
>> +++ b/drivers/gpu/drm/drm_gem_framebuffer_helper.c
>> @@ -74,8 +74,7 @@ drm_gem_fb_alloc(struct drm_device *dev,
>>  
>>  	ret = drm_framebuffer_init(dev, fb, funcs);
>>  	if (ret) {
>> -		DRM_DEV_ERROR(dev->dev, "Failed to init framebuffer: %d\n",
>> -			      ret);
>> +		drm_err(dev, "Failed to init framebuffer: %d\n", ret);
>>  		kfree(fb);
>>  		return ERR_PTR(ret);
>>  	}
>> @@ -160,7 +159,7 @@ drm_gem_fb_create_with_funcs(struct drm_device *dev, struct drm_file *file,
>>  
>>  		objs[i] = drm_gem_object_lookup(file, mode_cmd->handles[i]);
>>  		if (!objs[i]) {
>> -			DRM_DEBUG_KMS("Failed to lookup GEM object\n");
>> +			drm_dbg_kms(dev, "Failed to lookup GEM object\n");
>>  			ret = -ENOENT;
>>  			goto err_gem_object_put;
>>  		}
>> -- 
>> 2.20.1
>> 
>> _______________________________________________
>> dri-devel mailing list
>> dri-devel@lists.freedesktop.org
>> https://lists.freedesktop.org/mailman/listinfo/dri-devel
> _______________________________________________
> dri-devel mailing list
> dri-devel@lists.freedesktop.org
> https://lists.freedesktop.org/mailman/listinfo/dri-devel

-- 
Jani Nikula, Intel Open Source Graphics Center
_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx

^ permalink raw reply	[flat|nested] 53+ messages in thread

end of thread, other threads:[~2019-12-19 14:23 UTC | newest]

Thread overview: 53+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2019-12-10 12:30 [PATCH 1/8] drm/print: introduce new struct drm_device based logging macros Jani Nikula
2019-12-10 12:30 ` [Intel-gfx] " Jani Nikula
2019-12-10 12:30 ` [PATCH 2/8] drm/client: convert to drm device based logging Jani Nikula
2019-12-10 12:30   ` [Intel-gfx] " Jani Nikula
2019-12-17 18:51   ` Sam Ravnborg
2019-12-17 18:51     ` [Intel-gfx] " Sam Ravnborg
2019-12-10 12:30 ` [PATCH 3/8] drm/fb-helper: " Jani Nikula
2019-12-10 12:30   ` [Intel-gfx] " Jani Nikula
2019-12-17 18:56   ` Sam Ravnborg
2019-12-17 18:56     ` [Intel-gfx] " Sam Ravnborg
2019-12-10 12:30 ` [PATCH 4/8] drm/gem-fb-helper: " Jani Nikula
2019-12-10 12:30   ` [Intel-gfx] " Jani Nikula
2019-12-17 18:57   ` Sam Ravnborg
2019-12-17 18:57     ` [Intel-gfx] " Sam Ravnborg
2019-12-19 14:23     ` Jani Nikula
2019-12-19 14:23       ` [Intel-gfx] " Jani Nikula
2019-12-10 12:30 ` [PATCH 5/8] drm/mipi-dbi: " Jani Nikula
2019-12-10 12:30   ` [Intel-gfx] " Jani Nikula
2019-12-17 19:00   ` Sam Ravnborg
2019-12-17 19:00     ` [Intel-gfx] " Sam Ravnborg
2019-12-17 19:10     ` Sam Ravnborg
2019-12-17 19:10       ` [Intel-gfx] " Sam Ravnborg
2019-12-10 12:30 ` [PATCH 6/8] drm/atomic: " Jani Nikula
2019-12-10 12:30   ` [Intel-gfx] " Jani Nikula
2019-12-12  8:07   ` [6/8] " james qian wang (Arm Technology China)
2019-12-12  8:07     ` [Intel-gfx] " james qian wang (Arm Technology China)
2019-12-12  8:33     ` Jani Nikula
2019-12-12  8:33       ` [Intel-gfx] " Jani Nikula
2019-12-17 19:07   ` [PATCH 6/8] " Sam Ravnborg
2019-12-17 19:07     ` [Intel-gfx] " Sam Ravnborg
2019-12-10 12:30 ` [PATCH 7/8] drm/i915/uc: " Jani Nikula
2019-12-10 12:30   ` [Intel-gfx] " Jani Nikula
2019-12-10 12:30 ` [PATCH 8/8] drm/i915/wopcm: " Jani Nikula
2019-12-10 12:30   ` [Intel-gfx] " Jani Nikula
2019-12-10 12:34 ` [PATCH 1/8] drm/print: introduce new struct drm_device based logging macros Jani Nikula
2019-12-10 12:34   ` [Intel-gfx] " Jani Nikula
2019-12-10 22:07   ` Daniel Vetter
2019-12-10 22:07     ` [Intel-gfx] " Daniel Vetter
2019-12-10 19:27 ` [Intel-gfx] ✗ Fi.CI.CHECKPATCH: warning for series starting with [1/8] " Patchwork
2019-12-10 19:52 ` [Intel-gfx] ✗ Fi.CI.BAT: failure " Patchwork
2019-12-12 21:53 ` [PATCH 1/8] " Sam Ravnborg
2019-12-12 21:53   ` [Intel-gfx] " Sam Ravnborg
2019-12-13 14:41   ` Jani Nikula
2019-12-13 14:41     ` [Intel-gfx] " Jani Nikula
2019-12-13 13:48 ` [Intel-gfx] ✗ Fi.CI.CHECKPATCH: warning for series starting with [1/8] drm/print: introduce new struct drm_device based logging macros (rev2) Patchwork
2019-12-13 15:01 ` [Intel-gfx] ✗ Fi.CI.BAT: failure " Patchwork
2019-12-13 19:40 ` [Intel-gfx] ✗ Fi.CI.CHECKPATCH: warning for series starting with [1/8] drm/print: introduce new struct drm_device based logging macros (rev3) Patchwork
2019-12-13 20:22 ` [Intel-gfx] ✓ Fi.CI.BAT: success " Patchwork
2019-12-14 16:10 ` [Intel-gfx] ✗ Fi.CI.IGT: failure " Patchwork
2019-12-17 14:45 ` [PATCH 1/8] drm/print: introduce new struct drm_device based logging macros Jani Nikula
2019-12-17 14:45   ` [Intel-gfx] " Jani Nikula
2019-12-17 16:11   ` Sam Ravnborg
2019-12-17 16:11     ` [Intel-gfx] " Sam Ravnborg

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.