[PATCH v6 02/10] drm/rockchip: analogix_dp: Remove unnecessary init code
Mark yao
mark.yao at rock-chips.com
Thu Oct 19 18:48:35 PDT 2017
On 2017年10月19日 11:48, Jeffy Chen wrote:
> Remove unnecessary init code, since we would do it in the power_on()
> callback.
>
> Also move of parse code to probe().
>
> Fixes: 9e32e16e9e98 ("drm: rockchip: dp: add rockchip platform dp driver")
> Signed-off-by: Jeffy Chen <jeffy.chen at rock-chips.com>
Looks good for me
Acked-by: Mark Yao <mark.yao at rock-chips.com>
> ---
>
> Changes in v6: None
> Changes in v5: None
>
> drivers/gpu/drm/rockchip/analogix_dp-rockchip.c | 27 ++++++-------------------
> 1 file changed, 6 insertions(+), 21 deletions(-)
>
> diff --git a/drivers/gpu/drm/rockchip/analogix_dp-rockchip.c b/drivers/gpu/drm/rockchip/analogix_dp-rockchip.c
> index 4d3f6ad0abdd..8cae5ad926cd 100644
> --- a/drivers/gpu/drm/rockchip/analogix_dp-rockchip.c
> +++ b/drivers/gpu/drm/rockchip/analogix_dp-rockchip.c
> @@ -269,7 +269,7 @@ static struct drm_encoder_funcs rockchip_dp_encoder_funcs = {
> .destroy = rockchip_dp_drm_encoder_destroy,
> };
>
> -static int rockchip_dp_init(struct rockchip_dp_device *dp)
> +static int rockchip_dp_of_probe(struct rockchip_dp_device *dp)
> {
> struct device *dev = dp->dev;
> struct device_node *np = dev->of_node;
> @@ -303,19 +303,6 @@ static int rockchip_dp_init(struct rockchip_dp_device *dp)
> return PTR_ERR(dp->rst);
> }
>
> - ret = clk_prepare_enable(dp->pclk);
> - if (ret < 0) {
> - DRM_DEV_ERROR(dp->dev, "failed to enable pclk %d\n", ret);
> - return ret;
> - }
> -
> - ret = rockchip_dp_pre_init(dp);
> - if (ret < 0) {
> - DRM_DEV_ERROR(dp->dev, "failed to pre init %d\n", ret);
> - clk_disable_unprepare(dp->pclk);
> - return ret;
> - }
> -
> return 0;
> }
>
> @@ -361,10 +348,6 @@ static int rockchip_dp_bind(struct device *dev, struct device *master,
> if (!dp_data)
> return -ENODEV;
>
> - ret = rockchip_dp_init(dp);
> - if (ret < 0)
> - return ret;
> -
> dp->data = dp_data;
> dp->drm_dev = drm_dev;
>
> @@ -398,7 +381,6 @@ static void rockchip_dp_unbind(struct device *dev, struct device *master,
> rockchip_drm_psr_unregister(&dp->encoder);
>
> analogix_dp_unbind(dev, master, data);
> - clk_disable_unprepare(dp->pclk);
> }
>
> static const struct component_ops rockchip_dp_component_ops = {
> @@ -414,7 +396,7 @@ static int rockchip_dp_probe(struct platform_device *pdev)
> int ret;
>
> ret = drm_of_find_panel_or_bridge(dev->of_node, 1, 0, &panel, NULL);
> - if (ret)
> + if (ret < 0)
> return ret;
>
> dp = devm_kzalloc(dev, sizeof(*dp), GFP_KERNEL);
> @@ -422,9 +404,12 @@ static int rockchip_dp_probe(struct platform_device *pdev)
> return -ENOMEM;
>
> dp->dev = dev;
> -
> dp->plat_data.panel = panel;
>
> + ret = rockchip_dp_of_probe(dp);
> + if (ret < 0)
> + return ret;
> +
> /*
> * We just use the drvdata until driver run into component
> * add function, and then we would set drvdata to null, so
More information about the Linux-rockchip
mailing list