drm: rcar-du: lvds: Remove LVDS double-enable checks
authorLaurent Pinchart <laurent.pinchart+renesas@ideasonboard.com>
Wed, 6 Mar 2019 20:57:02 +0000 (22:57 +0200)
committerLaurent Pinchart <laurent.pinchart+renesas@ideasonboard.com>
Fri, 7 Jun 2019 23:36:04 +0000 (02:36 +0300)
The DRM core and DU driver guarantee that the LVDS bridge will not be
double-enabled or double-disabled. Remove the corresponding unnecessary
checks.

Signed-off-by: Laurent Pinchart <laurent.pinchart+renesas@ideasonboard.com>
Reviewed-by: Jacopo Mondi <jacopo@jmondi.org>
Tested-by: Jacopo Mondi <jacopo+renesas@jmondi.org>
Acked-by: Sam Ravnborg <sam@ravnborg.org>
Reviewed-by: Kieran Bingham <kieran.bingham+renesas@ideasonboard.com>
drivers/gpu/drm/rcar-du/rcar_lvds.c

index dfc5008e4b3ff971cb0c2f38b5ce9eb1289a235b..b161877fa7726a0ae682de51ad3289e0d0c92b7a 100644 (file)
@@ -63,7 +63,6 @@ struct rcar_lvds {
                struct clk *extal;              /* External clock */
                struct clk *dotclkin[2];        /* External DU clocks */
        } clocks;
-       bool enabled;
 
        struct drm_display_mode display_mode;
        enum rcar_lvds_mode mode;
@@ -368,15 +367,12 @@ int rcar_lvds_clk_enable(struct drm_bridge *bridge, unsigned long freq)
 
        dev_dbg(lvds->dev, "enabling LVDS PLL, freq=%luHz\n", freq);
 
-       WARN_ON(lvds->enabled);
-
        ret = clk_prepare_enable(lvds->clocks.mod);
        if (ret < 0)
                return ret;
 
        __rcar_lvds_pll_setup_d3_e3(lvds, freq, true);
 
-       lvds->enabled = true;
        return 0;
 }
 EXPORT_SYMBOL_GPL(rcar_lvds_clk_enable);
@@ -390,13 +386,9 @@ void rcar_lvds_clk_disable(struct drm_bridge *bridge)
 
        dev_dbg(lvds->dev, "disabling LVDS PLL\n");
 
-       WARN_ON(!lvds->enabled);
-
        rcar_lvds_write(lvds, LVDPLLCR, 0);
 
        clk_disable_unprepare(lvds->clocks.mod);
-
-       lvds->enabled = false;
 }
 EXPORT_SYMBOL_GPL(rcar_lvds_clk_disable);
 
@@ -417,8 +409,6 @@ static void rcar_lvds_enable(struct drm_bridge *bridge)
        u32 lvdcr0;
        int ret;
 
-       WARN_ON(lvds->enabled);
-
        ret = clk_prepare_enable(lvds->clocks.mod);
        if (ret < 0)
                return;
@@ -507,16 +497,12 @@ static void rcar_lvds_enable(struct drm_bridge *bridge)
                drm_panel_prepare(lvds->panel);
                drm_panel_enable(lvds->panel);
        }
-
-       lvds->enabled = true;
 }
 
 static void rcar_lvds_disable(struct drm_bridge *bridge)
 {
        struct rcar_lvds *lvds = bridge_to_rcar_lvds(bridge);
 
-       WARN_ON(!lvds->enabled);
-
        if (lvds->panel) {
                drm_panel_disable(lvds->panel);
                drm_panel_unprepare(lvds->panel);
@@ -527,8 +513,6 @@ static void rcar_lvds_disable(struct drm_bridge *bridge)
        rcar_lvds_write(lvds, LVDPLLCR, 0);
 
        clk_disable_unprepare(lvds->clocks.mod);
-
-       lvds->enabled = false;
 }
 
 static bool rcar_lvds_mode_fixup(struct drm_bridge *bridge,
@@ -592,8 +576,6 @@ static void rcar_lvds_mode_set(struct drm_bridge *bridge,
 {
        struct rcar_lvds *lvds = bridge_to_rcar_lvds(bridge);
 
-       WARN_ON(lvds->enabled);
-
        lvds->display_mode = *adjusted_mode;
 
        rcar_lvds_get_lvds_mode(lvds);
@@ -793,7 +775,6 @@ static int rcar_lvds_probe(struct platform_device *pdev)
 
        lvds->dev = &pdev->dev;
        lvds->info = of_device_get_match_data(&pdev->dev);
-       lvds->enabled = false;
 
        ret = rcar_lvds_parse_dt(lvds);
        if (ret < 0)