Re: [PATCH] drm/rockchip: use DRM_DEV_ERROR for log output

From: Joe Perches
Date: Fri Nov 08 2019 - 19:42:59 EST


On Thu, 2019-11-07 at 08:38 -0500, Sean Paul wrote:
> On Thu, Nov 07, 2019 at 01:54:22AM -0800, Joe Perches wrote:
> > On Thu, 2019-11-07 at 12:29 +0300, Wambui Karuga wrote:
> > > Replace the use of the dev_err macro with the DRM_DEV_ERROR
> > > DRM helper macro.
> >
> > The commit message should show the reason _why_ you are doing
> > this instead of just stating that you are doing this.
> >
> > It's not that dev_err is uncommon in drivers/gpu/drm.
> >
>
> It is uncommon (this is the sole instance) in rockchip, however. So it makes
> sense to convert the dev_* prints in rockchip to DRM_DEV for consistency.
>
> Wambui, could you also please convert the dev_warn instance as well?
>
> I'll apply this to drm-misc-next and expand on the commit message a bit.

Here's a patch that reduces the size of a defconfig arm build
for drivers/gpu/drm by about 4k by removing the separate
KERN_<LEVEL> argument from drm_dev_printk and change the macros
to prefix the KERN_<LEVEL> to the format.

It also trivially reduces an x86 defconfig.

Here are the arm object size changes: (only files with size deltas)

old new savings filename

