On Sun, Feb 06, 2022 at 09:00:14AM +0100, Andreas Kemnade wrote:
> The EPDC can process some dirty rectangles at a time, pick them up and
> forward them to the controller. Only processes not involving PXP are
> supported at the moment. Due to that and to work with more waveforms,
> there is some masking/shifting done. It was tested with the factory
> waveforms of Kobo Clara HD, Tolino Shine 3, and Tolino Shine 2HD.
> Also the waveform called epdc_E060SCM.fw from NXP BSP works with the
> i.MX6SL devices.
> 
> Signed-off-by: Andreas Kemnade <andr...@kemnade.info>
> ---

[...]
> +     adj_update_region = upd_data_list->update_desc->upd_data.update_region;
> +     /*
> +      * Is the working buffer idle?
> +      * If the working buffer is busy, we must wait for the resource
> +      * to become free. The IST will signal this event.

What does IST mean?


> +void mxc_epdc_draw_mode0(struct mxc_epdc *priv)

What does mode 0 imply? An overview of the possible modes would be
appreciated.

> +{
> +     u32 *upd_buf_ptr;
> +     int i;
> +     u32 xres, yres;
> +
> +     upd_buf_ptr = (u32 *)priv->epdc_mem_virt;
> +
> +     epdc_working_buf_intr(priv, true);
> +     epdc_lut_complete_intr(priv, 0, true);
> +
> +     /* Use unrotated (native) width/height */
> +     xres = priv->epdc_mem_width;
> +     yres = priv->epdc_mem_height;
> +
> +     /* Program EPDC update to process buffer */
> +     epdc_set_update_area(priv, priv->epdc_mem_phys, 0, 0, xres, yres, 0);
> +     epdc_submit_update(priv, 0, priv->wv_modes.mode_init, UPDATE_MODE_FULL,
> +             false, true, 0xFF);
> +
> +     dev_dbg(priv->drm.dev, "Mode0 update - Waiting for LUT to 
> complete...\n");
> +
> +     /* Will timeout after ~4-5 seconds */
> +
> +     for (i = 0; i < 40; i++) {
> +             if (!epdc_is_lut_active(priv, 0)) {
> +                     dev_dbg(priv->drm.dev, "Mode0 init complete\n");
> +                     return;
> +             }
> +             msleep(100);
> +     }
> +
> +     dev_err(priv->drm.dev, "Mode0 init failed!\n");
> +}

> +#define WAVEFORM_MODE_GLR16                  4
> +#define WAVEFORM_MODE_GLD16                  5
> +#define WAVEFORM_MODE_AUTO                   257

(How) are these mode numbers related to "mode 0"?


Jonathan

Attachment: signature.asc
Description: PGP signature

Reply via email to