drm/rockchip: dsi: remove extra component_del() call
authorThomas Hebb <tommyhebb@gmail.com>
Mon, 19 Apr 2021 02:03:04 +0000 (19:03 -0700)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Mon, 19 Jul 2021 07:44:57 +0000 (09:44 +0200)
commit b354498bbe65c917d521b3b56317ddc9ab217425 upstream.

commit cf6d100dd238 ("drm/rockchip: dsi: add dual mipi support") added
this devcnt field and call to component_del(). However, these both
appear to be erroneous changes left over from an earlier version of the
patch. In the version merged, nothing ever modifies devcnt, meaning
component_del() runs unconditionally and in addition to the
component_del() calls in dw_mipi_dsi_rockchip_host_detach(). The second
call fails to delete anything and produces a warning in dmesg.

If we look at the previous version of the patch[1], however, we see that
it had logic to calculate devcnt and call component_add() in certain
situations. This was removed in v6, and the fact that the deletion code
was not appears to have been an oversight.

[1] https://patchwork.kernel.org/project/dri-devel/patch/20180821140515.22246-8-heiko@sntech.de/

Fixes: cf6d100dd238 ("drm/rockchip: dsi: add dual mipi support")
Cc: stable@vger.kernel.org
Signed-off-by: Thomas Hebb <tommyhebb@gmail.com>
Signed-off-by: Heiko Stuebner <heiko@sntech.de>
Link: https://patchwork.freedesktop.org/patch/msgid/201385acb0eeb5dfb037afdc6a94bfbcdab97f99.1618797778.git.tommyhebb@gmail.com
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
drivers/gpu/drm/rockchip/dw-mipi-dsi-rockchip.c

index 75a7640..d0c9610 100644 (file)
@@ -243,7 +243,6 @@ struct dw_mipi_dsi_rockchip {
        struct dw_mipi_dsi *dmd;
        const struct rockchip_dw_dsi_chip_data *cdata;
        struct dw_mipi_dsi_plat_data pdata;
-       int devcnt;
 };
 
 struct dphy_pll_parameter_map {
@@ -1141,9 +1140,6 @@ static int dw_mipi_dsi_rockchip_remove(struct platform_device *pdev)
 {
        struct dw_mipi_dsi_rockchip *dsi = platform_get_drvdata(pdev);
 
-       if (dsi->devcnt == 0)
-               component_del(dsi->dev, &dw_mipi_dsi_rockchip_ops);
-
        dw_mipi_dsi_remove(dsi->dmd);
 
        return 0;