Merge tag 'mediatek-drm-next-5.15' of https://git.kernel.org/pub/scm/linux/kernel...
authorDave Airlie <airlied@redhat.com>
Tue, 17 Aug 2021 00:29:31 +0000 (10:29 +1000)
committerDave Airlie <airlied@redhat.com>
Tue, 17 Aug 2021 00:32:18 +0000 (10:32 +1000)
Mediatek DRM Next for Linux 5.15

1. MT8133 AAL support, adjust rdma fifo threshold formula.
2. Implement mmap as GEM object function.
3. Add support for MT8167.
4. Test component initialization earlier in the function mtk_drm_crtc_create.
5. CMDQ refinement.

Signed-off-by: Dave Airlie <airlied@redhat.com>
From: Chun-Kuang Hu <chunkuang.hu@kernel.org>
Link: https://patchwork.freedesktop.org/patch/msgid/20210816232427.13368-1-chunkuang.hu@kernel.org
1  2 
drivers/gpu/drm/mediatek/mtk_drm_drv.c

@@@ -110,6 -110,17 +110,17 @@@ static const enum mtk_ddp_comp_id mt271
        DDP_COMPONENT_PWM2,
  };
  
+ static enum mtk_ddp_comp_id mt8167_mtk_ddp_main[] = {
+       DDP_COMPONENT_OVL0,
+       DDP_COMPONENT_COLOR0,
+       DDP_COMPONENT_CCORR,
+       DDP_COMPONENT_AAL0,
+       DDP_COMPONENT_GAMMA,
+       DDP_COMPONENT_DITHER,
+       DDP_COMPONENT_RDMA0,
+       DDP_COMPONENT_DSI0,
+ };
  static const enum mtk_ddp_comp_id mt8173_mtk_ddp_main[] = {
        DDP_COMPONENT_OVL0,
        DDP_COMPONENT_COLOR0,
@@@ -172,6 -183,11 +183,11 @@@ static const struct mtk_mmsys_driver_da
        .third_len = ARRAY_SIZE(mt2712_mtk_ddp_third),
  };
  
