Hi, On Tue, Feb 05, 2013 at 07:15:58PM +0530, Vivek Gautam wrote: > Now that machines may select the mode of working of DWC3, > we can set the Port capability direction based on selected mode. > > Signed-off-by: Vivek Gautam <gautam.vivek@xxxxxxxxxxx> > --- > drivers/usb/dwc3/core.c | 11 ++++++++--- > 1 files changed, 8 insertions(+), 3 deletions(-) > > diff --git a/drivers/usb/dwc3/core.c b/drivers/usb/dwc3/core.c > index 177f4c6..f4c47f7 100644 > --- a/drivers/usb/dwc3/core.c > +++ b/drivers/usb/dwc3/core.c > @@ -479,7 +479,6 @@ static int dwc3_probe(struct platform_device *pdev) > > switch (mode) { > case DWC3_MODE_DEVICE: > - dwc3_set_mode(dwc, DWC3_GCTL_PRTCAP_DEVICE); > ret = dwc3_gadget_init(dwc); > if (ret) { > dev_err(dev, "failed to initialize gadget\n"); > @@ -487,7 +486,6 @@ static int dwc3_probe(struct platform_device *pdev) > } > break; > case DWC3_MODE_HOST: > - dwc3_set_mode(dwc, DWC3_GCTL_PRTCAP_HOST); > ret = dwc3_host_init(dwc); > if (ret) { > dev_err(dev, "failed to initialize host\n"); > @@ -495,7 +493,6 @@ static int dwc3_probe(struct platform_device *pdev) > } > break; > case DWC3_MODE_DRD: > - dwc3_set_mode(dwc, DWC3_GCTL_PRTCAP_OTG); > ret = dwc3_host_init(dwc); > if (ret) { > dev_err(dev, "failed to initialize host\n"); > @@ -514,6 +511,14 @@ static int dwc3_probe(struct platform_device *pdev) > } > dwc->mode = mode; > > +#if IS_ENABLED(CONFIG_USB_DWC3_HOST) > + dwc3_set_mode(dwc, DWC3_GCTL_PRTCAP_HOST); > +#elif IS_ENABLED(CONFIG_USB_DWC3_GADGET) > + dwc3_set_mode(dwc, DWC3_GCTL_PRTCAP_DEVICE); > +#else > + dwc3_set_mode(dwc, DWC3_GCTL_PRTCAP_OTG); > +#endif you can actually use: if (IS_ENABLED(CONFIG_USB_DWC3_HOST)) dwc3_set_mode(dwc... else if (IS_ENABLED( ... ... else ... instead of pre-processor conditionals. In fact, I have recently written a patch converting #if IS_ENABLED() to if (IS_ENABLED()) but I haven't posted yet: commit 42dbbbc272bc941ec2b0cac51342609e61e13a01 Author: Felipe Balbi <balbi@xxxxxx> Date: Fri Feb 22 16:24:49 2013 +0200 usb: dwc3: debugfs: improve debugfs file creation when commit 388e5c5 (usb: dwc3: remove dwc3 dependency on host AND gadget.) changed the way debugfs files are created, it failed to note that 'mode' is necessary in Dual Role mode only while 'testmode' and 'link_state' are valid in Dual Role and Peripheral-only builds. Fix this while also converting pre- processor conditional to C conditionals. Signed-off-by: Felipe Balbi <balbi@xxxxxx> diff --git a/drivers/usb/dwc3/debugfs.c b/drivers/usb/dwc3/debugfs.c index a1bac9a..8b23d045 100644 --- a/drivers/usb/dwc3/debugfs.c +++ b/drivers/usb/dwc3/debugfs.c @@ -667,28 +667,31 @@ int dwc3_debugfs_init(struct dwc3 *dwc) goto err1; } -#if IS_ENABLED(CONFIG_USB_DWC3_GADGET) - file = debugfs_create_file("mode", S_IRUGO | S_IWUSR, root, - dwc, &dwc3_mode_fops); - if (!file) { - ret = -ENOMEM; - goto err1; + if (IS_ENABLED(CONFIG_USB_DWC3_DUAL_ROLE)) { + file = debugfs_create_file("mode", S_IRUGO | S_IWUSR, root, + dwc, &dwc3_mode_fops); + if (!file) { + ret = -ENOMEM; + goto err1; + } } - file = debugfs_create_file("testmode", S_IRUGO | S_IWUSR, root, - dwc, &dwc3_testmode_fops); - if (!file) { - ret = -ENOMEM; - goto err1; - } - - file = debugfs_create_file("link_state", S_IRUGO | S_IWUSR, root, - dwc, &dwc3_link_state_fops); - if (!file) { - ret = -ENOMEM; - goto err1; + if (IS_ENABLED(CONFIG_USB_DWC3_DUAL_ROLE) || + IS_ENABLED(CONFIG_USB_DWC3_GADGET)) { + file = debugfs_create_file("testmode", S_IRUGO | S_IWUSR, root, + dwc, &dwc3_testmode_fops); + if (!file) { + ret = -ENOMEM; + goto err1; + } + + file = debugfs_create_file("link_state", S_IRUGO | S_IWUSR, root, + dwc, &dwc3_link_state_fops); + if (!file) { + ret = -ENOMEM; + goto err1; + } } -#endif return 0; -- balbi
Attachment:
signature.asc
Description: Digital signature