From 9b4b4599546958388b67ab941b5bec586693657c Mon Sep 17 00:00:00 2001 From: Tianrui Zhao Date: Tue, 10 Feb 2026 16:51:15 +0800 Subject: [PATCH] anolis: drivers/loongson-pwm: sync master patch to fix pwm driver ANBZ: #31178 It does not work when use this pwm driver to adjust backlight, And master pathes fix this bug: (1)pwm: loongson: Fix LOONGSON_PWM_FREQ_DEFAULT (2)pwm: loongson: Fix an error code in probe() (3)pwm: loongson: Fix u32 overflow in waveform calculation Signed-off-by: Tianrui Zhao Signed-off-by: Juxin Gao --- drivers/pwm/pwm-loongson.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/drivers/pwm/pwm-loongson.c b/drivers/pwm/pwm-loongson.c index 8432a6ad1d10..f8cbd2bc7d8e 100644 --- a/drivers/pwm/pwm-loongson.c +++ b/drivers/pwm/pwm-loongson.c @@ -49,7 +49,7 @@ #define LOONGSON_PWM_CTRL_REG_DZONE BIT(10) /* Anti-dead Zone Enable Bit */ /* default input clk frequency for the ACPI case */ -#define LOONGSON_PWM_FREQ_DEFAULT 50000 /* Hz */ +#define LOONGSON_PWM_FREQ_DEFAULT 50000000 /* Hz */ struct pwm_loongson_ddata { struct pwm_chip chip; @@ -119,7 +119,7 @@ static int pwm_loongson_enable(struct pwm_chip *chip, struct pwm_device *pwm) static int pwm_loongson_config(struct pwm_chip *chip, struct pwm_device *pwm, u64 duty_ns, u64 period_ns) { - u32 duty, period; + u64 duty, period; struct pwm_loongson_ddata *ddata = to_pwm_loongson_ddata(chip); /* duty = duty_ns * ddata->clk_rate / NSEC_PER_SEC */ @@ -206,7 +206,7 @@ static int pwm_loongson_probe(struct platform_device *pdev) if (!has_acpi_companion(dev)) { ddata->clk = devm_clk_get_enabled(dev, NULL); if (IS_ERR(ddata->clk)) - return dev_err_probe(dev, PTR_ERR(ddata->clk), + return dev_err_probe(dev, ret, "failed to get pwm clock\n"); ddata->clk_rate = clk_get_rate(ddata->clk); } else { -- Gitee