lkml.org 
[lkml]   [2021]   [Apr]   [16]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH v4 14/27] drm/bridge: ti-sn65dsi86: Move all the chip-related init to the start
    Date
    This is just code motion of the probe routine to move all the things
    that are for the "whole chip" (instead of the GPIO parts or the
    MIPI-to-eDP parts) together at the start of probe. This is in
    preparation for breaking the driver into sub-drivers.

    Since we're using devm for all of the "whole chip" stuff this is
    actually quite easy now.

    Signed-off-by: Douglas Anderson <dianders@chromium.org>
    ---

    (no changes since v1)

    drivers/gpu/drm/bridge/ti-sn65dsi86.c | 26 +++++++++++++-------------
    1 file changed, 13 insertions(+), 13 deletions(-)

    diff --git a/drivers/gpu/drm/bridge/ti-sn65dsi86.c b/drivers/gpu/drm/bridge/ti-sn65dsi86.c
    index 53f1f7b3022f..57bc489a0412 100644
    --- a/drivers/gpu/drm/bridge/ti-sn65dsi86.c
    +++ b/drivers/gpu/drm/bridge/ti-sn65dsi86.c
    @@ -1253,12 +1253,6 @@ static int ti_sn65dsi86_probe(struct i2c_client *client,
    return PTR_ERR(pdata->regmap);
    }

    - ret = drm_of_find_panel_or_bridge(dev->of_node, 1, 0, &pdata->panel, NULL);
    - if (ret) {
    - DRM_ERROR("could not find any panel node\n");
    - return ret;
    - }
    -
    pdata->enable_gpio = devm_gpiod_get(dev, "enable", GPIOD_OUT_LOW);
    if (IS_ERR(pdata->enable_gpio)) {
    DRM_ERROR("failed to get enable gpio from DT\n");
    @@ -1266,8 +1260,6 @@ static int ti_sn65dsi86_probe(struct i2c_client *client,
    return ret;
    }

    - ti_sn_bridge_parse_lanes(pdata, dev->of_node);
    -
    ret = ti_sn65dsi86_parse_regulators(pdata);
    if (ret) {
    DRM_ERROR("failed to parse regulators\n");
    @@ -1278,12 +1270,22 @@ static int ti_sn65dsi86_probe(struct i2c_client *client,
    if (IS_ERR(pdata->refclk))
    return PTR_ERR(pdata->refclk);

    - ret = ti_sn_bridge_parse_dsi_host(pdata);
    + pm_runtime_enable(dev);
    + ret = devm_add_action_or_reset(dev, ti_sn65dsi86_runtime_disable, dev);
    if (ret)
    return ret;

    - pm_runtime_enable(dev);
    - ret = devm_add_action_or_reset(dev, ti_sn65dsi86_runtime_disable, dev);
    + ti_sn65dsi86_debugfs_init(pdata);
    +
    + ret = drm_of_find_panel_or_bridge(dev->of_node, 1, 0, &pdata->panel, NULL);
    + if (ret) {
    + DRM_ERROR("could not find any panel node\n");
    + return ret;
    + }
    +
    + ti_sn_bridge_parse_lanes(pdata, dev->of_node);
    +
    + ret = ti_sn_bridge_parse_dsi_host(pdata);
    if (ret)
    return ret;

    @@ -1301,8 +1303,6 @@ static int ti_sn65dsi86_probe(struct i2c_client *client,

    drm_bridge_add(&pdata->bridge);

    - ti_sn65dsi86_debugfs_init(pdata);
    -
    return 0;
    }

    --
    2.31.1.368.gbe11c130af-goog
    \
     
     \ /
      Last update: 2021-04-17 01:11    [W:2.169 / U:0.020 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site