On 01/04/2020 04:16, Chunfeng Yun wrote: > On Tue, 2020-03-31 at 23:57 +0800, Chun-Kuang Hu wrote: >> From: CK Hu <ck.hu@xxxxxxxxxxxx> >> >> tz_disabled is used to control mtk_hdmi output signal, but this variable >> is stored in mtk_hdmi_phy and mtk_hdmi_phy does not use it. So move >> tz_disabled to mtk_hdmi where it's used. >> >> Signed-off-by: CK Hu <ck.hu@xxxxxxxxxxxx> >> Signed-off-by: Chun-Kuang Hu <chunkuang.hu@xxxxxxxxxx> >> --- >> drivers/gpu/drm/mediatek/mtk_hdmi.c | 22 ++++++++++++++++--- >> drivers/gpu/drm/mediatek/mtk_hdmi_phy.h | 1 - >> .../gpu/drm/mediatek/mtk_mt2701_hdmi_phy.c | 1 - >> 3 files changed, 19 insertions(+), 5 deletions(-) >> >> diff --git a/drivers/gpu/drm/mediatek/mtk_hdmi.c b/drivers/gpu/drm/mediatek/mtk_hdmi.c >> index 5e4a4dbda443..878433c09c9b 100644 >> --- a/drivers/gpu/drm/mediatek/mtk_hdmi.c >> +++ b/drivers/gpu/drm/mediatek/mtk_hdmi.c >> @@ -144,11 +144,16 @@ struct hdmi_audio_param { >> struct hdmi_codec_params codec_params; >> }; >> >> +struct mtk_hdmi_conf { >> + bool tz_disabled; >> +}; >> + >> struct mtk_hdmi { >> struct drm_bridge bridge; >> struct drm_bridge *next_bridge; >> struct drm_connector conn; >> struct device *dev; >> + const struct mtk_hdmi_conf *conf; >> struct phy *phy; >> struct device *cec_dev; >> struct i2c_adapter *ddc_adpt; >> @@ -230,7 +235,6 @@ static void mtk_hdmi_hw_vid_black(struct mtk_hdmi *hdmi, bool black) >> static void mtk_hdmi_hw_make_reg_writable(struct mtk_hdmi *hdmi, bool enable) >> { >> struct arm_smccc_res res; >> - struct mtk_hdmi_phy *hdmi_phy = phy_get_drvdata(hdmi->phy); >> >> /* >> * MT8173 HDMI hardware has an output control bit to enable/disable HDMI >> @@ -238,7 +242,7 @@ static void mtk_hdmi_hw_make_reg_writable(struct mtk_hdmi *hdmi, bool enable) >> * The ARM trusted firmware provides an API for the HDMI driver to set >> * this control bit to enable HDMI output in supervisor mode. >> */ >> - if (hdmi_phy->conf && hdmi_phy->conf->tz_disabled) >> + if (hdmi->conf->tz_disabled) Wouldn't we need to check: if (hdmi->conf && hdmi->conf->tz_disabled) >> regmap_update_bits(hdmi->sys_regmap, >> hdmi->sys_offset + HDMI_SYS_CFG20, >> 0x80008005, enable ? 0x80000005 : 0x8000); >> @@ -1688,6 +1692,7 @@ static int mtk_drm_hdmi_probe(struct platform_device *pdev) >> return -ENOMEM; >> >> hdmi->dev = dev; >> + hdmi->conf = of_device_get_match_data(dev); >> >> ret = mtk_hdmi_dt_parse_pdata(hdmi, pdev); >> if (ret) >> @@ -1765,8 +1770,19 @@ static int mtk_hdmi_resume(struct device *dev) >> static SIMPLE_DEV_PM_OPS(mtk_hdmi_pm_ops, >> mtk_hdmi_suspend, mtk_hdmi_resume); >> >> +static const struct mtk_hdmi_conf mtk_hdmi_conf_mt2701 = { >> + .tz_disabled = true, >> +}; >> + >> +static const struct mtk_hdmi_conf mtk_hdmi_conf_mt8173; >> + >> static const struct of_device_id mtk_drm_hdmi_of_ids[] = { >> - { .compatible = "mediatek,mt8173-hdmi", }, >> + { .compatible = "mediatek,mt2701-hdmi", >> + .data = &mtk_hdmi_conf_mt2701, >> + }, >> + { .compatible = "mediatek,mt8173-hdmi", >> + .data = &mtk_hdmi_conf_mt8173, We don't have any data? Then we should set data to NULL instead. Regards, Matthias >> + }, >> {} >> }; >> >> diff --git a/drivers/gpu/drm/mediatek/mtk_hdmi_phy.h b/drivers/gpu/drm/mediatek/mtk_hdmi_phy.h >> index 2d8b3182470d..fc1c2efd1128 100644 >> --- a/drivers/gpu/drm/mediatek/mtk_hdmi_phy.h >> +++ b/drivers/gpu/drm/mediatek/mtk_hdmi_phy.h >> @@ -20,7 +20,6 @@ >> struct mtk_hdmi_phy; >> >> struct mtk_hdmi_phy_conf { >> - bool tz_disabled; >> unsigned long flags; >> const struct clk_ops *hdmi_phy_clk_ops; >> void (*hdmi_phy_enable_tmds)(struct mtk_hdmi_phy *hdmi_phy); >> diff --git a/drivers/gpu/drm/mediatek/mtk_mt2701_hdmi_phy.c b/drivers/gpu/drm/mediatek/mtk_mt2701_hdmi_phy.c >> index d3cc4022e988..99fe05cd3598 100644 >> --- a/drivers/gpu/drm/mediatek/mtk_mt2701_hdmi_phy.c >> +++ b/drivers/gpu/drm/mediatek/mtk_mt2701_hdmi_phy.c >> @@ -237,7 +237,6 @@ static void mtk_hdmi_phy_disable_tmds(struct mtk_hdmi_phy *hdmi_phy) >> } >> >> struct mtk_hdmi_phy_conf mtk_hdmi_phy_2701_conf = { >> - .tz_disabled = true, >> .flags = CLK_SET_RATE_GATE, >> .hdmi_phy_clk_ops = &mtk_hdmi_phy_pll_ops, >> .hdmi_phy_enable_tmds = mtk_hdmi_phy_enable_tmds, > > Reviewed-by: Chunfeng Yun <chunfeng.yun@xxxxxxxxxxxx> > _______________________________________________ dri-devel mailing list dri-devel@xxxxxxxxxxxxxxxxxxxxx https://lists.freedesktop.org/mailman/listinfo/dri-devel