4521 4505 16 drivers/gpu/drm/panel/panel-raydium-rm68200.o
14003 13983 20 drivers/gpu/drm/drm_fb_helper.o
2946 3122 -176 drivers/gpu/drm/drm_print.o
29656 29644 12 drivers/gpu/drm/panfrost/panfrost.o
1012 1000 12 drivers/gpu/drm/panfrost/panfrost_devfreq.o
3184 3144 40 drivers/gpu/drm/rockchip/analogix_dp-rockchip.o
11780 11772 8 drivers/gpu/drm/rockchip/rockchip_vop_reg.o
3860 3836 24 drivers/gpu/drm/rockchip/dw_hdmi-rockchip.o
6832 6748 84 drivers/gpu/drm/rockchip/dw-mipi-dsi-rockchip.o
19247 19167 80 drivers/gpu/drm/rockchip/rockchip_drm_vop.o
3449 3433 16 drivers/gpu/drm/rockchip/rockchip_drm_drv.o
57144 56824 320 drivers/gpu/drm/rockchip/rockchipdrm.o
820 800 20 drivers/gpu/drm/rockchip/rockchip_drm_fb.o
1032 1012 20 drivers/gpu/drm/rockchip/rockchip_drm_fbdev.o
4248 4220 28 drivers/gpu/drm/rockchip/inno_hdmi.o
3088 3076 12 drivers/gpu/drm/vc4/vc4_hvs.o
113808 113796 12 drivers/gpu/drm/vc4/vc4.o
2506 2478 28 drivers/gpu/drm/drm_client.o
19059 19027 32 drivers/gpu/drm/bridge/analogix/analogix_dp.o
11387 11355 32 drivers/gpu/drm/bridge/analogix/analogix_dp_core.o
3060 3020 40 drivers/gpu/drm/exynos/exynos_drm_gem.o
17928 17864 64 drivers/gpu/drm/exynos/exynos_hdmi.o
536 528 8 drivers/gpu/drm/exynos/exynos_drm_dma.o
981 957 24 drivers/gpu/drm/exynos/exynos_drm_fb.o
1556 1524 32 drivers/gpu/drm/exynos/exynos_drm_fbdev.o
8932 8888 44 drivers/gpu/drm/exynos/exynos_drm_fimd.o
2021 1997 24 drivers/gpu/drm/exynos/exynos_dp.o
1172 1148 24 drivers/gpu/drm/exynos/exynos_drm_dpi.o
66538 66214 324 drivers/gpu/drm/exynos/exynosdrm.o
11982 11950 32 drivers/gpu/drm/exynos/exynos_mixer.o
1528 1512 16 drivers/gpu/drm/exynos/exynos_drm_plane.o
11534 11518 16 drivers/gpu/drm/exynos/exynos_drm_dsi.o
1263 1255 8 drivers/gpu/drm/drm_gem_framebuffer_helper.o
8085 8057 28 drivers/gpu/drm/msm/adreno/adreno_gpu.o
1656 1640 16 drivers/gpu/drm/msm/adreno/a5xx_preempt.o
10581 10481 100 drivers/gpu/drm/msm/adreno/a6xx_gmu.o
14722 14694 28 drivers/gpu/drm/msm/adreno/a5xx_gpu.o
4608 4592 16 drivers/gpu/drm/msm/adreno/adreno_device.o
2486 2466 20 drivers/gpu/drm/msm/adreno/a6xx_hfi.o
5190 5182 8 drivers/gpu/drm/msm/adreno/a3xx_gpu.o
5942 5934 8 drivers/gpu/drm/msm/adreno/a4xx_gpu.o
8900 8860 40 drivers/gpu/drm/msm/adreno/a6xx_gpu.o
1432 1420 12 drivers/gpu/drm/msm/adreno/a5xx_debugfs.o
558494 556918 1576 drivers/gpu/drm/msm/msm.o
8461 8389 72 drivers/gpu/drm/msm/msm_gpu.o
1616 1596 20 drivers/gpu/drm/msm/disp/dpu1/dpu_io_util.o
12377 12353 24 drivers/gpu/drm/msm/disp/mdp5/mdp5_crtc.o
16950 16930 20 drivers/gpu/drm/msm/disp/mdp5/mdp5_plane.o
1768 1760 8 drivers/gpu/drm/msm/disp/mdp5/mdp5_mdss.o
1320 1308 12 drivers/gpu/drm/msm/disp/mdp5/mdp5_irq.o
8228 8212 16 drivers/gpu/drm/msm/disp/mdp5/mdp5_cfg.o
8307 8271 36 drivers/gpu/drm/msm/disp/mdp5/mdp5_ctl.o
8252 8152 100 drivers/gpu/drm/msm/disp/mdp5/mdp5_kms.o
2883 2855 28 drivers/gpu/drm/msm/disp/mdp5/mdp5_cmd_encoder.o
4538 4518 20 drivers/gpu/drm/msm/disp/mdp5/mdp5_smp.o
4916 4852 64 drivers/gpu/drm/msm/disp/mdp4/mdp4_kms.o
2896 2856 40 drivers/gpu/drm/msm/disp/mdp4/mdp4_lcdc_encoder.o
1844 1820 24 drivers/gpu/drm/msm/disp/mdp4/mdp4_dtv_encoder.o
836 824 12 drivers/gpu/drm/msm/disp/mdp4/mdp4_irq.o
6529 6525 4 drivers/gpu/drm/msm/disp/mdp4/mdp4_crtc.o
2616 2600 16 drivers/gpu/drm/msm/disp/mdp4/mdp4_plane.o
1896 1872 24 drivers/gpu/drm/msm/msm_fb.o
1748 1732 16 drivers/gpu/drm/msm/edp/edp.o
1724 1708 16 drivers/gpu/drm/msm/msm_debugfs.o
8390 8334 56 drivers/gpu/drm/msm/msm_gem.o
5316 5304 12 drivers/gpu/drm/msm/dsi/dsi_manager.o
2212 2188 24 drivers/gpu/drm/msm/dsi/dsi.o
5240 5224 16 drivers/gpu/drm/msm/dsi/pll/dsi_pll_10nm.o
968 960 8 drivers/gpu/drm/msm/dsi/pll/dsi_pll.o
2768 2740 28 drivers/gpu/drm/msm/dsi/pll/dsi_pll_28nm_8960.o
6276 6244 32 drivers/gpu/drm/msm/dsi/pll/dsi_pll_14nm.o
4908 4864 44 drivers/gpu/drm/msm/dsi/pll/dsi_pll_28nm.o
16704 16672 32 drivers/gpu/drm/msm/dsi/dsi_host.o
1392 1380 12 drivers/gpu/drm/msm/dsi/phy/dsi_phy_28nm_8960.o
1264 1252 12 drivers/gpu/drm/msm/dsi/phy/dsi_phy_20nm.o
2208 2188 20 drivers/gpu/drm/msm/dsi/phy/dsi_phy_10nm.o
10536 10456 80 drivers/gpu/drm/msm/dsi/phy/dsi_phy.o
1520 1500 20 drivers/gpu/drm/msm/dsi/phy/dsi_phy_14nm.o
2100 2088 12 drivers/gpu/drm/msm/dsi/phy/dsi_phy_28nm.o
11032 10984 48 drivers/gpu/drm/msm/msm_drv.o
1328 1308 20 drivers/gpu/drm/msm/msm_fbdev.o
2892 2848 44 drivers/gpu/drm/msm/hdmi/hdmi_phy.o
6448 6436 12 drivers/gpu/drm/msm/hdmi/hdmi_phy_8996.o
3872 3860 12 drivers/gpu/drm/msm/hdmi/hdmi_pll_8960.o
7052 6932 120 drivers/gpu/drm/msm/hdmi/hdmi.o
2216 2164 52 drivers/gpu/drm/msm/hdmi/hdmi_bridge.o
1652 1640 12 drivers/gpu/drm/msm/hdmi/hdmi_i2c.o
6236178 6231730 4448 (TOTALS)
---
drivers/gpu/drm/drm_print.c | 19 +++++++++++++++----
include/drm/drm_print.h | 9 ++++-----
2 files changed, 19 insertions(+), 9 deletions(-)

