[PATCH] ARM: dts: bcm283x: Fix fifo size for EP 6,7

Minas Harutyunyan Minas.Harutyunyan at synopsys.com
Mon Nov 27 04:34:00 PST 2017


Hi Stefan,

On 11/23/2017 10:29 PM, Stefan Wahren wrote:
> Hi Minas,
> 
>> Minas Harutyunyan <Minas.Harutyunyan at synopsys.com> hat am 23. November 2017 um 11:00 geschrieben:
>>
>>
>> Hi Stefan,
>>
>> ...
>>
>> In addition to above patches please apply this one:
>>
>> diff --git a/drivers/usb/dwc2/core.c b/drivers/usb/dwc2/core.c
>> index 42ac47f85bb4..7db50c27c061 100644
>> --- a/drivers/usb/dwc2/core.c
>> +++ b/drivers/usb/dwc2/core.c
>> @@ -433,6 +433,14 @@ void dwc2_force_mode(struct dwc2_hsotg *hsotg, bool
>> host)
>>           dwc2_writel(gusbcfg, hsotg->regs + GUSBCFG);
>>
>>           dwc2_wait_for_mode(hsotg, host);
>> +
>> +       /* Reset after mode changed. Required to restore
>> +        * 'power on reset' values for chosen mode
>> +        */
>> +       if (dwc2_core_reset(hsotg, true))
>> +               dev_err(hsotg->dev,
>> +                       "%s: Reset failed, aborting", __func__);
>> +
>>           return;
>>    }
>>
> 
> now i get this output in the unconnected case:
> 
> [    2.203265] dwc2 20980000.usb: dwc2_check_params: Invalid parameter host_perio_tx_fifo_size=0
> [    2.223595] dwc2 20980000.usb: EPs: 8, dedicated fifos, 4080 entries in SPRAM
> [    2.237313] dwc2 20980000.usb: DCFG=0x00200000, DCTL=0x00000000, DIEPMSK=00000000
> [    2.251241] dwc2 20980000.usb: GAHBCFG=0x00000000, GHWCFG1=0x00000000
> [    2.264092] dwc2 20980000.usb: GRXFSIZ=0x00001000, GNPTXFSIZ=0x00201000
> [    2.276997] dwc2 20980000.usb: DPTx[1] FSize=512, StAddr=0x00001020
> [    2.289533] dwc2 20980000.usb: DPTx[2] FSize=512, StAddr=0x00001220
> [    2.301811] dwc2 20980000.usb: DPTx[3] FSize=512, StAddr=0x00001420
> [    2.313895] dwc2 20980000.usb: DPTx[4] FSize=512, StAddr=0x00001620
> [    2.325905] dwc2 20980000.usb: DPTx[5] FSize=512, StAddr=0x00001820
> [    2.337737] dwc2 20980000.usb: DPTx[6] FSize=768, StAddr=0x00001a20
> [    2.349314] dwc2 20980000.usb: DPTx[7] FSize=768, StAddr=0x00001d20
> [    2.360658] dwc2 20980000.usb: ep0-in: EPCTL=0x00008800, SIZ=0x00000000, DMA=0xc7cc399d
> [    2.373898] dwc2 20980000.usb: ep0-out: EPCTL=0x00008000, SIZ=0x00000000, DMA=0x4369542a
> [    2.391729] dwc2 20980000.usb: ep1-in: EPCTL=0x00001000, SIZ=0x00000000, DMA=0x3cf1e8ff
> [    2.405310] dwc2 20980000.usb: ep1-out: EPCTL=0x00000000, SIZ=0x00000000, DMA=0xfee68e5b
> [    2.424087] dwc2 20980000.usb: ep2-in: EPCTL=0x00001800, SIZ=0x00000000, DMA=0x250c46a5
> [    2.438198] dwc2 20980000.usb: ep2-out: EPCTL=0x00000000, SIZ=0x00000000, DMA=0x09126d05
> [    2.458271] dwc2 20980000.usb: ep3-in: EPCTL=0x00002000, SIZ=0x00000000, DMA=0xad3adfdb
> [    2.472553] dwc2 20980000.usb: ep3-out: EPCTL=0x00000000, SIZ=0x00000000, DMA=0x975be477
> [    2.492567] dwc2 20980000.usb: ep4-in: EPCTL=0x00002800, SIZ=0x00000000, DMA=0x4b1c0566
> [    2.506976] dwc2 20980000.usb: ep4-out: EPCTL=0x00000000, SIZ=0x00000000, DMA=0x1790a498
> [    2.527472] dwc2 20980000.usb: ep5-in: EPCTL=0x00003000, SIZ=0x00000000, DMA=0xd73f7ded
> [    2.541993] dwc2 20980000.usb: ep5-out: EPCTL=0x00000000, SIZ=0x00000000, DMA=0x37bc32ff
> [    2.562397] dwc2 20980000.usb: ep6-in: EPCTL=0x00003800, SIZ=0x00000000, DMA=0xc6ac6b1e
> [    2.576850] dwc2 20980000.usb: ep6-out: EPCTL=0x00000000, SIZ=0x00000000, DMA=0xdd2f97d1
> [    2.597308] dwc2 20980000.usb: ep7-in: EPCTL=0x00004000, SIZ=0x00000000, DMA=0xeb84b4fb
> [    2.612023] dwc2 20980000.usb: ep7-out: EPCTL=0x00000000, SIZ=0x00000000, DMA=0xfadeb4e6
> [    2.633447] dwc2 20980000.usb: DVBUSDIS=0x000017d7, DVBUSPULSE=000005b8
> [    2.647954] dwc2 20980000.usb: DWC OTG Controller
> [    2.660187] dwc2 20980000.usb: new USB bus registered, assigned bus number 1
> [    2.674855] dwc2 20980000.usb: irq 33, io mem 0x20980000
> [    2.689352] hub 1-0:1.0: USB hub found
> [    2.700837] hub 1-0:1.0: 1 port detected
> [    2.716013] dwc2 20980000.usb: Mode Mismatch Interrupt: currently in Device mode
> 
> and this in connected case:
> 
> [    2.203259] dwc2 20980000.usb: dwc2_check_param_tx_fifo_sizes: Invalid parameter g_tx_fifo_size[6]=768
> [    2.224317] dwc2 20980000.usb: dwc2_check_param_tx_fifo_sizes: Invalid parameter g_tx_fifo_size[7]=768
> [    2.245984] dwc2 20980000.usb: EPs: 8, dedicated fifos, 4080 entries in SPRAM
> [    2.260139] dwc2 20980000.usb: DCFG=0x00000000, DCTL=0x00000000, DIEPMSK=00000000
> [    2.274290] dwc2 20980000.usb: GAHBCFG=0x00000000, GHWCFG1=0x00000000
> [    2.287245] dwc2 20980000.usb: GRXFSIZ=0x00001000, GNPTXFSIZ=0x01001000
> [    2.300289] dwc2 20980000.usb: DPTx[1] FSize=512, StAddr=0x00002000
> [    2.313124] dwc2 20980000.usb: DPTx[2] FSize=512, StAddr=0x00002000
> [    2.325661] dwc2 20980000.usb: DPTx[3] FSize=512, StAddr=0x00002000
> [    2.338103] dwc2 20980000.usb: DPTx[4] FSize=512, StAddr=0x00002000
> [    2.350176] dwc2 20980000.usb: DPTx[5] FSize=512, StAddr=0x00002000
> [    2.361982] dwc2 20980000.usb: DPTx[6] FSize=512, StAddr=0x00002000
> [    2.373877] dwc2 20980000.usb: DPTx[7] FSize=512, StAddr=0x00002000
> [    2.385304] dwc2 20980000.usb: ep0-in: EPCTL=0x00000800, SIZ=0x00000000, DMA=0xc7cc3f81
> [    2.398589] dwc2 20980000.usb: ep0-out: EPCTL=0x00000800, SIZ=0x00000000, DMA=0xc7cc3f81
> [    2.417158] dwc2 20980000.usb: ep1-in: EPCTL=0x00001000, SIZ=0x00000000, DMA=0x3cf1e8ff
> [    2.430986] dwc2 20980000.usb: ep1-out: EPCTL=0x00001000, SIZ=0x00000000, DMA=0x3cf1e8ff
> [    2.450726] dwc2 20980000.usb: ep2-in: EPCTL=0x00001800, SIZ=0x00000000, DMA=0x200c4625
> [    2.464986] dwc2 20980000.usb: ep2-out: EPCTL=0x00001800, SIZ=0x00000000, DMA=0x200c4625
> [    2.485186] dwc2 20980000.usb: ep3-in: EPCTL=0x00002000, SIZ=0x00000000, DMA=0xad1adfdb
> [    2.499834] dwc2 20980000.usb: ep3-out: EPCTL=0x00002000, SIZ=0x00000000, DMA=0xad1adfdb
> [    2.520314] dwc2 20980000.usb: ep4-in: EPCTL=0x00002800, SIZ=0x00000000, DMA=0x4b1c0466
> [    2.534866] dwc2 20980000.usb: ep4-out: EPCTL=0x00002800, SIZ=0x00000000, DMA=0x4b1c0466
> [    2.555389] dwc2 20980000.usb: ep5-in: EPCTL=0x00003000, SIZ=0x00000000, DMA=0xd73f3dac
> [    2.570072] dwc2 20980000.usb: ep5-out: EPCTL=0x00003000, SIZ=0x00000000, DMA=0xd73f3dac
> [    2.590527] dwc2 20980000.usb: ep6-in: EPCTL=0x00003800, SIZ=0x00000000, DMA=0xe4ac4b9e
> [    2.604888] dwc2 20980000.usb: ep6-out: EPCTL=0x00003800, SIZ=0x00000000, DMA=0xe4ac4b9e
> [    2.625322] dwc2 20980000.usb: ep7-in: EPCTL=0x00004000, SIZ=0x00000000, DMA=0xeba4b4fa
> [    2.639961] dwc2 20980000.usb: ep7-out: EPCTL=0x00004000, SIZ=0x00000000, DMA=0xeba4b4fa
> [    2.661274] dwc2 20980000.usb: DVBUSDIS=0x0000ea60, DVBUSPULSE=000005b8
> [    2.675659] dwc2 20980000.usb: DWC OTG Controller
> [    2.687646] dwc2 20980000.usb: new USB bus registered, assigned bus number 1
> [    2.702170] dwc2 20980000.usb: irq 33, io mem 0x20980000
> [    2.716838] hub 1-0:1.0: USB hub found
> [    2.728318] hub 1-0:1.0: 1 port detected
> 
>>
>> Core reset required after mode forcing to get power on reset values for
>> chosen mode.
>>
>> One question. This debug print:
>>
>> EPs: 8, dedicated fifos, 4080 entries in SPRAM
>>
>> Assume that you didn't apply second patch c6f7e1c.diff. Am I right?
> 
> No, but its possible that the 2nd patch doesn't have the effect on top of 4.14.
> 
>> By
>> applying mentioned patch SPRAM entries should changed to 4096.
>>
>> BTW, your update of first patch is correct. Sorry for sending wrong
>> patch, that patch assume that applied another series of patches which
>> not in mainline Kernel yet.
> 
> Btw your patch above doesn't apply cleanly. dwc2_force_mode() have a result code in mainline.
> 
> Regards
> Stefan
> 
>>
>> Thanks,
>> Minas
>>
> 

Could you please add printout of core mode (host or device) before 
filling hsotg->hw_params.g_tx_fifo_size[fifo] array and each elements of 
array in function dwc2_get_hwparams(). Please provide log for both 
unconnect and connect cases.

Thanks,
Minas



More information about the linux-rpi-kernel mailing list