# Pastebin MV6iJuIM steev@finn:~$ dmesg | grep glink [ 0.072234] /pmic-glink/connector@0: Fixed dependency cycle(s) with /soc@0/phy@88eb000 [ 0.072426] /pmic-glink/connector@0: Fixed dependency cycle(s) with /soc@0/usb@a6f8800/usb@a600000 [ 0.072684] /pmic-glink/connector@1: Fixed dependency cycle(s) with /soc@0/phy@8903000 [ 0.072949] /pmic-glink/connector@1: Fixed dependency cycle(s) with /soc@0/usb@a8f8800/usb@a800000 [ 0.073729] /pmic-glink/connector@0: Fixed dependency cycle(s) with /usb0-sbu-mux [ 0.074075] /usb0-sbu-mux: Fixed dependency cycle(s) with /pmic-glink/connector@0 [ 0.074189] /pmic-glink/connector@1: Fixed dependency cycle(s) with /usb1-sbu-mux [ 0.074682] /usb1-sbu-mux: Fixed dependency cycle(s) with /pmic-glink/connector@1 [ 1.476844] qcom_pmic_glink pmic-glink: Failed to create device link (0x180) with supplier a600000.usb for /pmic-glink/connector@0 [ 1.481353] qcom_pmic_glink pmic-glink: Failed to create device link (0x180) with supplier a800000.usb for /pmic-glink/connector@1 [ 2.104115] qcom,apr 3000000.remoteproc:glink-edge.adsp_apps.-1.-1: Adding APR/GPR dev: gprsvc:service:2:1 [ 2.104201] qcom,apr 3000000.remoteproc:glink-edge.adsp_apps.-1.-1: Adding APR/GPR dev: gprsvc:service:2:2 [ 2.621285] qcom_pmic_glink pmic-glink: Failed to create device link (0x180) with supplier 88eb000.phy for /pmic-glink/connector@0 [ 2.623079] qcom_pmic_glink pmic-glink: Failed to create device link (0x180) with supplier 8903000.phy for /pmic-glink/connector@1 [ 2.713700] qcom_pmic_glink pmic-glink: Failed to create device link (0x180) with supplier a600000.usb for /pmic-glink/connector@0 [ 2.744728] qcom_pmic_glink pmic-glink: Failed to create device link (0x180) with supplier a800000.usb for /pmic-glink/connector@1 [ 5.975702] qcom,fastrpc 1b300000.remoteproc:glink-edge.fastrpcglink-apps-dsp.-1.-1: no reserved DMA memory for FASTRPC [ 6.036130] qcom,fastrpc-cb 1b300000.remoteproc:glink-edge:fastrpc:compute-cb@1: Adding to iommu group 9 [ 6.044449] qcom,fastrpc-cb 1b300000.remoteproc:glink-edge:fastrpc:compute-cb@2: Adding to iommu group 10 [ 6.128556] qcom,fastrpc-cb 1b300000.remoteproc:glink-edge:fastrpc:compute-cb@3: Adding to iommu group 11 [ 6.134313] qcom,fastrpc-cb 1b300000.remoteproc:glink-edge:fastrpc:compute-cb@4: Adding to iommu group 12 [ 6.134571] qcom,fastrpc-cb 1b300000.remoteproc:glink-edge:fastrpc:compute-cb@5: Adding to iommu group 13 [ 6.134950] qcom,fastrpc-cb 1b300000.remoteproc:glink-edge:fastrpc:compute-cb@6: Adding to iommu group 14 [ 6.142449] qcom,fastrpc-cb 1b300000.remoteproc:glink-edge:fastrpc:compute-cb@7: Adding to iommu group 15 [ 6.143886] qcom,fastrpc-cb 1b300000.remoteproc:glink-edge:fastrpc:compute-cb@8: Adding to iommu group 16 [ 6.148286] qcom,fastrpc-cb 1b300000.remoteproc:glink-edge:fastrpc:compute-cb@9: Adding to iommu group 17 [ 6.148550] qcom,fastrpc-cb 1b300000.remoteproc:glink-edge:fastrpc:compute-cb@10: Adding to iommu group 17 [ 6.148717] qcom,fastrpc-cb 1b300000.remoteproc:glink-edge:fastrpc:compute-cb@11: Adding to iommu group 18 [ 6.148959] qcom,fastrpc-cb 1b300000.remoteproc:glink-edge:fastrpc:compute-cb@12: Adding to iommu group 19 [ 6.149194] qcom,fastrpc-cb 1b300000.remoteproc:glink-edge:fastrpc:compute-cb@13: Adding to iommu group 20 [ 6.149429] qcom,fastrpc-cb 1b300000.remoteproc:glink-edge:fastrpc:compute-cb@14: Adding to iommu group 21 [ 6.149632] qcom,fastrpc 2400000.remoteproc:glink-edge.fastrpcglink-apps-dsp.-1.-1: no reserved DMA memory for FASTRPC [ 6.204026] qcom,fastrpc-cb 2400000.remoteproc:glink-edge:fastrpc:compute-cb@1: Adding to iommu group 22 [ 6.204478] qcom,fastrpc-cb 2400000.remoteproc:glink-edge:fastrpc:compute-cb@2: Adding to iommu group 23 [ 6.204844] qcom,fastrpc-cb 2400000.remoteproc:glink-edge:fastrpc:compute-cb@3: Adding to iommu group 24 [ 11.247981] q6apm-dai 3000000.remoteproc:glink-edge:gpr:service@1:dais: Adding to iommu group 27 steev@finn:~$ cd kernels/stable-6.14 steev@finn:~/kernels/stable-6.14$ git diff diff --git a/drivers/power/supply/qcom_battmgr.c b/drivers/power/supply/qcom_battmgr.c index 66ddbe741c7a..da4d626f6ab3 100644 --- a/drivers/power/supply/qcom_battmgr.c +++ b/drivers/power/supply/qcom_battmgr.c @@ -769,12 +769,14 @@ static int qcom_battmgr_bat_set_property(struct power_supply *psy, static const enum power_supply_property sc8280xp_bat_props[] = { POWER_SUPPLY_PROP_STATUS, + POWER_SUPPLY_PROP_HEALTH, POWER_SUPPLY_PROP_PRESENT, POWER_SUPPLY_PROP_TECHNOLOGY, POWER_SUPPLY_PROP_CAPACITY, POWER_SUPPLY_PROP_CYCLE_COUNT, POWER_SUPPLY_PROP_VOLTAGE_MAX_DESIGN, POWER_SUPPLY_PROP_VOLTAGE_NOW, + POWER_SUPPLY_PROP_VOLTAGE_OCV, POWER_SUPPLY_PROP_POWER_NOW, POWER_SUPPLY_PROP_CHARGE_FULL_DESIGN, POWER_SUPPLY_PROP_CHARGE_FULL, @@ -791,6 +793,11 @@ static const enum power_supply_property sc8280xp_bat_props[] = { POWER_SUPPLY_PROP_MODEL_NAME, POWER_SUPPLY_PROP_MANUFACTURER, POWER_SUPPLY_PROP_SERIAL_NUMBER, + POWER_SUPPLY_PROP_RESISTANCE, + POWER_SUPPLY_PROP_STATE_OF_HEALTH, + POWER_SUPPLY_PROP_POWER_NOW, + POWER_SUPPLY_PROP_CHARGE_CONTROL_START_THRESHOLD, + POWER_SUPPLY_PROP_CHARGE_CONTROL_END_THRESHOLD, }; static const struct power_supply_desc sc8280xp_bat_psy_desc = { @@ -799,6 +806,8 @@ static const struct power_supply_desc sc8280xp_bat_psy_desc = { .properties = sc8280xp_bat_props, .num_properties = ARRAY_SIZE(sc8280xp_bat_props), .get_property = qcom_battmgr_bat_get_property, + .set_property = qcom_battmgr_bat_set_property, + .property_is_writeable = qcom_battmgr_bat_is_writeable, }; static const enum power_supply_property sm8350_bat_props[] = { @@ -1278,6 +1287,21 @@ static void qcom_battmgr_sc8280xp_callback(struct qcom_battmgr *battmgr, case BATTMGR_BAT_CHARGE_TIME: battmgr->status.charge_time = le32_to_cpu(resp->time); break; + case BATT_SOH: + battmgr->status.soh_percent = le32_to_cpu(resp->intval.value); + break; + case BATT_RESISTANCE: + battmgr->status.resistance = le32_to_cpu(resp->intval.value); + break; + case BATT_CHG_CTRL_START_THR: + battmgr->info.charge_ctrl_start = le32_to_cpu(resp->intval.value); + break; + case BATT_CHG_CTRL_END_THR: + battmgr->info.charge_ctrl_end = le32_to_cpu(resp->intval.value); + break; + case BATTMGR_CHG_CTRL_LIMIT_EN: + battmgr->error = 0; + break; default: dev_warn(battmgr->dev, "unknown message %#x\n", opcode); break; steev@finn:~/kernels/stable-6.14$ cd /sys/class/power_supply/qcom-battmgr-bat steev@finn:/sys/class/power_supply/qcom-battmgr-bat$ ls capacity charge_full device energy_now manufacture_day model_name present status type voltage_ocv charge_control_end_threshold charge_full_design energy_empty extensions manufacture_month of_node resistance subsystem uevent wakeup10 charge_control_start_threshold charge_now energy_full health manufacture_year power serial_number technology voltage_max_design charge_empty cycle_count energy_full_design hwmon0 manufacturer power_now state_of_health temp voltage_now steev@finn:/sys/class/power_supply/qcom-battmgr-bat$ cat health Unknown steev@finn:/sys/class/power_supply/qcom-battmgr-bat$ cat power_now -4204000 steev@finn:/sys/class/power_supply/qcom-battmgr-bat$ cat state_of_health 0 steev@finn:/sys/class/power_supply/qcom-battmgr-bat$ cat resistance 0 steev@finn:/sys/class/power_supply/qcom-battmgr-bat$ cat voltage_ocv 0 steev@finn:/sys/class/power_supply/qcom-battmgr-bat$