[PATCH v3 02/11] drm/tilcdc: implement palette loading for rev1
Jyri Sarha
jsarha at ti.com
Thu Nov 24 09:39:26 UTC 2016
On 11/24/16 11:29, Tomi Valkeinen wrote:
>> @@ -213,6 +274,13 @@ static void tilcdc_crtc_off(struct drm_crtc *crtc, bool shutdown)
>> > __func__);
>> > }
>> >
>> > + /*
>> > + * LCDC will not retain the palette when reset. Make sure it gets
>> > + * reloaded on tilcdc_crtc_enable().
>> > + */
>> > + if (priv->rev == 1)
>> > + reinit_completion(&tilcdc_crtc->palette_loaded);
>> > +
> So when the crtc is disabled, you do this, so that on crtc enable the
> driver would load palette? When is the crtc enabled if it hasn't been
> disabled first? In other words, when will the palette loading in
> tilcdc_crtc_enable() _not_ trigger for v1?
>
> This looks a bit messy to me.
>
> Why not just load the palette every time on crtc enable? And reinit the
> completion in tilcdc_crtc_load_palette().
>
My final version loads it at the end of modeset_nofb(), to avoid this:
1. Load the fb address to dma registers with "ingenious" 64 bit write
2. Load the dma registers to a temporary storrage
3. Put palette address in dma registers and load the palette
4. Restore the dma registers (= fb address)
But, sure. I can load the palette every time the mode changes, but not
every time the display is enabled.
Thanks,
Jyri
More information about the dri-devel
mailing list