summaryrefslogtreecommitdiff
path: root/firmware/usbstack/drivers
diff options
context:
space:
mode:
authorChristian Gmeiner <christian.gmeiner@gmail.com>2007-08-28 20:50:41 +0000
committerChristian Gmeiner <christian.gmeiner@gmail.com>2007-08-28 20:50:41 +0000
commit4474d6827c5f08bd0e9a9ba91fc8bf149df21d28 (patch)
tree4926ee8a2bd49f4c76062724f28d01a471d63b53 /firmware/usbstack/drivers
parent195ef597f5347d29a75eacad3f674bf635e791e5 (diff)
downloadrockbox-4474d6827c5f08bd0e9a9ba91fc8bf149df21d28.zip
rockbox-4474d6827c5f08bd0e9a9ba91fc8bf149df21d28.tar.gz
rockbox-4474d6827c5f08bd0e9a9ba91fc8bf149df21d28.tar.bz2
rockbox-4474d6827c5f08bd0e9a9ba91fc8bf149df21d28.tar.xz
binding a device driver could fail.. handle this case
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@14493 a1c6a512-1295-4272-9138-f99709370657
Diffstat (limited to 'firmware/usbstack/drivers')
-rw-r--r--firmware/usbstack/drivers/device/usb_serial.c5
-rw-r--r--firmware/usbstack/drivers/device/usb_serial.h2
-rw-r--r--firmware/usbstack/drivers/device/usb_storage.c5
-rw-r--r--firmware/usbstack/drivers/device/usb_storage.h4
4 files changed, 9 insertions, 7 deletions
diff --git a/firmware/usbstack/drivers/device/usb_serial.c b/firmware/usbstack/drivers/device/usb_serial.c
index 7299dc6..0e6d7bf 100644
--- a/firmware/usbstack/drivers/device/usb_serial.c
+++ b/firmware/usbstack/drivers/device/usb_serial.c
@@ -169,7 +169,7 @@ void usb_serial_driver_init(void)
/*-------------------------------------------------------------------------*/
-void usb_serial_driver_bind(void* controler_ops)
+int usb_serial_driver_bind(void* controler_ops)
{
logf("usb serial: bind");
ops = controler_ops;
@@ -201,10 +201,11 @@ void usb_serial_driver_bind(void* controler_ops)
serial_debug_desc.bDebugInEndpoint = dev.in->ep_num;
serial_debug_desc.bDebugOutEndpoint = dev.out->ep_num;
- return;
+ return 0;
autoconf_fail:
logf("failed to find endpoints");
+ return -EOPNOTSUPP;
}
int usb_serial_driver_request(struct usb_ctrlrequest* request)
diff --git a/firmware/usbstack/drivers/device/usb_serial.h b/firmware/usbstack/drivers/device/usb_serial.h
index 657a233..8b9d968 100644
--- a/firmware/usbstack/drivers/device/usb_serial.h
+++ b/firmware/usbstack/drivers/device/usb_serial.h
@@ -25,7 +25,7 @@
/* register serial driver in usb stack */
void usb_serial_driver_init(void);
-void usb_serial_driver_bind(void* controller_ops);
+int usb_serial_driver_bind(void* controller_ops);
int usb_serial_driver_request(struct usb_ctrlrequest* req);
void usb_serial_driver_speed(enum usb_device_speed speed);
diff --git a/firmware/usbstack/drivers/device/usb_storage.c b/firmware/usbstack/drivers/device/usb_storage.c
index 3db379c..7d7ab8c 100644
--- a/firmware/usbstack/drivers/device/usb_storage.c
+++ b/firmware/usbstack/drivers/device/usb_storage.c
@@ -160,7 +160,7 @@ void usb_storage_driver_init(void)
/*-------------------------------------------------------------------------*/
/* device driver ops */
-void usb_storage_driver_bind(void* controler_ops)
+int usb_storage_driver_bind(void* controler_ops)
{
ops = controler_ops;
@@ -181,10 +181,11 @@ void usb_storage_driver_bind(void* controler_ops)
dev.out->claimed = true;
logf("usb storage: out: %s", dev.out->name);
- return;
+ return 0;
autoconf_fail:
logf("failed to find endpoints");
+ return -EOPNOTSUPP;
}
int usb_storage_driver_request(struct usb_ctrlrequest* request)
diff --git a/firmware/usbstack/drivers/device/usb_storage.h b/firmware/usbstack/drivers/device/usb_storage.h
index ff4b187..efd20fe 100644
--- a/firmware/usbstack/drivers/device/usb_storage.h
+++ b/firmware/usbstack/drivers/device/usb_storage.h
@@ -22,10 +22,10 @@
#include "usbstack/core.h"
-/* register serial driver in usb stack */
+/* register storage driver in usb stack */
void usb_storage_driver_init(void);
-void usb_storage_driver_bind(void* controller_ops);
+int usb_storage_driver_bind(void* controller_ops);
int usb_storage_driver_request(struct usb_ctrlrequest* req);
void usb_storage_driver_speed(enum usb_device_speed speed);