+ static const struct mtk_mmsys_driver_data mt8167_mmsys_driver_data = {
+       .main_path = mt8167_mtk_ddp_main,
+       .main_len = ARRAY_SIZE(mt8167_mtk_ddp_main),
+ };
  static const struct mtk_mmsys_driver_data mt8173_mmsys_driver_data = {
        .main_path = mt8173_mtk_ddp_main,
        .main_len = ARRAY_SIZE(mt8173_mtk_ddp_main),
@@@ -270,6 -286,12 +286,6 @@@ static int mtk_drm_kms_init(struct drm_
                goto err_component_unbind;
        }
  
 -      /*
 -       * We don't use the drm_irq_install() helpers provided by the DRM
 -       * core, so we need to set this manually in order to allow the
 -       * DRM_IOCTL_WAIT_VBLANK to operate correctly.
 -       */
 -      drm->irq_enabled = true;
        ret = drm_vblank_init(drm, MAX_CRTC);
        if (ret < 0)
                goto err_component_unbind;
@@@ -294,16 -316,7 +310,7 @@@ static void mtk_drm_kms_deinit(struct d
        component_unbind_all(drm->dev, drm);
  }
  
- static const struct file_operations mtk_drm_fops = {
-       .owner = THIS_MODULE,
-       .open = drm_open,
-       .release = drm_release,
-       .unlocked_ioctl = drm_ioctl,
-       .mmap = mtk_drm_gem_mmap,
-       .poll = drm_poll,
-       .read = drm_read,
-       .compat_ioctl = drm_compat_ioctl,
- };
+ DEFINE_DRM_GEM_FOPS(mtk_drm_fops);
  
  /*
   * We need to override this because the device used to import the memory is
@@@ -326,7 -339,7 +333,7 @@@ static const struct drm_driver mtk_drm_
        .prime_fd_to_handle = drm_gem_prime_fd_to_handle,
        .gem_prime_import = mtk_drm_gem_prime_import,
        .gem_prime_import_sg_table = mtk_gem_prime_import_sg_table,
-       .gem_prime_mmap = mtk_drm_gem_mmap_buf,
+       .gem_prime_mmap = drm_gem_prime_mmap,
        .fops = &mtk_drm_fops,
  
        .name = DRIVER_NAME,
@@@ -392,6 -405,8 +399,8 @@@ static const struct component_master_op
  static const struct of_device_id mtk_ddp_comp_dt_ids[] = {
        { .compatible = "mediatek,mt2701-disp-ovl",
          .data = (void *)MTK_DISP_OVL },
+       { .compatible = "mediatek,mt8167-disp-ovl",
+         .data = (void *)MTK_DISP_OVL },
        { .compatible = "mediatek,mt8173-disp-ovl",
          .data = (void *)MTK_DISP_OVL },
        { .compatible = "mediatek,mt8183-disp-ovl",
          .data = (void *)MTK_DISP_OVL_2L },
        { .compatible = "mediatek,mt2701-disp-rdma",
          .data = (void *)MTK_DISP_RDMA },
+       { .compatible = "mediatek,mt8167-disp-rdma",
+         .data = (void *)MTK_DISP_RDMA },
        { .compatible = "mediatek,mt8173-disp-rdma",
          .data = (void *)MTK_DISP_RDMA },
        { .compatible = "mediatek,mt8183-disp-rdma",
          .data = (void *)MTK_DISP_RDMA },
        { .compatible = "mediatek,mt8173-disp-wdma",
          .data = (void *)MTK_DISP_WDMA },
+       { .compatible = "mediatek,mt8167-disp-ccorr",
+         .data = (void *)MTK_DISP_CCORR },
        { .compatible = "mediatek,mt8183-disp-ccorr",
          .data = (void *)MTK_DISP_CCORR },
        { .compatible = "mediatek,mt2701-disp-color",
          .data = (void *)MTK_DISP_COLOR },
+       { .compatible = "mediatek,mt8167-disp-color",
+         .data = (void *)MTK_DISP_COLOR },
        { .compatible = "mediatek,mt8173-disp-color",
          .data = (void *)MTK_DISP_COLOR },
+       { .compatible = "mediatek,mt8167-disp-aal",
+         .data = (void *)MTK_DISP_AAL},
        { .compatible = "mediatek,mt8173-disp-aal",
          .data = (void *)MTK_DISP_AAL},
+       { .compatible = "mediatek,mt8183-disp-aal",
+         .data = (void *)MTK_DISP_AAL},
+       { .compatible = "mediatek,mt8167-disp-gamma",
+         .data = (void *)MTK_DISP_GAMMA, },
        { .compatible = "mediatek,mt8173-disp-gamma",
          .data = (void *)MTK_DISP_GAMMA, },
        { .compatible = "mediatek,mt8183-disp-gamma",
          .data = (void *)MTK_DISP_GAMMA, },
+       { .compatible = "mediatek,mt8167-disp-dither",
+         .data = (void *)MTK_DISP_DITHER },
        { .compatible = "mediatek,mt8183-disp-dither",
          .data = (void *)MTK_DISP_DITHER },
        { .compatible = "mediatek,mt8173-disp-ufoe",
          .data = (void *)MTK_DISP_UFOE },
        { .compatible = "mediatek,mt2701-dsi",
          .data = (void *)MTK_DSI },
+       { .compatible = "mediatek,mt8167-dsi",
+         .data = (void *)MTK_DSI },
        { .compatible = "mediatek,mt8173-dsi",
          .data = (void *)MTK_DSI },
        { .compatible = "mediatek,mt8183-dsi",
          .data = (void *)MTK_DISP_MUTEX },
        { .compatible = "mediatek,mt2712-disp-mutex",
          .data = (void *)MTK_DISP_MUTEX },
+       { .compatible = "mediatek,mt8167-disp-mutex",
+         .data = (void *)MTK_DISP_MUTEX },
        { .compatible = "mediatek,mt8173-disp-mutex",
          .data = (void *)MTK_DISP_MUTEX },
        { .compatible = "mediatek,mt8183-disp-mutex",
          .data = (void *)MTK_DISP_MUTEX },
        { .compatible = "mediatek,mt2701-disp-pwm",
          .data = (void *)MTK_DISP_BLS },
+       { .compatible = "mediatek,mt8167-disp-pwm",
+         .data = (void *)MTK_DISP_PWM },
        { .compatible = "mediatek,mt8173-disp-pwm",
          .data = (void *)MTK_DISP_PWM },
        { .compatible = "mediatek,mt8173-disp-od",
@@@ -458,6 -493,8 +487,8 @@@ static const struct of_device_id mtk_dr
          .data = &mt7623_mmsys_driver_data},
        { .compatible = "mediatek,mt2712-mmsys",
          .data = &mt2712_mmsys_driver_data},
+       { .compatible = "mediatek,mt8167-mmsys",
+         .data = &mt8167_mmsys_driver_data},
        { .compatible = "mediatek,mt8173-mmsys",
          .data = &mt8173_mmsys_driver_data},
        { .compatible = "mediatek,mt8183-mmsys",
@@@ -526,11 -563,12 +557,12 @@@ static int mtk_drm_probe(struct platfor
                private->comp_node[comp_id] = of_node_get(node);
  
                /*
-                * Currently only the CCORR, COLOR, GAMMA, OVL, RDMA, DSI, and DPI
+                * Currently only the AAL, CCORR, COLOR, GAMMA, OVL, RDMA, DSI, and DPI
                 * blocks have separate component platform drivers and initialize their own
                 * DDP component structure. The others are initialized here.
                 */
-               if (comp_type == MTK_DISP_CCORR ||
+               if (comp_type == MTK_DISP_AAL ||
+                   comp_type == MTK_DISP_CCORR ||
                    comp_type == MTK_DISP_COLOR ||
                    comp_type == MTK_DISP_GAMMA ||
                    comp_type == MTK_DISP_OVL ||
@@@ -630,6 -668,7 +662,7 @@@ static struct platform_driver mtk_drm_p
  };
  
  static struct platform_driver * const mtk_drm_drivers[] = {
+       &mtk_disp_aal_driver,
        &mtk_disp_ccorr_driver,
        &mtk_disp_color_driver,
        &mtk_disp_gamma_driver,