if (ret < 0)
dev_err(dev, "%s read msg header error\n", __func__);
+ if (pdic_data->header.spec_revision < 2 &&
+ pdic_data->header.num_data_objs > 0 &&
+ pdic_data->header.msg_type == 6) {
+ usleep_range(500, 900);
+ ret = s2mu106_read_msg_header(i2c, &pdic_data->header);
+ if (ret < 0)
+ dev_err(dev, "%s read msg header error\n", __func__);
+ }
+
obj_num = pdic_data->header.num_data_objs;
if (obj_num > 0) {
CHECK_MSG(pd_data, MSG_VCONN_SWAP, PE_VCS_Evaluate_Swap);
CHECK_MSG(pd_data, MSG_GET_SRC_CAP, PE_DR_SNK_Give_Source_Cap);
CHECK_MSG(pd_data, MSG_BIST, PE_BIST_Receive_Mode);
+ CHECK_MSG(pd_data, MSG_SRC_CAP, PE_SNK_Evaluate_Capability);
#if 0
CHECK_MSG(pd_data, VDM_DISCOVER_IDENTITY, PE_UFP_VDM_Get_Identity);