]> git.ipfire.org Git - thirdparty/kernel/linux.git/commitdiff
drm/stm/lvds: convert from round_rate() to determine_rate()
authorBrian Masney <bmasney@redhat.com>
Mon, 11 Aug 2025 10:56:11 +0000 (06:56 -0400)
committerRaphael Gallais-Pou <raphael.gallais-pou@foss.st.com>
Mon, 15 Sep 2025 13:08:44 +0000 (15:08 +0200)
The round_rate() clk ops is deprecated, so migrate this driver from
round_rate() to determine_rate() using the Coccinelle semantic patch
on the cover letter of this series.

Acked-by: Raphael Gallais-Pou <raphael.gallais-pou@foss.st.com>
Signed-off-by: Brian Masney <bmasney@redhat.com>
Acked-by: Yannick Fertre <yannick.fertre@foss.st.com>
Link: https://lore.kernel.org/r/20250811-drm-clk-round-rate-v2-7-4a91ccf239cf@redhat.com
Signed-off-by: Raphael Gallais-Pou <raphael.gallais-pou@foss.st.com>
drivers/gpu/drm/stm/lvds.c

index 07788e8d3d8302a3951e97d64736b721033998d3..fe38c0984b2b552e1ccaef4d1e589b9d86a40ee3 100644 (file)
@@ -682,8 +682,8 @@ static unsigned long lvds_pixel_clk_recalc_rate(struct clk_hw *hw,
        return (unsigned long)lvds->pixel_clock_rate;
 }
 
-static long lvds_pixel_clk_round_rate(struct clk_hw *hw, unsigned long rate,
-                                     unsigned long *parent_rate)
+static int lvds_pixel_clk_determine_rate(struct clk_hw *hw,
+                                        struct clk_rate_request *req)
 {
        struct stm_lvds *lvds = container_of(hw, struct stm_lvds, lvds_ck_px);
        unsigned int pll_in_khz, bdiv = 0, mdiv = 0, ndiv = 0;
@@ -703,7 +703,7 @@ static long lvds_pixel_clk_round_rate(struct clk_hw *hw, unsigned long rate,
        mode = list_first_entry(&connector->modes,
                                struct drm_display_mode, head);
 
-       pll_in_khz = (unsigned int)(*parent_rate / 1000);
+       pll_in_khz = (unsigned int)(req->best_parent_rate / 1000);
 
        if (lvds_is_dual_link(lvds->link_type))
                multiplier = 2;
@@ -719,14 +719,16 @@ static long lvds_pixel_clk_round_rate(struct clk_hw *hw, unsigned long rate,
        lvds->pixel_clock_rate = (unsigned long)pll_get_clkout_khz(pll_in_khz, bdiv, mdiv, ndiv)
                                         * 1000 * multiplier / 7;
 
-       return lvds->pixel_clock_rate;
+       req->rate = lvds->pixel_clock_rate;
+
+       return 0;
 }
 
 static const struct clk_ops lvds_pixel_clk_ops = {
        .enable = lvds_pixel_clk_enable,
        .disable = lvds_pixel_clk_disable,
        .recalc_rate = lvds_pixel_clk_recalc_rate,
-       .round_rate = lvds_pixel_clk_round_rate,
+       .determine_rate = lvds_pixel_clk_determine_rate,
 };
 
 static const struct clk_init_data clk_data = {