1
0
Fork 0
forked from len0rd/rockbox

Possibly better USB handling

git-svn-id: svn://svn.rockbox.org/rockbox/trunk@1419 a1c6a512-1295-4272-9138-f99709370657
This commit is contained in:
Linus Nielsen Feltzing 2002-07-23 15:02:25 +00:00
parent adfbc11960
commit 2f4b88e9bb
2 changed files with 27 additions and 32 deletions

View file

@ -125,7 +125,6 @@ int ata_read_sectors(unsigned long start,
if ( sleeping ) { if ( sleeping ) {
if (ata_soft_reset()) { if (ata_soft_reset()) {
mutex_unlock(&ata_mtx);
return -1; return -1;
} }
} }
@ -184,7 +183,6 @@ int ata_write_sectors(unsigned long start,
if ( sleeping ) { if ( sleeping ) {
if (ata_soft_reset()) { if (ata_soft_reset()) {
mutex_unlock(&ata_mtx);
return -1; return -1;
} }
} }
@ -462,6 +460,7 @@ int ata_init(void)
ata_enable(true); ata_enable(true);
if ( !initialized ) {
if (master_slave_detect()) if (master_slave_detect())
return -1; return -1;
@ -474,7 +473,6 @@ int ata_init(void)
if (freeze_lock()) if (freeze_lock())
return -4; return -4;
if ( !initialized ) {
queue_init(&ata_queue); queue_init(&ata_queue);
create_thread(ata_thread, ata_stack, create_thread(ata_thread, ata_stack,
sizeof(ata_stack), ata_thread_name); sizeof(ata_stack), ata_thread_name);

View file

@ -32,9 +32,7 @@
#include "button.h" #include "button.h"
#include "sprintf.h" #include "sprintf.h"
#ifdef ARCHOS_RECORDER extern void dbg_ports(void); /* NASTY! defined in apps/ */
extern void dbg_ports(void);
#endif
#define USB_REALLY_BRAVE #define USB_REALLY_BRAVE
@ -86,6 +84,7 @@ static void usb_slave_mode(bool on)
if(on) if(on)
{ {
DEBUGF("Entering USB slave mode\n"); DEBUGF("Entering USB slave mode\n");
ata_soft_reset();
ata_enable(false); ata_enable(false);
usb_enable(true); usb_enable(true);
} }
@ -101,16 +100,14 @@ static void usb_slave_mode(bool on)
rc = ata_init(); rc = ata_init();
if(rc) if(rc)
{ {
#ifdef ARCHOS_RECORDER
char str[32]; char str[32];
lcd_clear_display(); lcd_clear_display();
snprintf(str, 31, "ATA error: %d", rc); snprintf(str, 31, "ATA error: %d", rc);
lcd_puts(0, 1, str); lcd_puts(0, 0, str);
lcd_puts(0, 3, "Press ON to debug"); lcd_puts(0, 1, "Press ON to debug");
lcd_update(); lcd_update();
while(button_get(true) != BUTTON_ON) {}; while(button_get(true) != BUTTON_ON) {};
dbg_ports(); dbg_ports();
#endif
panicf("ata: %d",rc); panicf("ata: %d",rc);
} }