Loading drivers/usb/pd/policy_engine.c +3 −6 Original line number Diff line number Diff line Loading @@ -489,13 +489,10 @@ static int pd_send_msg(struct usbpd *pd, u8 msg_type, const u32 *data, hdr = PD_MSG_HDR(msg_type, pd->current_dr, pd->current_pr, pd->tx_msgid, num_data, pd->spec_rev); ret = pd_phy_write(hdr, (u8 *)data, num_data * sizeof(u32), sop, 15); /* TODO figure out timeout. based on tReceive=1.1ms x nRetryCount? */ if (ret < 0) ret = pd_phy_write(hdr, (u8 *)data, num_data * sizeof(u32), sop); if (ret) return ret; else if (ret != num_data * sizeof(u32)) return -EIO; pd->tx_msgid = (pd->tx_msgid + 1) & PD_MAX_MSG_ID; return 0; Loading Loading @@ -596,7 +593,7 @@ static void pd_send_hard_reset(struct usbpd *pd) /* Force CC logic to source/sink to keep Rp/Rd unchanged */ set_power_role(pd, pd->current_pr); pd->hard_reset_count++; pd_phy_signal(HARD_RESET_SIG, 5); /* tHardResetComplete */ pd_phy_signal(HARD_RESET_SIG); pd->in_pr_swap = false; power_supply_set_property(pd->usb_psy, POWER_SUPPLY_PROP_PR_SWAP, &val); } Loading drivers/usb/pd/qpnp-pdphy.c +14 −10 Original line number Diff line number Diff line Loading @@ -80,6 +80,10 @@ #define VDD_PDPHY_VOL_MAX 3300000 /* uV */ #define VDD_PDPHY_HPM_LOAD 3000 /* uA */ /* timers */ #define RECEIVER_RESPONSE_TIME 15 /* tReceiverResponse */ #define HARD_RESET_COMPLETE_TIME 5 /* tHardResetComplete */ struct usb_pdphy { struct device *dev; struct regmap *regmap; Loading Loading @@ -401,14 +405,13 @@ int pd_phy_open(struct pd_phy_params *params) } EXPORT_SYMBOL(pd_phy_open); int pd_phy_signal(enum pd_sig_type sig, unsigned int timeout_ms) int pd_phy_signal(enum pd_sig_type sig) { u8 val; int ret; struct usb_pdphy *pdphy = __pdphy; dev_dbg(pdphy->dev, "%s: type %d timeout %u\n", __func__, sig, timeout_ms); dev_dbg(pdphy->dev, "%s: type %d\n", __func__, sig); if (!pdphy) { pr_err("%s: pdphy not found\n", __func__); Loading Loading @@ -436,7 +439,8 @@ int pd_phy_signal(enum pd_sig_type sig, unsigned int timeout_ms) return ret; ret = wait_event_interruptible_timeout(pdphy->tx_waitq, pdphy->tx_status != -EINPROGRESS, msecs_to_jiffies(timeout_ms)); pdphy->tx_status != -EINPROGRESS, msecs_to_jiffies(HARD_RESET_COMPLETE_TIME)); if (ret <= 0) { dev_err(pdphy->dev, "%s: failed ret %d", __func__, ret); return ret ? ret : -ETIMEDOUT; Loading @@ -455,16 +459,15 @@ int pd_phy_signal(enum pd_sig_type sig, unsigned int timeout_ms) } EXPORT_SYMBOL(pd_phy_signal); int pd_phy_write(u16 hdr, const u8 *data, size_t data_len, enum pd_sop_type sop, unsigned int timeout_ms) int pd_phy_write(u16 hdr, const u8 *data, size_t data_len, enum pd_sop_type sop) { u8 val; int ret; size_t total_len = data_len + USB_PDPHY_MSG_HDR_LEN; struct usb_pdphy *pdphy = __pdphy; dev_dbg(pdphy->dev, "%s: hdr %x frame sop_type %d timeout %u\n", __func__, hdr, sop, timeout_ms); dev_dbg(pdphy->dev, "%s: hdr %x frame sop_type %d\n", __func__, hdr, sop); if (data && data_len) print_hex_dump_debug("tx data obj:", DUMP_PREFIX_NONE, 32, 4, Loading Loading @@ -525,7 +528,8 @@ int pd_phy_write(u16 hdr, const u8 *data, size_t data_len, return ret; ret = wait_event_interruptible_timeout(pdphy->tx_waitq, pdphy->tx_status != -EINPROGRESS, msecs_to_jiffies(timeout_ms)); pdphy->tx_status != -EINPROGRESS, msecs_to_jiffies(RECEIVER_RESPONSE_TIME)); if (ret <= 0) { dev_err(pdphy->dev, "%s: failed ret %d", __func__, ret); return ret ? ret : -ETIMEDOUT; Loading @@ -534,7 +538,7 @@ int pd_phy_write(u16 hdr, const u8 *data, size_t data_len, if (hdr && !pdphy->tx_status) pdphy->tx_bytes += data_len + USB_PDPHY_MSG_HDR_LEN; return pdphy->tx_status ? pdphy->tx_status : data_len; return pdphy->tx_status ? pdphy->tx_status : 0; } EXPORT_SYMBOL(pd_phy_write); Loading drivers/usb/pd/usbpd.h +4 −4 Original line number Diff line number Diff line Loading @@ -72,9 +72,9 @@ struct pd_phy_params { #if IS_ENABLED(CONFIG_QPNP_USB_PDPHY) int pd_phy_open(struct pd_phy_params *params); int pd_phy_signal(enum pd_sig_type sig, unsigned int timeout_ms); int pd_phy_signal(enum pd_sig_type sig); int pd_phy_write(u16 hdr, const u8 *data, size_t data_len, enum pd_sop_type sop, unsigned int timeout_ms); enum pd_sop_type sop); int pd_phy_update_roles(enum data_role dr, enum power_role pr); void pd_phy_close(void); #else Loading @@ -83,13 +83,13 @@ static inline int pd_phy_open(struct pd_phy_params *params) return -ENODEV; } static inline int pd_phy_signal(enum pd_sig_type type, unsigned int timeout_ms) static inline int pd_phy_signal(enum pd_sig_type type) { return -ENODEV; } static inline int pd_phy_write(u16 hdr, const u8 *data, size_t data_len, enum pd_sop_type sop, unsigned int timeout_ms) enum pd_sop_type sop) { return -ENODEV; } Loading Loading
drivers/usb/pd/policy_engine.c +3 −6 Original line number Diff line number Diff line Loading @@ -489,13 +489,10 @@ static int pd_send_msg(struct usbpd *pd, u8 msg_type, const u32 *data, hdr = PD_MSG_HDR(msg_type, pd->current_dr, pd->current_pr, pd->tx_msgid, num_data, pd->spec_rev); ret = pd_phy_write(hdr, (u8 *)data, num_data * sizeof(u32), sop, 15); /* TODO figure out timeout. based on tReceive=1.1ms x nRetryCount? */ if (ret < 0) ret = pd_phy_write(hdr, (u8 *)data, num_data * sizeof(u32), sop); if (ret) return ret; else if (ret != num_data * sizeof(u32)) return -EIO; pd->tx_msgid = (pd->tx_msgid + 1) & PD_MAX_MSG_ID; return 0; Loading Loading @@ -596,7 +593,7 @@ static void pd_send_hard_reset(struct usbpd *pd) /* Force CC logic to source/sink to keep Rp/Rd unchanged */ set_power_role(pd, pd->current_pr); pd->hard_reset_count++; pd_phy_signal(HARD_RESET_SIG, 5); /* tHardResetComplete */ pd_phy_signal(HARD_RESET_SIG); pd->in_pr_swap = false; power_supply_set_property(pd->usb_psy, POWER_SUPPLY_PROP_PR_SWAP, &val); } Loading
drivers/usb/pd/qpnp-pdphy.c +14 −10 Original line number Diff line number Diff line Loading @@ -80,6 +80,10 @@ #define VDD_PDPHY_VOL_MAX 3300000 /* uV */ #define VDD_PDPHY_HPM_LOAD 3000 /* uA */ /* timers */ #define RECEIVER_RESPONSE_TIME 15 /* tReceiverResponse */ #define HARD_RESET_COMPLETE_TIME 5 /* tHardResetComplete */ struct usb_pdphy { struct device *dev; struct regmap *regmap; Loading Loading @@ -401,14 +405,13 @@ int pd_phy_open(struct pd_phy_params *params) } EXPORT_SYMBOL(pd_phy_open); int pd_phy_signal(enum pd_sig_type sig, unsigned int timeout_ms) int pd_phy_signal(enum pd_sig_type sig) { u8 val; int ret; struct usb_pdphy *pdphy = __pdphy; dev_dbg(pdphy->dev, "%s: type %d timeout %u\n", __func__, sig, timeout_ms); dev_dbg(pdphy->dev, "%s: type %d\n", __func__, sig); if (!pdphy) { pr_err("%s: pdphy not found\n", __func__); Loading Loading @@ -436,7 +439,8 @@ int pd_phy_signal(enum pd_sig_type sig, unsigned int timeout_ms) return ret; ret = wait_event_interruptible_timeout(pdphy->tx_waitq, pdphy->tx_status != -EINPROGRESS, msecs_to_jiffies(timeout_ms)); pdphy->tx_status != -EINPROGRESS, msecs_to_jiffies(HARD_RESET_COMPLETE_TIME)); if (ret <= 0) { dev_err(pdphy->dev, "%s: failed ret %d", __func__, ret); return ret ? ret : -ETIMEDOUT; Loading @@ -455,16 +459,15 @@ int pd_phy_signal(enum pd_sig_type sig, unsigned int timeout_ms) } EXPORT_SYMBOL(pd_phy_signal); int pd_phy_write(u16 hdr, const u8 *data, size_t data_len, enum pd_sop_type sop, unsigned int timeout_ms) int pd_phy_write(u16 hdr, const u8 *data, size_t data_len, enum pd_sop_type sop) { u8 val; int ret; size_t total_len = data_len + USB_PDPHY_MSG_HDR_LEN; struct usb_pdphy *pdphy = __pdphy; dev_dbg(pdphy->dev, "%s: hdr %x frame sop_type %d timeout %u\n", __func__, hdr, sop, timeout_ms); dev_dbg(pdphy->dev, "%s: hdr %x frame sop_type %d\n", __func__, hdr, sop); if (data && data_len) print_hex_dump_debug("tx data obj:", DUMP_PREFIX_NONE, 32, 4, Loading Loading @@ -525,7 +528,8 @@ int pd_phy_write(u16 hdr, const u8 *data, size_t data_len, return ret; ret = wait_event_interruptible_timeout(pdphy->tx_waitq, pdphy->tx_status != -EINPROGRESS, msecs_to_jiffies(timeout_ms)); pdphy->tx_status != -EINPROGRESS, msecs_to_jiffies(RECEIVER_RESPONSE_TIME)); if (ret <= 0) { dev_err(pdphy->dev, "%s: failed ret %d", __func__, ret); return ret ? ret : -ETIMEDOUT; Loading @@ -534,7 +538,7 @@ int pd_phy_write(u16 hdr, const u8 *data, size_t data_len, if (hdr && !pdphy->tx_status) pdphy->tx_bytes += data_len + USB_PDPHY_MSG_HDR_LEN; return pdphy->tx_status ? pdphy->tx_status : data_len; return pdphy->tx_status ? pdphy->tx_status : 0; } EXPORT_SYMBOL(pd_phy_write); Loading
drivers/usb/pd/usbpd.h +4 −4 Original line number Diff line number Diff line Loading @@ -72,9 +72,9 @@ struct pd_phy_params { #if IS_ENABLED(CONFIG_QPNP_USB_PDPHY) int pd_phy_open(struct pd_phy_params *params); int pd_phy_signal(enum pd_sig_type sig, unsigned int timeout_ms); int pd_phy_signal(enum pd_sig_type sig); int pd_phy_write(u16 hdr, const u8 *data, size_t data_len, enum pd_sop_type sop, unsigned int timeout_ms); enum pd_sop_type sop); int pd_phy_update_roles(enum data_role dr, enum power_role pr); void pd_phy_close(void); #else Loading @@ -83,13 +83,13 @@ static inline int pd_phy_open(struct pd_phy_params *params) return -ENODEV; } static inline int pd_phy_signal(enum pd_sig_type type, unsigned int timeout_ms) static inline int pd_phy_signal(enum pd_sig_type type) { return -ENODEV; } static inline int pd_phy_write(u16 hdr, const u8 *data, size_t data_len, enum pd_sop_type sop, unsigned int timeout_ms) enum pd_sop_type sop) { return -ENODEV; } Loading