Merge "usb: dwc3-msm: LPM capability only when otg/gadget mode is supported"

This commit is contained in:
qctecmdr 2024-01-24 13:08:26 -08:00 committed by Gerrit - the friendly Code Review server
commit cb395276d9

View File

@ -548,6 +548,7 @@ struct dwc3_msm {
unsigned long inputs;
enum dwc3_drd_state drd_state;
enum usb_dr_mode dr_mode;
bool otg_capable;
enum bus_vote default_bus_vote;
enum bus_vote override_bus_vote;
struct icc_path *icc_paths[3];
@ -5345,6 +5346,10 @@ static ssize_t enable_l1_suspend_show(struct device *dev,
struct dwc3_msm *mdwc = dev_get_drvdata(dev);
struct dwc3 *dwc = platform_get_drvdata(mdwc->dwc3);
/* gadget lpm capability only when otg/gadget mode is supported */
if (!(mdwc->otg_capable) && (dwc->dr_mode == USB_DR_MODE_HOST))
return -EPERM;
return scnprintf(buf, PAGE_SIZE, "%d\n", dwc->gadget->lpm_capable);
}
@ -5358,6 +5363,10 @@ static ssize_t enable_l1_suspend_store(struct device *dev,
bool enable_l1;
int ret;
/* gadget lpm capability only when otg/gadget mode is supported */
if (!(mdwc->otg_capable) && (dwc->dr_mode == USB_DR_MODE_HOST))
return -EPERM;
ret = kstrtobool(buf, &enable_l1);
if (ret < 0) {
dev_err(dwc->dev, "%s: can't get entered value: %d\n",
@ -6352,6 +6361,7 @@ static int dwc3_msm_probe(struct platform_device *pdev)
.allow_userspace_control = true,
};
mdwc->otg_capable = true;
role_desc.fwnode = dev_fwnode(&pdev->dev);
mdwc->role_switch = usb_role_switch_register(mdwc->dev,
&role_desc);