* [PATCH] [HID] hid-sony: regression probing a SIXAXIS controller - wrong return value
@ 2008-12-30 22:15 Richard Nauber
2009-01-03 1:21 ` Jiri Kosina
0 siblings, 1 reply; 2+ messages in thread
From: Richard Nauber @ 2008-12-30 22:15 UTC (permalink / raw)
To: jkosina; +Cc: linux-input
This patch fixes a regression introduced in bd28ce00. It occurs when
attaching a Sony SIXAXIS controller:
input: Sony PLAYSTATION(R)3 Controller as
/devices/pci0000:00/0000:00:1d.0/usb2/2-1/2-1:1.0/input/input9
sony 0003:054C:0268.0006: input,hiddev96,hidraw0: USB HID v1.11 Joystick
[Sony PLAYSTATION(R)3 Controller] on usb-0000:00:1d.0-1/input0
sony: probe of 0003:054C:0268.0006 failed with error 17
The reason for this nasty behavior is a wrong return value emitted by
sony_set_operational().
Carry on playing with your Christmas gifts,
Richard
Signed-off-by: Richard Nauber <Richard.Nauber@web.de>
---
diff --git a/drivers/hid/hid-sony.c b/drivers/hid/hid-sony.c
index 86e563b..e807d2f 100644
--- a/drivers/hid/hid-sony.c
+++ b/drivers/hid/hid-sony.c
@@ -65,12 +65,15 @@ static int sony_set_operational(struct hid_device *hdev)
USB_RECIP_INTERFACE,
(3 << 8) | 0xf2, ifnum, buf, 17,
USB_CTRL_GET_TIMEOUT);
- if (ret < 0)
- dev_err(&hdev->dev, "can't set operational mode\n");
kfree(buf);
- return ret;
+ if (ret <= 0) {
+ dev_err(&hdev->dev, "can't set operational mode\n");
+ return (ret ? ret : -EIO );
+ }
+
+ return 0;
}
static int sony_probe(struct hid_device *hdev, const struct
hid_device_id *id)
--
^ permalink raw reply related [flat|nested] 2+ messages in thread
end of thread, other threads:[~2009-01-03 1:21 UTC | newest]
Thread overview: 2+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2008-12-30 22:15 [PATCH] [HID] hid-sony: regression probing a SIXAXIS controller - wrong return value Richard Nauber
2009-01-03 1:21 ` Jiri Kosina
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.