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

Configure Feed

Select the types of activity you want to include in your feed.

Merge tag 'for-v6.8-rc' of git://git.kernel.org/pub/scm/linux/kernel/git/sre/linux-power-supply

Pull power supply fix from Sebastian Reichel:

- qcom_battmgr: revert broken fix

* tag 'for-v6.8-rc' of git://git.kernel.org/pub/scm/linux/kernel/git/sre/linux-power-supply:
Revert "power: supply: qcom_battmgr: Register the power supplies after PDR is up"

+49 -60
+49 -60
drivers/power/supply/qcom_battmgr.c
··· 282 282 283 283 struct qcom_battmgr { 284 284 struct device *dev; 285 - struct auxiliary_device *adev; 286 285 struct pmic_glink_client *client; 287 286 288 287 enum qcom_battmgr_variant variant; ··· 1293 1294 dev_err(battmgr->dev, "failed to request power notifications\n"); 1294 1295 } 1295 1296 1296 - static char *qcom_battmgr_battery[] = { "battery" }; 1297 - 1298 - static void qcom_battmgr_register_psy(struct qcom_battmgr *battmgr) 1299 - { 1300 - struct power_supply_config psy_cfg_supply = {}; 1301 - struct auxiliary_device *adev = battmgr->adev; 1302 - struct power_supply_config psy_cfg = {}; 1303 - struct device *dev = &adev->dev; 1304 - 1305 - psy_cfg.drv_data = battmgr; 1306 - psy_cfg.of_node = adev->dev.of_node; 1307 - 1308 - psy_cfg_supply.drv_data = battmgr; 1309 - psy_cfg_supply.of_node = adev->dev.of_node; 1310 - psy_cfg_supply.supplied_to = qcom_battmgr_battery; 1311 - psy_cfg_supply.num_supplicants = 1; 1312 - 1313 - if (battmgr->variant == QCOM_BATTMGR_SC8280XP) { 1314 - battmgr->bat_psy = devm_power_supply_register(dev, &sc8280xp_bat_psy_desc, &psy_cfg); 1315 - if (IS_ERR(battmgr->bat_psy)) 1316 - dev_err(dev, "failed to register battery power supply (%ld)\n", 1317 - PTR_ERR(battmgr->bat_psy)); 1318 - 1319 - battmgr->ac_psy = devm_power_supply_register(dev, &sc8280xp_ac_psy_desc, &psy_cfg_supply); 1320 - if (IS_ERR(battmgr->ac_psy)) 1321 - dev_err(dev, "failed to register AC power supply (%ld)\n", 1322 - PTR_ERR(battmgr->ac_psy)); 1323 - 1324 - battmgr->usb_psy = devm_power_supply_register(dev, &sc8280xp_usb_psy_desc, &psy_cfg_supply); 1325 - if (IS_ERR(battmgr->usb_psy)) 1326 - dev_err(dev, "failed to register USB power supply (%ld)\n", 1327 - PTR_ERR(battmgr->usb_psy)); 1328 - 1329 - battmgr->wls_psy = devm_power_supply_register(dev, &sc8280xp_wls_psy_desc, &psy_cfg_supply); 1330 - if (IS_ERR(battmgr->wls_psy)) 1331 - dev_err(dev, "failed to register wireless charing power supply (%ld)\n", 1332 - PTR_ERR(battmgr->wls_psy)); 1333 - } else { 1334 - battmgr->bat_psy = devm_power_supply_register(dev, &sm8350_bat_psy_desc, &psy_cfg); 1335 - if (IS_ERR(battmgr->bat_psy)) 1336 - dev_err(dev, "failed to register battery power supply (%ld)\n", 1337 - PTR_ERR(battmgr->bat_psy)); 1338 - 1339 - battmgr->usb_psy = devm_power_supply_register(dev, &sm8350_usb_psy_desc, &psy_cfg_supply); 1340 - if (IS_ERR(battmgr->usb_psy)) 1341 - dev_err(dev, "failed to register USB power supply (%ld)\n", 1342 - PTR_ERR(battmgr->usb_psy)); 1343 - 1344 - battmgr->wls_psy = devm_power_supply_register(dev, &sm8350_wls_psy_desc, &psy_cfg_supply); 1345 - if (IS_ERR(battmgr->wls_psy)) 1346 - dev_err(dev, "failed to register wireless charing power supply (%ld)\n", 1347 - PTR_ERR(battmgr->wls_psy)); 1348 - } 1349 - } 1350 - 1351 1297 static void qcom_battmgr_pdr_notify(void *priv, int state) 1352 1298 { 1353 1299 struct qcom_battmgr *battmgr = priv; 1354 1300 1355 1301 if (state == SERVREG_SERVICE_STATE_UP) { 1356 - if (!battmgr->bat_psy) 1357 - qcom_battmgr_register_psy(battmgr); 1358 - 1359 1302 battmgr->service_up = true; 1360 1303 schedule_work(&battmgr->enable_work); 1361 1304 } else { ··· 1312 1371 {} 1313 1372 }; 1314 1373 1374 + static char *qcom_battmgr_battery[] = { "battery" }; 1375 + 1315 1376 static int qcom_battmgr_probe(struct auxiliary_device *adev, 1316 1377 const struct auxiliary_device_id *id) 1317 1378 { 1379 + struct power_supply_config psy_cfg_supply = {}; 1380 + struct power_supply_config psy_cfg = {}; 1318 1381 const struct of_device_id *match; 1319 1382 struct qcom_battmgr *battmgr; 1320 1383 struct device *dev = &adev->dev; ··· 1328 1383 return -ENOMEM; 1329 1384 1330 1385 battmgr->dev = dev; 1331 - battmgr->adev = adev; 1386 + 1387 + psy_cfg.drv_data = battmgr; 1388 + psy_cfg.of_node = adev->dev.of_node; 1389 + 1390 + psy_cfg_supply.drv_data = battmgr; 1391 + psy_cfg_supply.of_node = adev->dev.of_node; 1392 + psy_cfg_supply.supplied_to = qcom_battmgr_battery; 1393 + psy_cfg_supply.num_supplicants = 1; 1332 1394 1333 1395 INIT_WORK(&battmgr->enable_work, qcom_battmgr_enable_worker); 1334 1396 mutex_init(&battmgr->lock); ··· 1346 1394 battmgr->variant = (unsigned long)match->data; 1347 1395 else 1348 1396 battmgr->variant = QCOM_BATTMGR_SM8350; 1397 + 1398 + if (battmgr->variant == QCOM_BATTMGR_SC8280XP) { 1399 + battmgr->bat_psy = devm_power_supply_register(dev, &sc8280xp_bat_psy_desc, &psy_cfg); 1400 + if (IS_ERR(battmgr->bat_psy)) 1401 + return dev_err_probe(dev, PTR_ERR(battmgr->bat_psy), 1402 + "failed to register battery power supply\n"); 1403 + 1404 + battmgr->ac_psy = devm_power_supply_register(dev, &sc8280xp_ac_psy_desc, &psy_cfg_supply); 1405 + if (IS_ERR(battmgr->ac_psy)) 1406 + return dev_err_probe(dev, PTR_ERR(battmgr->ac_psy), 1407 + "failed to register AC power supply\n"); 1408 + 1409 + battmgr->usb_psy = devm_power_supply_register(dev, &sc8280xp_usb_psy_desc, &psy_cfg_supply); 1410 + if (IS_ERR(battmgr->usb_psy)) 1411 + return dev_err_probe(dev, PTR_ERR(battmgr->usb_psy), 1412 + "failed to register USB power supply\n"); 1413 + 1414 + battmgr->wls_psy = devm_power_supply_register(dev, &sc8280xp_wls_psy_desc, &psy_cfg_supply); 1415 + if (IS_ERR(battmgr->wls_psy)) 1416 + return dev_err_probe(dev, PTR_ERR(battmgr->wls_psy), 1417 + "failed to register wireless charing power supply\n"); 1418 + } else { 1419 + battmgr->bat_psy = devm_power_supply_register(dev, &sm8350_bat_psy_desc, &psy_cfg); 1420 + if (IS_ERR(battmgr->bat_psy)) 1421 + return dev_err_probe(dev, PTR_ERR(battmgr->bat_psy), 1422 + "failed to register battery power supply\n"); 1423 + 1424 + battmgr->usb_psy = devm_power_supply_register(dev, &sm8350_usb_psy_desc, &psy_cfg_supply); 1425 + if (IS_ERR(battmgr->usb_psy)) 1426 + return dev_err_probe(dev, PTR_ERR(battmgr->usb_psy), 1427 + "failed to register USB power supply\n"); 1428 + 1429 + battmgr->wls_psy = devm_power_supply_register(dev, &sm8350_wls_psy_desc, &psy_cfg_supply); 1430 + if (IS_ERR(battmgr->wls_psy)) 1431 + return dev_err_probe(dev, PTR_ERR(battmgr->wls_psy), 1432 + "failed to register wireless charing power supply\n"); 1433 + } 1349 1434 1350 1435 battmgr->client = devm_pmic_glink_register_client(dev, 1351 1436 PMIC_GLINK_OWNER_BATTMGR,