From: Jocelyn Falempe <jfalempe@redhat.com>
To: Maarten Lankhorst <maarten.lankhorst@linux.intel.com>,
Maxime Ripard <mripard@kernel.org>,
Thomas Zimmermann <tzimmermann@suse.de>,
David Airlie <airlied@gmail.com>, Daniel Vetter <daniel@ffwll.ch>,
John Ogness <john.ogness@linutronix.de>,
Javier Martinez Canillas <javierm@redhat.com>,
"Guilherme G . Piccoli" <gpiccoli@igalia.com>,
bluescreen_avenger@verizon.net,
Caleb Connolly <caleb.connolly@linaro.org>,
Petr Mladek <pmladek@suse.com>,
dri-devel@lists.freedesktop.org, linux-kernel@vger.kernel.org
Cc: Jocelyn Falempe <jfalempe@redhat.com>
Subject: [PATCH v7 5/7] drm/log: Color the timestamp, to improve readability
Date: Fri, 8 Nov 2024 09:10:23 +0100 [thread overview]
Message-ID: <20241108082025.1004653-6-jfalempe@redhat.com> (raw)
In-Reply-To: <20241108082025.1004653-1-jfalempe@redhat.com>
Color the timesamp prefix, similar to dmesg.
Signed-off-by: Jocelyn Falempe <jfalempe@redhat.com>
---
drivers/gpu/drm/drm_log.c | 27 +++++++++++++++++++++------
1 file changed, 21 insertions(+), 6 deletions(-)
diff --git a/drivers/gpu/drm/drm_log.c b/drivers/gpu/drm/drm_log.c
index 226e206e8b6a3..635dff7b37ce5 100644
--- a/drivers/gpu/drm/drm_log.c
+++ b/drivers/gpu/drm/drm_log.c
@@ -42,6 +42,7 @@ struct drm_log_scanout {
u32 format;
u32 px_width;
u32 front_color;
+ u32 prefix_color;
};
struct drm_log {
@@ -97,7 +98,7 @@ static void drm_log_clear_line(struct drm_log_scanout *scanout, u32 line)
}
static void drm_log_draw_line(struct drm_log_scanout *scanout, const char *s,
- unsigned int len)
+ unsigned int len, unsigned int prefix_len)
{
struct drm_framebuffer *fb = scanout->buffer->fb;
struct iosys_map map;
@@ -114,9 +115,10 @@ static void drm_log_draw_line(struct drm_log_scanout *scanout, const char *s,
iosys_map_incr(&map, r.y1 * fb->pitches[0]);
for (i = 0; i < len && i < scanout->columns; i++) {
+ u32 color = (i < prefix_len) ? scanout->prefix_color : scanout->front_color;
src = drm_draw_get_char_bitmap(font, s[i], font_pitch);
drm_log_blit(&map, fb->pitches[0], src, font_pitch, font->height, font->width,
- 1, px_width, scanout->front_color);
+ 1, px_width, color);
iosys_map_incr(&map, font->width * px_width);
}
@@ -128,7 +130,7 @@ static void drm_log_draw_line(struct drm_log_scanout *scanout, const char *s,
}
static void drm_log_draw_new_line(struct drm_log_scanout *scanout,
- const char *s, unsigned int len)
+ const char *s, unsigned int len, unsigned int prefix_len)
{
if (scanout->line == 0) {
drm_log_clear_line(scanout, 0);
@@ -137,23 +139,35 @@ static void drm_log_draw_new_line(struct drm_log_scanout *scanout,
} else if (scanout->line + 2 < scanout->rows)
drm_log_clear_line(scanout, scanout->line + 2);
- drm_log_draw_line(scanout, s, len);
+ drm_log_draw_line(scanout, s, len, prefix_len);
}
+/*
+ * Depends on print_time() in printk.c
+ * Timestamp is written with "[%5lu.%06lu]"
+ */
+#define TS_PREFIX_LEN 13
+
static void drm_log_draw_kmsg_record(struct drm_log_scanout *scanout,
const char *s, unsigned int len)
{
+ u32 prefix_len = 0;
+
+ if (len > TS_PREFIX_LEN && s[0] == '[' && s[6] == '.' && s[TS_PREFIX_LEN] == ']')
+ prefix_len = TS_PREFIX_LEN + 1;
+
/* do not print the ending \n character */
if (s[len - 1] == '\n')
len--;
while (len > scanout->columns) {
- drm_log_draw_new_line(scanout, s, scanout->columns);
+ drm_log_draw_new_line(scanout, s, scanout->columns, prefix_len);
s += scanout->columns;
len -= scanout->columns;
+ prefix_len = 0;
}
if (len)
- drm_log_draw_new_line(scanout, s, len);
+ drm_log_draw_new_line(scanout, s, len, prefix_len);
}
static u32 drm_log_find_usable_format(struct drm_plane *plane)
@@ -193,6 +207,7 @@ static int drm_log_setup_modeset(struct drm_client_dev *client,
scanout->rows = height / scanout->font->height;
scanout->columns = width / scanout->font->width;
scanout->front_color = drm_draw_color_from_xrgb8888(0xffffff, format);
+ scanout->prefix_color = drm_draw_color_from_xrgb8888(0x4e9a06, format);
return 0;
}
--
2.47.0
next prev parent reply other threads:[~2024-11-08 8:21 UTC|newest]
Thread overview: 16+ messages / expand[flat|nested] mbox.gz Atom feed top
2024-11-08 8:10 [PATCH v7 0/7] drm/log: Introduce a new boot logger to draw the kmsg on the screen Jocelyn Falempe
2024-11-08 8:10 ` [PATCH v7 1/7] drm/panic: Move drawing functions to drm_draw Jocelyn Falempe
2024-11-11 13:03 ` Thomas Zimmermann
2024-11-08 8:10 ` [PATCH v7 2/7] drm/client: Always select DRM_CLIENT_LIB Jocelyn Falempe
2024-11-08 11:56 ` kernel test robot
2024-11-08 8:10 ` [PATCH v7 3/7] drm/log: Introduce a new boot logger to draw the kmsg on the screen Jocelyn Falempe
2024-11-08 12:27 ` kernel test robot
2024-11-08 13:08 ` kernel test robot
2024-11-08 8:10 ` [PATCH v7 4/7] drm/log: Do not draw if drm_master is taken Jocelyn Falempe
2024-11-08 13:33 ` Thomas Zimmermann
2024-11-08 13:51 ` Jocelyn Falempe
2024-11-08 8:10 ` Jocelyn Falempe [this message]
2024-11-08 8:10 ` [PATCH v7 6/7] drm/log: Implement suspend/resume Jocelyn Falempe
2024-11-08 8:10 ` [PATCH v7 7/7] drm/log: Add integer scaling support Jocelyn Falempe
2024-11-11 13:06 ` Thomas Zimmermann
2024-11-12 9:51 ` Jocelyn Falempe
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20241108082025.1004653-6-jfalempe@redhat.com \
--to=jfalempe@redhat.com \
--cc=airlied@gmail.com \
--cc=bluescreen_avenger@verizon.net \
--cc=caleb.connolly@linaro.org \
--cc=daniel@ffwll.ch \
--cc=dri-devel@lists.freedesktop.org \
--cc=gpiccoli@igalia.com \
--cc=javierm@redhat.com \
--cc=john.ogness@linutronix.de \
--cc=linux-kernel@vger.kernel.org \
--cc=maarten.lankhorst@linux.intel.com \
--cc=mripard@kernel.org \
--cc=pmladek@suse.com \
--cc=tzimmermann@suse.de \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.