From df745fde2320f0901b670095ee35382bfd264361 Mon Sep 17 00:00:00 2001 From: Luo Jinghua Date: Tue, 8 Jun 2010 01:01:48 -0700 Subject: [PATCH] --- yaml --- r: 202173 b: refs/heads/master c: 1719ec4136035472d3e83a373908dd1b186dbc0b h: refs/heads/master i: 202171: 0db9d6f835c5f295e37e3bb8e6607dd64cc2957a v: v3 --- [refs] | 2 +- trunk/drivers/input/mouse/bcm5974.c | 21 ++++++++++++++------- 2 files changed, 15 insertions(+), 8 deletions(-) diff --git a/[refs] b/[refs] index f8946b974150..18cdc5a9b896 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: 4aa5bbeca0fe561181e8fba089cd96e449ee5fca +refs/heads/master: 1719ec4136035472d3e83a373908dd1b186dbc0b diff --git a/trunk/drivers/input/mouse/bcm5974.c b/trunk/drivers/input/mouse/bcm5974.c index 6dedded27222..354c578ec9d3 100644 --- a/trunk/drivers/input/mouse/bcm5974.c +++ b/trunk/drivers/input/mouse/bcm5974.c @@ -580,23 +580,30 @@ static void bcm5974_irq_trackpad(struct urb *urb) */ static int bcm5974_start_traffic(struct bcm5974 *dev) { - if (bcm5974_wellspring_mode(dev, true)) { + int error; + + error = bcm5974_wellspring_mode(dev, true); + if (error) { dprintk(1, "bcm5974: mode switch failed\n"); - goto error; + goto err_out; } - if (usb_submit_urb(dev->bt_urb, GFP_KERNEL)) - goto error; + error = usb_submit_urb(dev->bt_urb, GFP_KERNEL); + if (error) + goto err_reset_mode; - if (usb_submit_urb(dev->tp_urb, GFP_KERNEL)) + error = usb_submit_urb(dev->tp_urb, GFP_KERNEL); + if (error) goto err_kill_bt; return 0; err_kill_bt: usb_kill_urb(dev->bt_urb); -error: - return -EIO; +err_reset_mode: + bcm5974_wellspring_mode(dev, false); +err_out: + return error; } static void bcm5974_pause_traffic(struct bcm5974 *dev)