ACPI: LPSS: Fix the fractional clock divider flags
authorAndy Shevchenko <andriy.shevchenko@linux.intel.com>
Mon, 11 Dec 2023 11:14:29 +0000 (13:14 +0200)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Thu, 25 Jan 2024 23:35:15 +0000 (15:35 -0800)
[ Upstream commit 3ebccf1d1ca74bbb78e6f8c38d1d172e468d91f8 ]

The conversion to CLK_FRAC_DIVIDER_POWER_OF_TWO_PS uses wrong flags
in the parameters and hence miscalculates the values in the clock
divider. Fix this by applying the flag to the proper parameter.

Fixes: 82f53f9ee577 ("clk: fractional-divider: Introduce POWER_OF_TWO_PS flag")
Reported-by: Alex Vinarskis <alex.vinarskis@gmail.com>
Signed-off-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
Signed-off-by: Sasha Levin <sashal@kernel.org>
drivers/acpi/acpi_lpss.c

index 539e700..a052e0a 100644 (file)
@@ -465,8 +465,9 @@ static int register_device_clock(struct acpi_device *adev,
                if (!clk_name)
                        return -ENOMEM;
                clk = clk_register_fractional_divider(NULL, clk_name, parent,
+                                                     0, prv_base, 1, 15, 16, 15,
                                                      CLK_FRAC_DIVIDER_POWER_OF_TWO_PS,
-                                                     prv_base, 1, 15, 16, 15, 0, NULL);
+                                                     NULL);
                parent = clk_name;
 
                clk_name = kasprintf(GFP_KERNEL, "%s-update", devname);