Patch "power: supply: ab8500: Defer thermal zone probe" has been added to the 6.0-stable tree

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



This is a note to let you know that I've just added the patch titled

    power: supply: ab8500: Defer thermal zone probe

to the 6.0-stable tree which can be found at:
    http://www.kernel.org/git/?p=linux/kernel/git/stable/stable-queue.git;a=summary

The filename of the patch is:
     power-supply-ab8500-defer-thermal-zone-probe.patch
and it can be found in the queue-6.0 subdirectory.

If you, or anyone else, feels it should not be added to the stable tree,
please let <stable@xxxxxxxxxxxxxxx> know about it.



commit c042e11e847dc6b22306281815236292311e5b10
Author: Linus Walleij <linus.walleij@xxxxxxxxxx>
Date:   Sun Oct 30 21:55:54 2022 +0100

    power: supply: ab8500: Defer thermal zone probe
    
    [ Upstream commit 767e684367e4759d9855b184045b7a9d6b19acd2 ]
    
    The call thermal_zone_get_zone_by_name() used to return the
    thermal zone right away, but recent refactorings in the
    thermal core has changed this so the thermal zone used by
    the battery is probed later, and the call returns -ENODEV.
    
    This was always quite fragile. If we get -ENODEV, then
    return a -EPROBE_DEFER and try again later.
    
    Cc: phone-devel@xxxxxxxxxxxxxxx
    Fixes: 2b0e7ac0841b ("power: supply: ab8500: Integrate thermal zone")
    Signed-off-by: Linus Walleij <linus.walleij@xxxxxxxxxx>
    Signed-off-by: Sebastian Reichel <sebastian.reichel@xxxxxxxxxxxxx>
    Signed-off-by: Sasha Levin <sashal@xxxxxxxxxx>

diff --git a/drivers/power/supply/ab8500_btemp.c b/drivers/power/supply/ab8500_btemp.c
index 863fabe05bdc..307ee6f71042 100644
--- a/drivers/power/supply/ab8500_btemp.c
+++ b/drivers/power/supply/ab8500_btemp.c
@@ -725,7 +725,14 @@ static int ab8500_btemp_probe(struct platform_device *pdev)
 	/* Get thermal zone and ADC */
 	di->tz = thermal_zone_get_zone_by_name("battery-thermal");
 	if (IS_ERR(di->tz)) {
-		return dev_err_probe(dev, PTR_ERR(di->tz),
+		ret = PTR_ERR(di->tz);
+		/*
+		 * This usually just means we are probing before the thermal
+		 * zone, so just defer.
+		 */
+		if (ret == -ENODEV)
+			ret = -EPROBE_DEFER;
+		return dev_err_probe(dev, ret,
 				     "failed to get battery thermal zone\n");
 	}
 	di->bat_ctrl = devm_iio_channel_get(dev, "bat_ctrl");



[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Index of Archives]     [Linux USB Devel]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]

  Powered by Linux