summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorFrank Gevaerts <frank@gevaerts.be>2008-12-13 14:49:44 +0000
committerFrank Gevaerts <frank@gevaerts.be>2008-12-13 14:49:44 +0000
commit19dfe330a1e48800a3f3ee73b9d1ee9266e87e2a (patch)
treeb63b8a138edf6364ed6e47acc61cc0e71b92a4e9
parente2b69ddffb9e731ef6c1bb1b704fe9038e999817 (diff)
downloadrockbox-19dfe330a1e48800a3f3ee73b9d1ee9266e87e2a.tar.gz
rockbox-19dfe330a1e48800a3f3ee73b9d1ee9266e87e2a.zip
Add a disconnect handler for usb storage. It doesn't do anything yet, but it will apparently be needed to reset the audio buffer
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@19418 a1c6a512-1295-4272-9138-f99709370657
-rw-r--r--firmware/usbstack/usb_core.c2
-rw-r--r--firmware/usbstack/usb_storage.c5
-rw-r--r--firmware/usbstack/usb_storage.h1
3 files changed, 7 insertions, 1 deletions
diff --git a/firmware/usbstack/usb_core.c b/firmware/usbstack/usb_core.c
index 72900d830f..ea5d6590f6 100644
--- a/firmware/usbstack/usb_core.c
+++ b/firmware/usbstack/usb_core.c
@@ -187,7 +187,7 @@ static struct usb_class_driver drivers[USB_NUM_DRIVERS] =
187 .get_config_descriptor = usb_storage_get_config_descriptor, 187 .get_config_descriptor = usb_storage_get_config_descriptor,
188 .init_connection = usb_storage_init_connection, 188 .init_connection = usb_storage_init_connection,
189 .init = usb_storage_init, 189 .init = usb_storage_init,
190 .disconnect = NULL, 190 .disconnect = usb_storage_disconnect,
191 .transfer_complete = usb_storage_transfer_complete, 191 .transfer_complete = usb_storage_transfer_complete,
192 .control_request = usb_storage_control_request, 192 .control_request = usb_storage_control_request,
193#ifdef HAVE_HOTSWAP 193#ifdef HAVE_HOTSWAP
diff --git a/firmware/usbstack/usb_storage.c b/firmware/usbstack/usb_storage.c
index 5e97796db0..475bd4c00a 100644
--- a/firmware/usbstack/usb_storage.c
+++ b/firmware/usbstack/usb_storage.c
@@ -418,6 +418,11 @@ void usb_storage_init_connection(void)
418 usb_drv_recv(ep_out, tb.transfer_buffer, 1024); 418 usb_drv_recv(ep_out, tb.transfer_buffer, 1024);
419} 419}
420 420
421void usb_storage_disconnect(void)
422{
423 /* Empty for now */
424}
425
421/* called by usb_core_transfer_complete() */ 426/* called by usb_core_transfer_complete() */
422void usb_storage_transfer_complete(int ep,int dir,int status,int length) 427void usb_storage_transfer_complete(int ep,int dir,int status,int length)
423{ 428{
diff --git a/firmware/usbstack/usb_storage.h b/firmware/usbstack/usb_storage.h
index 4c89039bfd..8344419770 100644
--- a/firmware/usbstack/usb_storage.h
+++ b/firmware/usbstack/usb_storage.h
@@ -27,6 +27,7 @@ int usb_storage_request_endpoints(struct usb_class_driver *);
27int usb_storage_set_first_interface(int interface); 27int usb_storage_set_first_interface(int interface);
28int usb_storage_get_config_descriptor(unsigned char *dest,int max_packet_size); 28int usb_storage_get_config_descriptor(unsigned char *dest,int max_packet_size);
29void usb_storage_init_connection(void); 29void usb_storage_init_connection(void);
30void usb_storage_disconnect(void);
30void usb_storage_init(void); 31void usb_storage_init(void);
31void usb_storage_transfer_complete(int ep,int dir,int state,int length); 32void usb_storage_transfer_complete(int ep,int dir,int state,int length);
32bool usb_storage_control_request(struct usb_ctrlrequest* req); 33bool usb_storage_control_request(struct usb_ctrlrequest* req);