mirror of
https://github.com/BobTheBlinker/android_kernel_motorola_sm6375.git
synced 2026-10-11 23:24:22 -04:00
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:
parent
c4404c1548
commit
7c645fdccc
5 changed files with 30 additions and 6 deletions
|
|
@ -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;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -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;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
|
|
|||
|
|
@ -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)
|
||||
|
|
|
|||
Loading…
Reference in a new issue