Messages in this thread Patch in this message | | | From | Ravi Babu <> | Subject | [PATCH v1 2/3] usb: musb: core: added babble recovery func-ptr to musb->ops | Date | Wed, 29 May 2013 18:37:03 +0530 |
| |
Adding babble_recovery operation as part of musb->ops, used to recover from babble condition during babble interrupt.
Signed-off-by: Ravi Babu <ravibabu@ti.com> --- drivers/usb/musb/musb_core.c | 6 ++++++ drivers/usb/musb/musb_core.h | 7 +++++++ 2 files changed, 13 insertions(+), 0 deletions(-)
diff --git a/drivers/usb/musb/musb_core.c b/drivers/usb/musb/musb_core.c index ab6fa39..411c29d 100644 --- a/drivers/usb/musb/musb_core.c +++ b/drivers/usb/musb/musb_core.c @@ -857,6 +857,12 @@ b_host: } } + /* handle babble condition */ + if (int_usb & MUSB_INTR_BABBLE) { + pr_info("babble: restarting the musb controller.."); + musb_babble_recovery(musb); + } + #if 0 /* REVISIT ... this would be for multiplexing periodic endpoints, or * supporting transfer phasing to prevent exceeding ISO bandwidth diff --git a/drivers/usb/musb/musb_core.h b/drivers/usb/musb/musb_core.h index f96e899..bf37dc9 100644 --- a/drivers/usb/musb/musb_core.h +++ b/drivers/usb/musb/musb_core.h @@ -213,6 +213,8 @@ struct musb_platform_ops { int (*adjust_channel_params)(struct dma_channel *channel, u16 packet_sz, u8 *mode, dma_addr_t *dma_addr, u32 *len); + + void (*babble_recovery)(struct musb *musb); }; /* @@ -590,4 +592,9 @@ static inline int musb_platform_exit(struct musb *musb) return musb->ops->exit(musb); } +static inline void musb_babble_recovery(struct musb *musb) +{ + if (musb->ops->babble_recovery) + musb->ops->babble_recovery(musb); +} #endif /* __MUSB_CORE_H__ */ -- 1.7.0.4
| |