diff --git a/drivers/gpu/drm/drm_print.c b/drivers/gpu/drm/drm_print.c
index 9a25d7..fd6a3a9 100644
--- a/drivers/gpu/drm/drm_print.c
+++ b/drivers/gpu/drm/drm_print.c
@@ -235,14 +235,25 @@ void drm_print_bits(struct drm_printer *p, unsigned long value,
}
EXPORT_SYMBOL(drm_print_bits);

-void drm_dev_printk(const struct device *dev, const char *level,
- const char *format, ...)
+void drm_dev_printk(const struct device *dev, const char *fmt, ...)
{
+ char level[PRINTK_MAX_SINGLE_HEADER_LEN + 1] = {0};
+ int kern_level;
struct va_format vaf;
va_list args;

- va_start(args, format);
- vaf.fmt = format;
+ va_start(args, fmt);
+
+ kern_level = printk_get_level(fmt);
+ if (kern_level >= '0' && kern_level <= '7') {
+ size_t size = printk_skip_level(fmt) - fmt;
+
+ memcpy(level, fmt, size);
+ level[size] = '\0';
+ fmt += size;
+ }
+
+ vaf.fmt = fmt;
vaf.va = &args;

if (dev)
diff --git a/include/drm/drm_print.h b/include/drm/drm_print.h
index 5b8049..fa0c12 100644
--- a/include/drm/drm_print.h
+++ b/include/drm/drm_print.h
@@ -298,9 +298,8 @@ static inline bool drm_debug_enabled(unsigned int category)
return unlikely(drm_debug & category);
}

-__printf(3, 4)
-void drm_dev_printk(const struct device *dev, const char *level,
- const char *format, ...);
+__printf(2, 3)
+void drm_dev_printk(const struct device *dev, const char *fmt, ...);
__printf(3, 4)
void drm_dev_dbg(const struct device *dev, unsigned int category,
const char *format, ...);
@@ -336,7 +335,7 @@ void drm_err(const char *format, ...);
* @fmt: printf() like format string.
*/
#define DRM_DEV_ERROR(dev, fmt, ...) \
- drm_dev_printk(dev, KERN_ERR, "*ERROR* " fmt, ##__VA_ARGS__)
+ drm_dev_printk(dev, KERN_ERR "*ERROR* " fmt, ##__VA_ARGS__)
#define DRM_ERROR(fmt, ...) \
drm_err(fmt, ##__VA_ARGS__)

@@ -359,7 +358,7 @@ void drm_err(const char *format, ...);
DRM_DEV_ERROR_RATELIMITED(NULL, fmt, ##__VA_ARGS__)

#define DRM_DEV_INFO(dev, fmt, ...) \
- drm_dev_printk(dev, KERN_INFO, fmt, ##__VA_ARGS__)
+ drm_dev_printk(dev, KERN_INFO fmt, ##__VA_ARGS__)

#define DRM_DEV_INFO_ONCE(dev, fmt, ...) \
({ \