Skip to content

Commit

Permalink
drm/mediatek: Move tz_disabled from mtk_hdmi_phy to mtk_hdmi driver
Browse files Browse the repository at this point in the history
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 <[email protected]>
Signed-off-by: Chun-Kuang Hu <[email protected]>
Tested-by: Frank Wunderlich <[email protected]>
  • Loading branch information
ckhu-mediatek authored and Chun-Kuang Hu committed Sep 5, 2020
1 parent 5aa8e76 commit 96f51a4
Show file tree
Hide file tree
Showing 3 changed files with 16 additions and 5 deletions.
19 changes: 16 additions & 3 deletions drivers/gpu/drm/mediatek/mtk_hdmi.c
Original file line number Diff line number Diff line change
Expand Up @@ -145,11 +145,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;
Expand Down Expand Up @@ -234,15 +239,14 @@ 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
* output. This bit can only be controlled in ARM supervisor mode.
* 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 && hdmi->conf->tz_disabled)
regmap_update_bits(hdmi->sys_regmap,
hdmi->sys_offset + HDMI_SYS_CFG20,
0x80008005, enable ? 0x80000005 : 0x8000);
Expand Down Expand Up @@ -1723,6 +1727,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)
Expand Down Expand Up @@ -1803,8 +1808,16 @@ 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 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",
},
{}
};

Expand Down
1 change: 0 additions & 1 deletion drivers/gpu/drm/mediatek/mtk_hdmi_phy.h
Original file line number Diff line number Diff line change
Expand Up @@ -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);
Expand Down
1 change: 0 additions & 1 deletion drivers/gpu/drm/mediatek/mtk_mt2701_hdmi_phy.c
Original file line number Diff line number Diff line change
Expand Up @@ -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,
Expand Down

0 comments on commit 96f51a4

Please sign in to comment.