[PATCH 1/6] drm: helper macros to print composite types

2016-10-17 Thread Sean Paul
On Fri, Oct 14, 2016 at 7:55 PM, Rob Clark  wrote:
> I'll want to print things in a similar way in a later patch.  This will
> make it easier.
>

Reviewed-by: Sean Paul 

> TODO drm_rect_debug_print() doesn't have many call sites, and is kind of
> unnecessary now.  Should we just drop it?
>

yeah, seems like you could get the same info from the state dumps.

> Signed-off-by: Rob Clark 
> ---
>  drivers/gpu/drm/drm_modes.c |  8 +---
>  drivers/gpu/drm/drm_rect.c  | 11 ++-
>  include/drm/drmP.h  | 21 +
>  3 files changed, 24 insertions(+), 16 deletions(-)
>
> diff --git a/drivers/gpu/drm/drm_modes.c b/drivers/gpu/drm/drm_modes.c
> index fc5040a..77b0301 100644
> --- a/drivers/gpu/drm/drm_modes.c
> +++ b/drivers/gpu/drm/drm_modes.c
> @@ -49,13 +49,7 @@
>   */
>  void drm_mode_debug_printmodeline(const struct drm_display_mode *mode)
>  {
> -   DRM_DEBUG_KMS("Modeline %d:\"%s\" %d %d %d %d %d %d %d %d %d %d "
> -   "0x%x 0x%x\n",
> -   mode->base.id, mode->name, mode->vrefresh, mode->clock,
> -   mode->hdisplay, mode->hsync_start,
> -   mode->hsync_end, mode->htotal,
> -   mode->vdisplay, mode->vsync_start,
> -   mode->vsync_end, mode->vtotal, mode->type, mode->flags);
> +   DRM_DEBUG_KMS("Modeline " DRM_MODE_FMT "\n", DRM_MODE_ARG(mode));
>  }
>  EXPORT_SYMBOL(drm_mode_debug_printmodeline);
>
> diff --git a/drivers/gpu/drm/drm_rect.c b/drivers/gpu/drm/drm_rect.c
> index a8e2c86..d451112 100644
> --- a/drivers/gpu/drm/drm_rect.c
> +++ b/drivers/gpu/drm/drm_rect.c
> @@ -281,17 +281,10 @@ EXPORT_SYMBOL(drm_rect_calc_vscale_relaxed);
>   */
>  void drm_rect_debug_print(const char *prefix, const struct drm_rect *r, bool 
> fixed_point)
>  {
> -   int w = drm_rect_width(r);
> -   int h = drm_rect_height(r);
> -
> if (fixed_point)
> -   DRM_DEBUG_KMS("%s%d.%06ux%d.%06u%+d.%06u%+d.%06u\n", prefix,
> - w >> 16, ((w & 0x) * 15625) >> 10,
> - h >> 16, ((h & 0x) * 15625) >> 10,
> - r->x1 >> 16, ((r->x1 & 0x) * 15625) >> 10,
> - r->y1 >> 16, ((r->y1 & 0x) * 15625) >> 10);
> +   DRM_DEBUG_KMS("%s" DRM_RECT_FP_FMT "\n", prefix, 
> DRM_RECT_FP_ARG(r));
> else
> -   DRM_DEBUG_KMS("%s%dx%d%+d%+d\n", prefix, w, h, r->x1, r->y1);
> +   DRM_DEBUG_KMS("%s" DRM_RECT_FMT "\n", prefix, 
> DRM_RECT_ARG(r));
>  }
>  EXPORT_SYMBOL(drm_rect_debug_print);
>
> diff --git a/include/drm/drmP.h b/include/drm/drmP.h
> index 28d341a..7ffaa35 100644
> --- a/include/drm/drmP.h
> +++ b/include/drm/drmP.h
> @@ -231,6 +231,27 @@ void drm_err(const char *format, ...);
> drm_ut_debug_printk(__func__, fmt, ##args); \
> } while (0)
>
> +/* Format strings and argument splitters to simplify printing
> + * various "complex" objects
> + */
> +#define DRM_MODE_FMT"%d:\"%s\" %d %d %d %d %d %d %d %d %d %d 0x%x 0x%x"
> +#define DRM_MODE_ARG(m) \
> +   (m)->base.id, (m)->name, (m)->vrefresh, (m)->clock, \
> +   (m)->hdisplay, (m)->hsync_start, (m)->hsync_end, (m)->htotal, \
> +   (m)->vdisplay, (m)->vsync_start, (m)->vsync_end, (m)->vtotal, \
> +   (m)->type, (m)->flags
> +
> +#define DRM_RECT_FMT"%dx%d%+d%+d"
> +#define DRM_RECT_ARG(r) drm_rect_width(r), drm_rect_height(r), (r)->x1, 
> (r)->y1
> +
> +/* for rect's in fixed-point format: */
> +#define DRM_RECT_FP_FMT "%d.%06ux%d.%06u%+d.%06u%+d.%06u"
> +#define DRM_RECT_FP_ARG(r) \
> +   drm_rect_width(r) >> 16, ((drm_rect_width(r) & 0x) * 
> 15625) >> 10, \
> +   drm_rect_height(r) >> 16, ((drm_rect_height(r) & 0x) * 
> 15625) >> 10, \
> +   (r)->x1 >> 16, (((r)->x1 & 0x) * 15625) >> 10, \
> +   (r)->y1 >> 16, (((r)->y1 & 0x) * 15625) >> 10
> +
>  /*@}*/
>
>  /***/
> --
> 2.7.4
>


