mirror of
https://github.com/torvalds/linux.git
synced 2026-05-28 17:13:52 +02:00
Mediatek DRM Fixes for Linux 6.0
1. dsi: Add atomic {destroy,duplicate}_state, reset callbacks
2. drm/mediatek: Fix wrong dither settings
3. dsi: Move mtk_dsi_stop() call back to mtk_dsi_poweroff()
-----BEGIN PGP SIGNATURE-----
iQIzBAABCgAdFiEEACwLKSDmq+9RDv5P4cpzo8lZTiQFAmMroWMACgkQ4cpzo8lZ
TiQbzw/7BoPLQNXzksNehXqbmxN5XcmbXda/jL2OSXfjIxYOv3D5BMvSksmsZOmY
ODHH8KQ7Ru7lKqxrltBToitCnHT7ZNTO6qrixogCMbDdewAeAhkTHhYoaUSfly34
1t+HrdhTA/XQqyDU+v83PWtzD0FrvY3iJ1/l0/8311x66F/vdrNVBkpqNomVRve5
BiFniFpjU5QP22/PU/VgvS/EcJ07Cy7PC0Ocv9guaaScaHMRl5HCGI3A0uBLqJyl
NR/Sx6HXrHwKH219Oe1hZrj3RXVj5xp2qdKsiRtJiufniQFilKZjwS2bo+nZrvzz
dKPPcLJsjjy/hH6S5t5X49Yn5GETBGE1KAB5y6AqrGvhi+vTxwhKhVxRxn+d5JgW
RN0SiLIhwLaEifU3WyTuG+Zth4aY24Pakcd0lhn71avjXATG1Go/7D31gAUVhNw1
rCFoiy4xxq2n3QFKfUNWePYn2RC98jF9kYo23aDhPi6tEbsxQ3IyMc2+PhtPQidW
uXntRZAPd1Gd4B2Y3PXPOfLmes5a8w2HZxcNv3nE5F7hHF4j+x5Zf7jfHKNtxLwG
dn20ahxXprt7mitWFxA5pIiiv1YciJy4A5jYknuDfa/xTiaPZ7jbmhfv4uZUisZW
frl4MbV6OUxxfK6WxMdK/nzYdBMyuXfbhLZzN6o3ZBZSp6+SLTQ=
=qZkC
-----END PGP SIGNATURE-----
Merge tag 'mediatek-drm-fixes-6.0' of https://git.kernel.org/pub/scm/linux/kernel/git/chunkuang.hu/linux into drm-fixes
Mediatek DRM Fixes for Linux 6.0
1. dsi: Add atomic {destroy,duplicate}_state, reset callbacks
2. drm/mediatek: Fix wrong dither settings
3. dsi: Move mtk_dsi_stop() call back to mtk_dsi_poweroff()
Signed-off-by: Dave Airlie <airlied@redhat.com>
From: Chun-Kuang Hu <chunkuang.hu@kernel.org>
Link: https://patchwork.freedesktop.org/patch/msgid/20220921235624.23580-1-chunkuang.hu@kernel.org
This commit is contained in:
commit
73646baf68
|
|
@ -157,7 +157,7 @@ static void mtk_dither_config(struct device *dev, unsigned int w,
|
|||
{
|
||||
struct mtk_ddp_comp_dev *priv = dev_get_drvdata(dev);
|
||||
|
||||
mtk_ddp_write(cmdq_pkt, h << 16 | w, &priv->cmdq_reg, priv->regs, DISP_REG_DITHER_SIZE);
|
||||
mtk_ddp_write(cmdq_pkt, w << 16 | h, &priv->cmdq_reg, priv->regs, DISP_REG_DITHER_SIZE);
|
||||
mtk_ddp_write(cmdq_pkt, DITHER_RELAY_MODE, &priv->cmdq_reg, priv->regs,
|
||||
DISP_REG_DITHER_CFG);
|
||||
mtk_dither_set_common(priv->regs, &priv->cmdq_reg, bpc, DISP_REG_DITHER_CFG,
|
||||
|
|
|
|||
|
|
@ -685,6 +685,16 @@ static void mtk_dsi_poweroff(struct mtk_dsi *dsi)
|
|||
if (--dsi->refcount != 0)
|
||||
return;
|
||||
|
||||
/*
|
||||
* mtk_dsi_stop() and mtk_dsi_start() is asymmetric, since
|
||||
* mtk_dsi_stop() should be called after mtk_drm_crtc_atomic_disable(),
|
||||
* which needs irq for vblank, and mtk_dsi_stop() will disable irq.
|
||||
* mtk_dsi_start() needs to be called in mtk_output_dsi_enable(),
|
||||
* after dsi is fully set.
|
||||
*/
|
||||
mtk_dsi_stop(dsi);
|
||||
|
||||
mtk_dsi_switch_to_cmd_mode(dsi, VM_DONE_INT_FLAG, 500);
|
||||
mtk_dsi_reset_engine(dsi);
|
||||
mtk_dsi_lane0_ulp_mode_enter(dsi);
|
||||
mtk_dsi_clk_ulp_mode_enter(dsi);
|
||||
|
|
@ -735,17 +745,6 @@ static void mtk_output_dsi_disable(struct mtk_dsi *dsi)
|
|||
if (!dsi->enabled)
|
||||
return;
|
||||
|
||||
/*
|
||||
* mtk_dsi_stop() and mtk_dsi_start() is asymmetric, since
|
||||
* mtk_dsi_stop() should be called after mtk_drm_crtc_atomic_disable(),
|
||||
* which needs irq for vblank, and mtk_dsi_stop() will disable irq.
|
||||
* mtk_dsi_start() needs to be called in mtk_output_dsi_enable(),
|
||||
* after dsi is fully set.
|
||||
*/
|
||||
mtk_dsi_stop(dsi);
|
||||
|
||||
mtk_dsi_switch_to_cmd_mode(dsi, VM_DONE_INT_FLAG, 500);
|
||||
|
||||
dsi->enabled = false;
|
||||
}
|
||||
|
||||
|
|
@ -808,10 +807,13 @@ static void mtk_dsi_bridge_atomic_post_disable(struct drm_bridge *bridge,
|
|||
|
||||
static const struct drm_bridge_funcs mtk_dsi_bridge_funcs = {
|
||||
.attach = mtk_dsi_bridge_attach,
|
||||
.atomic_destroy_state = drm_atomic_helper_bridge_destroy_state,
|
||||
.atomic_disable = mtk_dsi_bridge_atomic_disable,
|
||||
.atomic_duplicate_state = drm_atomic_helper_bridge_duplicate_state,
|
||||
.atomic_enable = mtk_dsi_bridge_atomic_enable,
|
||||
.atomic_pre_enable = mtk_dsi_bridge_atomic_pre_enable,
|
||||
.atomic_post_disable = mtk_dsi_bridge_atomic_post_disable,
|
||||
.atomic_reset = drm_atomic_helper_bridge_reset,
|
||||
.mode_set = mtk_dsi_bridge_mode_set,
|
||||
};
|
||||
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user