summaryrefslogtreecommitdiffstats
path: root/drivers/usb/dwc3/core.h
diff options
context:
space:
mode:
authorFelipe Balbi <balbi@ti.com>2011-10-12 10:31:04 +0300
committerFelipe Balbi <balbi@ti.com>2011-12-12 11:48:11 +0200
commit9f622b2a407d8b34a5a7f5b4abd8b29b25cf4f32 (patch)
treea80c6f48a8f1c4fd70d0865b027035d3f8e0d44e /drivers/usb/dwc3/core.h
parent6c167fc9b0c23ead791edb94cf4debb6b8e534b5 (diff)
downloadop-kernel-dev-9f622b2a407d8b34a5a7f5b4abd8b29b25cf4f32.zip
op-kernel-dev-9f622b2a407d8b34a5a7f5b4abd8b29b25cf4f32.tar.gz
usb: dwc3: calculate number of event buffers dynamically
This will allow us to only allocate memory when we actually need. Signed-off-by: Felipe Balbi <balbi@ti.com>
Diffstat (limited to 'drivers/usb/dwc3/core.h')
-rw-r--r--drivers/usb/dwc3/core.h8
1 files changed, 6 insertions, 2 deletions
diff --git a/drivers/usb/dwc3/core.h b/drivers/usb/dwc3/core.h
index b7d56c3..4b6c673 100644
--- a/drivers/usb/dwc3/core.h
+++ b/drivers/usb/dwc3/core.h
@@ -52,7 +52,7 @@
/* Global constants */
#define DWC3_ENDPOINTS_NUM 32
-#define DWC3_EVENT_BUFFERS_NUM 2
+#define DWC3_EVENT_BUFFERS_MAX 2
#define DWC3_EVENT_BUFFERS_SIZE PAGE_SIZE
#define DWC3_EVENT_TYPE_MASK 0xfe
@@ -536,6 +536,8 @@ struct dwc3_hwparams {
u32 hwparams8;
};
+#define DWC3_NUM_INT(n) (((n) & (0x3f << 15)) >> 15)
+
/**
* struct dwc3 - representation of our controller
* @ctrl_req: usb control request which is used for ep0
@@ -555,6 +557,7 @@ struct dwc3_hwparams {
* @regs: base address for our registers
* @regs_size: address space size
* @irq: IRQ number
+ * @num_event_buffers: calculated number of event buffers
* @maximum_speed: maximum speed requested (mainly for testing purposes)
* @revision: revision register contents
* @is_selfpowered: true when we are selfpowered
@@ -585,7 +588,7 @@ struct dwc3 {
spinlock_t lock;
struct device *dev;
- struct dwc3_event_buffer *ev_buffs[DWC3_EVENT_BUFFERS_NUM];
+ struct dwc3_event_buffer *ev_buffs[DWC3_EVENT_BUFFERS_MAX];
struct dwc3_ep *eps[DWC3_ENDPOINTS_NUM];
struct usb_gadget gadget;
@@ -596,6 +599,7 @@ struct dwc3 {
int irq;
+ u32 num_event_buffers;
u32 maximum_speed;
u32 revision;
OpenPOWER on IntegriCloud