From d7a0b31461b7a22a5057de87bc1dc5abb1edb903 Mon Sep 17 00:00:00 2001 From: Ramii Ahmed Date: Sat, 19 Aug 2023 10:36:32 +0000 Subject: [PATCH] power: supply: qti_battery_charger: Guard power properties changes against Venus * The XM properties in the power supply kernel driver header files must match the one in ADSP firmware * These properties are used to map ADSP FW properties so we can expose values like charging speed to kernel, and then expose them to userspace using nodes * Since most Xiaomi lahaina devices after Venus introduced major changes to the power supply kernel driver, these properties in header files got additions, this breaks reporting * Guard non-venus properties under the lack of a venus-specific flag Change-Id: Ic1d2256f7acdb624b8f913608cdd55285d3fff2d --- drivers/power/supply/Kconfig | 6 ++++++ drivers/power/supply/qti_battery_charger.h | 12 ++++++++++++ .../power/supply/qti_battery_charger_xiaomi.c | 16 ++++++++++++++++ 3 files changed, 34 insertions(+) diff --git a/drivers/power/supply/Kconfig b/drivers/power/supply/Kconfig index c8714ecb15b7..7c5c02a867db 100644 --- a/drivers/power/supply/Kconfig +++ b/drivers/power/supply/Kconfig @@ -454,6 +454,12 @@ config RENOIR_FOR_BUILD help Say Y here to enable renoir build debug +config VENUS_FOR_BUILD + bool "venus build debug" + depends on QTI_BATTERY_CHARGER + help + Say Y here to enable venus build debug + config CHARGER_88PM860X tristate "Marvell 88PM860x Charger driver" depends on MFD_88PM860X && BATTERY_88PM860X diff --git a/drivers/power/supply/qti_battery_charger.h b/drivers/power/supply/qti_battery_charger.h index 231c000dd2d7..9f3fc0981987 100644 --- a/drivers/power/supply/qti_battery_charger.h +++ b/drivers/power/supply/qti_battery_charger.h @@ -211,7 +211,9 @@ enum xm_property_id { XM_PROP_BQ2597X_BATTERY_VOLTAGE, XM_PROP_COOL_MODE, #endif +#if !defined(CONFIG_VENUS_FOR_BUILD) XM_PROP_BT_TRANSFER_START, +#endif XM_PROP_MASTER_SMB1396_ONLINE, XM_PROP_MASTER_SMB1396_IIN, XM_PROP_SLAVE_SMB1396_ONLINE, @@ -226,7 +228,9 @@ enum xm_property_id { XM_PROP_BT_STATE, XM_PROP_REVERSE_CHG_MODE, XM_PROP_REVERSE_CHG_STATE, +#if !defined(CONFIG_VENUS_FOR_BUILD) XM_PROP_WLS_FW_STATE, +#endif XM_PROP_RX_VOUT, XM_PROP_RX_VRECT, XM_PROP_RX_IOUT, @@ -234,7 +238,9 @@ enum xm_property_id { XM_PROP_OP_MODE, XM_PROP_WLS_DIE_TEMP, XM_PROP_WLS_CAR_ADAPTER, +#if !defined(CONFIG_VENUS_FOR_BUILD) XM_PROP_WLS_TX_SPEED, +#endif /**********************/ XM_PROP_INPUT_SUSPEND, XM_PROP_REAL_TYPE, @@ -247,15 +253,19 @@ enum xm_property_id { XM_PROP_VDM_CMD_AUTHENTICATION, XM_PROP_VDM_CMD_VERIFIED, XM_PROP_VDM_CMD_REMOVE_COMPENSATION, +#if !defined(CONFIG_VENUS_FOR_BUILD) XM_PROP_VDM_CMD_REVERSE_AUTHEN, +#endif XM_PROP_CURRENT_STATE, XM_PROP_ADAPTER_ID, XM_PROP_ADAPTER_SVID, XM_PROP_PD_VERIFED, XM_PROP_PDO2, XM_PROP_UVDM_STATE, +#if !defined(CONFIG_VENUS_FOR_BUILD) /* use for MI SMART INTERCHG */ XM_PROP_VDM_CMD_SINK_SOC, +#endif /*****************/ XM_PROP_WLS_BIN, XM_PROP_FASTCHGMODE, @@ -273,6 +283,7 @@ enum xm_property_id { XM_PROP_THERMAL_TEMP, XM_PROP_TYPEC_MODE, XM_PROP_NIGHT_CHARGING, +#if !defined(CONFIG_VENUS_FOR_BUILD) XM_PROP_SMART_BATT, XM_PROP_FG1_QMAX, XM_PROP_FG1_RM, @@ -288,6 +299,7 @@ enum xm_property_id { XM_PROP_FG1_TREMQ, XM_PROP_FG1_TFULLQ, XM_PROP_FG_UPDATE_TIME, +#endif XM_PROP_MAX, }; enum { diff --git a/drivers/power/supply/qti_battery_charger_xiaomi.c b/drivers/power/supply/qti_battery_charger_xiaomi.c index b62382802104..92ccb699e3a4 100644 --- a/drivers/power/supply/qti_battery_charger_xiaomi.c +++ b/drivers/power/supply/qti_battery_charger_xiaomi.c @@ -1289,6 +1289,7 @@ static ssize_t cool_mode_show(struct class *c, struct class_attribute *attr, static CLASS_ATTR_RW(cool_mode); #endif +#if !defined(CONFIG_VENUS_FOR_BUILD) static ssize_t bt_transfer_start_store(struct class *c, struct class_attribute *attr, const char *buf, size_t count) @@ -1339,6 +1340,7 @@ static ssize_t bt_transfer_start_show(struct class *c, pst->prop[XM_PROP_BT_TRANSFER_START]); } static CLASS_ATTR_RW(bt_transfer_start); +#endif static ssize_t master_smb1396_online_show(struct class *c, struct class_attribute *attr, @@ -1746,6 +1748,7 @@ out: } static CLASS_ATTR_RW(reverse_chg_mode); +#if !defined(CONFIG_VENUS_FOR_BUILD) static ssize_t wls_tx_speed_store(struct class *c, struct class_attribute *attr, const char *buf, size_t count) { @@ -1777,6 +1780,7 @@ static ssize_t wls_tx_speed_show(struct class *c, struct class_attribute *attr, return scnprintf(buf, PAGE_SIZE, "%u", pst->prop[XM_PROP_WLS_TX_SPEED]); } static CLASS_ATTR_RW(wls_tx_speed); +#endif static ssize_t reverse_chg_state_show(struct class *c, struct class_attribute *attr, char *buf) @@ -2053,6 +2057,7 @@ static ssize_t night_charging_show(struct class *c, } static CLASS_ATTR_RW(night_charging); +#if !defined(CONFIG_VENUS_FOR_BUILD) static ssize_t smart_batt_store(struct class *c, struct class_attribute *attr, const char *buf, size_t count) { @@ -2089,6 +2094,7 @@ static ssize_t smart_batt_show(struct class *c, struct class_attribute *attr, return scnprintf(buf, PAGE_SIZE, "%u\n", pst->prop[XM_PROP_SMART_BATT]); } static CLASS_ATTR_RW(smart_batt); +#endif static ssize_t verify_process_store(struct class *c, struct class_attribute *attr, @@ -2166,12 +2172,14 @@ static void usbpd_request_vdm_cmd(struct battery_chg_dev *bcdev, val = *data; pr_err("AUTHENTICATION:data = %d\n", val); break; +#if !defined(CONFIG_VENUS_FOR_BUILD) case USBPD_UVDM_REVERSE_AUTHEN: prop_id = XM_PROP_VDM_CMD_REVERSE_AUTHEN; usbpd_sha256_bitswap32(data, USBPD_UVDM_SS_LEN); val = *data; pr_err("AUTHENTICATION:data = %d\n", val); break; +#endif case USBPD_UVDM_REMOVE_COMPENSATION: prop_id = XM_PROP_VDM_CMD_REMOVE_COMPENSATION; val = *data; @@ -2623,6 +2631,7 @@ static ssize_t typec_mode_show(struct class *c, struct class_attribute *attr, } static CLASS_ATTR_RO(typec_mode); +#if !defined(CONFIG_VENUS_FOR_BUILD) static ssize_t fg1_qmax_show(struct class *c, struct class_attribute *attr, char *buf) { @@ -2835,6 +2844,7 @@ static ssize_t fg1_tfullq_show(struct class *c, struct class_attribute *attr, return scnprintf(buf, PAGE_SIZE, "%d\n", pst->prop[XM_PROP_FG1_TFULLQ]); } static CLASS_ATTR_RO(fg1_tfullq); +#endif static struct attribute *xiaomi_battery_class_attrs[] = { &class_attr_wireless_register.attr, @@ -2887,7 +2897,9 @@ static struct attribute *xiaomi_battery_class_attrs[] = { &class_attr_bq2597x_battery_voltage.attr, &class_attr_cool_mode.attr, #endif +#if !defined(CONFIG_VENUS_FOR_BUILD) &class_attr_bt_transfer_start.attr, +#endif &class_attr_master_smb1396_online.attr, &class_attr_master_smb1396_iin.attr, &class_attr_slave_smb1396_online.attr, @@ -2914,7 +2926,9 @@ static struct attribute *xiaomi_battery_class_attrs[] = { &class_attr_op_mode.attr, &class_attr_wls_die_temp.attr, &class_attr_wls_car_adapter.attr, +#if !defined(CONFIG_VENUS_FOR_BUILD) &class_attr_wls_tx_speed.attr, +#endif #endif /*****************************/ &class_attr_input_suspend.attr, @@ -2938,6 +2952,7 @@ static struct attribute *xiaomi_battery_class_attrs[] = { &class_attr_qbg_temp.attr, &class_attr_typec_mode.attr, &class_attr_night_charging.attr, +#if !defined(CONFIG_VENUS_FOR_BUILD) &class_attr_smart_batt.attr, &class_attr_fg1_qmax.attr, &class_attr_fg1_rm.attr, @@ -2952,6 +2967,7 @@ static struct attribute *xiaomi_battery_class_attrs[] = { &class_attr_fg1_tambient.attr, &class_attr_fg1_tremq.attr, &class_attr_fg1_tfullq.attr, +#endif &class_attr_power_max.attr, NULL, };