summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMichael Sevakis <jethead71@rockbox.org>2008-05-17 16:19:58 +0000
committerMichael Sevakis <jethead71@rockbox.org>2008-05-17 16:19:58 +0000
commitd587247ebdde98058bcd90911e1d10147bd1fab5 (patch)
treecd0d59da67f96eb7d9fdc40bb88e9c611bedba58
parentc8c0f4590bd0564689cbc28155d368b84d17f369 (diff)
downloadrockbox-d587247ebdde98058bcd90911e1d10147bd1fab5.zip
rockbox-d587247ebdde98058bcd90911e1d10147bd1fab5.tar.gz
rockbox-d587247ebdde98058bcd90911e1d10147bd1fab5.tar.bz2
rockbox-d587247ebdde98058bcd90911e1d10147bd1fab5.tar.xz
Actually remove the ata lock hack code for that had been used for iPod Video 60/80. It has been disabled for awhile anyway and the problem that nescessitated it really appears resolved.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@17558 a1c6a512-1295-4272-9138-f99709370657
-rw-r--r--firmware/drivers/ata.c68
-rw-r--r--firmware/thread.c14
2 files changed, 2 insertions, 80 deletions
diff --git a/firmware/drivers/ata.c b/firmware/drivers/ata.c
index 1e42bed..6a1db22 100644
--- a/firmware/drivers/ata.c
+++ b/firmware/drivers/ata.c
@@ -71,74 +71,6 @@
static struct thread_entry *ata_thread_p = NULL;
#endif
-#if 0 /* defined(MAX_PHYS_SECTOR_SIZE) && MEM == 64 */
-/* Hack - what's the deal with 5g? */
-struct ata_lock
-{
- struct thread_entry *thread;
- int count;
- volatile unsigned char locked;
- IF_COP( struct corelock cl; )
-};
-
-static void ata_lock_init(struct ata_lock *l)
-{
- corelock_init(&l->cl);
- l->locked = 0;
- l->count = 0;
- l->thread = NULL;
-}
-
-static void ata_lock_lock(struct ata_lock *l)
-{
- struct thread_entry * const current = thread_get_current();
-
- if (current == l->thread)
- {
- l->count++;
- return;
- }
-
- corelock_lock(&l->cl);
-
- IF_PRIO( current->skip_count = -1; )
-
- while (l->locked != 0)
- {
- corelock_unlock(&l->cl);
- switch_thread();
- corelock_lock(&l->cl);
- }
-
- l->locked = 1;
- l->thread = current;
- corelock_unlock(&l->cl);
-}
-
-static void ata_lock_unlock(struct ata_lock *l)
-{
- if (l->count > 0)
- {
- l->count--;
- return;
- }
-
- corelock_lock(&l->cl);
-
- IF_PRIO( l->thread->skip_count = 0; )
-
- l->thread = NULL;
- l->locked = 0;
-
- corelock_unlock(&l->cl);
-}
-
-#define mutex ata_lock
-#define mutex_init ata_lock_init
-#define mutex_lock ata_lock_lock
-#define mutex_unlock ata_lock_unlock
-#endif /* MAX_PHYS_SECTOR_SIZE */
-
static struct mutex ata_mtx SHAREDBSS_ATTR;
int ata_device; /* device 0 (master) or 1 (slave) */
diff --git a/firmware/thread.c b/firmware/thread.c
index e8d05d5..71656e1 100644
--- a/firmware/thread.c
+++ b/firmware/thread.c
@@ -161,13 +161,6 @@ void switch_thread(void)
* Processor-specific section
*/
-#if 0 /* defined(MAX_PHYS_SECTOR_SIZE) && MEM == 64 */
-/* Support a special workaround object for large-sector disks */
-#define IF_NO_SKIP_YIELD(...) __VA_ARGS__
-#else
-#define IF_NO_SKIP_YIELD(...)
-#endif
-
#if defined(CPU_ARM)
/*---------------------------------------------------------------------------
* Start the thread running and terminate it if it returns
@@ -1952,9 +1945,8 @@ void switch_thread(void)
#endif
#ifdef HAVE_PRIORITY_SCHEDULING
- IF_NO_SKIP_YIELD( if (thread->skip_count != -1) )
/* Reset the value of thread's skip count */
- thread->skip_count = 0;
+ thread->skip_count = 0;
#endif
for (;;)
@@ -2010,7 +2002,6 @@ void switch_thread(void)
* priority threads are runnable. The highest priority runnable
* thread(s) are never skipped. */
if (priority <= max ||
- IF_NO_SKIP_YIELD( thread->skip_count == -1 || )
(diff = priority - max, ++thread->skip_count > diff*diff))
{
cores[core].running = thread;
@@ -2155,8 +2146,7 @@ unsigned int wakeup_thread(struct thread_entry **list)
if (bl == NULL)
{
/* No inheritance - just boost the thread by aging */
- IF_NO_SKIP_YIELD( if (thread->skip_count != -1) )
- thread->skip_count = thread->priority;
+ thread->skip_count = thread->priority;
current = cores[CURRENT_CORE].running;
}
else