From: Thomas Zimmermann <tzimmermann@suse.de>
To: Javier Martinez Canillas <javierm@redhat.com>,
airlied@linux.ie, daniel@ffwll.ch, deller@gmx.de,
maxime@cerno.tech, sam@ravnborg.org, msuchanek@suse.de,
mpe@ellerman.id.au, benh@kernel.crashing.org, paulus@samba.org,
geert@linux-m68k.org, mark.cave-ayland@ilande.co.uk
Cc: linux-fbdev@vger.kernel.org, linuxppc-dev@lists.ozlabs.org,
dri-devel@lists.freedesktop.org
Subject: Re: [PATCH v2 10/10] drm/ofdrm: Support color management
Date: Wed, 27 Jul 2022 10:41:12 +0200 [thread overview]
Message-ID: <05511c35-da46-aefd-3e03-364b7311284c@suse.de> (raw)
In-Reply-To: <abe3fa95-942b-6d2f-7167-83d0cea59444@redhat.com>
[-- Attachment #1.1: Type: text/plain, Size: 3580 bytes --]
Hi
Am 26.07.22 um 15:49 schrieb Javier Martinez Canillas:
> On 7/20/22 16:27, Thomas Zimmermann wrote:
>> Support the CRTC's color-management property and implement each model's
>> palette support.
>>
>> The OF hardware has different methods of setting the palette. The
>> respective code has been taken from fbdev's offb and refactored into
>> per-model device functions. The device functions integrate this
>> functionality into the overall modesetting.
>>
>> As palette handling is a CRTC property that depends on the primary
>> plane's color format, the plane's atomic_check helper now updates the
>> format field in ofdrm's custom CRTC state. The CRTC's atomic_flush
>> helper updates the palette for the format as needed.
>>
>> Signed-off-by: Thomas Zimmermann <tzimmermann@suse.de>
>> ---
>
> Reviewed-by: Javier Martinez Canillas <javierm@redhat.com>
>
> [...]
>
>> +static void __iomem *ofdrm_mach64_cmap_ioremap(struct ofdrm_device *odev,
>> + struct device_node *of_node,
>> + u64 fb_base)
>> +{
>> + struct drm_device *dev = &odev->dev;
>> + u64 address;
>> + void __iomem *cmap_base;
>> +
>> + address = fb_base & 0xff000000ul;
>> + address += 0x7ff000;
>> +
>
> It would be good to know where these addresses are coming from. Maybe some
> constant macros or a comment ? Same for the other places where addresses
> and offsets are used.
I have no idea where these values come from. I took them from offb. And
I suspect that some of these CMAP helpers could be further merged if
only it was clear where the numbers come from. But as i don't have the
equipment for testing, I took most of this literally as-is from offb.
>
> [...]
>
>> static struct ofdrm_crtc_state *to_ofdrm_crtc_state(struct drm_crtc_state *base)
>> @@ -376,10 +735,12 @@ static int ofdrm_primary_plane_helper_atomic_check(struct drm_plane *plane,
>> struct drm_atomic_state *new_state)
>> {
>> struct drm_plane_state *new_plane_state = drm_atomic_get_new_plane_state(new_state, plane);
>> + struct drm_framebuffer *new_fb = new_plane_state->fb;
>> struct drm_crtc_state *new_crtc_state;
>> + struct ofdrm_crtc_state *new_ofdrm_crtc_state;
>> int ret;
>>
>> - if (!new_plane_state->fb)
>> + if (!new_fb)
>> return 0;
>>
>> new_crtc_state = drm_atomic_get_new_crtc_state(new_state, new_plane_state->crtc);
>> @@ -391,6 +752,14 @@ static int ofdrm_primary_plane_helper_atomic_check(struct drm_plane *plane,
>> if (ret)
>> return ret;
>>
>> + if (!new_plane_state->visible)
>> + return 0;
>> +
>> + new_crtc_state = drm_atomic_get_new_crtc_state(new_state, new_plane_state->crtc);
>> +
>> + new_ofdrm_crtc_state = to_ofdrm_crtc_state(new_crtc_state);
>> + new_ofdrm_crtc_state->format = new_fb->format;
>> +
>
> Ah, I understand now why you didn't factor out the .atomic_check callbacks
> for the two drivers in a fwfb helper. Maybe you can also add a comment to
> mention that this updates the format so the CRTC palette can be applied in
> the .atomic_flush callback ?
Yeah, this code is one reason for not sharing atomic_check in fwfb. The
other reason is that the fwfb code is only a wrapper around the atomic
helpers with little extra value. I did have such fwfb helpers a some
point, but removed them.
Best regards
Thomas
>
--
Thomas Zimmermann
Graphics Driver Developer
SUSE Software Solutions Germany GmbH
Maxfeldstr. 5, 90409 Nürnberg, Germany
(HRB 36809, AG Nürnberg)
Geschäftsführer: Ivo Totev
[-- Attachment #2: OpenPGP digital signature --]
[-- Type: application/pgp-signature, Size: 840 bytes --]
next prev parent reply other threads:[~2022-07-27 8:41 UTC|newest]
Thread overview: 97+ messages / expand[flat|nested] mbox.gz Atom feed top
2022-07-20 14:27 [PATCH v2 00/10] drm: Add driver for PowerPC OF displays Thomas Zimmermann
2022-07-20 14:27 ` Thomas Zimmermann
2022-07-20 14:27 ` [PATCH v2 01/10] drm/simpledrm: Remove mem field from device structure Thomas Zimmermann
2022-07-20 14:27 ` Thomas Zimmermann
2022-07-25 14:48 ` Javier Martinez Canillas
2022-07-20 14:27 ` [PATCH v2 02/10] drm/simpledrm: Inline device-init helpers Thomas Zimmermann
2022-07-20 14:27 ` Thomas Zimmermann
2022-07-25 15:01 ` Javier Martinez Canillas
2022-07-27 7:50 ` Thomas Zimmermann
2022-07-27 9:30 ` Javier Martinez Canillas
2022-07-20 14:27 ` [PATCH v2 03/10] drm/simpledrm: Remove pdev field from device structure Thomas Zimmermann
2022-07-20 14:27 ` Thomas Zimmermann
2022-07-25 15:02 ` Javier Martinez Canillas
2022-07-20 14:27 ` [PATCH v2 04/10] drm/simpledrm: Compute framebuffer stride if not set Thomas Zimmermann
2022-07-20 14:27 ` Thomas Zimmermann
2022-07-21 14:46 ` Geert Uytterhoeven
2022-07-21 14:46 ` Geert Uytterhoeven
2022-07-21 14:46 ` Geert Uytterhoeven
2022-07-25 15:13 ` Javier Martinez Canillas
2022-07-25 15:13 ` Javier Martinez Canillas
2022-07-25 15:13 ` Javier Martinez Canillas
2022-07-27 7:53 ` Thomas Zimmermann
2022-07-27 7:53 ` Thomas Zimmermann
2022-07-27 7:53 ` Thomas Zimmermann
2022-08-11 17:23 ` Daniel Vetter
2022-08-11 17:23 ` Daniel Vetter
2022-08-11 17:23 ` Daniel Vetter
2022-08-11 18:26 ` Thomas Zimmermann
2022-08-11 18:26 ` Thomas Zimmermann
2022-08-11 18:26 ` Thomas Zimmermann
2022-08-11 18:27 ` Thomas Zimmermann
2022-08-11 18:27 ` Thomas Zimmermann
2022-08-11 18:27 ` Thomas Zimmermann
2022-09-06 19:16 ` Daniel Vetter
2022-09-06 19:16 ` Daniel Vetter
2022-09-06 19:16 ` Daniel Vetter
2022-07-20 14:27 ` [PATCH v2 05/10] drm/simpledrm: Convert to atomic helpers Thomas Zimmermann
2022-07-20 14:27 ` Thomas Zimmermann
2022-07-25 15:46 ` Javier Martinez Canillas
2022-07-27 7:58 ` Thomas Zimmermann
2022-07-20 14:27 ` [PATCH v2 06/10] drm/simpledrm: Move some functionality into fwfb helper library Thomas Zimmermann
2022-07-20 14:27 ` Thomas Zimmermann
2022-07-25 16:23 ` Javier Martinez Canillas
2022-07-27 8:24 ` Thomas Zimmermann
2022-07-27 9:39 ` Javier Martinez Canillas
2022-07-20 14:27 ` [PATCH v2 07/10] drm/ofdrm: Add ofdrm for Open Firmware framebuffers Thomas Zimmermann
2022-07-20 14:27 ` Thomas Zimmermann
2022-07-26 13:17 ` Javier Martinez Canillas
2022-09-21 11:41 ` Thomas Zimmermann
2022-07-20 14:27 ` [PATCH v2 08/10] drm/ofdrm: Add CRTC state Thomas Zimmermann
2022-07-20 14:27 ` Thomas Zimmermann
2022-07-26 13:36 ` Javier Martinez Canillas
2022-09-21 11:45 ` Thomas Zimmermann
2022-07-20 14:27 ` [PATCH v2 09/10] drm/ofdrm: Add per-model device function Thomas Zimmermann
2022-07-20 14:27 ` Thomas Zimmermann
2022-07-26 13:38 ` Javier Martinez Canillas
2022-07-26 14:40 ` Michal Suchánek
2022-07-26 14:40 ` Michal Suchánek
2022-07-26 14:40 ` Michal Suchánek
2022-07-26 19:22 ` Javier Martinez Canillas
2022-07-26 19:22 ` Javier Martinez Canillas
2022-07-26 19:22 ` Javier Martinez Canillas
2022-07-27 8:33 ` Thomas Zimmermann
2022-07-27 8:33 ` Thomas Zimmermann
2022-07-27 8:33 ` Thomas Zimmermann
2022-08-05 0:22 ` Benjamin Herrenschmidt
2022-08-05 0:22 ` Benjamin Herrenschmidt
2022-08-05 0:22 ` Benjamin Herrenschmidt
2022-09-21 12:37 ` Thomas Zimmermann
2022-09-21 12:37 ` Thomas Zimmermann
2022-09-21 12:37 ` Thomas Zimmermann
2022-07-20 14:27 ` [PATCH v2 10/10] drm/ofdrm: Support color management Thomas Zimmermann
2022-07-20 14:27 ` Thomas Zimmermann
2022-07-26 13:49 ` Javier Martinez Canillas
2022-07-27 8:41 ` Thomas Zimmermann [this message]
2022-07-27 9:45 ` Javier Martinez Canillas
2022-08-05 0:29 ` Benjamin Herrenschmidt
2022-08-05 0:19 ` Benjamin Herrenschmidt
2022-09-21 12:55 ` Thomas Zimmermann
2022-09-21 16:48 ` Geert Uytterhoeven
2022-09-21 16:48 ` Geert Uytterhoeven
2022-09-21 16:48 ` Geert Uytterhoeven
2022-09-22 6:42 ` Thomas Zimmermann
2022-09-22 6:42 ` Thomas Zimmermann
2022-09-22 6:42 ` Thomas Zimmermann
2022-09-22 7:28 ` Maxime Ripard
2022-09-22 7:28 ` Maxime Ripard
2022-09-22 7:28 ` Maxime Ripard
2022-09-22 8:06 ` Thomas Zimmermann
2022-09-22 8:06 ` Thomas Zimmermann
2022-09-22 8:06 ` Thomas Zimmermann
2022-07-28 11:13 ` [PATCH v2 00/10] drm: Add driver for PowerPC OF displays Michael Ellerman
2022-07-28 11:13 ` Michael Ellerman
2022-07-28 11:31 ` Michal Suchánek
2022-07-28 11:31 ` Michal Suchánek
2022-07-28 11:31 ` Michal Suchánek
2022-07-28 11:42 ` Thomas Zimmermann
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=05511c35-da46-aefd-3e03-364b7311284c@suse.de \
--to=tzimmermann@suse.de \
--cc=airlied@linux.ie \
--cc=benh@kernel.crashing.org \
--cc=daniel@ffwll.ch \
--cc=deller@gmx.de \
--cc=dri-devel@lists.freedesktop.org \
--cc=geert@linux-m68k.org \
--cc=javierm@redhat.com \
--cc=linux-fbdev@vger.kernel.org \
--cc=linuxppc-dev@lists.ozlabs.org \
--cc=mark.cave-ayland@ilande.co.uk \
--cc=maxime@cerno.tech \
--cc=mpe@ellerman.id.au \
--cc=msuchanek@suse.de \
--cc=paulus@samba.org \
--cc=sam@ravnborg.org \
/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.