UPSTREAM: usb: xhci: Set number of event segments and entries to 1

The Linux kernel driver sets the number of event segments and entries
to 1 , while the initial import of the xhci code set that values to 3
for reasons unknown. While most controllers are fine with more event
segments with more entries, there are standard-conformant controllers
(ie. Renesas RCar xHCI) which only support 1 event segment.

Set the number of event segments and event entries back to 1 to allow
such controllers to work with U-Boot xHCI stack. Note that the Renesas
controller correctly indicates ERST Max = 1 in HCSPARAMS2[7:4] .

Change-Id: I378b544259833998b54b1e78e8dc0daa3e0d0f3f
Signed-off-by: Marek Vasut <marek.vasut+renesas@gmail.com>
Cc: Bin Meng <bmeng.cn@gmail.com>
Signed-off-by: Kever Yang <kever.yang@rock-chips.com>
(cherry picked from commit 7489d22a3c73b527c21c147f3547e8cc02484e47)
This commit is contained in:
Marek Vasut 2017-09-12 23:02:08 +02:00 committed by Kever Yang
parent 3152629475
commit 1d5ed4d069
1 changed files with 2 additions and 2 deletions

View File

@ -1045,9 +1045,9 @@ struct xhci_scratchpad {
* (1K bytes * 8bytes/bit) / (4*32 bits) = 64 segment entries in the table, * (1K bytes * 8bytes/bit) / (4*32 bits) = 64 segment entries in the table,
* meaning 64 ring segments. * meaning 64 ring segments.
* Initial allocated size of the ERST, in number of entries */ * Initial allocated size of the ERST, in number of entries */
#define ERST_NUM_SEGS 3 #define ERST_NUM_SEGS 1
/* Initial number of event segment rings allocated */ /* Initial number of event segment rings allocated */
#define ERST_ENTRIES 3 #define ERST_ENTRIES 1
/* Initial allocated size of the ERST, in number of entries */ /* Initial allocated size of the ERST, in number of entries */
#define ERST_SIZE 64 #define ERST_SIZE 64
/* Poll every 60 seconds */ /* Poll every 60 seconds */