Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

PM / devfreq: rk3399_dmc: fix error return code in rk3399_dmcfreq_probe()

platform_get_irq() returns an error code, but the rk3399_dmc
driver ignores it and always returns -EINVAL. This is not correct,
and prevents -EPROBE_DEFER from being propagated properly.

Notice that platform_get_irq() no longer returns 0 on error:
https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=e330b9a6bb35dc7097a4f02cb1ae7b6f96df92af

Print and propagate the return value of platform_get_irq on failure.

Reviewed-by: Chanwoo Choi <cw00.choi@samsung.com>
Signed-off-by: Gustavo A. R. Silva <garsilva@embeddedor.com>
Signed-off-by: MyungJoo Ham <myungjoo.ham@samsung.com>

authored by

Gustavo A. R. Silva and committed by
MyungJoo Ham
da55b1ad 6f7da290

+3 -2
+3 -2
drivers/devfreq/rk3399_dmc.c
··· 336 336 337 337 irq = platform_get_irq(pdev, 0); 338 338 if (irq < 0) { 339 - dev_err(&pdev->dev, "Cannot get the dmc interrupt resource\n"); 340 - return -EINVAL; 339 + dev_err(&pdev->dev, 340 + "Cannot get the dmc interrupt resource: %d\n", irq); 341 + return irq; 341 342 } 342 343 data = devm_kzalloc(dev, sizeof(struct rk3399_dmcfreq), GFP_KERNEL); 343 344 if (!data)