1. 03 Oct, 2018 7 commits
    • chunhui dai's avatar
      drm/mediatek: separate hdmi phy to different file · be28b650
      chunhui dai authored
      Different IC has different phy setting of HDMI.
      This patch separates the phy hardware relate part for mt8173.
      Signed-off-by: default avatarchunhui dai <chunhui.dai@mediatek.com>
      Signed-off-by: default avatarCK Hu <ck.hu@mediatek.com>
      be28b650
    • chunhui dai's avatar
      drm/mediatek: add dpi driver for mt2701 and mt7623 · d08b5ab9
      chunhui dai authored
      This patch adds dpi dirver suppot for both mt2701 and mt7623.
      And also support other (existing or future) chips that use
      the same binding and driver.
      Signed-off-by: default avatarchunhui dai <chunhui.dai@mediatek.com>
      Signed-off-by: default avatarCK Hu <ck.hu@mediatek.com>
      d08b5ab9
    • chunhui dai's avatar
      drm/mediatek: convert dpi driver to use drm_of_find_panel_or_bridge · bcc97dae
      chunhui dai authored
      Convert dpi driver to use drm_of_find_panel_or_bridge.
      This changes some error messages to debug messages (in the graph core).
      Graph connections are often "no connects" depending on the particular
      board, so we want to avoid spurious messages. Plus the kernel is not a
      DT validator.
      related links:
      [1] https://lkml.org/lkml/2017/2/3/716
      [2] https://lkml.org/lkml/2017/2/3/719Signed-off-by: default avatarchunhui dai <chunhui.dai@mediatek.com>
      Signed-off-by: default avatarCK Hu <ck.hu@mediatek.com>
      bcc97dae
    • chunhui dai's avatar
      drm/mediatek: add clock factor for different IC · 55c78aa5
      chunhui dai authored
      different IC has different clock designed in HDMI, the factor for
      calculate clock should be different. Usinng the data in of_node
      to find this factor.
      Signed-off-by: default avatarchunhui dai <chunhui.dai@mediatek.com>
      Signed-off-by: default avatarCK Hu <ck.hu@mediatek.com>
      55c78aa5
    • chunhui dai's avatar
      drm/mediatek: adjust EDGE to match clock and data · 79080159
      chunhui dai authored
      The default timing of DPI data and clock is not match.
      We could adjust this bit to make them match.
      Signed-off-by: default avatarchunhui dai <chunhui.dai@mediatek.com>
      Signed-off-by: default avatarCK Hu <ck.hu@mediatek.com>
      79080159
    • chunhui dai's avatar
      drm/mediatek: move hardware register to node data · 0ace4b99
      chunhui dai authored
      The address of register DPI_H_FRE_CON is different in different IC.
      Using of_node data to find this address.
      Signed-off-by: default avatarchunhui dai <chunhui.dai@mediatek.com>
      Signed-off-by: default avatarCK Hu <ck.hu@mediatek.com>
      0ace4b99
    • chunhui dai's avatar
      drm/mediatek: add refcount for DPI power on/off · 4e90a6eb
      chunhui dai authored
      After the kernel 4.4, the DRM disable flow was changed, if DPI was
      disableed before CRTC, it will cause warning message as following:
      
      ------------[ cut here ]------------
      WARNING: CPU: 0 PID: 1339 at ../../linux/linux-4.4.24-mtk/drivers/gpu/drm/drm_irq.c:1326 drm_wait_one_vblank+0x188/0x18c()
      vblank wait timed out on crtc 0
      Modules linked in: bridge mt8521p_ir_shim(O) i2c_eeprom(O) mtk_m4(O) fuse_ctrl(O) virtual_block(O) caamkeys(PO) chk(PO) amperctl(O) ledctl(O) apple_auth(PO) micctl(O) sensors(PO) lla(O) sdd(PO) ice40_fpga(O) psmon(O) event_queue(PO) utils(O) blackbox(O)
      CPU: 0 PID: 1339 Comm: kworker/0:1 Tainted: P        W  O    4.4.24 #1
      Hardware name: Mediatek Cortex-A7 (Device Tree)
      Workqueue: events drm_mode_rmfb_work_fn
      [<c001a710>] (unwind_backtrace) from [<c00151e4>] (show_stack+0x20/0x24)
      [<c00151e4>] (show_stack) from [<c027961c>] (dump_stack+0x98/0xac)
      [<c027961c>] (dump_stack) from [<c002ac54>] (warn_slowpath_common+0x94/0xc4)
      [<c002ac54>] (warn_slowpath_common) from [<c002acc4>] (warn_slowpath_fmt+0x40/0x48)
      [<c002acc4>] (warn_slowpath_fmt) from [<c03307ac>] (drm_wait_one_vblank+0x188/0x18c)
      [<c03307ac>] (drm_wait_one_vblank) from [<c03307d8>] (drm_crtc_wait_one_vblank+0x28/0x2c)
      [<c03307d8>] (drm_crtc_wait_one_vblank) from [<c034f48c>] (mtk_drm_crtc_disable+0x78/0x240)
      [<c034f48c>] (mtk_drm_crtc_disable) from [<c03240d4>] (drm_atomic_helper_commit_modeset_disables+0x128/0x3b8)
      [<c03240d4>] (drm_atomic_helper_commit_modeset_disables) from [<c0350a7c>] (mtk_atomic_complete+0x74/0xb4)
      [<c0350a7c>] (mtk_atomic_complete) from [<c0350b24>] (mtk_atomic_commit+0x68/0x98)
      [<c0350b24>] (mtk_atomic_commit) from [<c034ab48>] (drm_atomic_commit+0x54/0x74)
      [<c034ab48>] (drm_atomic_commit) from [<c0325c4c>] (drm_atomic_helper_set_config+0x7c/0xa0)
      [<c0325c4c>] (drm_atomic_helper_set_config) from [<c0338594>] (drm_mode_set_config_internal+0x68/0xe4)
      [<c0338594>] (drm_mode_set_config_internal) from [<c033967c>] (drm_framebuffer_remove+0xe4/0x120)
      [<c033967c>] (drm_framebuffer_remove) from [<c0339700>] (drm_mode_rmfb_work_fn+0x48/0x58)
      [<c0339700>] (drm_mode_rmfb_work_fn) from [<c0043a38>] (process_one_work+0x154/0x50c)
      [<c0043a38>] (process_one_work) from [<c0044074>] (worker_thread+0x284/0x568)
      [<c0044074>] (worker_thread) from [<c0049dc4>] (kthread+0xec/0x104)
      [<c0049dc4>] (kthread) from [<c0010678>] (ret_from_fork+0x14/0x3c)
      ---[ end trace 12ae5358e992abd5 ]---
      
      so, we add refcount for DPI power on/off to protect the flow.
      Signed-off-by: default avatarBibby Hsieh <bibby.hsieh@mediatek.com>
      Signed-off-by: default avatarchunhui dai <chunhui.dai@mediatek.com>
      Signed-off-by: default avatarCK Hu <ck.hu@mediatek.com>
      4e90a6eb
  2. 27 Sep, 2018 33 commits