On 2/6/2015 6:02 AM, Zhangfei Gao wrote: > On 6 February 2015 at 16:07, Kaukab, Yousaf <yousaf.kaukab@xxxxxxxxx> wrote: >>>>> GAHBCFG_HBSTLEN_INCR4 << diff --git a/drivers/usb/dwc2/gadget.c >>>>> b/drivers/usb/dwc2/gadget.c index 15aa578..20085de 100644 >>>>> --- a/drivers/usb/dwc2/gadget.c >>>>> +++ b/drivers/usb/dwc2/gadget.c >>>>> @@ -2314,9 +2314,13 @@ void s3c_hsotg_core_init_disconnected(struct >>>>> dwc2_hsotg *hsotg, >>>>> GINTSTS_USBSUSP | GINTSTS_WKUPINT, >>>>> hsotg->regs + GINTMSK); >>>>> >>>>> + if ((hsotg->core_params) && (hsotg->core_params->ahbcfg != - >>>>> 1)) >>>>> + val = hsotg->core_params->ahbcfg & >>>>> ~GAHBCFG_CTRL_MASK; >>>>> + else >>>>> + val = GAHBCFG_HBSTLEN_INCR4 << >>>>> GAHBCFG_HBSTLEN_SHIFT; >>>>> + >>>>> if (using_dma(hsotg)) >>>>> - writel(GAHBCFG_GLBL_INTR_EN | >>>>> GAHBCFG_DMA_EN | >>>>> - (GAHBCFG_HBSTLEN_INCR4 << >>>>> GAHBCFG_HBSTLEN_SHIFT), >>>>> + writel(GAHBCFG_GLBL_INTR_EN | >>>>> GAHBCFG_DMA_EN | val, >>>>> hsotg->regs + GAHBCFG); >>>>> else >>>>> writel(((hsotg->dedicated_fifos) ? >>>>> (GAHBCFG_NP_TXF_EMP_LVL | >>>> >>>> There are other bits in GAHBCFG that can be set from platform. They will be >>> preserved by your patch, as they are not part of GAHBCFG_CTRL_MASK, but >>> only in case dma is enabled. Perhaps preserve them in non-dma case as well. >>> >>> Here may have issue if also set hsotg->core_params->ahbcfg for non-dma case, >>> since GAHBCFG[4:1] may be set. >> >> You can mask off HBstLen in that case. However, I don't think setting burst length will be an issue in non DMA case as DWC2 will not act as a bus master. John, can you please confirm if setting burst length will be an issue in non-dma case? I don't think it hurts to preserve those bits, but I will check. > diff --git a/drivers/usb/dwc2/core.c b/drivers/usb/dwc2/core.c index > d5197d4..8d388cc 100644 > --- a/drivers/usb/dwc2/core.c > +++ b/drivers/usb/dwc2/core.c > @@ -2563,7 +2563,7 @@ void dwc2_set_param_reload_ctl(struct dwc2_hsotg > *hsotg, int val) > > void dwc2_set_param_ahbcfg(struct dwc2_hsotg *hsotg, int val) { > - if (val != -1) > + if (val) > hsotg->core_params->ahbcfg = val; > else > hsotg->core_params->ahbcfg = Doesn't this already takes care of setting a default value if unset? So you can leave this unchanged and just use the value in gadget.c without any further checking. Regards, John -- 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