Revert "Revert "(CR): charging: Don't switch dpdm from AP to pmic when host mode""

https://gerrit.mot.com/#/c/2290827/  have fixed build error, 
so restore this change.

This reverts commit ca848f95330b1df33ef437247e478f976b2884c2.

Change-Id: I96d70452970902b240c56c3ada748f9ad822d06e
Reviewed-on: https://gerrit.mot.com/2294495
SME-Granted: SME Approvals Granted
SLTApproved: Slta Waiver
Tested-by: Jira Key
Reviewed-by: Huosheng Liao <liaohs@motorola.com>
Submit-Approved: Jira Key
This commit is contained in:
Haijian Ma 2022-06-09 10:16:46 +08:00
commit 7c645fdccc
5 changed files with 30 additions and 6 deletions

View file

@ -202,8 +202,6 @@ struct pe_ctrl {
};
static struct pe_ctrl pe;
extern bool mmi_is_factory_mode(void);
static int bq2589x_read_byte(struct bq2589x *bq, u8 *data, u8 reg)
{
int ret;
@ -1527,7 +1525,7 @@ static bq2589x_reuqest_dpdm(struct bq2589x *bq, bool enable)
{
int ret = 0;
if(mmi_is_factory_mode() && bq->ignore_request_dpdm) {
if(bq->ignore_request_dpdm) {
dev_err(bq->dev, "%s ignore_request_dpdm\n", __func__);
return ret;
}

View file

@ -79,8 +79,6 @@ static enum power_supply_usb_type sgm4154x_usb_type[] = {
POWER_SUPPLY_USB_TYPE_CDP,
};
extern bool mmi_is_factory_mode(void);
#define WAIT_I2C_COUNT 50
#define WAIT_I2C_TIME 10
int mmi_regmap_update_bits(struct sgm4154x_device *sgm, unsigned int reg,
@ -1391,7 +1389,7 @@ static int sgm4154x_request_dpdm(struct sgm4154x_device *sgm, bool enable)
{
int rc = 0;
if(mmi_is_factory_mode() && sgm->ignore_request_dpdm) {
if(sgm->ignore_request_dpdm) {
dev_err(sgm->dev, "%s ignore_request_dpdm\n", __func__);
return rc;
}

View file

@ -50,4 +50,5 @@ include $(CLEAR_VARS)
LOCAL_MODULE_TAGS := optional
LOCAL_MODULE := rt_pd_manager.ko
LOCAL_MODULE_PATH := $(KERNEL_MODULES_OUT)
LOCAL_ADDITIONAL_DEPENDENCIES := $(KERNEL_MODULES_OUT)/mmi_discrete_charger_class.ko
include $(DLKM_DIR)/AndroidKernelModule.mk

View file

@ -48,3 +48,4 @@ obj-m += tcpc_class.o
obj-m += rt_pd_manager.o
KBUILD_EXTRA_SYMBOLS += $(CURDIR)/$(KBUILD_EXTMOD)/../adapter_class/$(GKI_OBJ_MODULE_DIR)/Module.symvers
KBUILD_EXTRA_SYMBOLS += $(CURDIR)/$(KBUILD_EXTMOD)/../../../power/mmi_discrete_charger/$(GKI_OBJ_MODULE_DIR)/Module.symvers

View file

@ -24,6 +24,7 @@
#include <linux/iio/consumer.h>
#include "inc/tcpci_typec.h"
#include <linux/mmi_discrete_power_supply.h>
#include <linux/mmi_discrete_charger_class.h>
#define RT_PD_MANAGER_VERSION "0.0.8_G"
@ -68,6 +69,8 @@ struct rt_pd_manager_data {
struct typec_partner *partner;
struct typec_partner_desc partner_desc;
struct usb_pd_identity partner_identity;
struct charger_device *master_chg_dev;
};
static const unsigned int rpm_extcon_cable[] = {
@ -163,9 +166,31 @@ out:
return ret;
}
static void mmi_ignore_require_dpdm(struct rt_pd_manager_data *rpmd, bool value)
{
int rc = 0;
if (!rpmd->master_chg_dev)
rpmd->master_chg_dev = get_charger_by_name("master_chg");
if (!rpmd->master_chg_dev)
return;
if (value) {
rc = charger_dev_set_dp_dm(rpmd->master_chg_dev,
MMI_POWER_SUPPLY_IGNORE_REQUEST_DPDM);
dev_info(rpmd->dev, "%s ignore dp dm request rc=%d\n", rc? "Couldn't" : " ", rc);
} else {
rc = charger_dev_set_dp_dm(rpmd->master_chg_dev,
MMI_POWER_SUPPLY_DONOT_IGNORE_REQUEST_DPDM);
dev_info(rpmd->dev, "%s enable dp dm request rc=%d\n", rc? "Couldn't" : " ", rc);
}
}
static inline void stop_usb_host(struct rt_pd_manager_data *rpmd)
{
extcon_set_state_sync(rpmd->extcon, EXTCON_USB_HOST, false);
mmi_ignore_require_dpdm(rpmd, false);
}
static inline void start_usb_host(struct rt_pd_manager_data *rpmd)
@ -181,6 +206,7 @@ static inline void start_usb_host(struct rt_pd_manager_data *rpmd)
EXTCON_PROP_USB_SS, val);
extcon_set_state_sync(rpmd->extcon, EXTCON_USB_HOST, true);
mmi_ignore_require_dpdm(rpmd, true);
}
static inline void stop_usb_peripheral(struct rt_pd_manager_data *rpmd)