Hi Balbi, On Mon, Feb 25, 2013 at 1:47 PM, Felipe Balbi <balbi@xxxxxx> wrote: > 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 > ... > I am actually hoping to change this to something like below (after of course changing the preprocessor conditionals) : commit 9a62ed948dcb6ac5d78aff41f5355c0a5ea86475 Author: Vivek Gautam <gautam.vivek@xxxxxxxxxxx> Date: Thu Jan 24 11:58:05 2013 +0530 usb: dwc3: Set GCTL.PrtCapDir based on selected mode. 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> diff --git a/drivers/usb/dwc3/core.c b/drivers/usb/dwc3/core.c index 79f335f..9444fbe 100644 --- a/drivers/usb/dwc3/core.c +++ b/drivers/usb/dwc3/core.c @@ -478,7 +478,13 @@ static int dwc3_probe(struct platform_device *pdev) goto err1; } - mode = DWC3_MODE(dwc->hwparams.hwparams0); +#if IS_ENABLED(CONFIG_USB_DWC3_HOST) + mode = DWC3_MODE_HOST; +#elif IS_ENABLED(CONFIG_USB_DWC3_GADGET) + mode = DWC3_MODE_DEVICE; +#else + mode = DWC3_MODE_DRD; +#endif switch (mode) { case DWC3_MODE_DEVICE: Since the mode is now software dependent, we can skip initializing gadget/host in case of Host-only/Gadget-only modes respectively. Can't guess how much this is valid though :-( > 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: > Right, very valid change. Missed this in earlier change :-( > 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 -- Thanks & Regards Vivek -- To unsubscribe from this list: send the line "unsubscribe linux-usb" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html