Re: [PATCH 2/2] usb: dwc2: gadget reuse ahbcfg assigned from platform

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



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




[Index of Archives]     [Linux Media]     [Linux Input]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]     [Old Linux USB Devel Archive]

  Powered by Linux