Repository navigation
phy: qcom: qmp-combo: Select LFPS detect only when SS link is confirm… - #1358
tapas-rana2811 wants to merge 1 commit into
Conversation
…ed present qmp_combo_enable_autonomous_mode() picks the autonomous-mode wake interrupt mask by comparing qmp->phy_mode against PHY_MODE_USB_HOST_SS/PHY_MODE_USB_DEVICE_SS. This combo phy's set_mode() only ever stores PHY_MODE_USB_HOST or PHY_MODE_USB_DEVICE (dwc3 core and dwc3-qcom never pass the _SS/_HS/_FS/_LS variants to this driver), so the comparison is always false and the phy is stuck selecting ARCVR_DTCT_EN | ARCVR_DTCT_EVENT_SEL regardless of whether a SuperSpeed device is actually attached, instead of using LFPS detection (ALFPS_DTCT_EN) when appropriate. Rather than growing the already overloaded enum phy_mode USB_*_SS/HS/ FS/LS split further, carry live SS-link presence through the existing generic submode argument of phy_set_mode_ext(), as a new enum qcom_usb_ss_state (UNKNOWN/PRESENT/ABSENT) shared via include/linux/phy/phy-qcom-qmp-usb-ss.h. dwc3-qcom determines the state from the USB3 root hub's attached child speed at suspend entry and passes it down via phy_set_mode_ext(phy, PHY_MODE_USB_HOST, ss_state); qmp_combo_usb_set_mode() validates and stores it, and qmp_combo_enable_autonomous_mode() switches on it to pick the interrupt mask. Signed-off-by: Tapas Rana <taparana@qti.qualcomm.com>
|
Merge Check Failed: CR Not Eligible for Merge CR 4673342 is not eligible for merge. The parent software image for kernel.qli.2.0 is not development complete. Entity: Please ensure the CR passes both CCT (ComponentChangeTasks) and ICT (Integration Change Tasks) validations. |
PR #1358 — validate-patchPR: #1358
Final Summary
|
PR #1358 — checker-log-analyzerPR: #1358
Detailed report: Full report
|
…ed present
qmp_combo_enable_autonomous_mode() picks the autonomous-mode wake
interrupt mask by comparing qmp->phy_mode against
PHY_MODE_USB_HOST_SS/PHY_MODE_USB_DEVICE_SS. This combo phy's
set_mode() only ever stores PHY_MODE_USB_HOST or PHY_MODE_USB_DEVICE
(dwc3 core and dwc3-qcom never pass the _SS/_HS/_FS/_LS variants to
this driver), so the comparison is always false and the phy is stuck
selecting ARCVR_DTCT_EN | ARCVR_DTCT_EVENT_SEL regardless of whether a
SuperSpeed device is actually attached, instead of using LFPS
detection (ALFPS_DTCT_EN) when appropriate.
Rather than growing the already overloaded enum phy_mode USB_*_SS/HS/
FS/LS split further, carry live SS-link presence through the existing
generic submode argument of phy_set_mode_ext(), as a new
enum qcom_usb_ss_state (UNKNOWN/PRESENT/ABSENT) shared via
include/linux/phy/phy-qcom-qmp-usb-ss.h. dwc3-qcom determines the
state from the USB3 root hub's attached child speed at suspend entry
and passes it down via phy_set_mode_ext(phy, PHY_MODE_USB_HOST,
ss_state); qmp_combo_usb_set_mode() validates and stores it, and
qmp_combo_enable_autonomous_mode() switches on it to pick the
interrupt mask.
CRs-fixed: 4673342