lkml.org 
[lkml]   [2021]   [Jul]   [15]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH 5.13 205/266] drm/ingenic: Switch IPU plane to type OVERLAY
    Date
    From: Paul Cercueil <paul@crapouillou.net>

    commit 68b433fe6937cfa3f8975d18643d5956254edd6a upstream.

    It should have been an OVERLAY from the beginning. The documentation
    stipulates that there should be an unique PRIMARY plane per CRTC.

    Fixes: fc1acf317b01 ("drm/ingenic: Add support for the IPU")
    Cc: <stable@vger.kernel.org> # 5.8+
    Signed-off-by: Paul Cercueil <paul@crapouillou.net>
    Acked-by: Simon Ser <contact@emersion.fr>
    Link: https://patchwork.freedesktop.org/patch/msgid/20210329175046.214629-2-paul@crapouillou.net
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

    ---
    drivers/gpu/drm/ingenic/ingenic-drm-drv.c | 11 +++++------
    drivers/gpu/drm/ingenic/ingenic-ipu.c | 2 +-
    2 files changed, 6 insertions(+), 7 deletions(-)

    --- a/drivers/gpu/drm/ingenic/ingenic-drm-drv.c
    +++ b/drivers/gpu/drm/ingenic/ingenic-drm-drv.c
    @@ -419,7 +419,7 @@ static void ingenic_drm_plane_enable(str
    unsigned int en_bit;

    if (priv->soc_info->has_osd) {
    - if (plane->type == DRM_PLANE_TYPE_PRIMARY)
    + if (plane != &priv->f0)
    en_bit = JZ_LCD_OSDC_F1EN;
    else
    en_bit = JZ_LCD_OSDC_F0EN;
    @@ -434,7 +434,7 @@ void ingenic_drm_plane_disable(struct de
    unsigned int en_bit;

    if (priv->soc_info->has_osd) {
    - if (plane->type == DRM_PLANE_TYPE_PRIMARY)
    + if (plane != &priv->f0)
    en_bit = JZ_LCD_OSDC_F1EN;
    else
    en_bit = JZ_LCD_OSDC_F0EN;
    @@ -461,8 +461,7 @@ void ingenic_drm_plane_config(struct dev

    ingenic_drm_plane_enable(priv, plane);

    - if (priv->soc_info->has_osd &&
    - plane->type == DRM_PLANE_TYPE_PRIMARY) {
    + if (priv->soc_info->has_osd && plane != &priv->f0) {
    switch (fourcc) {
    case DRM_FORMAT_XRGB1555:
    ctrl |= JZ_LCD_OSDCTRL_RGB555;
    @@ -510,7 +509,7 @@ void ingenic_drm_plane_config(struct dev
    }

    if (priv->soc_info->has_osd) {
    - if (plane->type == DRM_PLANE_TYPE_PRIMARY) {
    + if (plane != &priv->f0) {
    xy_reg = JZ_REG_LCD_XYP1;
    size_reg = JZ_REG_LCD_SIZE1;
    } else {
    @@ -561,7 +560,7 @@ static void ingenic_drm_plane_atomic_upd
    height = newstate->src_h >> 16;
    cpp = newstate->fb->format->cpp[0];

    - if (!priv->soc_info->has_osd || plane->type == DRM_PLANE_TYPE_OVERLAY)
    + if (!priv->soc_info->has_osd || plane == &priv->f0)
    hwdesc = &priv->dma_hwdescs->hwdesc_f0;
    else
    hwdesc = &priv->dma_hwdescs->hwdesc_f1;
    --- a/drivers/gpu/drm/ingenic/ingenic-ipu.c
    +++ b/drivers/gpu/drm/ingenic/ingenic-ipu.c
    @@ -767,7 +767,7 @@ static int ingenic_ipu_bind(struct devic

    err = drm_universal_plane_init(drm, plane, 1, &ingenic_ipu_plane_funcs,
    soc_info->formats, soc_info->num_formats,
    - NULL, DRM_PLANE_TYPE_PRIMARY, NULL);
    + NULL, DRM_PLANE_TYPE_OVERLAY, NULL);
    if (err) {
    dev_err(dev, "Failed to init plane: %i\n", err);
    return err;

    \
     
     \ /
      Last update: 2021-07-15 21:50    [W:5.121 / U:1.048 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site