From c905cffeb4aa87ea18050b8748e18864d3beefe7 Mon Sep 17 00:00:00 2001 From: schulz Date: Wed, 30 Jan 2019 20:03:58 +0000 Subject: [PATCH] get width of xfer size and packet count fields in DWC. Initialize list of finished transfers git-svn-id: https://svn.aros.org/svn/aros/trunk/AROS@55656 fb15a70f-31f2-0310-bbcc-cdcc74a49acc --- .../soc/broadcom/2708/usb/usb2otg/usb2otg_device.c | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/arch/arm-native/soc/broadcom/2708/usb/usb2otg/usb2otg_device.c b/arch/arm-native/soc/broadcom/2708/usb/usb2otg/usb2otg_device.c index 04d02e2e6e..00e58ae3d7 100644 --- a/arch/arm-native/soc/broadcom/2708/usb/usb2otg/usb2otg_device.c +++ b/arch/arm-native/soc/broadcom/2708/usb/usb2otg/usb2otg_device.c @@ -128,6 +128,10 @@ static int FNAME_DEV(Init)(LIBBASETYPEPTR USB2OTGBase) if ((AROS_LE2LONG(PwrOnMsg[6]) & 2) != 0) { bug("[USB2OTG] USB HCD does not exist\n"); + + for (int i=0; i < 8; i++) + bug("[USB2OTG] %08x\n", PwrOnMsg[i]); + USB2OTGBase = NULL; } } @@ -179,6 +183,7 @@ static int FNAME_DEV(Init)(LIBBASETYPEPTR USB2OTGBase) NewList(&USB2OTGBase->hd_Unit->hu_TDQueue); NewList(&USB2OTGBase->hd_Unit->hu_AbortQueue); NewList(&USB2OTGBase->hd_Unit->hu_PeriodicTDQueue); + NewList(&USB2OTGBase->hd_Unit->hu_FinishedXfers); USB2OTGBase->hd_Unit->hu_PendingInt.is_Node.ln_Type = NT_INTERRUPT; USB2OTGBase->hd_Unit->hu_PendingInt.is_Node.ln_Name = "OTG2USB Pending Work Interrupt"; @@ -259,10 +264,18 @@ static int FNAME_DEV(Init)(LIBBASETYPEPTR USB2OTGBase) D(bug("[USB2OTG] %s: Enabling DMA configuration..\n", __PRETTY_FUNCTION__)); otg_RegVal = rd32le(USB2OTG_AHB); otg_RegVal &= ~(1 << USB2OTG_AHB_DMAREMAINDERMODE); + otg_RegVal &= ~(0x1f); otg_RegVal |= (1 << 4) | (USB2OTG_AHB_DMAENABLE|USB2OTG_AHB_DMAREMAINDERMODE_INCR); D(bug("[USB2OTG] %s: AHB reg: %08x..\n", __PRETTY_FUNCTION__, otg_RegVal)); wr32le(USB2OTG_AHB, otg_RegVal); + otg_RegVal = rd32le(USB2OTG_HARDWARE3); + USB2OTGBase->hd_Unit->hu_XferSizeWidth = 11 + (otg_RegVal & 0x0f); + USB2OTGBase->hd_Unit->hu_PktSizeWidth = 4 + ((otg_RegVal >> 4) & 0x07); + + bug("[USB2OTG] %s: XferSizeWidth = %d, PktSizeWidth = %d\n", __PRETTY_FUNCTION__, + USB2OTGBase->hd_Unit->hu_XferSizeWidth, USB2OTGBase->hd_Unit->hu_PktSizeWidth); + #if (0) D(bug("[USB2OTG] %s: Operating Mode: ", __PRETTY_FUNCTION__)); otg_RegVal = rd32le(USB2OTG_HARDWARE2); -- 2.11.4.GIT