Hi Thierry et al.
While reviewing a number of new panel drivers there was a
certain pattern in the feedback:
- the now deprecated drmP.h file was used
- dev_err() and friends was used
This patch-set address the above items in the panel
drivers in drm/panel/
The hope is that new panel drivers will no longer inherit bad
patterns from the existing drivers.
The use of DRM_DEV* is not accepted by everyone, so this conversion
was split up in smaller bits.
If some drivers do not want to use DRM_DEV* then just drop the relevant patch.
All patches are build tested on x86/arm.
The DRM_DEV* patches depends on the drmP.h removal.
One extra patch sneaked in "panel-innolux: drop unused variable"
This is a fix for an unused variable and was added to flush my panel patches.
Note: Waiting for key storage (for gpg key) before I start the process getting
commit rights, so I rely on someone else (Thierry?) to commit this.
Patches are made on top of drm-misc-next as of a few days ago.
Comments welcome!
Sam
Sam Ravnborg (19):
drm/panel: drop drmP.h usage
drm/panel: panel-innolux: drop unused variable
drm/panel: samsung: use DRM_DEV*
drm/panel: arm-versatile: use DRM_DEV*
drm/panel: truly: use DRM_DEV*
drm/panel: sitronix: use DRM_DEV*
drm/panel: ilitek: use DRM_DEV*
drm/panel: innolux: use DRM_DEV*
drm/panel: jdi: use DRM_DEV*
drm/panel: lg: use DRM_DEV*
drm/panel: lvds: use DRM_DEV*
drm/panel: olimex: use DRM_DEV*
drm/panel: orisetech: use DRM_DEV*
drm/panel: panasonic: use DRM_DEV*
drm/panel: raspberrypi: use DRM_DEV*
drm/panel: raydium: use DRM_DEV*
drm/panel: seiko: use DRM_DEV*
drm/panel: sharp: use DRM_DEV*
drm/panel: simple: use DRM_DEV*
drivers/gpu/drm/panel/panel-arm-versatile.c | 21 +++--
drivers/gpu/drm/panel/panel-ilitek-ili9322.c | 97 ++++++++++++----------
drivers/gpu/drm/panel/panel-ilitek-ili9881c.c | 14 ++--
drivers/gpu/drm/panel/panel-innolux-p079zca.c | 17 ++--
drivers/gpu/drm/panel/panel-jdi-lt070me05000.c | 66 ++++++++-------
drivers/gpu/drm/panel/panel-kingdisplay-kd097d04.c | 4 +-
drivers/gpu/drm/panel/panel-lg-lg4573.c | 25 +++---
drivers/gpu/drm/panel/panel-lvds.c | 39 +++++----
drivers/gpu/drm/panel/panel-olimex-lcd-olinuxino.c | 28 ++++---
drivers/gpu/drm/panel/panel-orisetech-otm8009a.c | 15 ++--
.../gpu/drm/panel/panel-panasonic-vvx10f034n00.c | 19 +++--
.../gpu/drm/panel/panel-raspberrypi-touchscreen.c | 25 +++---
drivers/gpu/drm/panel/panel-raydium-rm68200.c | 11 ++-
drivers/gpu/drm/panel/panel-samsung-ld9040.c | 18 ++--
drivers/gpu/drm/panel/panel-samsung-s6e3ha2.c | 21 +++--
drivers/gpu/drm/panel/panel-samsung-s6e63j0x03.c | 15 ++--
drivers/gpu/drm/panel/panel-samsung-s6e8aa0.c | 32 ++++---
drivers/gpu/drm/panel/panel-seiko-43wvf1g.c | 18 ++--
drivers/gpu/drm/panel/panel-sharp-lq101r1sx01.c | 66 ++++++++++-----
drivers/gpu/drm/panel/panel-sharp-ls043t1le01.c | 27 +++---
drivers/gpu/drm/panel/panel-simple.c | 22 +++--
drivers/gpu/drm/panel/panel-sitronix-st7789v.c | 16 ++--
drivers/gpu/drm/panel/panel-truly-nt35597.c | 10 ++-
23 files changed, 375 insertions(+), 251 deletions(-)
Introduce use of DRM_DEV* for logging.
This makes logging in the drm subsystem more consistent.
Signed-off-by: Sam Ravnborg <[email protected]>
Cc: Thierry Reding <[email protected]>
Cc: David Airlie <[email protected]>
Cc: Daniel Vetter <[email protected]>
Cc: Stefan Mavrodiev <[email protected]>
---
drivers/gpu/drm/panel/panel-truly-nt35597.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/drivers/gpu/drm/panel/panel-truly-nt35597.c b/drivers/gpu/drm/panel/panel-truly-nt35597.c
index 6317b6b35341..162e8002c114 100644
--- a/drivers/gpu/drm/panel/panel-truly-nt35597.c
+++ b/drivers/gpu/drm/panel/panel-truly-nt35597.c
@@ -581,7 +581,7 @@ static int truly_nt35597_probe(struct mipi_dsi_device *dsi)
ctx->config = of_device_get_match_data(dev);
if (!ctx->config) {
- dev_err(dev, "missing device configuration\n");
+ DRM_DEV_ERROR(dev, "missing device configuration\n");
return -ENODEV;
}
--
2.12.0
Introduce use of DRM_DEV* for logging.
This makes logging in the drm subsystem more consistent.
Signed-off-by: Sam Ravnborg <[email protected]>
Cc: Thierry Reding <[email protected]>
Cc: David Airlie <[email protected]>
Cc: Daniel Vetter <[email protected]>
Cc: Stefan Mavrodiev <[email protected]>
---
drivers/gpu/drm/panel/panel-arm-versatile.c | 18 ++++++++++--------
1 file changed, 10 insertions(+), 8 deletions(-)
diff --git a/drivers/gpu/drm/panel/panel-arm-versatile.c b/drivers/gpu/drm/panel/panel-arm-versatile.c
index 0ed8ee4673eb..d7139b7aff7d 100644
--- a/drivers/gpu/drm/panel/panel-arm-versatile.c
+++ b/drivers/gpu/drm/panel/panel-arm-versatile.c
@@ -27,6 +27,7 @@
*/
#include <drm/drm_modes.h>
#include <drm/drm_panel.h>
+#include <drm/drm_print.h>
#include <linux/bitops.h>
#include <linux/init.h>
@@ -233,7 +234,7 @@ static int versatile_panel_disable(struct drm_panel *panel)
/* If we're on an IB2 daughterboard, turn off display */
if (vpanel->ib2_map) {
- dev_dbg(vpanel->dev, "disable IB2 display\n");
+ DRM_DEV_DEBUG(vpanel->dev, "disable IB2 display\n");
regmap_update_bits(vpanel->ib2_map,
IB2_CTRL,
IB2_CTRL_LCD_MASK,
@@ -249,7 +250,7 @@ static int versatile_panel_enable(struct drm_panel *panel)
/* If we're on an IB2 daughterboard, turn on display */
if (vpanel->ib2_map) {
- dev_dbg(vpanel->dev, "enable IB2 display\n");
+ DRM_DEV_DEBUG(vpanel->dev, "enable IB2 display\n");
regmap_update_bits(vpanel->ib2_map,
IB2_CTRL,
IB2_CTRL_LCD_MASK,
@@ -300,12 +301,12 @@ static int versatile_panel_probe(struct platform_device *pdev)
parent = dev->parent;
if (!parent) {
- dev_err(dev, "no parent for versatile panel\n");
+ DRM_DEV_ERROR(dev, "no parent for versatile panel\n");
return -ENODEV;
}
map = syscon_node_to_regmap(parent->of_node);
if (IS_ERR(map)) {
- dev_err(dev, "no regmap for versatile panel parent\n");
+ DRM_DEV_ERROR(dev, "no regmap for versatile panel parent\n");
return PTR_ERR(map);
}
@@ -315,7 +316,7 @@ static int versatile_panel_probe(struct platform_device *pdev)
ret = regmap_read(map, SYS_CLCD, &val);
if (ret) {
- dev_err(dev, "cannot access syscon regs\n");
+ DRM_DEV_ERROR(dev, "cannot access syscon regs\n");
return ret;
}
@@ -333,11 +334,11 @@ static int versatile_panel_probe(struct platform_device *pdev)
/* No panel detected or VGA, let's leave this show */
if (i == ARRAY_SIZE(versatile_panels)) {
- dev_info(dev, "no panel detected\n");
+ DRM_DEV_INFO(dev, "no panel detected\n");
return -ENODEV;
}
- dev_info(dev, "detected: %s\n", vpanel->panel_type->name);
+ DRM_DEV_INFO(dev, "detected: %s\n", vpanel->panel_type->name);
vpanel->dev = dev;
vpanel->map = map;
@@ -348,7 +349,8 @@ static int versatile_panel_probe(struct platform_device *pdev)
if (IS_ERR(vpanel->ib2_map))
vpanel->ib2_map = NULL;
else
- dev_info(dev, "panel mounted on IB2 daughterboard\n");
+ DRM_DEV_INFO(dev,
+ "panel mounted on IB2 daughterboard\n");
}
drm_panel_init(&vpanel->panel);
--
2.12.0
Introduce use of DRM_DEV* for logging.
This makes logging in the drm subsystem more consistent.
Signed-off-by: Sam Ravnborg <[email protected]>
Cc: Thierry Reding <[email protected]>
Cc: David Airlie <[email protected]>
Cc: Daniel Vetter <[email protected]>
---
drivers/gpu/drm/panel/panel-lg-lg4573.c | 20 +++++++++++---------
1 file changed, 11 insertions(+), 9 deletions(-)
diff --git a/drivers/gpu/drm/panel/panel-lg-lg4573.c b/drivers/gpu/drm/panel/panel-lg-lg4573.c
index e63fba2761f4..9bbf6dde6b7d 100644
--- a/drivers/gpu/drm/panel/panel-lg-lg4573.c
+++ b/drivers/gpu/drm/panel/panel-lg-lg4573.c
@@ -18,6 +18,7 @@
#include <drm/drm_device.h>
#include <drm/drm_modes.h>
#include <drm/drm_panel.h>
+#include <drm/drm_print.h>
#include <linux/delay.h>
#include <linux/gpio/consumer.h>
@@ -48,7 +49,7 @@ static int lg4573_spi_write_u16(struct lg4573 *ctx, u16 data)
u16 temp = cpu_to_be16(data);
struct spi_message msg;
- dev_dbg(ctx->panel.dev, "writing data: %x\n", data);
+ DRM_DEV_DEBUG(ctx->panel.dev, "writing data: %x\n", data);
xfer.tx_buf = &temp;
spi_message_init(&msg);
spi_message_add_tail(&xfer, &msg);
@@ -115,7 +116,7 @@ static int lg4573_display_mode_settings(struct lg4573 *ctx)
0x7206, 0x720C, 0x7200, 0x7200,
};
- dev_dbg(ctx->panel.dev, "transfer display mode settings\n");
+ DRM_DEV_DEBUG(ctx->panel.dev, "transfer display mode settings\n");
return lg4573_spi_write_u16_array(ctx, display_mode_settings,
ARRAY_SIZE(display_mode_settings));
}
@@ -131,7 +132,7 @@ static int lg4573_power_settings(struct lg4573 *ctx)
0x7263,
};
- dev_dbg(ctx->panel.dev, "transfer power settings\n");
+ DRM_DEV_DEBUG(ctx->panel.dev, "transfer power settings\n");
return lg4573_spi_write_u16_array(ctx, power_settings,
ARRAY_SIZE(power_settings));
}
@@ -156,7 +157,7 @@ static int lg4573_gamma_settings(struct lg4573 *ctx)
0x7201, 0x7220, 0x7200, 0x7203,
};
- dev_dbg(ctx->panel.dev, "transfer gamma settings\n");
+ DRM_DEV_DEBUG(ctx->panel.dev, "transfer gamma settings\n");
return lg4573_spi_write_u16_array(ctx, gamma_settings,
ARRAY_SIZE(gamma_settings));
}
@@ -165,7 +166,7 @@ static int lg4573_init(struct lg4573 *ctx)
{
int ret;
- dev_dbg(ctx->panel.dev, "initializing LCD\n");
+ DRM_DEV_DEBUG(ctx->panel.dev, "initializing LCD\n");
ret = lg4573_display_mode_settings(ctx);
if (ret)
@@ -219,9 +220,10 @@ static int lg4573_get_modes(struct drm_panel *panel)
mode = drm_mode_duplicate(panel->drm, &default_mode);
if (!mode) {
- dev_err(panel->drm->dev, "failed to add mode %ux%ux@%u\n",
- default_mode.hdisplay, default_mode.vdisplay,
- default_mode.vrefresh);
+ DRM_DEV_ERROR(panel->drm->dev,
+ "failed to add mode %ux%ux@%u\n",
+ default_mode.hdisplay, default_mode.vdisplay,
+ default_mode.vrefresh);
return -ENOMEM;
}
@@ -258,7 +260,7 @@ static int lg4573_probe(struct spi_device *spi)
ret = spi_setup(spi);
if (ret < 0) {
- dev_err(&spi->dev, "SPI setup failed: %d\n", ret);
+ DRM_DEV_ERROR(&spi->dev, "SPI setup failed: %d\n", ret);
return ret;
}
--
2.12.0
Introduce use of DRM_DEV* for logging.
This makes logging in the drm subsystem more consistent.
Signed-off-by: Sam Ravnborg <[email protected]>
Cc: Thierry Reding <[email protected]>
Cc: David Airlie <[email protected]>
Cc: Daniel Vetter <[email protected]>
---
drivers/gpu/drm/panel/panel-lvds.c | 38 ++++++++++++++++++++++----------------
1 file changed, 22 insertions(+), 16 deletions(-)
diff --git a/drivers/gpu/drm/panel/panel-lvds.c b/drivers/gpu/drm/panel/panel-lvds.c
index 833aeb47065b..2aa0555f78ac 100644
--- a/drivers/gpu/drm/panel/panel-lvds.c
+++ b/drivers/gpu/drm/panel/panel-lvds.c
@@ -18,6 +18,7 @@
#include <drm/drm_crtc.h>
#include <drm/drm_panel.h>
+#include <drm/drm_print.h>
#include <video/display_timing.h>
#include <video/of_display_timing.h>
@@ -81,8 +82,8 @@ static int panel_lvds_prepare(struct drm_panel *panel)
err = regulator_enable(lvds->supply);
if (err < 0) {
- dev_err(lvds->dev, "failed to enable supply: %d\n",
- err);
+ DRM_DEV_ERROR(lvds->dev,
+ "failed to enable supply: %d\n", err);
return err;
}
}
@@ -154,14 +155,16 @@ static int panel_lvds_parse_dt(struct panel_lvds *lvds)
ret = of_property_read_u32(np, "width-mm", &lvds->width);
if (ret < 0) {
- dev_err(lvds->dev, "%pOF: invalid or missing %s DT property\n",
- np, "width-mm");
+ DRM_DEV_ERROR(lvds->dev,
+ "%pOF: invalid or missing %s DT property\n",
+ np, "width-mm");
return -ENODEV;
}
ret = of_property_read_u32(np, "height-mm", &lvds->height);
if (ret < 0) {
- dev_err(lvds->dev, "%pOF: invalid or missing %s DT property\n",
- np, "height-mm");
+ DRM_DEV_ERROR(lvds->dev,
+ "%pOF: invalid or missing %s DT property\n",
+ np, "height-mm");
return -ENODEV;
}
@@ -169,8 +172,9 @@ static int panel_lvds_parse_dt(struct panel_lvds *lvds)
ret = of_property_read_string(np, "data-mapping", &mapping);
if (ret < 0) {
- dev_err(lvds->dev, "%pOF: invalid or missing %s DT property\n",
- np, "data-mapping");
+ DRM_DEV_ERROR(lvds->dev,
+ "%pOF: invalid or missing %s DT property\n",
+ np, "data-mapping");
return -ENODEV;
}
@@ -181,8 +185,9 @@ static int panel_lvds_parse_dt(struct panel_lvds *lvds)
} else if (!strcmp(mapping, "vesa-24")) {
lvds->bus_format = MEDIA_BUS_FMT_RGB888_1X7X4_SPWG;
} else {
- dev_err(lvds->dev, "%pOF: invalid or missing %s DT property\n",
- np, "data-mapping");
+ DRM_DEV_ERROR(lvds->dev,
+ "%pOF: invalid or missing %s DT property\n",
+ np, "data-mapping");
return -EINVAL;
}
@@ -213,8 +218,9 @@ static int panel_lvds_probe(struct platform_device *pdev)
if (ret != -ENODEV) {
if (ret != -EPROBE_DEFER)
- dev_err(lvds->dev, "failed to request regulator: %d\n",
- ret);
+ DRM_DEV_ERROR(lvds->dev,
+ "failed to request regulator: %d\n",
+ ret);
return ret;
}
@@ -226,8 +232,8 @@ static int panel_lvds_probe(struct platform_device *pdev)
GPIOD_OUT_LOW);
if (IS_ERR(lvds->enable_gpio)) {
ret = PTR_ERR(lvds->enable_gpio);
- dev_err(lvds->dev, "failed to request %s GPIO: %d\n",
- "enable", ret);
+ DRM_DEV_ERROR(lvds->dev, "failed to request %s GPIO: %d\n",
+ "enable", ret);
return ret;
}
@@ -235,8 +241,8 @@ static int panel_lvds_probe(struct platform_device *pdev)
GPIOD_OUT_HIGH);
if (IS_ERR(lvds->reset_gpio)) {
ret = PTR_ERR(lvds->reset_gpio);
- dev_err(lvds->dev, "failed to request %s GPIO: %d\n",
- "reset", ret);
+ DRM_DEV_ERROR(lvds->dev, "failed to request %s GPIO: %d\n",
+ "reset", ret);
return ret;
}
--
2.12.0
Introduce use of DRM_DEV* for logging.
This makes logging in the drm subsystem more consistent.
Signed-off-by: Sam Ravnborg <[email protected]>
Cc: Thierry Reding <[email protected]>
Cc: David Airlie <[email protected]>
Cc: Daniel Vetter <[email protected]>
---
drivers/gpu/drm/panel/panel-panasonic-vvx10f034n00.c | 16 ++++++++++------
1 file changed, 10 insertions(+), 6 deletions(-)
diff --git a/drivers/gpu/drm/panel/panel-panasonic-vvx10f034n00.c b/drivers/gpu/drm/panel/panel-panasonic-vvx10f034n00.c
index c7037942c7f3..738270439285 100644
--- a/drivers/gpu/drm/panel/panel-panasonic-vvx10f034n00.c
+++ b/drivers/gpu/drm/panel/panel-panasonic-vvx10f034n00.c
@@ -28,6 +28,7 @@
#include <drm/drm_device.h>
#include <drm/drm_mipi_dsi.h>
#include <drm/drm_panel.h>
+#include <drm/drm_print.h>
#include <video/mipi_display.h>
@@ -132,7 +133,7 @@ static int wuxga_nt_panel_prepare(struct drm_panel *panel)
ret = wuxga_nt_panel_on(wuxga_nt);
if (ret < 0) {
- dev_err(panel->dev, "failed to set panel on: %d\n", ret);
+ DRM_DEV_ERROR(panel->dev, "failed to set panel on: %d\n", ret);
goto poweroff;
}
@@ -183,9 +184,10 @@ static int wuxga_nt_panel_get_modes(struct drm_panel *panel)
mode = drm_mode_duplicate(panel->drm, &default_mode);
if (!mode) {
- dev_err(panel->drm->dev, "failed to add mode %ux%ux@%u\n",
- default_mode.hdisplay, default_mode.vdisplay,
- default_mode.vrefresh);
+ DRM_DEV_ERROR(panel->drm->dev,
+ "failed to add mode %ux%ux@%u\n",
+ default_mode.hdisplay, default_mode.vdisplay,
+ default_mode.vrefresh);
return -ENOMEM;
}
@@ -294,11 +296,13 @@ static int wuxga_nt_panel_remove(struct mipi_dsi_device *dsi)
ret = wuxga_nt_panel_disable(&wuxga_nt->base);
if (ret < 0)
- dev_err(&dsi->dev, "failed to disable panel: %d\n", ret);
+ DRM_DEV_ERROR(&dsi->dev,
+ "failed to disable panel: %d\n", ret);
ret = mipi_dsi_detach(dsi);
if (ret < 0)
- dev_err(&dsi->dev, "failed to detach from DSI host: %d\n", ret);
+ DRM_DEV_ERROR(&dsi->dev,
+ "failed to detach from DSI host: %d\n", ret);
wuxga_nt_panel_del(wuxga_nt);
--
2.12.0
Introduce use of DRM_DEV* for logging.
This makes logging in the drm subsystem more consistent.
Signed-off-by: Sam Ravnborg <[email protected]>
Cc: Thierry Reding <[email protected]>
Cc: David Airlie <[email protected]>
Cc: Daniel Vetter <[email protected]>
---
drivers/gpu/drm/panel/panel-raydium-rm68200.c | 6 +++---
1 file changed, 3 insertions(+), 3 deletions(-)
diff --git a/drivers/gpu/drm/panel/panel-raydium-rm68200.c b/drivers/gpu/drm/panel/panel-raydium-rm68200.c
index e05e3f950855..bbf3f51c8a3a 100644
--- a/drivers/gpu/drm/panel/panel-raydium-rm68200.c
+++ b/drivers/gpu/drm/panel/panel-raydium-rm68200.c
@@ -379,14 +379,14 @@ static int rm68200_probe(struct mipi_dsi_device *dsi)
ctx->reset_gpio = devm_gpiod_get_optional(dev, "reset", GPIOD_OUT_LOW);
if (IS_ERR(ctx->reset_gpio)) {
ret = PTR_ERR(ctx->reset_gpio);
- dev_err(dev, "cannot get reset GPIO: %d\n", ret);
+ DRM_DEV_ERROR(dev, "cannot get reset GPIO: %d\n", ret);
return ret;
}
ctx->supply = devm_regulator_get(dev, "power");
if (IS_ERR(ctx->supply)) {
ret = PTR_ERR(ctx->supply);
- dev_err(dev, "cannot get regulator: %d\n", ret);
+ DRM_DEV_ERROR(dev, "cannot get regulator: %d\n", ret);
return ret;
}
@@ -411,7 +411,7 @@ static int rm68200_probe(struct mipi_dsi_device *dsi)
ret = mipi_dsi_attach(dsi);
if (ret < 0) {
- dev_err(dev, "mipi_dsi_attach() failed: %d\n", ret);
+ DRM_DEV_ERROR(dev, "mipi_dsi_attach() failed: %d\n", ret);
drm_panel_remove(&ctx->panel);
return ret;
}
--
2.12.0
Introduce use of DRM_DEV* for logging.
This makes logging in the drm subsystem more consistent.
Signed-off-by: Sam Ravnborg <[email protected]>
Cc: Thierry Reding <[email protected]>
Cc: David Airlie <[email protected]>
Cc: Daniel Vetter <[email protected]>
---
drivers/gpu/drm/panel/panel-sharp-lq101r1sx01.c | 63 ++++++++++++++++---------
drivers/gpu/drm/panel/panel-sharp-ls043t1le01.c | 24 ++++++----
2 files changed, 55 insertions(+), 32 deletions(-)
diff --git a/drivers/gpu/drm/panel/panel-sharp-lq101r1sx01.c b/drivers/gpu/drm/panel/panel-sharp-lq101r1sx01.c
index 2ed11d86c10e..98788750084c 100644
--- a/drivers/gpu/drm/panel/panel-sharp-lq101r1sx01.c
+++ b/drivers/gpu/drm/panel/panel-sharp-lq101r1sx01.c
@@ -17,6 +17,7 @@
#include <drm/drm_device.h>
#include <drm/drm_mipi_dsi.h>
#include <drm/drm_panel.h>
+#include <drm/drm_print.h>
#include <video/mipi_display.h>
@@ -58,14 +59,16 @@ static int sharp_panel_write(struct sharp_panel *sharp, u16 offset, u8 value)
err = mipi_dsi_generic_write(dsi, payload, sizeof(payload));
if (err < 0) {
- dev_err(&dsi->dev, "failed to write %02x to %04x: %zd\n",
- value, offset, err);
+ DRM_DEV_ERROR(&dsi->dev,
+ "failed to write %02x to %04x: %zd\n",
+ value, offset, err);
return err;
}
err = mipi_dsi_dcs_nop(dsi);
if (err < 0) {
- dev_err(&dsi->dev, "failed to send DCS nop: %zd\n", err);
+ DRM_DEV_ERROR(&dsi->dev,
+ "failed to send DCS nop: %zd\n", err);
return err;
}
@@ -84,8 +87,9 @@ static __maybe_unused int sharp_panel_read(struct sharp_panel *sharp,
err = mipi_dsi_generic_read(sharp->link1, &offset, sizeof(offset),
value, sizeof(*value));
if (err < 0)
- dev_err(&sharp->link1->dev, "failed to read from %04x: %zd\n",
- offset, err);
+ DRM_DEV_ERROR(&sharp->link1->dev,
+ "failed to read from %04x: %zd\n",
+ offset, err);
return err;
}
@@ -116,11 +120,13 @@ static int sharp_panel_unprepare(struct drm_panel *panel)
err = mipi_dsi_dcs_set_display_off(sharp->link1);
if (err < 0)
- dev_err(panel->dev, "failed to set display off: %d\n", err);
+ DRM_DEV_ERROR(panel->dev,
+ "failed to set display off: %d\n", err);
err = mipi_dsi_dcs_enter_sleep_mode(sharp->link1);
if (err < 0)
- dev_err(panel->dev, "failed to enter sleep mode: %d\n", err);
+ DRM_DEV_ERROR(panel->dev,
+ "failed to enter sleep mode: %d\n", err);
msleep(120);
@@ -139,26 +145,30 @@ static int sharp_setup_symmetrical_split(struct mipi_dsi_device *left,
err = mipi_dsi_dcs_set_column_address(left, 0, mode->hdisplay / 2 - 1);
if (err < 0) {
- dev_err(&left->dev, "failed to set column address: %d\n", err);
+ DRM_DEV_ERROR(&left->dev,
+ "failed to set column address: %d\n", err);
return err;
}
err = mipi_dsi_dcs_set_page_address(left, 0, mode->vdisplay - 1);
if (err < 0) {
- dev_err(&left->dev, "failed to set page address: %d\n", err);
+ DRM_DEV_ERROR(&left->dev,
+ "failed to set page address: %d\n", err);
return err;
}
err = mipi_dsi_dcs_set_column_address(right, mode->hdisplay / 2,
mode->hdisplay - 1);
if (err < 0) {
- dev_err(&right->dev, "failed to set column address: %d\n", err);
+ DRM_DEV_ERROR(&right->dev,
+ "failed to set column address: %d\n", err);
return err;
}
err = mipi_dsi_dcs_set_page_address(right, 0, mode->vdisplay - 1);
if (err < 0) {
- dev_err(&right->dev, "failed to set page address: %d\n", err);
+ DRM_DEV_ERROR(&right->dev,
+ "failed to set page address: %d\n", err);
return err;
}
@@ -188,7 +198,8 @@ static int sharp_panel_prepare(struct drm_panel *panel)
err = mipi_dsi_dcs_exit_sleep_mode(sharp->link1);
if (err < 0) {
- dev_err(panel->dev, "failed to exit sleep mode: %d\n", err);
+ DRM_DEV_ERROR(panel->dev,
+ "failed to exit sleep mode: %d\n", err);
goto poweroff;
}
@@ -204,20 +215,23 @@ static int sharp_panel_prepare(struct drm_panel *panel)
/* set left-right mode */
err = sharp_panel_write(sharp, 0x1000, 0x2a);
if (err < 0) {
- dev_err(panel->dev, "failed to set left-right mode: %d\n", err);
+ DRM_DEV_ERROR(panel->dev,
+ "failed to set left-right mode: %d\n", err);
goto poweroff;
}
/* enable command mode */
err = sharp_panel_write(sharp, 0x1001, 0x01);
if (err < 0) {
- dev_err(panel->dev, "failed to enable command mode: %d\n", err);
+ DRM_DEV_ERROR(panel->dev,
+ "failed to enable command mode: %d\n", err);
goto poweroff;
}
err = mipi_dsi_dcs_set_pixel_format(sharp->link1, format);
if (err < 0) {
- dev_err(panel->dev, "failed to set pixel format: %d\n", err);
+ DRM_DEV_ERROR(panel->dev,
+ "failed to set pixel format: %d\n", err);
goto poweroff;
}
@@ -231,14 +245,16 @@ static int sharp_panel_prepare(struct drm_panel *panel)
err = sharp_setup_symmetrical_split(sharp->link1, sharp->link2,
sharp->mode);
if (err < 0) {
- dev_err(panel->dev, "failed to set up symmetrical split: %d\n",
+ DRM_DEV_ERROR(panel->dev,
+ "failed to set up symmetrical split: %d\n",
err);
goto poweroff;
}
err = mipi_dsi_dcs_set_display_on(sharp->link1);
if (err < 0) {
- dev_err(panel->dev, "failed to set display on: %d\n", err);
+ DRM_DEV_ERROR(panel->dev,
+ "failed to set display on: %d\n", err);
goto poweroff;
}
@@ -287,9 +303,10 @@ static int sharp_panel_get_modes(struct drm_panel *panel)
mode = drm_mode_duplicate(panel->drm, &default_mode);
if (!mode) {
- dev_err(panel->drm->dev, "failed to add mode %ux%ux@%u\n",
- default_mode.hdisplay, default_mode.vdisplay,
- default_mode.vrefresh);
+ DRM_DEV_ERROR(panel->drm->dev,
+ "failed to add mode %ux%ux@%u\n",
+ default_mode.hdisplay, default_mode.vdisplay,
+ default_mode.vrefresh);
return -ENOMEM;
}
@@ -413,11 +430,13 @@ static int sharp_panel_remove(struct mipi_dsi_device *dsi)
err = sharp_panel_disable(&sharp->base);
if (err < 0)
- dev_err(&dsi->dev, "failed to disable panel: %d\n", err);
+ DRM_DEV_ERROR(&dsi->dev,
+ "failed to disable panel: %d\n", err);
err = mipi_dsi_detach(dsi);
if (err < 0)
- dev_err(&dsi->dev, "failed to detach from DSI host: %d\n", err);
+ DRM_DEV_ERROR(&dsi->dev,
+ "failed to detach from DSI host: %d\n", err);
sharp_panel_del(sharp);
diff --git a/drivers/gpu/drm/panel/panel-sharp-ls043t1le01.c b/drivers/gpu/drm/panel/panel-sharp-ls043t1le01.c
index e8e2277e934d..c34bb2a16f0e 100644
--- a/drivers/gpu/drm/panel/panel-sharp-ls043t1le01.c
+++ b/drivers/gpu/drm/panel/panel-sharp-ls043t1le01.c
@@ -29,6 +29,7 @@
#include <drm/drm_device.h>
#include <drm/drm_mipi_dsi.h>
#include <drm/drm_panel.h>
+#include <drm/drm_print.h>
#include <video/mipi_display.h>
@@ -135,7 +136,8 @@ static int sharp_nt_panel_unprepare(struct drm_panel *panel)
ret = sharp_nt_panel_off(sharp_nt);
if (ret < 0) {
- dev_err(panel->dev, "failed to set panel off: %d\n", ret);
+ DRM_DEV_ERROR(panel->dev,
+ "failed to set panel off: %d\n", ret);
return ret;
}
@@ -173,13 +175,13 @@ static int sharp_nt_panel_prepare(struct drm_panel *panel)
ret = sharp_nt_panel_init(sharp_nt);
if (ret < 0) {
- dev_err(panel->dev, "failed to init panel: %d\n", ret);
+ DRM_DEV_ERROR(panel->dev, "failed to init panel: %d\n", ret);
goto poweroff;
}
ret = sharp_nt_panel_on(sharp_nt);
if (ret < 0) {
- dev_err(panel->dev, "failed to set panel on: %d\n", ret);
+ DRM_DEV_ERROR(panel->dev, "failed to set panel on: %d\n", ret);
goto poweroff;
}
@@ -227,9 +229,10 @@ static int sharp_nt_panel_get_modes(struct drm_panel *panel)
mode = drm_mode_duplicate(panel->drm, &default_mode);
if (!mode) {
- dev_err(panel->drm->dev, "failed to add mode %ux%ux@%u\n",
- default_mode.hdisplay, default_mode.vdisplay,
- default_mode.vrefresh);
+ DRM_DEV_ERROR(panel->drm->dev,
+ "failed to add mode %ux%ux@%u\n",
+ default_mode.hdisplay, default_mode.vdisplay,
+ default_mode.vrefresh);
return -ENOMEM;
}
@@ -263,8 +266,8 @@ static int sharp_nt_panel_add(struct sharp_nt_panel *sharp_nt)
sharp_nt->reset_gpio = devm_gpiod_get(dev, "reset", GPIOD_OUT_LOW);
if (IS_ERR(sharp_nt->reset_gpio)) {
- dev_err(dev, "cannot get reset-gpios %ld\n",
- PTR_ERR(sharp_nt->reset_gpio));
+ DRM_DEV_ERROR(dev, "cannot get reset-gpios %ld\n",
+ PTR_ERR(sharp_nt->reset_gpio));
sharp_nt->reset_gpio = NULL;
} else {
gpiod_set_value(sharp_nt->reset_gpio, 0);
@@ -322,11 +325,12 @@ static int sharp_nt_panel_remove(struct mipi_dsi_device *dsi)
ret = sharp_nt_panel_disable(&sharp_nt->base);
if (ret < 0)
- dev_err(&dsi->dev, "failed to disable panel: %d\n", ret);
+ DRM_DEV_ERROR(&dsi->dev, "failed to disable panel: %d\n", ret);
ret = mipi_dsi_detach(dsi);
if (ret < 0)
- dev_err(&dsi->dev, "failed to detach from DSI host: %d\n", ret);
+ DRM_DEV_ERROR(&dsi->dev,
+ "failed to detach from DSI host: %d\n", ret);
sharp_nt_panel_del(sharp_nt);
--
2.12.0
Introduce use of DRM_DEV* for logging.
This makes logging in the drm subsystem more consistent.
Signed-off-by: Sam Ravnborg <[email protected]>
Cc: Thierry Reding <[email protected]>
Cc: David Airlie <[email protected]>
Cc: Daniel Vetter <[email protected]>
---
.../gpu/drm/panel/panel-raspberrypi-touchscreen.c | 22 ++++++++++++++--------
1 file changed, 14 insertions(+), 8 deletions(-)
diff --git a/drivers/gpu/drm/panel/panel-raspberrypi-touchscreen.c b/drivers/gpu/drm/panel/panel-raspberrypi-touchscreen.c
index 28c0620dfe0f..c9013faff9ed 100644
--- a/drivers/gpu/drm/panel/panel-raspberrypi-touchscreen.c
+++ b/drivers/gpu/drm/panel/panel-raspberrypi-touchscreen.c
@@ -57,6 +57,7 @@
#include <drm/drm_device.h>
#include <drm/drm_mipi_dsi.h>
#include <drm/drm_panel.h>
+#include <drm/drm_print.h>
#define RPI_DSI_DRIVER_NAME "rpi-ts-dsi"
@@ -232,7 +233,7 @@ static void rpi_touchscreen_i2c_write(struct rpi_touchscreen *ts,
ret = i2c_smbus_write_byte_data(ts->i2c, reg, val);
if (ret)
- dev_err(&ts->dsi->dev, "I2C write failed: %d\n", ret);
+ DRM_DEV_ERROR(&ts->dsi->dev, "I2C write failed: %d\n", ret);
}
static int rpi_touchscreen_write(struct rpi_touchscreen *ts, u16 reg, u32 val)
@@ -324,8 +325,9 @@ static int rpi_touchscreen_get_modes(struct drm_panel *panel)
mode = drm_mode_duplicate(drm, m);
if (!mode) {
- dev_err(drm->dev, "failed to add mode %ux%u@%u\n",
- m->hdisplay, m->vdisplay, m->vrefresh);
+ DRM_DEV_ERROR(drm->dev,
+ "failed to add mode %ux%u@%u\n",
+ m->hdisplay, m->vdisplay, m->vrefresh);
continue;
}
@@ -381,7 +383,7 @@ static int rpi_touchscreen_probe(struct i2c_client *i2c,
ver = rpi_touchscreen_i2c_read(ts, REG_ID);
if (ver < 0) {
- dev_err(dev, "Atmel I2C read failed: %d\n", ver);
+ DRM_DEV_ERROR(dev, "Atmel I2C read failed: %d\n", ver);
return -ENODEV;
}
@@ -390,7 +392,9 @@ static int rpi_touchscreen_probe(struct i2c_client *i2c,
case 0xc3: /* ver 2 */
break;
default:
- dev_err(dev, "Unknown Atmel firmware revision: 0x%02x\n", ver);
+ DRM_DEV_ERROR(dev,
+ "Unknown Atmel firmware revision: 0x%02x\n",
+ ver);
return -ENODEV;
}
@@ -412,8 +416,9 @@ static int rpi_touchscreen_probe(struct i2c_client *i2c,
ts->dsi = mipi_dsi_device_register_full(host, &info);
if (IS_ERR(ts->dsi)) {
- dev_err(dev, "DSI device registration failed: %ld\n",
- PTR_ERR(ts->dsi));
+ DRM_DEV_ERROR(dev,
+ "DSI device registration failed: %ld\n",
+ PTR_ERR(ts->dsi));
return PTR_ERR(ts->dsi);
}
@@ -457,7 +462,8 @@ static int rpi_touchscreen_dsi_probe(struct mipi_dsi_device *dsi)
ret = mipi_dsi_attach(dsi);
if (ret)
- dev_err(&dsi->dev, "failed to attach dsi to host: %d\n", ret);
+ DRM_DEV_ERROR(&dsi->dev,
+ "failed to attach dsi to host: %d\n", ret);
return ret;
}
--
2.12.0
Introduce use of DRM_DEV* for logging.
This makes logging in the drm subsystem more consistent.
Signed-off-by: Sam Ravnborg <[email protected]>
Cc: Thierry Reding <[email protected]>
Cc: David Airlie <[email protected]>
Cc: Daniel Vetter <[email protected]>
---
drivers/gpu/drm/panel/panel-seiko-43wvf1g.c | 14 ++++++++------
1 file changed, 8 insertions(+), 6 deletions(-)
diff --git a/drivers/gpu/drm/panel/panel-seiko-43wvf1g.c b/drivers/gpu/drm/panel/panel-seiko-43wvf1g.c
index c1348a687447..26da26d38241 100644
--- a/drivers/gpu/drm/panel/panel-seiko-43wvf1g.c
+++ b/drivers/gpu/drm/panel/panel-seiko-43wvf1g.c
@@ -16,6 +16,7 @@
#include <drm/drm_crtc.h>
#include <drm/drm_device.h>
#include <drm/drm_panel.h>
+#include <drm/drm_print.h>
#include <video/display_timing.h>
#include <video/videomode.h>
@@ -73,8 +74,8 @@ static int seiko_panel_get_fixed_modes(struct seiko_panel *panel)
videomode_from_timing(dt, &vm);
mode = drm_mode_create(drm);
if (!mode) {
- dev_err(drm->dev, "failed to add mode %ux%u\n",
- dt->hactive.typ, dt->vactive.typ);
+ DRM_DEV_ERROR(drm->dev, "failed to add mode %ux%u\n",
+ dt->hactive.typ, dt->vactive.typ);
continue;
}
@@ -94,8 +95,9 @@ static int seiko_panel_get_fixed_modes(struct seiko_panel *panel)
mode = drm_mode_duplicate(drm, m);
if (!mode) {
- dev_err(drm->dev, "failed to add mode %ux%u@%u\n",
- m->hdisplay, m->vdisplay, m->vrefresh);
+ DRM_DEV_ERROR(drm->dev,
+ "failed to add mode %ux%u@%u\n",
+ m->hdisplay, m->vdisplay, m->vrefresh);
continue;
}
@@ -168,7 +170,7 @@ static int seiko_panel_prepare(struct drm_panel *panel)
err = regulator_enable(p->dvdd);
if (err < 0) {
- dev_err(panel->dev, "failed to enable dvdd: %d\n", err);
+ DRM_DEV_ERROR(panel->dev, "failed to enable dvdd: %d\n", err);
return err;
}
@@ -177,7 +179,7 @@ static int seiko_panel_prepare(struct drm_panel *panel)
err = regulator_enable(p->avdd);
if (err < 0) {
- dev_err(panel->dev, "failed to enable avdd: %d\n", err);
+ DRM_DEV_ERROR(panel->dev, "failed to enable avdd: %d\n", err);
goto disable_dvdd;
}
--
2.12.0
Introduce use of DRM_DEV* for logging.
This makes logging in the drm subsystem more consistent.
Signed-off-by: Sam Ravnborg <[email protected]>
Cc: Stefan Mavrodiev <[email protected]>
Cc: Thierry Reding <[email protected]>
Cc: David Airlie <[email protected]>
Cc: Daniel Vetter <[email protected]>
---
drivers/gpu/drm/panel/panel-olimex-lcd-olinuxino.c | 26 +++++++++++++---------
1 file changed, 15 insertions(+), 11 deletions(-)
diff --git a/drivers/gpu/drm/panel/panel-olimex-lcd-olinuxino.c b/drivers/gpu/drm/panel/panel-olimex-lcd-olinuxino.c
index c8704be9caa3..efb223b35594 100644
--- a/drivers/gpu/drm/panel/panel-olimex-lcd-olinuxino.c
+++ b/drivers/gpu/drm/panel/panel-olimex-lcd-olinuxino.c
@@ -18,6 +18,7 @@
#include <drm/drm_device.h>
#include <drm/drm_modes.h>
#include <drm/drm_panel.h>
+#include <drm/drm_print.h>
#include <video/videomode.h>
#include <video/display_timing.h>
@@ -157,10 +158,11 @@ static int lcd_olinuxino_get_modes(struct drm_panel *panel)
mode = drm_mode_create(drm);
if (!mode) {
- dev_err(drm->dev, "failed to add mode %ux%u@%u\n",
- lcd_mode->hactive,
- lcd_mode->vactive,
- lcd_mode->refresh);
+ DRM_DEV_ERROR(drm->dev,
+ "failed to add mode %ux%u@%u\n",
+ lcd_mode->hactive,
+ lcd_mode->vactive,
+ lcd_mode->refresh);
continue;
}
@@ -242,7 +244,8 @@ static int lcd_olinuxino_probe(struct i2c_client *client,
(u8 *)&lcd->eeprom + i);
mutex_unlock(&lcd->mutex);
if (ret < 0) {
- dev_err(dev, "error reading from device at %02x\n", i);
+ DRM_DEV_ERROR(dev,
+ "error reading from device at %02x\n", i);
return ret;
}
}
@@ -250,20 +253,21 @@ static int lcd_olinuxino_probe(struct i2c_client *client,
/* Check configuration checksum */
checksum = ~crc32(~0, (u8 *)&lcd->eeprom, 252);
if (checksum != lcd->eeprom.checksum) {
- dev_err(dev, "configuration checksum does not match!\n");
+ DRM_DEV_ERROR(dev,
+ "configuration checksum does not match!\n");
return -EINVAL;
}
/* Check magic header */
if (lcd->eeprom.header != LCD_OLINUXINO_HEADER_MAGIC) {
- dev_err(dev, "magic header does not match\n");
+ DRM_DEV_ERROR(dev, "magic header does not match\n");
return -EINVAL;
}
- dev_info(dev, "Detected %s, Rev. %s, Serial: %08x\n",
- lcd->eeprom.info.name,
- lcd->eeprom.revision,
- lcd->eeprom.serial);
+ DRM_DEV_INFO(dev, "Detected %s, Rev. %s, Serial: %08x\n",
+ lcd->eeprom.info.name,
+ lcd->eeprom.revision,
+ lcd->eeprom.serial);
/*
* The eeprom can hold up to 4 modes.
--
2.12.0
Introduce use of DRM_DEV* for logging.
This makes logging in the drm subsystem more consistent.
Signed-off-by: Sam Ravnborg <[email protected]>
Cc: Thierry Reding <[email protected]>
Cc: David Airlie <[email protected]>
Cc: Daniel Vetter <[email protected]>
---
drivers/gpu/drm/panel/panel-samsung-ld9040.c | 12 +++++------
drivers/gpu/drm/panel/panel-samsung-s6e3ha2.c | 15 +++++++-------
drivers/gpu/drm/panel/panel-samsung-s6e63j0x03.c | 8 ++++----
drivers/gpu/drm/panel/panel-samsung-s6e8aa0.c | 26 +++++++++++++-----------
4 files changed, 32 insertions(+), 29 deletions(-)
diff --git a/drivers/gpu/drm/panel/panel-samsung-ld9040.c b/drivers/gpu/drm/panel/panel-samsung-ld9040.c
index 7d27b79d0b2a..fec639c19d74 100644
--- a/drivers/gpu/drm/panel/panel-samsung-ld9040.c
+++ b/drivers/gpu/drm/panel/panel-samsung-ld9040.c
@@ -149,7 +149,7 @@ static void ld9040_dcs_write(struct ld9040 *ctx, const u8 *data, size_t len)
if (ctx->error < 0 || len == 0)
return;
- dev_dbg(ctx->dev, "writing dcs seq: %*ph\n", (int)len, data);
+ DRM_DEV_DEBUG(ctx->dev, "writing dcs seq: %*ph\n", (int)len, data);
ret = ld9040_spi_write_word(ctx, *data);
while (!ret && --len) {
@@ -158,8 +158,8 @@ static void ld9040_dcs_write(struct ld9040 *ctx, const u8 *data, size_t len)
}
if (ret) {
- dev_err(ctx->dev, "error %d writing dcs seq: %*ph\n", ret,
- (int)len, data);
+ DRM_DEV_ERROR(ctx->dev, "error %d writing dcs seq: %*ph\n",
+ ret, (int)len, data);
ctx->error = ret;
}
@@ -342,15 +342,15 @@ static int ld9040_probe(struct spi_device *spi)
ctx->reset_gpio = devm_gpiod_get(dev, "reset", GPIOD_OUT_HIGH);
if (IS_ERR(ctx->reset_gpio)) {
- dev_err(dev, "cannot get reset-gpios %ld\n",
- PTR_ERR(ctx->reset_gpio));
+ DRM_DEV_ERROR(dev, "cannot get reset-gpios %ld\n",
+ PTR_ERR(ctx->reset_gpio));
return PTR_ERR(ctx->reset_gpio);
}
spi->bits_per_word = 9;
ret = spi_setup(spi);
if (ret < 0) {
- dev_err(dev, "spi setup failed.\n");
+ DRM_DEV_ERROR(dev, "spi setup failed.\n");
return ret;
}
diff --git a/drivers/gpu/drm/panel/panel-samsung-s6e3ha2.c b/drivers/gpu/drm/panel/panel-samsung-s6e3ha2.c
index 813afee82ec9..e2f2ee252409 100644
--- a/drivers/gpu/drm/panel/panel-samsung-s6e3ha2.c
+++ b/drivers/gpu/drm/panel/panel-samsung-s6e3ha2.c
@@ -458,7 +458,8 @@ static int s6e3ha2_set_brightness(struct backlight_device *bl_dev)
if (brightness < S6E3HA2_MIN_BRIGHTNESS ||
brightness > bl_dev->props.max_brightness) {
- dev_err(ctx->dev, "Invalid brightness: %u\n", brightness);
+ DRM_DEV_ERROR(ctx->dev, "Invalid brightness: %u\n",
+ brightness);
return -EINVAL;
}
@@ -706,28 +707,28 @@ static int s6e3ha2_probe(struct mipi_dsi_device *dsi)
ret = devm_regulator_bulk_get(dev, ARRAY_SIZE(ctx->supplies),
ctx->supplies);
if (ret < 0) {
- dev_err(dev, "failed to get regulators: %d\n", ret);
+ DRM_DEV_ERROR(dev, "failed to get regulators: %d\n", ret);
return ret;
}
ctx->reset_gpio = devm_gpiod_get(dev, "reset", GPIOD_OUT_LOW);
if (IS_ERR(ctx->reset_gpio)) {
- dev_err(dev, "cannot get reset-gpios %ld\n",
- PTR_ERR(ctx->reset_gpio));
+ DRM_DEV_ERROR(dev, "cannot get reset-gpios %ld\n",
+ PTR_ERR(ctx->reset_gpio));
return PTR_ERR(ctx->reset_gpio);
}
ctx->enable_gpio = devm_gpiod_get(dev, "enable", GPIOD_OUT_HIGH);
if (IS_ERR(ctx->enable_gpio)) {
- dev_err(dev, "cannot get enable-gpios %ld\n",
- PTR_ERR(ctx->enable_gpio));
+ DRM_DEV_ERROR(dev, "cannot get enable-gpios %ld\n",
+ PTR_ERR(ctx->enable_gpio));
return PTR_ERR(ctx->enable_gpio);
}
ctx->bl_dev = backlight_device_register("s6e3ha2", dev, ctx,
&s6e3ha2_bl_ops, NULL);
if (IS_ERR(ctx->bl_dev)) {
- dev_err(dev, "failed to register backlight device\n");
+ DRM_DEV_ERROR(dev, "failed to register backlight device\n");
return PTR_ERR(ctx->bl_dev);
}
diff --git a/drivers/gpu/drm/panel/panel-samsung-s6e63j0x03.c b/drivers/gpu/drm/panel/panel-samsung-s6e63j0x03.c
index f1c8000e0386..dd50f4089923 100644
--- a/drivers/gpu/drm/panel/panel-samsung-s6e63j0x03.c
+++ b/drivers/gpu/drm/panel/panel-samsung-s6e63j0x03.c
@@ -458,14 +458,14 @@ static int s6e63j0x03_probe(struct mipi_dsi_device *dsi)
ret = devm_regulator_bulk_get(dev, ARRAY_SIZE(ctx->supplies),
ctx->supplies);
if (ret < 0) {
- dev_err(dev, "failed to get regulators: %d\n", ret);
+ DRM_DEV_ERROR(dev, "failed to get regulators: %d\n", ret);
return ret;
}
ctx->reset_gpio = devm_gpiod_get(dev, "reset", GPIOD_OUT_LOW);
if (IS_ERR(ctx->reset_gpio)) {
- dev_err(dev, "cannot get reset-gpio: %ld\n",
- PTR_ERR(ctx->reset_gpio));
+ DRM_DEV_ERROR(dev, "cannot get reset-gpio: %ld\n",
+ PTR_ERR(ctx->reset_gpio));
return PTR_ERR(ctx->reset_gpio);
}
@@ -476,7 +476,7 @@ static int s6e63j0x03_probe(struct mipi_dsi_device *dsi)
ctx->bl_dev = backlight_device_register("s6e63j0x03", dev, ctx,
&s6e63j0x03_bl_ops, NULL);
if (IS_ERR(ctx->bl_dev)) {
- dev_err(dev, "failed to register backlight device\n");
+ DRM_DEV_ERROR(dev, "failed to register backlight device\n");
return PTR_ERR(ctx->bl_dev);
}
diff --git a/drivers/gpu/drm/panel/panel-samsung-s6e8aa0.c b/drivers/gpu/drm/panel/panel-samsung-s6e8aa0.c
index b252d23f386f..e3e0766c3a17 100644
--- a/drivers/gpu/drm/panel/panel-samsung-s6e8aa0.c
+++ b/drivers/gpu/drm/panel/panel-samsung-s6e8aa0.c
@@ -147,8 +147,8 @@ static void s6e8aa0_dcs_write(struct s6e8aa0 *ctx, const void *data, size_t len)
ret = mipi_dsi_dcs_write_buffer(dsi, data, len);
if (ret < 0) {
- dev_err(ctx->dev, "error %zd writing dcs seq: %*ph\n", ret,
- (int)len, data);
+ DRM_DEV_ERROR(ctx->dev, "error %zd writing dcs seq: %*ph\n",
+ ret, (int)len, data);
ctx->error = ret;
}
}
@@ -163,7 +163,8 @@ static int s6e8aa0_dcs_read(struct s6e8aa0 *ctx, u8 cmd, void *data, size_t len)
ret = mipi_dsi_dcs_read(dsi, cmd, data, len);
if (ret < 0) {
- dev_err(ctx->dev, "error %d reading dcs seq(%#x)\n", ret, cmd);
+ DRM_DEV_ERROR(ctx->dev, "error %d reading dcs seq(%#x)\n",
+ ret, cmd);
ctx->error = ret;
}
@@ -814,9 +815,9 @@ static void s6e8aa0_set_maximum_return_packet_size(struct s6e8aa0 *ctx,
ret = mipi_dsi_set_maximum_return_packet_size(dsi, size);
if (ret < 0) {
- dev_err(ctx->dev,
- "error %d setting maximum return packet size to %d\n",
- ret, size);
+ DRM_DEV_ERROR(ctx->dev,
+ "error %d setting maximum return packet size to %d\n",
+ ret, size);
ctx->error = ret;
}
}
@@ -825,22 +826,23 @@ static void s6e8aa0_read_mtp_id(struct s6e8aa0 *ctx)
{
u8 id[3];
int ret, i;
+ struct device *dev = ctx->dev;
ret = s6e8aa0_dcs_read(ctx, 0xd1, id, ARRAY_SIZE(id));
if (ret < 0 || ret < ARRAY_SIZE(id) || id[0] == 0x00) {
- dev_err(ctx->dev, "read id failed\n");
+ DRM_DEV_ERROR(dev, "read id failed\n");
ctx->error = -EIO;
return;
}
- dev_info(ctx->dev, "ID: 0x%2x, 0x%2x, 0x%2x\n", id[0], id[1], id[2]);
+ DRM_DEV_INFO(dev, "ID: 0x%2x, 0x%2x, 0x%2x\n", id[0], id[1], id[2]);
for (i = 0; i < ARRAY_SIZE(s6e8aa0_variants); ++i) {
if (id[1] == s6e8aa0_variants[i].version)
break;
}
if (i >= ARRAY_SIZE(s6e8aa0_variants)) {
- dev_err(ctx->dev, "unsupported display version %d\n", id[1]);
+ DRM_DEV_ERROR(dev, "unsupported display version %d\n", id[1]);
ctx->error = -EINVAL;
return;
}
@@ -1007,14 +1009,14 @@ static int s6e8aa0_probe(struct mipi_dsi_device *dsi)
ret = devm_regulator_bulk_get(dev, ARRAY_SIZE(ctx->supplies),
ctx->supplies);
if (ret < 0) {
- dev_err(dev, "failed to get regulators: %d\n", ret);
+ DRM_DEV_ERROR(dev, "failed to get regulators: %d\n", ret);
return ret;
}
ctx->reset_gpio = devm_gpiod_get(dev, "reset", GPIOD_OUT_HIGH);
if (IS_ERR(ctx->reset_gpio)) {
- dev_err(dev, "cannot get reset-gpios %ld\n",
- PTR_ERR(ctx->reset_gpio));
+ DRM_DEV_ERROR(dev, "cannot get reset-gpios %ld\n",
+ PTR_ERR(ctx->reset_gpio));
return PTR_ERR(ctx->reset_gpio);
}
--
2.12.0
Introduce use of DRM_DEV* for logging.
This makes logging in the drm subsystem more consistent.
Signed-off-by: Sam Ravnborg <[email protected]>
Cc: Thierry Reding <[email protected]>
Cc: David Airlie <[email protected]>
Cc: Daniel Vetter <[email protected]>
---
drivers/gpu/drm/panel/panel-simple.c | 19 ++++++++++++-------
1 file changed, 12 insertions(+), 7 deletions(-)
diff --git a/drivers/gpu/drm/panel/panel-simple.c b/drivers/gpu/drm/panel/panel-simple.c
index 406b1d7aef31..a5d98a19f138 100644
--- a/drivers/gpu/drm/panel/panel-simple.c
+++ b/drivers/gpu/drm/panel/panel-simple.c
@@ -33,6 +33,7 @@
#include <drm/drm_device.h>
#include <drm/drm_mipi_dsi.h>
#include <drm/drm_panel.h>
+#include <drm/drm_print.h>
#include <video/display_timing.h>
#include <video/videomode.h>
@@ -103,6 +104,7 @@ static int panel_simple_get_fixed_modes(struct panel_simple *panel)
{
struct drm_connector *connector = panel->base.connector;
struct drm_device *drm = panel->base.drm;
+ struct device *dev = drm->dev;
struct drm_display_mode *mode;
unsigned int i, num = 0;
@@ -116,8 +118,8 @@ static int panel_simple_get_fixed_modes(struct panel_simple *panel)
videomode_from_timing(dt, &vm);
mode = drm_mode_create(drm);
if (!mode) {
- dev_err(drm->dev, "failed to add mode %ux%u\n",
- dt->hactive.typ, dt->vactive.typ);
+ DRM_DEV_ERROR(dev, "failed to add mode %ux%u\n",
+ dt->hactive.typ, dt->vactive.typ);
continue;
}
@@ -137,8 +139,8 @@ static int panel_simple_get_fixed_modes(struct panel_simple *panel)
mode = drm_mode_duplicate(drm, m);
if (!mode) {
- dev_err(drm->dev, "failed to add mode %ux%u@%u\n",
- m->hdisplay, m->vdisplay, m->vrefresh);
+ DRM_DEV_ERROR(dev, "failed to add mode %ux%u@%u\n",
+ m->hdisplay, m->vdisplay, m->vrefresh);
continue;
}
@@ -215,7 +217,8 @@ static int panel_simple_prepare(struct drm_panel *panel)
err = regulator_enable(p->supply);
if (err < 0) {
- dev_err(panel->dev, "failed to enable supply: %d\n", err);
+ DRM_DEV_ERROR(panel->dev, "failed to enable supply: %d\n",
+ err);
return err;
}
@@ -325,7 +328,8 @@ static int panel_simple_probe(struct device *dev, const struct panel_desc *desc)
if (IS_ERR(panel->enable_gpio)) {
err = PTR_ERR(panel->enable_gpio);
if (err != -EPROBE_DEFER)
- dev_err(dev, "failed to request GPIO: %d\n", err);
+ DRM_DEV_ERROR(dev, "failed to request GPIO: %d\n",
+ err);
return err;
}
@@ -3048,7 +3052,8 @@ static int panel_simple_dsi_remove(struct mipi_dsi_device *dsi)
err = mipi_dsi_detach(dsi);
if (err < 0)
- dev_err(&dsi->dev, "failed to detach from DSI host: %d\n", err);
+ DRM_DEV_ERROR(&dsi->dev,
+ "failed to detach from DSI host: %d\n", err);
return panel_simple_remove(&dsi->dev);
}
--
2.12.0
Introduce use of DRM_DEV* for logging.
This makes logging in the drm subsystem more consistent.
Signed-off-by: Sam Ravnborg <[email protected]>
Cc: Thierry Reding <[email protected]>
Cc: David Airlie <[email protected]>
Cc: Daniel Vetter <[email protected]>
---
drivers/gpu/drm/panel/panel-orisetech-otm8009a.c | 8 ++++----
1 file changed, 4 insertions(+), 4 deletions(-)
diff --git a/drivers/gpu/drm/panel/panel-orisetech-otm8009a.c b/drivers/gpu/drm/panel/panel-orisetech-otm8009a.c
index 5bacf3f2da05..e7920ae018bd 100644
--- a/drivers/gpu/drm/panel/panel-orisetech-otm8009a.c
+++ b/drivers/gpu/drm/panel/panel-orisetech-otm8009a.c
@@ -431,14 +431,14 @@ static int otm8009a_probe(struct mipi_dsi_device *dsi)
ctx->reset_gpio = devm_gpiod_get_optional(dev, "reset", GPIOD_OUT_LOW);
if (IS_ERR(ctx->reset_gpio)) {
- dev_err(dev, "cannot get reset-gpio\n");
+ DRM_DEV_ERROR(dev, "cannot get reset-gpio\n");
return PTR_ERR(ctx->reset_gpio);
}
ctx->supply = devm_regulator_get(dev, "power");
if (IS_ERR(ctx->supply)) {
ret = PTR_ERR(ctx->supply);
- dev_err(dev, "failed to request regulator: %d\n", ret);
+ DRM_DEV_ERROR(dev, "failed to request regulator: %d\n", ret);
return ret;
}
@@ -461,7 +461,7 @@ static int otm8009a_probe(struct mipi_dsi_device *dsi)
NULL);
if (IS_ERR(ctx->bl_dev)) {
ret = PTR_ERR(ctx->bl_dev);
- dev_err(dev, "failed to register backlight: %d\n", ret);
+ DRM_DEV_ERROR(dev, "failed to register backlight: %d\n", ret);
return ret;
}
@@ -474,7 +474,7 @@ static int otm8009a_probe(struct mipi_dsi_device *dsi)
ret = mipi_dsi_attach(dsi);
if (ret < 0) {
- dev_err(dev, "mipi_dsi_attach failed. Is host ready?\n");
+ DRM_DEV_ERROR(dev, "mipi_dsi_attach failed. Is host ready?\n");
drm_panel_remove(&ctx->panel);
backlight_device_unregister(ctx->bl_dev);
return ret;
--
2.12.0
Introduce use of DRM_DEV* for logging.
This makes logging in the drm subsystem more consistent.
Signed-off-by: Sam Ravnborg <[email protected]>
Cc: Thierry Reding <[email protected]>
Cc: David Airlie <[email protected]>
Cc: Daniel Vetter <[email protected]>
---
drivers/gpu/drm/panel/panel-jdi-lt070me05000.c | 64 ++++++++++++++------------
1 file changed, 34 insertions(+), 30 deletions(-)
diff --git a/drivers/gpu/drm/panel/panel-jdi-lt070me05000.c b/drivers/gpu/drm/panel/panel-jdi-lt070me05000.c
index fecdda0b99a5..6e172b5d7dff 100644
--- a/drivers/gpu/drm/panel/panel-jdi-lt070me05000.c
+++ b/drivers/gpu/drm/panel/panel-jdi-lt070me05000.c
@@ -31,6 +31,7 @@
#include <drm/drm_crtc.h>
#include <drm/drm_mipi_dsi.h>
#include <drm/drm_panel.h>
+#include <drm/drm_print.h>
#include <video/mipi_display.h>
@@ -77,19 +78,19 @@ static int jdi_panel_init(struct jdi_panel *jdi)
ret = mipi_dsi_dcs_set_pixel_format(dsi, MIPI_DCS_PIXEL_FMT_24BIT << 4);
if (ret < 0) {
- dev_err(dev, "failed to set pixel format: %d\n", ret);
+ DRM_DEV_ERROR(dev, "failed to set pixel format: %d\n", ret);
return ret;
}
ret = mipi_dsi_dcs_set_column_address(dsi, 0, jdi->mode->hdisplay - 1);
if (ret < 0) {
- dev_err(dev, "failed to set column address: %d\n", ret);
+ DRM_DEV_ERROR(dev, "failed to set column address: %d\n", ret);
return ret;
}
ret = mipi_dsi_dcs_set_page_address(dsi, 0, jdi->mode->vdisplay - 1);
if (ret < 0) {
- dev_err(dev, "failed to set page address: %d\n", ret);
+ DRM_DEV_ERROR(dev, "failed to set page address: %d\n", ret);
return ret;
}
@@ -102,7 +103,8 @@ static int jdi_panel_init(struct jdi_panel *jdi)
ret = mipi_dsi_dcs_write(dsi, MIPI_DCS_WRITE_CONTROL_DISPLAY,
(u8[]){ 0x24 }, 1);
if (ret < 0) {
- dev_err(dev, "failed to write control display: %d\n", ret);
+ DRM_DEV_ERROR(dev,
+ "failed to write control display: %d\n", ret);
return ret;
}
@@ -110,13 +112,13 @@ static int jdi_panel_init(struct jdi_panel *jdi)
ret = mipi_dsi_dcs_write(dsi, MIPI_DCS_WRITE_POWER_SAVE,
(u8[]){ 0x00 }, 1);
if (ret < 0) {
- dev_err(dev, "failed to set cabc off: %d\n", ret);
+ DRM_DEV_ERROR(dev, "failed to set cabc off: %d\n", ret);
return ret;
}
ret = mipi_dsi_dcs_exit_sleep_mode(dsi);
if (ret < 0) {
- dev_err(dev, "failed to set exit sleep mode: %d\n", ret);
+ DRM_DEV_ERROR(dev, "failed to set exit sleep mode: %d\n", ret);
return ret;
}
@@ -124,7 +126,7 @@ static int jdi_panel_init(struct jdi_panel *jdi)
ret = mipi_dsi_generic_write(dsi, (u8[]){0xB0, 0x00}, 2);
if (ret < 0) {
- dev_err(dev, "failed to set mcap: %d\n", ret);
+ DRM_DEV_ERROR(dev, "failed to set mcap: %d\n", ret);
return ret;
}
@@ -134,8 +136,9 @@ static int jdi_panel_init(struct jdi_panel *jdi)
ret = mipi_dsi_generic_write(dsi, (u8[])
{0xB3, 0x26, 0x08, 0x00, 0x20, 0x00}, 6);
if (ret < 0) {
- dev_err(dev, "failed to set display interface setting: %d\n"
- , ret);
+ DRM_DEV_ERROR(dev,
+ "failed to set display interface setting: %d\n",
+ ret);
return ret;
}
@@ -143,8 +146,9 @@ static int jdi_panel_init(struct jdi_panel *jdi)
ret = mipi_dsi_generic_write(dsi, (u8[]){0xB0, 0x03}, 2);
if (ret < 0) {
- dev_err(dev, "failed to set default values for mcap: %d\n"
- , ret);
+ DRM_DEV_ERROR(dev,
+ "failed to set default values for mcap: %d\n",
+ ret);
return ret;
}
@@ -161,7 +165,7 @@ static int jdi_panel_on(struct jdi_panel *jdi)
ret = mipi_dsi_dcs_set_display_on(dsi);
if (ret < 0)
- dev_err(dev, "failed to set display on: %d\n", ret);
+ DRM_DEV_ERROR(dev, "failed to set display on: %d\n", ret);
return ret;
}
@@ -176,11 +180,11 @@ static void jdi_panel_off(struct jdi_panel *jdi)
ret = mipi_dsi_dcs_set_display_off(dsi);
if (ret < 0)
- dev_err(dev, "failed to set display off: %d\n", ret);
+ DRM_DEV_ERROR(dev, "failed to set display off: %d\n", ret);
ret = mipi_dsi_dcs_enter_sleep_mode(dsi);
if (ret < 0)
- dev_err(dev, "failed to enter sleep mode: %d\n", ret);
+ DRM_DEV_ERROR(dev, "failed to enter sleep mode: %d\n", ret);
msleep(100);
}
@@ -212,7 +216,7 @@ static int jdi_panel_unprepare(struct drm_panel *panel)
ret = regulator_bulk_disable(ARRAY_SIZE(jdi->supplies), jdi->supplies);
if (ret < 0)
- dev_err(dev, "regulator disable failed, %d\n", ret);
+ DRM_DEV_ERROR(dev, "regulator disable failed, %d\n", ret);
gpiod_set_value(jdi->enable_gpio, 0);
@@ -236,7 +240,7 @@ static int jdi_panel_prepare(struct drm_panel *panel)
ret = regulator_bulk_enable(ARRAY_SIZE(jdi->supplies), jdi->supplies);
if (ret < 0) {
- dev_err(dev, "regulator enable failed, %d\n", ret);
+ DRM_DEV_ERROR(dev, "regulator enable failed, %d\n", ret);
return ret;
}
@@ -253,13 +257,13 @@ static int jdi_panel_prepare(struct drm_panel *panel)
ret = jdi_panel_init(jdi);
if (ret < 0) {
- dev_err(dev, "failed to init panel: %d\n", ret);
+ DRM_DEV_ERROR(dev, "failed to init panel: %d\n", ret);
goto poweroff;
}
ret = jdi_panel_on(jdi);
if (ret < 0) {
- dev_err(dev, "failed to set panel on: %d\n", ret);
+ DRM_DEV_ERROR(dev, "failed to set panel on: %d\n", ret);
goto poweroff;
}
@@ -270,7 +274,7 @@ static int jdi_panel_prepare(struct drm_panel *panel)
poweroff:
ret = regulator_bulk_disable(ARRAY_SIZE(jdi->supplies), jdi->supplies);
if (ret < 0)
- dev_err(dev, "regulator disable failed, %d\n", ret);
+ DRM_DEV_ERROR(dev, "regulator disable failed, %d\n", ret);
gpiod_set_value(jdi->enable_gpio, 0);
@@ -317,9 +321,9 @@ static int jdi_panel_get_modes(struct drm_panel *panel)
mode = drm_mode_duplicate(panel->drm, &default_mode);
if (!mode) {
- dev_err(dev, "failed to add mode %ux%ux@%u\n",
- default_mode.hdisplay, default_mode.vdisplay,
- default_mode.vrefresh);
+ DRM_DEV_ERROR(dev, "failed to add mode %ux%ux@%u\n",
+ default_mode.hdisplay, default_mode.vdisplay,
+ default_mode.vrefresh);
return -ENOMEM;
}
@@ -414,35 +418,35 @@ static int jdi_panel_add(struct jdi_panel *jdi)
ret = devm_regulator_bulk_get(dev, ARRAY_SIZE(jdi->supplies),
jdi->supplies);
if (ret < 0) {
- dev_err(dev, "failed to init regulator, ret=%d\n", ret);
+ DRM_DEV_ERROR(dev, "failed to init regulator, ret=%d\n", ret);
return ret;
}
jdi->enable_gpio = devm_gpiod_get(dev, "enable", GPIOD_OUT_LOW);
if (IS_ERR(jdi->enable_gpio)) {
ret = PTR_ERR(jdi->enable_gpio);
- dev_err(dev, "cannot get enable-gpio %d\n", ret);
+ DRM_DEV_ERROR(dev, "cannot get enable-gpio %d\n", ret);
return ret;
}
jdi->reset_gpio = devm_gpiod_get(dev, "reset", GPIOD_OUT_HIGH);
if (IS_ERR(jdi->reset_gpio)) {
ret = PTR_ERR(jdi->reset_gpio);
- dev_err(dev, "cannot get reset-gpios %d\n", ret);
+ DRM_DEV_ERROR(dev, "cannot get reset-gpios %d\n", ret);
return ret;
}
jdi->dcdc_en_gpio = devm_gpiod_get(dev, "dcdc-en", GPIOD_OUT_LOW);
if (IS_ERR(jdi->dcdc_en_gpio)) {
ret = PTR_ERR(jdi->dcdc_en_gpio);
- dev_err(dev, "cannot get dcdc-en-gpio %d\n", ret);
+ DRM_DEV_ERROR(dev, "cannot get dcdc-en-gpio %d\n", ret);
return ret;
}
jdi->backlight = drm_panel_create_dsi_backlight(jdi->dsi);
if (IS_ERR(jdi->backlight)) {
ret = PTR_ERR(jdi->backlight);
- dev_err(dev, "failed to register backlight %d\n", ret);
+ DRM_DEV_ERROR(dev, "failed to register backlight %d\n", ret);
return ret;
}
@@ -493,12 +497,12 @@ static int jdi_panel_remove(struct mipi_dsi_device *dsi)
ret = jdi_panel_disable(&jdi->base);
if (ret < 0)
- dev_err(&dsi->dev, "failed to disable panel: %d\n", ret);
+ DRM_DEV_ERROR(&dsi->dev, "failed to disable panel: %d\n", ret);
ret = mipi_dsi_detach(dsi);
if (ret < 0)
- dev_err(&dsi->dev, "failed to detach from DSI host: %d\n",
- ret);
+ DRM_DEV_ERROR(&dsi->dev,
+ "failed to detach from DSI host: %d\n", ret);
jdi_panel_del(jdi);
--
2.12.0
Introduce use of DRM_DEV* for logging.
This makes logging in the drm subsystem more consistent.
Signed-off-by: Sam Ravnborg <[email protected]>
Cc: Thierry Reding <[email protected]>
Cc: David Airlie <[email protected]>
Cc: Daniel Vetter <[email protected]>
---
drivers/gpu/drm/panel/panel-innolux-p079zca.c | 12 +++++++-----
1 file changed, 7 insertions(+), 5 deletions(-)
diff --git a/drivers/gpu/drm/panel/panel-innolux-p079zca.c b/drivers/gpu/drm/panel/panel-innolux-p079zca.c
index c8d0da3116dd..cf18594d1954 100644
--- a/drivers/gpu/drm/panel/panel-innolux-p079zca.c
+++ b/drivers/gpu/drm/panel/panel-innolux-p079zca.c
@@ -154,8 +154,9 @@ static int innolux_panel_prepare(struct drm_panel *panel)
err = mipi_dsi_generic_write(innolux->link, cmd->data,
cmd->len);
if (err < 0) {
- dev_err(panel->dev,
- "failed to write command %u\n", i);
+ DRM_DEV_ERROR(panel->dev,
+ "failed to write command %u\n",
+ i);
goto poweroff;
}
@@ -166,8 +167,9 @@ static int innolux_panel_prepare(struct drm_panel *panel)
*/
err = mipi_dsi_dcs_nop(innolux->link);
if (err < 0) {
- dev_err(panel->dev,
- "failed to send DCS nop: %d\n", err);
+ DRM_DEV_ERROR(panel->dev,
+ "failed to send DCS nop: %d\n",
+ err);
goto poweroff;
}
}
@@ -482,7 +484,7 @@ static int innolux_panel_add(struct mipi_dsi_device *dsi,
GPIOD_OUT_HIGH);
if (IS_ERR(innolux->enable_gpio)) {
err = PTR_ERR(innolux->enable_gpio);
- dev_dbg(dev, "failed to get enable gpio: %d\n", err);
+ DRM_DEV_DEBUG(dev, "failed to get enable gpio: %d\n", err);
innolux->enable_gpio = NULL;
}
--
2.12.0
The num_supplies variable is not used, delete it.
Build tested.
Signed-off-by: Sam Ravnborg <[email protected]>
Cc: Thierry Reding <[email protected]>
Cc: David Airlie <[email protected]>
Cc: Daniel Vetter <[email protected]>
---
drivers/gpu/drm/panel/panel-innolux-p079zca.c | 1 -
1 file changed, 1 deletion(-)
diff --git a/drivers/gpu/drm/panel/panel-innolux-p079zca.c b/drivers/gpu/drm/panel/panel-innolux-p079zca.c
index 6c3da2cbacd9..c8d0da3116dd 100644
--- a/drivers/gpu/drm/panel/panel-innolux-p079zca.c
+++ b/drivers/gpu/drm/panel/panel-innolux-p079zca.c
@@ -57,7 +57,6 @@ struct innolux_panel {
struct backlight_device *backlight;
struct regulator_bulk_data *supplies;
- unsigned int num_supplies;
struct gpio_desc *enable_gpio;
bool prepared;
--
2.12.0
Introduce use of DRM_DEV* for logging.
This makes logging in the drm subsystem more consistent.
Signed-off-by: Sam Ravnborg <[email protected]>
Cc: Thierry Reding <[email protected]>
Cc: David Airlie <[email protected]>
Cc: Daniel Vetter <[email protected]>
---
drivers/gpu/drm/panel/panel-sitronix-st7789v.c | 10 ++++++----
1 file changed, 6 insertions(+), 4 deletions(-)
diff --git a/drivers/gpu/drm/panel/panel-sitronix-st7789v.c b/drivers/gpu/drm/panel/panel-sitronix-st7789v.c
index 76bd6e7a1a60..f649fe5cc364 100644
--- a/drivers/gpu/drm/panel/panel-sitronix-st7789v.c
+++ b/drivers/gpu/drm/panel/panel-sitronix-st7789v.c
@@ -16,6 +16,7 @@
#include <drm/drm_device.h>
#include <drm/drm_modes.h>
#include <drm/drm_panel.h>
+#include <drm/drm_print.h>
#include <video/mipi_display.h>
@@ -180,9 +181,10 @@ static int st7789v_get_modes(struct drm_panel *panel)
mode = drm_mode_duplicate(panel->drm, &default_mode);
if (!mode) {
- dev_err(panel->drm->dev, "failed to add mode %ux%ux@%u\n",
- default_mode.hdisplay, default_mode.vdisplay,
- default_mode.vrefresh);
+ DRM_DEV_ERROR(panel->drm->dev,
+ "failed to add mode %ux%ux@%u\n",
+ default_mode.hdisplay, default_mode.vdisplay,
+ default_mode.vrefresh);
return -ENOMEM;
}
@@ -393,7 +395,7 @@ static int st7789v_probe(struct spi_device *spi)
ctx->reset = devm_gpiod_get(&spi->dev, "reset", GPIOD_OUT_LOW);
if (IS_ERR(ctx->reset)) {
- dev_err(&spi->dev, "Couldn't get our reset line\n");
+ DRM_DEV_ERROR(&spi->dev, "Couldn't get our reset line\n");
return PTR_ERR(ctx->reset);
}
--
2.12.0
Introduce use of DRM_DEV* for logging.
This makes logging in the drm subsystem more consistent.
Signed-off-by: Sam Ravnborg <[email protected]>
Cc: Thierry Reding <[email protected]>
Cc: David Airlie <[email protected]>
Cc: Daniel Vetter <[email protected]>
---
drivers/gpu/drm/panel/panel-ilitek-ili9322.c | 93 +++++++++++++++------------
drivers/gpu/drm/panel/panel-ilitek-ili9881c.c | 14 ++--
2 files changed, 60 insertions(+), 47 deletions(-)
diff --git a/drivers/gpu/drm/panel/panel-ilitek-ili9322.c b/drivers/gpu/drm/panel/panel-ilitek-ili9322.c
index 1ee8b2ccf718..e5e60347d3cf 100644
--- a/drivers/gpu/drm/panel/panel-ilitek-ili9322.c
+++ b/drivers/gpu/drm/panel/panel-ilitek-ili9322.c
@@ -302,7 +302,7 @@ static int ili9322_regmap_spi_write(void *context, const void *data,
memcpy(buf, data, 2);
buf[0] &= ~0x80;
- dev_dbg(dev, "WRITE: %02x %02x\n", buf[0], buf[1]);
+ DRM_DEV_DEBUG(dev, "WRITE: %02x %02x\n", buf[0], buf[1]);
return spi_write_then_read(spi, buf, 2, NULL, 0);
}
@@ -315,8 +315,8 @@ static int ili9322_regmap_spi_read(void *context, const void *reg,
/* Set bit 7 to 1 to read */
memcpy(buf, reg, 1);
- dev_dbg(dev, "READ: %02x reg size = %zu, val size = %zu\n",
- buf[0], reg_size, val_size);
+ DRM_DEV_DEBUG(dev, "READ: %02x reg size = %zu, val size = %zu\n",
+ buf[0], reg_size, val_size);
buf[0] |= 0x80;
return spi_write_then_read(spi, buf, 1, val, 1);
@@ -362,7 +362,7 @@ static int ili9322_init(struct drm_panel *panel, struct ili9322 *ili)
ret = regmap_write(ili->regmap, ILI9322_GLOBAL_RESET,
ILI9322_GLOBAL_RESET_ASSERT);
if (ret) {
- dev_err(ili->dev, "can't issue GRESET (%d)\n", ret);
+ DRM_DEV_ERROR(ili->dev, "can't issue GRESET (%d)\n", ret);
return ret;
}
@@ -371,7 +371,8 @@ static int ili9322_init(struct drm_panel *panel, struct ili9322 *ili)
ret = regmap_write(ili->regmap, ILI9322_VREG1_VOLTAGE,
ili->vreg1out);
if (ret) {
- dev_err(ili->dev, "can't set up VREG1OUT (%d)\n", ret);
+ DRM_DEV_ERROR(ili->dev,
+ "can't set up VREG1OUT (%d)\n", ret);
return ret;
}
}
@@ -380,8 +381,9 @@ static int ili9322_init(struct drm_panel *panel, struct ili9322 *ili)
ret = regmap_write(ili->regmap, ILI9322_VCOM_AMP,
ili->vcom_amplitude);
if (ret) {
- dev_err(ili->dev,
- "can't set up VCOM amplitude (%d)\n", ret);
+ DRM_DEV_ERROR(ili->dev,
+ "can't set up VCOM amplitude (%d)\n",
+ ret);
return ret;
}
};
@@ -390,7 +392,8 @@ static int ili9322_init(struct drm_panel *panel, struct ili9322 *ili)
ret = regmap_write(ili->regmap, ILI9322_VCOM_HIGH,
ili->vcom_high);
if (ret) {
- dev_err(ili->dev, "can't set up VCOM high (%d)\n", ret);
+ DRM_DEV_ERROR(ili->dev,
+ "can't set up VCOM high (%d)\n", ret);
return ret;
}
};
@@ -400,9 +403,9 @@ static int ili9322_init(struct drm_panel *panel, struct ili9322 *ili)
ret = regmap_write(ili->regmap, ILI9322_GAMMA_1 + i,
ili->gamma[i]);
if (ret) {
- dev_err(ili->dev,
- "can't write gamma V%d to 0x%02x (%d)\n",
- i + 1, ILI9322_GAMMA_1 + i, ret);
+ DRM_DEV_ERROR(ili->dev,
+ "can't write gamma V%d to 0x%02x (%d)\n",
+ i + 1, ILI9322_GAMMA_1 + i, ret);
return ret;
}
}
@@ -434,7 +437,8 @@ static int ili9322_init(struct drm_panel *panel, struct ili9322 *ili)
reg |= ILI9322_POL_VSYNC;
ret = regmap_write(ili->regmap, ILI9322_POL, reg);
if (ret) {
- dev_err(ili->dev, "can't write POL register (%d)\n", ret);
+ DRM_DEV_ERROR(ili->dev,
+ "can't write POL register (%d)\n", ret);
return ret;
}
@@ -446,7 +450,8 @@ static int ili9322_init(struct drm_panel *panel, struct ili9322 *ili)
reg |= ILI9322_IF_CTRL_LINE_INVERSION;
ret = regmap_write(ili->regmap, ILI9322_IF_CTRL, reg);
if (ret) {
- dev_err(ili->dev, "can't write IF CTRL register (%d)\n", ret);
+ DRM_DEV_ERROR(ili->dev,
+ "can't write IF CTRL register (%d)\n", ret);
return ret;
}
@@ -460,14 +465,14 @@ static int ili9322_init(struct drm_panel *panel, struct ili9322 *ili)
reg |= ILI9322_ENTRY_AUTODETECT;
ret = regmap_write(ili->regmap, ILI9322_ENTRY, reg);
if (ret) {
- dev_err(ili->dev, "can't write ENTRY reg (%d)\n", ret);
+ DRM_DEV_ERROR(ili->dev, "can't write ENTRY reg (%d)\n", ret);
return ret;
}
- dev_info(ili->dev, "display is in %s mode, syncmode %02x\n",
- ili9322_inputs[ili->input],
+ DRM_DEV_INFO(ili->dev, "display is in %s mode, syncmode %02x\n",
+ ili9322_inputs[ili->input],
ili->conf->syncmode);
- dev_info(ili->dev, "initialized display\n");
+ DRM_DEV_INFO(ili->dev, "initialized display\n");
return 0;
}
@@ -484,7 +489,7 @@ static int ili9322_power_on(struct ili9322 *ili)
ret = regulator_bulk_enable(ARRAY_SIZE(ili->supplies), ili->supplies);
if (ret < 0) {
- dev_err(ili->dev, "unable to enable regulators\n");
+ DRM_DEV_ERROR(ili->dev, "unable to enable regulators\n");
return ret;
}
msleep(20);
@@ -510,7 +515,7 @@ static int ili9322_disable(struct drm_panel *panel)
ret = regmap_write(ili->regmap, ILI9322_POW_CTRL,
ILI9322_POW_CTRL_STANDBY);
if (ret) {
- dev_err(ili->dev, "unable to go to standby mode\n");
+ DRM_DEV_ERROR(ili->dev, "unable to go to standby mode\n");
return ret;
}
@@ -548,7 +553,7 @@ static int ili9322_enable(struct drm_panel *panel)
ret = regmap_write(ili->regmap, ILI9322_POW_CTRL,
ILI9322_POW_CTRL_DEFAULT);
if (ret) {
- dev_err(ili->dev, "unable to enable panel\n");
+ DRM_DEV_ERROR(ili->dev, "unable to enable panel\n");
return ret;
}
@@ -756,7 +761,7 @@ static int ili9322_probe(struct spi_device *spi)
*/
ili->conf = of_device_get_match_data(dev);
if (!ili->conf) {
- dev_err(dev, "missing device configuration\n");
+ DRM_DEV_ERROR(dev, "missing device configuration\n");
return -ENODEV;
}
@@ -766,20 +771,21 @@ static int ili9322_probe(struct spi_device *spi)
ili->vreg1out = U8_MAX;
} else {
if (val < 3600) {
- dev_err(dev, "too low VREG1OUT\n");
+ DRM_DEV_ERROR(dev, "too low VREG1OUT\n");
return -EINVAL;
}
if (val > 6000) {
- dev_err(dev, "too high VREG1OUT\n");
+ DRM_DEV_ERROR(dev, "too high VREG1OUT\n");
return -EINVAL;
}
if ((val % 100) != 0) {
- dev_err(dev, "VREG1OUT is no even 100 microvolt\n");
+ DRM_DEV_ERROR(dev,
+ "VREG1OUT is no even 100 microvolt\n");
return -EINVAL;
}
val -= 3600;
val /= 100;
- dev_dbg(dev, "VREG1OUT = 0x%02x\n", val);
+ DRM_DEV_DEBUG(dev, "VREG1OUT = 0x%02x\n", val);
ili->vreg1out = val;
}
@@ -789,15 +795,15 @@ static int ili9322_probe(struct spi_device *spi)
ili->vcom_high = U8_MAX;
} else {
if (val < 37) {
- dev_err(dev, "too low VCOM high\n");
+ DRM_DEV_ERROR(dev, "too low VCOM high\n");
return -EINVAL;
}
if (val > 100) {
- dev_err(dev, "too high VCOM high\n");
+ DRM_DEV_ERROR(dev, "too high VCOM high\n");
return -EINVAL;
}
val -= 37;
- dev_dbg(dev, "VCOM high = 0x%02x\n", val);
+ DRM_DEV_DEBUG(dev, "VCOM high = 0x%02x\n", val);
ili->vcom_high = val;
}
@@ -807,34 +813,38 @@ static int ili9322_probe(struct spi_device *spi)
ili->vcom_high = U8_MAX;
} else {
if (val < 70) {
- dev_err(dev, "too low VCOM amplitude\n");
+ DRM_DEV_ERROR(dev, "too low VCOM amplitude\n");
return -EINVAL;
}
if (val > 132) {
- dev_err(dev, "too high VCOM amplitude\n");
+ DRM_DEV_ERROR(dev, "too high VCOM amplitude\n");
return -EINVAL;
}
val -= 70;
val >>= 1; /* Increments of 2% */
- dev_dbg(dev, "VCOM amplitude = 0x%02x\n", val);
+ DRM_DEV_DEBUG(dev, "VCOM amplitude = 0x%02x\n", val);
ili->vcom_amplitude = val;
}
for (i = 0; i < ARRAY_SIZE(ili->gamma); i++) {
val = ili->conf->gamma_corr_neg[i];
if (val > 15) {
- dev_err(dev, "negative gamma %u > 15, capping\n", val);
+ DRM_DEV_ERROR(dev,
+ "negative gamma %u > 15, capping\n",
+ val);
val = 15;
}
gamma = val << 4;
val = ili->conf->gamma_corr_pos[i];
if (val > 15) {
- dev_err(dev, "positive gamma %u > 15, capping\n", val);
+ DRM_DEV_ERROR(dev,
+ "positive gamma %u > 15, capping\n",
+ val);
val = 15;
}
gamma |= val;
ili->gamma[i] = gamma;
- dev_dbg(dev, "gamma V%d: 0x%02x\n", i + 1, gamma);
+ DRM_DEV_DEBUG(dev, "gamma V%d: 0x%02x\n", i + 1, gamma);
}
ili->supplies[0].supply = "vcc"; /* 2.7-3.6 V */
@@ -859,32 +869,32 @@ static int ili9322_probe(struct spi_device *spi)
ili->reset_gpio = devm_gpiod_get_optional(dev, "reset", GPIOD_OUT_HIGH);
if (IS_ERR(ili->reset_gpio)) {
- dev_err(dev, "failed to get RESET GPIO\n");
+ DRM_DEV_ERROR(dev, "failed to get RESET GPIO\n");
return PTR_ERR(ili->reset_gpio);
}
spi->bits_per_word = 8;
ret = spi_setup(spi);
if (ret < 0) {
- dev_err(dev, "spi setup failed.\n");
+ DRM_DEV_ERROR(dev, "spi setup failed.\n");
return ret;
}
regmap_config = &ili9322_regmap_config;
ili->regmap = devm_regmap_init(dev, &ili9322_regmap_bus, dev,
regmap_config);
if (IS_ERR(ili->regmap)) {
- dev_err(dev, "failed to allocate register map\n");
+ DRM_DEV_ERROR(dev, "failed to allocate register map\n");
return PTR_ERR(ili->regmap);
}
ret = regmap_read(ili->regmap, ILI9322_CHIP_ID, &val);
if (ret) {
- dev_err(dev, "can't get chip ID (%d)\n", ret);
+ DRM_DEV_ERROR(dev, "can't get chip ID (%d)\n", ret);
return ret;
}
if (val != ILI9322_CHIP_ID_MAGIC) {
- dev_err(dev, "chip ID 0x%0x2, expected 0x%02x\n", val,
- ILI9322_CHIP_ID_MAGIC);
+ DRM_DEV_ERROR(dev, "chip ID 0x%0x2, expected 0x%02x\n", val,
+ ILI9322_CHIP_ID_MAGIC);
return -ENODEV;
}
@@ -892,7 +902,8 @@ static int ili9322_probe(struct spi_device *spi)
if (ili->conf->input == ILI9322_INPUT_UNKNOWN) {
ret = regmap_read(ili->regmap, ILI9322_ENTRY, &val);
if (ret) {
- dev_err(dev, "can't get entry setting (%d)\n", ret);
+ DRM_DEV_ERROR(dev,
+ "can't get entry setting (%d)\n", ret);
return ret;
}
/* Input enum corresponds to HW setting */
diff --git a/drivers/gpu/drm/panel/panel-ilitek-ili9881c.c b/drivers/gpu/drm/panel/panel-ilitek-ili9881c.c
index 3ad4a46c4e94..f72059578c74 100644
--- a/drivers/gpu/drm/panel/panel-ilitek-ili9881c.c
+++ b/drivers/gpu/drm/panel/panel-ilitek-ili9881c.c
@@ -18,6 +18,7 @@
#include <drm/drm_mipi_dsi.h>
#include <drm/drm_modes.h>
#include <drm/drm_panel.h>
+#include <drm/drm_print.h>
#include <video/mipi_display.h>
@@ -395,10 +396,11 @@ static int ili9881c_get_modes(struct drm_panel *panel)
mode = drm_mode_duplicate(panel->drm, &bananapi_default_mode);
if (!mode) {
- dev_err(&ctx->dsi->dev, "failed to add mode %ux%ux@%u\n",
- bananapi_default_mode.hdisplay,
- bananapi_default_mode.vdisplay,
- bananapi_default_mode.vrefresh);
+ DRM_DEV_ERROR(&ctx->dsi->dev,
+ "failed to add mode %ux%ux@%u\n",
+ bananapi_default_mode.hdisplay,
+ bananapi_default_mode.vdisplay,
+ bananapi_default_mode.vrefresh);
return -ENOMEM;
}
@@ -439,13 +441,13 @@ static int ili9881c_dsi_probe(struct mipi_dsi_device *dsi)
ctx->power = devm_regulator_get(&dsi->dev, "power");
if (IS_ERR(ctx->power)) {
- dev_err(&dsi->dev, "Couldn't get our power regulator\n");
+ DRM_DEV_ERROR(&dsi->dev, "Couldn't get our power regulator\n");
return PTR_ERR(ctx->power);
}
ctx->reset = devm_gpiod_get(&dsi->dev, "reset", GPIOD_OUT_LOW);
if (IS_ERR(ctx->reset)) {
- dev_err(&dsi->dev, "Couldn't get our reset GPIO\n");
+ DRM_DEV_ERROR(&dsi->dev, "Couldn't get our reset GPIO\n");
return PTR_ERR(ctx->reset);
}
--
2.12.0
Use of drmP.h is discouraged and yet we see new panel
drivers utilising drmP.h.
Remove usage of drmP.h from current panel drivers to set a good
example for new drivers.
While touching list of include files sort them.
Build tested on arm/x86.
Signed-off-by: Sam Ravnborg <[email protected]>
Cc: Linus Walleij <[email protected]>
Cc: Stefan Mavrodiev <[email protected]>
Cc: Thierry Reding <[email protected]>
Cc: David Airlie <[email protected]>
Cc: Daniel Vetter <[email protected]>
---
drivers/gpu/drm/panel/panel-arm-versatile.c | 3 ++-
drivers/gpu/drm/panel/panel-ilitek-ili9322.c | 4 +++-
drivers/gpu/drm/panel/panel-innolux-p079zca.c | 4 +++-
drivers/gpu/drm/panel/panel-jdi-lt070me05000.c | 2 +-
drivers/gpu/drm/panel/panel-kingdisplay-kd097d04.c | 4 +++-
drivers/gpu/drm/panel/panel-lg-lg4573.c | 5 ++++-
drivers/gpu/drm/panel/panel-lvds.c | 1 -
drivers/gpu/drm/panel/panel-olimex-lcd-olinuxino.c | 2 +-
drivers/gpu/drm/panel/panel-orisetech-otm8009a.c | 7 ++++++-
drivers/gpu/drm/panel/panel-panasonic-vvx10f034n00.c | 3 ++-
drivers/gpu/drm/panel/panel-raspberrypi-touchscreen.c | 3 +--
drivers/gpu/drm/panel/panel-raydium-rm68200.c | 5 ++++-
drivers/gpu/drm/panel/panel-samsung-ld9040.c | 6 +++++-
drivers/gpu/drm/panel/panel-samsung-s6e3ha2.c | 6 +++++-
drivers/gpu/drm/panel/panel-samsung-s6e63j0x03.c | 7 ++++++-
drivers/gpu/drm/panel/panel-samsung-s6e8aa0.c | 6 +++++-
drivers/gpu/drm/panel/panel-seiko-43wvf1g.c | 4 +++-
drivers/gpu/drm/panel/panel-sharp-lq101r1sx01.c | 3 ++-
drivers/gpu/drm/panel/panel-sharp-ls043t1le01.c | 3 ++-
drivers/gpu/drm/panel/panel-simple.c | 3 ++-
drivers/gpu/drm/panel/panel-sitronix-st7789v.c | 6 +++++-
drivers/gpu/drm/panel/panel-truly-nt35597.c | 8 ++++++--
22 files changed, 71 insertions(+), 24 deletions(-)
diff --git a/drivers/gpu/drm/panel/panel-arm-versatile.c b/drivers/gpu/drm/panel/panel-arm-versatile.c
index b428c4678106..0ed8ee4673eb 100644
--- a/drivers/gpu/drm/panel/panel-arm-versatile.c
+++ b/drivers/gpu/drm/panel/panel-arm-versatile.c
@@ -25,13 +25,14 @@
* Epson QCIF display.
*
*/
-#include <drm/drmP.h>
+#include <drm/drm_modes.h>
#include <drm/drm_panel.h>
#include <linux/bitops.h>
#include <linux/init.h>
#include <linux/kernel.h>
#include <linux/mfd/syscon.h>
+#include <linux/mod_devicetable.h>
#include <linux/module.h>
#include <linux/platform_device.h>
#include <linux/regmap.h>
diff --git a/drivers/gpu/drm/panel/panel-ilitek-ili9322.c b/drivers/gpu/drm/panel/panel-ilitek-ili9322.c
index bd38bf4f1ba6..1ee8b2ccf718 100644
--- a/drivers/gpu/drm/panel/panel-ilitek-ili9322.c
+++ b/drivers/gpu/drm/panel/panel-ilitek-ili9322.c
@@ -22,8 +22,10 @@
* published by the Free Software Foundation.
*/
-#include <drm/drmP.h>
+#include <drm/drm_connector.h>
+#include <drm/drm_modes.h>
#include <drm/drm_panel.h>
+#include <drm/drm_print.h>
#include <linux/of_device.h>
#include <linux/bitops.h>
diff --git a/drivers/gpu/drm/panel/panel-innolux-p079zca.c b/drivers/gpu/drm/panel/panel-innolux-p079zca.c
index 8e5724b63f1f..6c3da2cbacd9 100644
--- a/drivers/gpu/drm/panel/panel-innolux-p079zca.c
+++ b/drivers/gpu/drm/panel/panel-innolux-p079zca.c
@@ -8,16 +8,18 @@
*/
#include <linux/backlight.h>
+#include <linux/delay.h>
#include <linux/gpio/consumer.h>
#include <linux/module.h>
#include <linux/of.h>
#include <linux/of_device.h>
#include <linux/regulator/consumer.h>
-#include <drm/drmP.h>
#include <drm/drm_crtc.h>
+#include <drm/drm_device.h>
#include <drm/drm_mipi_dsi.h>
#include <drm/drm_panel.h>
+#include <drm/drm_print.h>
#include <video/mipi_display.h>
diff --git a/drivers/gpu/drm/panel/panel-jdi-lt070me05000.c b/drivers/gpu/drm/panel/panel-jdi-lt070me05000.c
index 99caa7835e7b..fecdda0b99a5 100644
--- a/drivers/gpu/drm/panel/panel-jdi-lt070me05000.c
+++ b/drivers/gpu/drm/panel/panel-jdi-lt070me05000.c
@@ -22,12 +22,12 @@
* this program. If not, see <http://www.gnu.org/licenses/>.
*/
#include <linux/backlight.h>
+#include <linux/delay.h>
#include <linux/gpio/consumer.h>
#include <linux/module.h>
#include <linux/of.h>
#include <linux/regulator/consumer.h>
-#include <drm/drmP.h>
#include <drm/drm_crtc.h>
#include <drm/drm_mipi_dsi.h>
#include <drm/drm_panel.h>
diff --git a/drivers/gpu/drm/panel/panel-kingdisplay-kd097d04.c b/drivers/gpu/drm/panel/panel-kingdisplay-kd097d04.c
index 2a25a914d09e..f61211a69dbe 100644
--- a/drivers/gpu/drm/panel/panel-kingdisplay-kd097d04.c
+++ b/drivers/gpu/drm/panel/panel-kingdisplay-kd097d04.c
@@ -4,15 +4,17 @@
*/
#include <linux/backlight.h>
+#include <linux/delay.h>
#include <linux/gpio/consumer.h>
#include <linux/module.h>
#include <linux/of.h>
#include <linux/regulator/consumer.h>
-#include <drm/drmP.h>
#include <drm/drm_crtc.h>
+#include <drm/drm_device.h>
#include <drm/drm_mipi_dsi.h>
#include <drm/drm_panel.h>
+#include <drm/drm_print.h>
#include <video/mipi_display.h>
diff --git a/drivers/gpu/drm/panel/panel-lg-lg4573.c b/drivers/gpu/drm/panel/panel-lg-lg4573.c
index 6989238b276a..e63fba2761f4 100644
--- a/drivers/gpu/drm/panel/panel-lg-lg4573.c
+++ b/drivers/gpu/drm/panel/panel-lg-lg4573.c
@@ -15,10 +15,13 @@
* published by the Free Software Foundation.
*/
-#include <drm/drmP.h>
+#include <drm/drm_device.h>
+#include <drm/drm_modes.h>
#include <drm/drm_panel.h>
+#include <linux/delay.h>
#include <linux/gpio/consumer.h>
+#include <linux/module.h>
#include <linux/regulator/consumer.h>
#include <linux/spi/spi.h>
diff --git a/drivers/gpu/drm/panel/panel-lvds.c b/drivers/gpu/drm/panel/panel-lvds.c
index 3f6550e6b6a4..833aeb47065b 100644
--- a/drivers/gpu/drm/panel/panel-lvds.c
+++ b/drivers/gpu/drm/panel/panel-lvds.c
@@ -16,7 +16,6 @@
#include <linux/regulator/consumer.h>
#include <linux/slab.h>
-#include <drm/drmP.h>
#include <drm/drm_crtc.h>
#include <drm/drm_panel.h>
diff --git a/drivers/gpu/drm/panel/panel-olimex-lcd-olinuxino.c b/drivers/gpu/drm/panel/panel-olimex-lcd-olinuxino.c
index 5e8d4523e9ed..c8704be9caa3 100644
--- a/drivers/gpu/drm/panel/panel-olimex-lcd-olinuxino.c
+++ b/drivers/gpu/drm/panel/panel-olimex-lcd-olinuxino.c
@@ -15,9 +15,9 @@
#include <linux/of.h>
#include <linux/regulator/consumer.h>
+#include <drm/drm_device.h>
#include <drm/drm_modes.h>
#include <drm/drm_panel.h>
-#include <drm/drmP.h>
#include <video/videomode.h>
#include <video/display_timing.h>
diff --git a/drivers/gpu/drm/panel/panel-orisetech-otm8009a.c b/drivers/gpu/drm/panel/panel-orisetech-otm8009a.c
index 87fa316e1d7b..5bacf3f2da05 100644
--- a/drivers/gpu/drm/panel/panel-orisetech-otm8009a.c
+++ b/drivers/gpu/drm/panel/panel-orisetech-otm8009a.c
@@ -6,12 +6,17 @@
* Yannick Fertre <[email protected]>
*/
-#include <drm/drmP.h>
#include <drm/drm_mipi_dsi.h>
+#include <drm/drm_modes.h>
#include <drm/drm_panel.h>
+#include <drm/drm_print.h>
+
#include <linux/backlight.h>
+#include <linux/delay.h>
#include <linux/gpio/consumer.h>
+#include <linux/module.h>
#include <linux/regulator/consumer.h>
+
#include <video/mipi_display.h>
#define OTM8009A_BACKLIGHT_DEFAULT 240
diff --git a/drivers/gpu/drm/panel/panel-panasonic-vvx10f034n00.c b/drivers/gpu/drm/panel/panel-panasonic-vvx10f034n00.c
index cb4dfb98be0f..c7037942c7f3 100644
--- a/drivers/gpu/drm/panel/panel-panasonic-vvx10f034n00.c
+++ b/drivers/gpu/drm/panel/panel-panasonic-vvx10f034n00.c
@@ -19,12 +19,13 @@
*/
#include <linux/backlight.h>
+#include <linux/delay.h>
#include <linux/module.h>
#include <linux/of.h>
#include <linux/regulator/consumer.h>
-#include <drm/drmP.h>
#include <drm/drm_crtc.h>
+#include <drm/drm_device.h>
#include <drm/drm_mipi_dsi.h>
#include <drm/drm_panel.h>
diff --git a/drivers/gpu/drm/panel/panel-raspberrypi-touchscreen.c b/drivers/gpu/drm/panel/panel-raspberrypi-touchscreen.c
index 2c9c9722734f..28c0620dfe0f 100644
--- a/drivers/gpu/drm/panel/panel-raspberrypi-touchscreen.c
+++ b/drivers/gpu/drm/panel/panel-raspberrypi-touchscreen.c
@@ -53,9 +53,8 @@
#include <linux/of_graph.h>
#include <linux/pm.h>
-#include <drm/drm_panel.h>
-#include <drm/drmP.h>
#include <drm/drm_crtc.h>
+#include <drm/drm_device.h>
#include <drm/drm_mipi_dsi.h>
#include <drm/drm_panel.h>
diff --git a/drivers/gpu/drm/panel/panel-raydium-rm68200.c b/drivers/gpu/drm/panel/panel-raydium-rm68200.c
index 77593533abcd..e05e3f950855 100644
--- a/drivers/gpu/drm/panel/panel-raydium-rm68200.c
+++ b/drivers/gpu/drm/panel/panel-raydium-rm68200.c
@@ -7,14 +7,17 @@
*/
#include <linux/backlight.h>
+#include <linux/delay.h>
#include <linux/gpio/consumer.h>
+#include <linux/module.h>
#include <linux/regulator/consumer.h>
#include <video/mipi_display.h>
-#include <drm/drmP.h>
#include <drm/drm_mipi_dsi.h>
+#include <drm/drm_modes.h>
#include <drm/drm_panel.h>
+#include <drm/drm_print.h>
/*** Manufacturer Command Set ***/
#define MCS_CMD_MODE_SW 0xFE /* CMD Mode Switch */
diff --git a/drivers/gpu/drm/panel/panel-samsung-ld9040.c b/drivers/gpu/drm/panel/panel-samsung-ld9040.c
index 3cf4cf6a6942..7d27b79d0b2a 100644
--- a/drivers/gpu/drm/panel/panel-samsung-ld9040.c
+++ b/drivers/gpu/drm/panel/panel-samsung-ld9040.c
@@ -11,10 +11,14 @@
* published by the Free Software Foundation.
*/
-#include <drm/drmP.h>
+#include <drm/drm_modes.h>
#include <drm/drm_panel.h>
+#include <drm/drm_print.h>
+#include <linux/delay.h>
#include <linux/gpio/consumer.h>
+#include <linux/module.h>
+#include <linux/of.h>
#include <linux/regulator/consumer.h>
#include <linux/spi/spi.h>
diff --git a/drivers/gpu/drm/panel/panel-samsung-s6e3ha2.c b/drivers/gpu/drm/panel/panel-samsung-s6e3ha2.c
index 797bbc7a264e..813afee82ec9 100644
--- a/drivers/gpu/drm/panel/panel-samsung-s6e3ha2.c
+++ b/drivers/gpu/drm/panel/panel-samsung-s6e3ha2.c
@@ -11,11 +11,15 @@
* published by the Free Software Foundation.
*/
-#include <drm/drmP.h>
#include <drm/drm_mipi_dsi.h>
+#include <drm/drm_modes.h>
#include <drm/drm_panel.h>
+#include <drm/drm_print.h>
+
#include <linux/backlight.h>
+#include <linux/delay.h>
#include <linux/gpio/consumer.h>
+#include <linux/module.h>
#include <linux/of_device.h>
#include <linux/regulator/consumer.h>
diff --git a/drivers/gpu/drm/panel/panel-samsung-s6e63j0x03.c b/drivers/gpu/drm/panel/panel-samsung-s6e63j0x03.c
index aeb32aa58899..f1c8000e0386 100644
--- a/drivers/gpu/drm/panel/panel-samsung-s6e63j0x03.c
+++ b/drivers/gpu/drm/panel/panel-samsung-s6e63j0x03.c
@@ -11,12 +11,17 @@
* published by the Free Software Foundation.
*/
-#include <drm/drmP.h>
#include <drm/drm_mipi_dsi.h>
+#include <drm/drm_modes.h>
#include <drm/drm_panel.h>
+#include <drm/drm_print.h>
+
#include <linux/backlight.h>
+#include <linux/delay.h>
#include <linux/gpio/consumer.h>
+#include <linux/module.h>
#include <linux/regulator/consumer.h>
+
#include <video/mipi_display.h>
#define MCS_LEVEL2_KEY 0xf0
diff --git a/drivers/gpu/drm/panel/panel-samsung-s6e8aa0.c b/drivers/gpu/drm/panel/panel-samsung-s6e8aa0.c
index 6ad827b93ae1..b252d23f386f 100644
--- a/drivers/gpu/drm/panel/panel-samsung-s6e8aa0.c
+++ b/drivers/gpu/drm/panel/panel-samsung-s6e8aa0.c
@@ -15,11 +15,15 @@
* published by the Free Software Foundation.
*/
-#include <drm/drmP.h>
#include <drm/drm_mipi_dsi.h>
+#include <drm/drm_modes.h>
#include <drm/drm_panel.h>
+#include <drm/drm_print.h>
+#include <linux/delay.h>
#include <linux/gpio/consumer.h>
+#include <linux/module.h>
+#include <linux/of.h>
#include <linux/regulator/consumer.h>
#include <video/mipi_display.h>
diff --git a/drivers/gpu/drm/panel/panel-seiko-43wvf1g.c b/drivers/gpu/drm/panel/panel-seiko-43wvf1g.c
index 2d99e28ff117..c1348a687447 100644
--- a/drivers/gpu/drm/panel/panel-seiko-43wvf1g.c
+++ b/drivers/gpu/drm/panel/panel-seiko-43wvf1g.c
@@ -7,12 +7,14 @@
*/
#include <linux/backlight.h>
+#include <linux/delay.h>
#include <linux/module.h>
#include <linux/of.h>
+#include <linux/platform_device.h>
#include <linux/regulator/consumer.h>
-#include <drm/drmP.h>
#include <drm/drm_crtc.h>
+#include <drm/drm_device.h>
#include <drm/drm_panel.h>
#include <video/display_timing.h>
diff --git a/drivers/gpu/drm/panel/panel-sharp-lq101r1sx01.c b/drivers/gpu/drm/panel/panel-sharp-lq101r1sx01.c
index 02fc0f5423d4..2ed11d86c10e 100644
--- a/drivers/gpu/drm/panel/panel-sharp-lq101r1sx01.c
+++ b/drivers/gpu/drm/panel/panel-sharp-lq101r1sx01.c
@@ -7,13 +7,14 @@
*/
#include <linux/backlight.h>
+#include <linux/delay.h>
#include <linux/gpio/consumer.h>
#include <linux/module.h>
#include <linux/of.h>
#include <linux/regulator/consumer.h>
-#include <drm/drmP.h>
#include <drm/drm_crtc.h>
+#include <drm/drm_device.h>
#include <drm/drm_mipi_dsi.h>
#include <drm/drm_panel.h>
diff --git a/drivers/gpu/drm/panel/panel-sharp-ls043t1le01.c b/drivers/gpu/drm/panel/panel-sharp-ls043t1le01.c
index e5cae0050f52..e8e2277e934d 100644
--- a/drivers/gpu/drm/panel/panel-sharp-ls043t1le01.c
+++ b/drivers/gpu/drm/panel/panel-sharp-ls043t1le01.c
@@ -19,13 +19,14 @@
*/
#include <linux/backlight.h>
+#include <linux/delay.h>
#include <linux/gpio/consumer.h>
#include <linux/module.h>
#include <linux/of.h>
#include <linux/regulator/consumer.h>
-#include <drm/drmP.h>
#include <drm/drm_crtc.h>
+#include <drm/drm_device.h>
#include <drm/drm_mipi_dsi.h>
#include <drm/drm_panel.h>
diff --git a/drivers/gpu/drm/panel/panel-simple.c b/drivers/gpu/drm/panel/panel-simple.c
index 9e8218f6a3f2..406b1d7aef31 100644
--- a/drivers/gpu/drm/panel/panel-simple.c
+++ b/drivers/gpu/drm/panel/panel-simple.c
@@ -22,14 +22,15 @@
*/
#include <linux/backlight.h>
+#include <linux/delay.h>
#include <linux/gpio/consumer.h>
#include <linux/module.h>
#include <linux/of_platform.h>
#include <linux/platform_device.h>
#include <linux/regulator/consumer.h>
-#include <drm/drmP.h>
#include <drm/drm_crtc.h>
+#include <drm/drm_device.h>
#include <drm/drm_mipi_dsi.h>
#include <drm/drm_panel.h>
diff --git a/drivers/gpu/drm/panel/panel-sitronix-st7789v.c b/drivers/gpu/drm/panel/panel-sitronix-st7789v.c
index 74284e5afc5d..76bd6e7a1a60 100644
--- a/drivers/gpu/drm/panel/panel-sitronix-st7789v.c
+++ b/drivers/gpu/drm/panel/panel-sitronix-st7789v.c
@@ -6,11 +6,15 @@
* 2 as published by the Free Software Foundation.
*/
+#include <linux/backlight.h>
+#include <linux/delay.h>
#include <linux/gpio/consumer.h>
+#include <linux/module.h>
#include <linux/regulator/consumer.h>
#include <linux/spi/spi.h>
-#include <drm/drmP.h>
+#include <drm/drm_device.h>
+#include <drm/drm_modes.h>
#include <drm/drm_panel.h>
#include <video/mipi_display.h>
diff --git a/drivers/gpu/drm/panel/panel-truly-nt35597.c b/drivers/gpu/drm/panel/panel-truly-nt35597.c
index fc2a66c53db4..6317b6b35341 100644
--- a/drivers/gpu/drm/panel/panel-truly-nt35597.c
+++ b/drivers/gpu/drm/panel/panel-truly-nt35597.c
@@ -3,11 +3,15 @@
* Copyright (c) 2018, The Linux Foundation. All rights reserved.
*/
-#include <drm/drmP.h>
-#include <drm/drm_panel.h>
#include <drm/drm_mipi_dsi.h>
+#include <drm/drm_modes.h>
+#include <drm/drm_panel.h>
+#include <drm/drm_print.h>
+#include <linux/backlight.h>
+#include <linux/delay.h>
#include <linux/gpio/consumer.h>
+#include <linux/module.h>
#include <linux/of_device.h>
#include <linux/of_graph.h>
#include <linux/pinctrl/consumer.h>
--
2.12.0
Hi all.
On Thu, Jan 31, 2019 at 08:26:00PM +0100, Sam Ravnborg wrote:
> Hi Thierry et al.
>
> While reviewing a number of new panel drivers there was a
> certain pattern in the feedback:
> - the now deprecated drmP.h file was used
> - dev_err() and friends was used
>
> This patch-set address the above items in the panel
> drivers in drm/panel/
> The hope is that new panel drivers will no longer inherit bad
> patterns from the existing drivers.
>
> The use of DRM_DEV* is not accepted by everyone, so this conversion
> was split up in smaller bits.
> If some drivers do not want to use DRM_DEV* then just drop the relevant patch.
>
> All patches are build tested on x86/arm.
>
> The DRM_DEV* patches depends on the drmP.h removal.
>
> One extra patch sneaked in "panel-innolux: drop unused variable"
> This is a fix for an unused variable and was added to flush my panel patches.
>
> Note: Waiting for key storage (for gpg key) before I start the process getting
> commit rights, so I rely on someone else (Thierry?) to commit this.
>
> Patches are made on top of drm-misc-next as of a few days ago.
Just for the record, all patches are checkpatched - OK.
A lot of the DRM_DEV_ERROR() etc lines had to be linewrapped to avoid
the maximum linelength.
The conversion was done manually, no fancy coincielle script behind.
That's something to look into for future changes.
Sam
On Thu, Jan 31, 2019 at 08:26:00PM +0100, Sam Ravnborg wrote:
> Hi Thierry et al.
>
> While reviewing a number of new panel drivers there was a
> certain pattern in the feedback:
> - the now deprecated drmP.h file was used
> - dev_err() and friends was used
>
> This patch-set address the above items in the panel
> drivers in drm/panel/
> The hope is that new panel drivers will no longer inherit bad
> patterns from the existing drivers.
>
> The use of DRM_DEV* is not accepted by everyone, so this conversion
> was split up in smaller bits.
> If some drivers do not want to use DRM_DEV* then just drop the relevant patch.
>
> All patches are build tested on x86/arm.
>
> The DRM_DEV* patches depends on the drmP.h removal.
>
> One extra patch sneaked in "panel-innolux: drop unused variable"
> This is a fix for an unused variable and was added to flush my panel patches.
>
> Note: Waiting for key storage (for gpg key) before I start the process getting
> commit rights, so I rely on someone else (Thierry?) to commit this.
>
> Patches are made on top of drm-misc-next as of a few days ago.
>
> Comments welcome!
Hey Sam,
Thanks for the patchset, this will make dmesg grepping easier! One comment, and
you're going to hate me for it: Why use DRM_DEV* instead of DRM_*?
When I introduced DRM_DEV, it was to cover the case where there are multiple
instances of the same driver (ie: dual-channel mipi, multiple crtcs, etc). I
suppose that _could_ happen in the panel space, but it seems more unlikely than
not.
It's quite possible I'm overthinking this, but just something I figured I would
point out. Either way, I think this is an improvement over dev_*.
Sean
>
> Sam
>
> Sam Ravnborg (19):
> drm/panel: drop drmP.h usage
> drm/panel: panel-innolux: drop unused variable
> drm/panel: samsung: use DRM_DEV*
> drm/panel: arm-versatile: use DRM_DEV*
> drm/panel: truly: use DRM_DEV*
> drm/panel: sitronix: use DRM_DEV*
> drm/panel: ilitek: use DRM_DEV*
> drm/panel: innolux: use DRM_DEV*
> drm/panel: jdi: use DRM_DEV*
> drm/panel: lg: use DRM_DEV*
> drm/panel: lvds: use DRM_DEV*
> drm/panel: olimex: use DRM_DEV*
> drm/panel: orisetech: use DRM_DEV*
> drm/panel: panasonic: use DRM_DEV*
> drm/panel: raspberrypi: use DRM_DEV*
> drm/panel: raydium: use DRM_DEV*
> drm/panel: seiko: use DRM_DEV*
> drm/panel: sharp: use DRM_DEV*
> drm/panel: simple: use DRM_DEV*
>
> drivers/gpu/drm/panel/panel-arm-versatile.c | 21 +++--
> drivers/gpu/drm/panel/panel-ilitek-ili9322.c | 97 ++++++++++++----------
> drivers/gpu/drm/panel/panel-ilitek-ili9881c.c | 14 ++--
> drivers/gpu/drm/panel/panel-innolux-p079zca.c | 17 ++--
> drivers/gpu/drm/panel/panel-jdi-lt070me05000.c | 66 ++++++++-------
> drivers/gpu/drm/panel/panel-kingdisplay-kd097d04.c | 4 +-
> drivers/gpu/drm/panel/panel-lg-lg4573.c | 25 +++---
> drivers/gpu/drm/panel/panel-lvds.c | 39 +++++----
> drivers/gpu/drm/panel/panel-olimex-lcd-olinuxino.c | 28 ++++---
> drivers/gpu/drm/panel/panel-orisetech-otm8009a.c | 15 ++--
> .../gpu/drm/panel/panel-panasonic-vvx10f034n00.c | 19 +++--
> .../gpu/drm/panel/panel-raspberrypi-touchscreen.c | 25 +++---
> drivers/gpu/drm/panel/panel-raydium-rm68200.c | 11 ++-
> drivers/gpu/drm/panel/panel-samsung-ld9040.c | 18 ++--
> drivers/gpu/drm/panel/panel-samsung-s6e3ha2.c | 21 +++--
> drivers/gpu/drm/panel/panel-samsung-s6e63j0x03.c | 15 ++--
> drivers/gpu/drm/panel/panel-samsung-s6e8aa0.c | 32 ++++---
> drivers/gpu/drm/panel/panel-seiko-43wvf1g.c | 18 ++--
> drivers/gpu/drm/panel/panel-sharp-lq101r1sx01.c | 66 ++++++++++-----
> drivers/gpu/drm/panel/panel-sharp-ls043t1le01.c | 27 +++---
> drivers/gpu/drm/panel/panel-simple.c | 22 +++--
> drivers/gpu/drm/panel/panel-sitronix-st7789v.c | 16 ++--
> drivers/gpu/drm/panel/panel-truly-nt35597.c | 10 ++-
> 23 files changed, 375 insertions(+), 251 deletions(-)
--
Sean Paul, Software Engineer, Google / Chromium OS
Hi Sean.
> Hey Sam,
> Thanks for the patchset, this will make dmesg grepping easier! One comment, and
> you're going to hate me for it: Why use DRM_DEV* instead of DRM_*?
>
> When I introduced DRM_DEV, it was to cover the case where there are multiple
> instances of the same driver (ie: dual-channel mipi, multiple crtcs, etc). I
> suppose that _could_ happen in the panel space, but it seems more unlikely than
> not.
The rationale for using DRM_DEV* are solely that if a struct device * is avalible,
then we can use this to provide more information about the origin of the logging.
I have not testet it - but from browsing the code I could not see that
DRM_ERROR and friends picked up the module name.
If DRM_ERROR is the right choice I will redo the patches - no problem.
But if we loose the module name then the DRM_DEV* variants are preferable IMO.
Note: I missed DRM_DEV_WARN(), so I left one dev_warn() in the code.
Sam
On Thu, Jan 31, 2019 at 10:03:12PM +0100, Sam Ravnborg wrote:
> Hi Sean.
>
> > Hey Sam,
> > Thanks for the patchset, this will make dmesg grepping easier! One comment, and
> > you're going to hate me for it: Why use DRM_DEV* instead of DRM_*?
> >
> > When I introduced DRM_DEV, it was to cover the case where there are multiple
> > instances of the same driver (ie: dual-channel mipi, multiple crtcs, etc). I
> > suppose that _could_ happen in the panel space, but it seems more unlikely than
> > not.
>
> The rationale for using DRM_DEV* are solely that if a struct device * is avalible,
> then we can use this to provide more information about the origin of the logging.
>
> I have not testet it - but from browsing the code I could not see that
> DRM_ERROR and friends picked up the module name.
> If DRM_ERROR is the right choice I will redo the patches - no problem.
>
> But if we loose the module name then the DRM_DEV* variants are preferable IMO.
I personally like the DRM_DEV_* variants better because of the
additional information that they provide. That can be useful when
grepping logs etc.
I'm slightly on the fence about this patch. The unwritten, and
admittedly fuzzy, rules that I've been using so far are that dev_*() are
used or messages that have to do with the panel device itself, whereas
DRM_* variants are used for things that are actually related to DRM. So
typically this would mean that roughly everything in ->probe() or
->remove() would be dev_*(), while the rest would be DRM_DEV_*().
The reason for this is that during most of ->probe() there's not really
any connection to DRM. In many cases the DRM device doesn't even exist
yet. Consider component/master setups where some display component will
wait for the panel to be registered before binding the master. So I find
it confusing to have the DRM style messages when there's actually no DRM
going on yet.
That said, I understand that this might not be an immediately obvious
rule and it might not be followed rigorously, which both quite possibly
contribute to the perception that the messages are all inconsistent. It
always made sense to me, but if everyone else thinks that it's totally
nuts, I'm sure I can find a way to get over it.
Thierry
Hi Thierry.
>
> I personally like the DRM_DEV_* variants better because of the
> additional information that they provide. That can be useful when
> grepping logs etc.
>
> I'm slightly on the fence about this patch. The unwritten, and
> admittedly fuzzy, rules that I've been using so far are that dev_*() are
> used or messages that have to do with the panel device itself, whereas
> DRM_* variants are used for things that are actually related to DRM. So
> typically this would mean that roughly everything in ->probe() or
> ->remove() would be dev_*(), while the rest would be DRM_DEV_*().
For a rookie like me it is much simpler if one can use the same
logging primitives all over or at least the rules when to use what is simple.
It is simple to say that everything that exists below drivers/gpu/drm/
relates to drm.
Suggested set of rules to follow:
- If in drm core, use DRM_XXX where XXX represent the core functionality
- If in a driver use DRM_DEV* if a struct device is available
- If in a driver and no struct device, use plain DRM_ERROR/INFO
If there is a need to distingush before/after one has a drm_device,
the best way would be to have a set of logging primitives that
take a drm_device. So we could extend the rule set:
- If in a driver use DRM_DRM* if a struct drm_device is available
(This rule would take precedence over a struct device)
DRM_DRM*, or DRM_DDEV* or ... But you get the idea.
But this is not where we are today.
Shall I redo the patch-set so we go back to dev_*() in probe() / remove()?
Sam
On Fri, 01 Feb 2019, Sam Ravnborg <[email protected]> wrote:
> Hi Thierry.
>
>>
>> I personally like the DRM_DEV_* variants better because of the
>> additional information that they provide. That can be useful when
>> grepping logs etc.
>>
>> I'm slightly on the fence about this patch. The unwritten, and
>> admittedly fuzzy, rules that I've been using so far are that dev_*() are
>> used or messages that have to do with the panel device itself, whereas
>> DRM_* variants are used for things that are actually related to DRM. So
>> typically this would mean that roughly everything in ->probe() or
>> ->remove() would be dev_*(), while the rest would be DRM_DEV_*().
>
> For a rookie like me it is much simpler if one can use the same
> logging primitives all over or at least the rules when to use what is simple.
> It is simple to say that everything that exists below drivers/gpu/drm/
> relates to drm.
>
> Suggested set of rules to follow:
> - If in drm core, use DRM_XXX where XXX represent the core functionality
> - If in a driver use DRM_DEV* if a struct device is available
> - If in a driver and no struct device, use plain DRM_ERROR/INFO
Core and drivers are already pretty conflated:
http://patchwork.freedesktop.org/patch/msgid/[email protected]
---
Side note, I'd like to switch i915 to dev based debugs, but I absolutely
hate the idea of changing:
DRM_DEBUG_KMS("...")
to:
DRM_DEV_DEBUG_KMS(dev_priv->drm.dev, "...")
I think the dev based macros are way too long, and would serve *most*
(though not all) drivers better by having struct drm_device * rather
than struct device * as the first param. In the above, just the
boilerplate consumes half the line.
Basically I'd like to see drm_ prefixed analogues to all the dev_ based
logging functions, e.g. drm_dbg that takes drm_device. But it's so much
churn that I'm contemplating just making i915 specific wrappers
instead. :(
BR,
Jani.
>
> If there is a need to distingush before/after one has a drm_device,
> the best way would be to have a set of logging primitives that
> take a drm_device. So we could extend the rule set:
> - If in a driver use DRM_DRM* if a struct drm_device is available
> (This rule would take precedence over a struct device)
>
> DRM_DRM*, or DRM_DDEV* or ... But you get the idea.
>
> But this is not where we are today.
>
> Shall I redo the patch-set so we go back to dev_*() in probe() / remove()?
>
> Sam
> _______________________________________________
> dri-devel mailing list
> [email protected]
> https://lists.freedesktop.org/mailman/listinfo/dri-devel
--
Jani Nikula, Intel Open Source Graphics Center
On 01.02.2019 11:30, Jani Nikula wrote:
> On Fri, 01 Feb 2019, Sam Ravnborg <[email protected]> wrote:
>> Hi Thierry.
>>
>>> I personally like the DRM_DEV_* variants better because of the
>>> additional information that they provide. That can be useful when
>>> grepping logs etc.
>>>
>>> I'm slightly on the fence about this patch. The unwritten, and
>>> admittedly fuzzy, rules that I've been using so far are that dev_*() are
>>> used or messages that have to do with the panel device itself, whereas
>>> DRM_* variants are used for things that are actually related to DRM. So
>>> typically this would mean that roughly everything in ->probe() or
>>> ->remove() would be dev_*(), while the rest would be DRM_DEV_*().
>> For a rookie like me it is much simpler if one can use the same
>> logging primitives all over or at least the rules when to use what is simple.
>> It is simple to say that everything that exists below drivers/gpu/drm/
>> relates to drm.
>>
>> Suggested set of rules to follow:
>> - If in drm core, use DRM_XXX where XXX represent the core functionality
>> - If in a driver use DRM_DEV* if a struct device is available
>> - If in a driver and no struct device, use plain DRM_ERROR/INFO
> Core and drivers are already pretty conflated:
>
> http://patchwork.freedesktop.org/patch/msgid/[email protected]
>
> ---
>
> Side note, I'd like to switch i915 to dev based debugs, but I absolutely
> hate the idea of changing:
>
> DRM_DEBUG_KMS("...")
>
> to:
>
> DRM_DEV_DEBUG_KMS(dev_priv->drm.dev, "...")
>
> I think the dev based macros are way too long, and would serve *most*
> (though not all) drivers better by having struct drm_device * rather
> than struct device * as the first param. In the above, just the
> boilerplate consumes half the line.
>
> Basically I'd like to see drm_ prefixed analogues to all the dev_ based
> logging functions, e.g. drm_dbg that takes drm_device. But it's so much
> churn that I'm contemplating just making i915 specific wrappers
> instead. :(
Does it means I am the only one who is not convinced to use all these
DRM_DEV helpers.
For me classic dev_(err|...) looks fine, if we really want to emphasize
that logs comes from DRM dev_* allows format modification, sth like this:
#define dev_fmt(fmt) "DRM: %s:%d: " fmt, __func__, __LINE__
but it is still something I do not see very helpful.
In general I think we have too many alternatives/flavours and developers
do not know what to choose, current usage of all these DRM_* shows it
clearly.
Regards
Andrzej
>
> BR,
> Jani.
>
>
>
>
>> If there is a need to distingush before/after one has a drm_device,
>> the best way would be to have a set of logging primitives that
>> take a drm_device. So we could extend the rule set:
>> - If in a driver use DRM_DRM* if a struct drm_device is available
>> (This rule would take precedence over a struct device)
>>
>> DRM_DRM*, or DRM_DDEV* or ... But you get the idea.
>>
>> But this is not where we are today.
>>
>> Shall I redo the patch-set so we go back to dev_*() in probe() / remove()?
>>
>> Sam
>> _______________________________________________
>> dri-devel mailing list
>> [email protected]
>> https://lists.freedesktop.org/mailman/listinfo/dri-devel
On Fri, 01 Feb 2019, Andrzej Hajda <[email protected]> wrote:
> On 01.02.2019 11:30, Jani Nikula wrote:
>> On Fri, 01 Feb 2019, Sam Ravnborg <[email protected]> wrote:
>>> Hi Thierry.
>>>
>>>> I personally like the DRM_DEV_* variants better because of the
>>>> additional information that they provide. That can be useful when
>>>> grepping logs etc.
>>>>
>>>> I'm slightly on the fence about this patch. The unwritten, and
>>>> admittedly fuzzy, rules that I've been using so far are that dev_*() are
>>>> used or messages that have to do with the panel device itself, whereas
>>>> DRM_* variants are used for things that are actually related to DRM. So
>>>> typically this would mean that roughly everything in ->probe() or
>>>> ->remove() would be dev_*(), while the rest would be DRM_DEV_*().
>>> For a rookie like me it is much simpler if one can use the same
>>> logging primitives all over or at least the rules when to use what is simple.
>>> It is simple to say that everything that exists below drivers/gpu/drm/
>>> relates to drm.
>>>
>>> Suggested set of rules to follow:
>>> - If in drm core, use DRM_XXX where XXX represent the core functionality
>>> - If in a driver use DRM_DEV* if a struct device is available
>>> - If in a driver and no struct device, use plain DRM_ERROR/INFO
>> Core and drivers are already pretty conflated:
>>
>> http://patchwork.freedesktop.org/patch/msgid/[email protected]
>>
>> ---
>>
>> Side note, I'd like to switch i915 to dev based debugs, but I absolutely
>> hate the idea of changing:
>>
>> DRM_DEBUG_KMS("...")
>>
>> to:
>>
>> DRM_DEV_DEBUG_KMS(dev_priv->drm.dev, "...")
>>
>> I think the dev based macros are way too long, and would serve *most*
>> (though not all) drivers better by having struct drm_device * rather
>> than struct device * as the first param. In the above, just the
>> boilerplate consumes half the line.
>>
>> Basically I'd like to see drm_ prefixed analogues to all the dev_ based
>> logging functions, e.g. drm_dbg that takes drm_device. But it's so much
>> churn that I'm contemplating just making i915 specific wrappers
>> instead. :(
>
>
> Does it means I am the only one who is not convinced to use all these
> DRM_DEV helpers.
>
> For me classic dev_(err|...) looks fine, if we really want to emphasize
> that logs comes from DRM dev_* allows format modification, sth like this:
>
> #define dev_fmt(fmt) "DRM: %s:%d: " fmt, __func__, __LINE__
>
> but it is still something I do not see very helpful.
dev_dbg has all the fancy dynamic debug stuff, but no way to filter by
category the way drm.debug bitmask allows.
BR,
Jani.
>
>
> In general I think we have too many alternatives/flavours and developers
> do not know what to choose, current usage of all these DRM_* shows it
> clearly.
>
>
> Regards
>
> Andrzej
>
>
>
>>
>> BR,
>> Jani.
>>
>>
>>
>>
>>> If there is a need to distingush before/after one has a drm_device,
>>> the best way would be to have a set of logging primitives that
>>> take a drm_device. So we could extend the rule set:
>>> - If in a driver use DRM_DRM* if a struct drm_device is available
>>> (This rule would take precedence over a struct device)
>>>
>>> DRM_DRM*, or DRM_DDEV* or ... But you get the idea.
>>>
>>> But this is not where we are today.
>>>
>>> Shall I redo the patch-set so we go back to dev_*() in probe() / remove()?
>>>
>>> Sam
>>> _______________________________________________
>>> dri-devel mailing list
>>> [email protected]
>>> https://lists.freedesktop.org/mailman/listinfo/dri-devel
>
>
--
Jani Nikula, Intel Open Source Graphics Center
Hi Thierry.
> I'm slightly on the fence about this patch.
Please ignore patch 3-19, there is no consensus on the logging changes.
We do not want to apply these and then have to redo parts/all of
it later.
But the first two patches has not seen any feedback yet:
[PATCH v1 01/19] drm/panel: drop drmP.h usage
[PATCH v1 02/19] drm/panel: panel-innolux: drop unused variable
Please consider these, or maybe wait a little to see if someone
find time to review.
I can resend the patches if this is preferred.
Sam
On Fri, 2019-02-01 at 14:37 +0100, Sam Ravnborg wrote:
> Hi Thierry.
>
> > I'm slightly on the fence about this patch.
>
> Please ignore patch 3-19, there is no consensus on the logging changes.
> We do not want to apply these and then have to redo parts/all of
> it later.
>
> But the first two patches has not seen any feedback yet:
>
> [PATCH v1 01/19] drm/panel: drop drmP.h usage
> [PATCH v1 02/19] drm/panel: panel-innolux: drop unused variable
>
> Please consider these, or maybe wait a little to see if someone
> find time to review.
>
> I can resend the patches if this is preferred.
My preference would also convert all the
DRM_DEV_<level> uses to drm_dev_<level> eventually.
Also, the macros themselves could change to use a
more consistent mechanism.
This would make the drm logging mechanisms more like
other logging mechanisms used in the kernel.
Something like:
---
Subject: [PATCH] drm: Improve and standardize logging functions
Use a more typical logging style.
Add and use drm_printk and drm_dev_printk functions that include the
test for KERN_ERR use where '*ERROR*' is added to logging output.
Remove the slightly unusual _DRM_PRINTK macro and use the new drm_printk
function instead.
---
drivers/gpu/drm/drm_print.c | 67 +++++++++++++++++++++++++++++----------------
include/drm/drm_print.h | 51 ++++++++++++++++++++--------------
2 files changed, 74 insertions(+), 44 deletions(-)
diff --git a/drivers/gpu/drm/drm_print.c b/drivers/gpu/drm/drm_print.c
index 0e7fc3e7dfb4..4e3ae7b5cce1 100644
--- a/drivers/gpu/drm/drm_print.c
+++ b/drivers/gpu/drm/drm_print.c
@@ -174,22 +174,59 @@ void drm_printf(struct drm_printer *p, const char *f, ...)
}
EXPORT_SYMBOL(drm_printf);
-void drm_dev_printk(const struct device *dev, const char *level,
- const char *format, ...)
+void drm_printk(const char *format, ...)
{
struct va_format vaf;
va_list args;
+ char lvl[PRINTK_MAX_SINGLE_HEADER_LEN + 1] = KERN_DEFAULT;
+ int level = printk_get_level(format);
+ size_t size = printk_skip_level(format) - format;
+
+ if (size) {
+ memcpy(lvl, format, size);
+ lvl[size] = '\0';
+ }
va_start(args, format);
- vaf.fmt = format;
+ vaf.fmt = format + size;
+ vaf.va = &args;
+
+ printk("%s" "[" DRM_NAME ":%ps] %s%pV",
+ lvl, __builtin_return_address(0),
+ level == LOGLEVEL_ERR ? "*ERROR* " : "",
+ &vaf);
+
+ va_end(args);
+}
+EXPORT_SYMBOL(drm_printk);
+
+void drm_dev_printk(const struct device *dev, const char *format, ...)
+{
+ struct va_format vaf;
+ va_list args;
+ char lvl[PRINTK_MAX_SINGLE_HEADER_LEN + 1] = KERN_DEFAULT;
+ int level = printk_get_level(format);
+ size_t size = printk_skip_level(format) - format;
+
+ if (size) {
+ memcpy(lvl, format, size);
+ lvl[size] = '\0';
+ }
+
+ va_start(args, format);
+ vaf.fmt = format + size;
vaf.va = &args;
if (dev)
- dev_printk(level, dev, "[" DRM_NAME ":%ps] %pV",
- __builtin_return_address(0), &vaf);
+ dev_printk(lvl, dev, "[" DRM_NAME ":%ps] %s%pV",
+ __builtin_return_address(0),
+ level == LOGLEVEL_ERR ? "*ERROR* " : "",
+ &vaf);
else
- printk("%s" "[" DRM_NAME ":%ps] %pV",
- level, __builtin_return_address(0), &vaf);
+ printk("%s" "[" DRM_NAME ":%ps] %s%pV",
+ lvl, __builtin_return_address(0),
+ level == LOGLEVEL_ERR ? "*ERROR* " : "",
+ &vaf);
va_end(args);
}
@@ -237,19 +274,3 @@ void drm_dbg(unsigned int category, const char *format, ...)
va_end(args);
}
EXPORT_SYMBOL(drm_dbg);
-
-void drm_err(const char *format, ...)
-{
- struct va_format vaf;
- va_list args;
-
- va_start(args, format);
- vaf.fmt = format;
- vaf.va = &args;
-
- printk(KERN_ERR "[" DRM_NAME ":%ps] *ERROR* %pV",
- __builtin_return_address(0), &vaf);
-
- va_end(args);
-}
-EXPORT_SYMBOL(drm_err);
diff --git a/include/drm/drm_print.h b/include/drm/drm_print.h
index afbc3beef089..9d9fd10e6ff8 100644
--- a/include/drm/drm_print.h
+++ b/include/drm/drm_print.h
@@ -268,9 +268,8 @@ static inline struct drm_printer drm_debug_printer(const char *prefix)
#define DRM_UT_LEASE 0x80
#define DRM_UT_DP 0x100
-__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 *format, ...);
__printf(3, 4)
void drm_dev_dbg(const struct device *dev, unsigned int category,
const char *format, ...);
@@ -278,26 +277,38 @@ void drm_dev_dbg(const struct device *dev, unsigned int category,
__printf(2, 3)
void drm_dbg(unsigned int category, const char *format, ...);
__printf(1, 2)
-void drm_err(const char *format, ...);
+void drm_printk(const char *format, ...);
/* Macros to make printk easier */
-#define _DRM_PRINTK(once, level, fmt, ...) \
- printk##once(KERN_##level "[" DRM_NAME "] " fmt, ##__VA_ARGS__)
-
-#define DRM_INFO(fmt, ...) \
- _DRM_PRINTK(, INFO, fmt, ##__VA_ARGS__)
-#define DRM_NOTE(fmt, ...) \
- _DRM_PRINTK(, NOTICE, fmt, ##__VA_ARGS__)
+#define DRM_ERROR(fmt, ...) \
+ drm_printk(KERN_ERR fmt, ##__VA_ARGS__)
+#define drm_err DRM_ERROR
#define DRM_WARN(fmt, ...) \
- _DRM_PRINTK(, WARNING, fmt, ##__VA_ARGS__)
+ drm_printk(KERN_WARNING fmt, ##__VA_ARGS__)
+#define DRM_NOTE(fmt, ...) \
+ drm_printk(KERN_NOTICE fmt, ##__VA_ARGS__)
+#define DRM_INFO(fmt, ...) \
+ drm_printk(KERN_INFO fmt, ##__VA_ARGS__)
+
+#define drm_printk_once(fmt, ...) \
+({ \
+ static bool __print_once __read_mostly; \
+ bool __ret_print_once = !__print_once; \
+ \
+ if (!__print_once) { \
+ __print_once = true; \
+ drm_printk(fmt, ##__VA_ARGS__); \
+ } \
+ unlikely(__ret_print_once); \
+})
-#define DRM_INFO_ONCE(fmt, ...) \
- _DRM_PRINTK(_once, INFO, fmt, ##__VA_ARGS__)
-#define DRM_NOTE_ONCE(fmt, ...) \
- _DRM_PRINTK(_once, NOTICE, fmt, ##__VA_ARGS__)
#define DRM_WARN_ONCE(fmt, ...) \
- _DRM_PRINTK(_once, WARNING, fmt, ##__VA_ARGS__)
+ drm_printk_once(KERN_WARNING fmt, ##__VA_ARGS__)
+#define DRM_NOTE_ONCE(fmt, ...) \
+ drm_printk_once(KERN_NOTICE fmt, ##__VA_ARGS__)
+#define DRM_INFO_ONCE(fmt, ...) \
+ drm_printk_once(KERN_INFO fmt, ##__VA_ARGS__)
/**
* Error output.
@@ -306,9 +317,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__)
-#define DRM_ERROR(fmt, ...) \
- drm_err(fmt, ##__VA_ARGS__)
+ drm_dev_printk(dev, KERN_ERR fmt, ##__VA_ARGS__)
/**
* Rate limited error output. Like DRM_ERROR() but won't flood the log.
@@ -329,7 +338,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, ...) \
({ \
Hi Joe.
> My preference would also convert all the
> DRM_DEV_<level> uses to drm_dev_<level> eventually.
>
> Also, the macros themselves could change to use a
> more consistent mechanism.
>
> This would make the drm logging mechanisms more like
> other logging mechanisms used in the kernel.
>
> Something like:
I like your patch, but do not have the time to follow-up on it.
It is for now saved and I will re-visit it when I have a bit more
time on my hands.
Thanks,
Sam