[PATCH 1/6] drm: helper macros to print composite types

2016-10-14 Thread Rob Clark
I'll want to print things in a similar way in a later patch.  This will
make it easier.

TODO drm_rect_debug_print() doesn't have many call sites, and is kind of
unnecessary now.  Should we just drop it?

Signed-off-by: Rob Clark 
---
 drivers/gpu/drm/drm_modes.c |  8 +---
 drivers/gpu/drm/drm_rect.c  | 11 ++-
 include/drm/drmP.h  | 21 +
 3 files changed, 24 insertions(+), 16 deletions(-)

diff --git a/drivers/gpu/drm/drm_modes.c b/drivers/gpu/drm/drm_modes.c
index fc5040a..77b0301 100644
--- a/drivers/gpu/drm/drm_modes.c
+++ b/drivers/gpu/drm/drm_modes.c
@@ -49,13 +49,7 @@
  */
 void drm_mode_debug_printmodeline(const struct drm_display_mode *mode)
 {
-   DRM_DEBUG_KMS("Modeline %d:\"%s\" %d %d %d %d %d %d %d %d %d %d "
-   "0x%x 0x%x\n",
-   mode->base.id, mode->name, mode->vrefresh, mode->clock,
-   mode->hdisplay, mode->hsync_start,
-   mode->hsync_end, mode->htotal,
-   mode->vdisplay, mode->vsync_start,
-   mode->vsync_end, mode->vtotal, mode->type, mode->flags);
+   DRM_DEBUG_KMS("Modeline " DRM_MODE_FMT "\n", DRM_MODE_ARG(mode));
 }
 EXPORT_SYMBOL(drm_mode_debug_printmodeline);

diff --git a/drivers/gpu/drm/drm_rect.c b/drivers/gpu/drm/drm_rect.c
index a8e2c86..d451112 100644
--- a/drivers/gpu/drm/drm_rect.c
+++ b/drivers/gpu/drm/drm_rect.c
@@ -281,17 +281,10 @@ EXPORT_SYMBOL(drm_rect_calc_vscale_relaxed);
  */
 void drm_rect_debug_print(const char *prefix, const struct drm_rect *r, bool 
fixed_point)
 {
-   int w = drm_rect_width(r);
-   int h = drm_rect_height(r);
-
if (fixed_point)
-   DRM_DEBUG_KMS("%s%d.%06ux%d.%06u%+d.%06u%+d.%06u\n", prefix,
- w >> 16, ((w & 0x) * 15625) >> 10,
- h >> 16, ((h & 0x) * 15625) >> 10,
- r->x1 >> 16, ((r->x1 & 0x) * 15625) >> 10,
- r->y1 >> 16, ((r->y1 & 0x) * 15625) >> 10);
+   DRM_DEBUG_KMS("%s" DRM_RECT_FP_FMT "\n", prefix, 
DRM_RECT_FP_ARG(r));
else
-   DRM_DEBUG_KMS("%s%dx%d%+d%+d\n", prefix, w, h, r->x1, r->y1);
+   DRM_DEBUG_KMS("%s" DRM_RECT_FMT "\n", prefix, DRM_RECT_ARG(r));
 }
 EXPORT_SYMBOL(drm_rect_debug_print);

diff --git a/include/drm/drmP.h b/include/drm/drmP.h
index 28d341a..7ffaa35 100644
--- a/include/drm/drmP.h
+++ b/include/drm/drmP.h
@@ -231,6 +231,27 @@ void drm_err(const char *format, ...);
drm_ut_debug_printk(__func__, fmt, ##args); \
} while (0)

+/* Format strings and argument splitters to simplify printing
+ * various "complex" objects
+ */
+#define DRM_MODE_FMT"%d:\"%s\" %d %d %d %d %d %d %d %d %d %d 0x%x 0x%x"
+#define DRM_MODE_ARG(m) \
+   (m)->base.id, (m)->name, (m)->vrefresh, (m)->clock, \
+   (m)->hdisplay, (m)->hsync_start, (m)->hsync_end, (m)->htotal, \
+   (m)->vdisplay, (m)->vsync_start, (m)->vsync_end, (m)->vtotal, \
+   (m)->type, (m)->flags
+
+#define DRM_RECT_FMT"%dx%d%+d%+d"
+#define DRM_RECT_ARG(r) drm_rect_width(r), drm_rect_height(r), (r)->x1, (r)->y1
+
+/* for rect's in fixed-point format: */
+#define DRM_RECT_FP_FMT "%d.%06ux%d.%06u%+d.%06u%+d.%06u"
+#define DRM_RECT_FP_ARG(r) \
+   drm_rect_width(r) >> 16, ((drm_rect_width(r) & 0x) * 15625) 
>> 10, \
+   drm_rect_height(r) >> 16, ((drm_rect_height(r) & 0x) * 
15625) >> 10, \
+   (r)->x1 >> 16, (((r)->x1 & 0x) * 15625) >> 10, \
+   (r)->y1 >> 16, (((r)->y1 & 0x) * 15625) >> 10
+
 /*@}*/

 /***/
-- 
2.7.4