can: kvaser_usb: add retries/timeout to kvaser_usb_wait_msg()
authorOlivier Sobrie <olivier@sobrie.be>
Thu, 10 Apr 2014 19:44:21 +0000 (21:44 +0200)
committerMarc Kleine-Budde <mkl@pengutronix.de>
Thu, 24 Apr 2014 20:54:16 +0000 (22:54 +0200)
commite59e36e7333702d1d835113ced85243bb7f30f99
treed440b886917c2095cacb9259634eaa6d7c602314
parent869ba1e67a894f45ba3da32af66f25104fab7d8f
can: kvaser_usb: add retries/timeout to kvaser_usb_wait_msg()

On some Kvaser hardware, the firmware returns extra messages after the
request for card info. For instance on a Leaf Light v2:
  --> CMD_GET_CARD_INFO
  <-- CMD_USB_THROTTLE
  <-- CMD_GET_CARD_INFO2
  <-- CMD_GET_CARD_INFO_REQ
When it happens, the probing function fails because we only read
the first usb message.

To overcome this issue, we add a mechanism of retries to the
kvaser_usb_wait_msg() function.

I tested this patch with the following hardware:
 - Kvaser Leaf Light
 - Kvaser Leaf Light v2
 - Kvaser USBCan R

This patch is necessary for the Leaf Light v2 hardware.

Signed-off-by: Olivier Sobrie <olivier@sobrie.be>
Signed-off-by: Marc Kleine-Budde <mkl@pengutronix.de>
drivers/net/can/usb/kvaser_usb.c