usb: asix: Move software resets to basic_init
authorJulius Werner <jwerner@chromium.org>
Sat, 11 May 2013 20:35:02 +0000 (13:35 -0700)
committerMarek Vasut <marex@denx.de>
Wed, 12 Jun 2013 20:22:51 +0000 (22:22 +0200)
commit4edcf0a3dfd3cfa6b6c99dd1c893b7c96aa52d12
treeb1f26322628de13153d0e4ff293e9d23d8783f45
parented10e66aba4d6a0151dc6dff2fa93d5fd19bc8a2
usb: asix: Move software resets to basic_init

The ASIX driver calls a basic_init() function during get_info(), so that
not all initialization tasks need to be redone on every init().
Unfortunately, the most important one is still triggered too often: the
driver does a full port and MII reset on every asix_init(), requiring up
to several seconds to reestablish the link.

This patch confines that software reset into the asix_basic_init()
function so that it will only be executed once. This saves about a
second of boot time on systems using BOOTP.

Note: this patch was previously submitted many moons ago as:

   usb: usbeth: asix: Do a fast init if link already established

That patch seens to have been lost or forgotten, so this is a rebased
version. It is tested on snow with a Asix USB dongle (Cisco).

Signed-off-by: Julius Werner <jwerner@chromium.org>
Signed-off-by: Simon Glass <sjg@chromium.org>
Reviewed-by: Simon Glass <sjg@chromium.org>
Reviewed-by: Vadim Bendebury <vbendeb@chromium.org>
drivers/usb/eth/asix.c