[PATCH 3/9] drm/meson: dw-hdmi: use generic clock helpers
Jerome Brunet
jbrunet at baylibre.com
Tue Jul 30 05:50:13 PDT 2024
The Amlogic HDMI phy driver is not doing anything with the clocks
besides enabling on probe. CCF provides generic helpers to do that.
Use the generic clock helpers rather than using a custom one to get and
enable clocks.
Signed-off-by: Jerome Brunet <jbrunet at baylibre.com>
---
drivers/gpu/drm/meson/meson_dw_hdmi.c | 36 +++------------------------
1 file changed, 3 insertions(+), 33 deletions(-)
diff --git a/drivers/gpu/drm/meson/meson_dw_hdmi.c b/drivers/gpu/drm/meson/meson_dw_hdmi.c
index bcf4f83582f2..2890796f9d49 100644
--- a/drivers/gpu/drm/meson/meson_dw_hdmi.c
+++ b/drivers/gpu/drm/meson/meson_dw_hdmi.c
@@ -619,29 +619,6 @@ static void meson_dw_hdmi_init(struct meson_dw_hdmi *meson_dw_hdmi)
}
-static void meson_disable_clk(void *data)
-{
- clk_disable_unprepare(data);
-}
-
-static int meson_enable_clk(struct device *dev, char *name)
-{
- struct clk *clk;
- int ret;
-
- clk = devm_clk_get(dev, name);
- if (IS_ERR(clk)) {
- dev_err(dev, "Unable to get %s pclk\n", name);
- return PTR_ERR(clk);
- }
-
- ret = clk_prepare_enable(clk);
- if (!ret)
- ret = devm_add_action_or_reset(dev, meson_disable_clk, clk);
-
- return ret;
-}
-
static int meson_dw_hdmi_bind(struct device *dev, struct device *master,
void *data)
{
@@ -651,6 +628,7 @@ static int meson_dw_hdmi_bind(struct device *dev, struct device *master,
struct drm_device *drm = data;
struct meson_drm *priv = drm->dev_private;
struct dw_hdmi_plat_data *dw_plat_data;
+ struct clk_bulk_data *clks;
int irq;
int ret;
@@ -701,17 +679,9 @@ static int meson_dw_hdmi_bind(struct device *dev, struct device *master,
if (IS_ERR(meson_dw_hdmi->hdmitx))
return PTR_ERR(meson_dw_hdmi->hdmitx);
- ret = meson_enable_clk(dev, "isfr");
- if (ret)
- return ret;
-
- ret = meson_enable_clk(dev, "iahb");
+ ret = devm_clk_bulk_get_all_enable(dev, &clks);
if (ret)
- return ret;
-
- ret = meson_enable_clk(dev, "venci");
- if (ret)
- return ret;
+ return dev_err_probe(dev, ret, "Failed to enable all clocks\n");
dw_plat_data->regm = devm_regmap_init(dev, NULL, meson_dw_hdmi,
&meson_dw_hdmi_regmap_config);
--
2.43.0
More information about the linux-amlogic
mailing list