summaryrefslogtreecommitdiff
path: root/firmware
diff options
context:
space:
mode:
Diffstat (limited to 'firmware')
-rw-r--r--firmware/export/config.h4
-rw-r--r--firmware/kernel/include/thread.h5
-rw-r--r--firmware/kernel/thread-internal.h3
-rw-r--r--firmware/kernel/thread.c18
-rw-r--r--firmware/storage.c58
5 files changed, 0 insertions, 88 deletions
diff --git a/firmware/export/config.h b/firmware/export/config.h
index b1ee101..a56dd32 100644
--- a/firmware/export/config.h
+++ b/firmware/export/config.h
@@ -1196,10 +1196,6 @@ Lyre prototype 1 */
#define HAVE_PLUGIN_CHECK_OPEN_CLOSE
#endif
-#if defined(HAVE_DIRCACHE) && (CONFIG_PLATFORM & PLATFORM_NATIVE)
-#define HAVE_IO_PRIORITY
-#endif
-
#if defined(CPU_COLDIRE) || CONFIG_CPU == IMX31L
/* Can record and play simultaneously */
#define HAVE_PCM_FULL_DUPLEX
diff --git a/firmware/kernel/include/thread.h b/firmware/kernel/include/thread.h
index dfb6327..a4f338e 100644
--- a/firmware/kernel/include/thread.h
+++ b/firmware/kernel/include/thread.h
@@ -169,11 +169,6 @@ int thread_set_priority(unsigned int thread_id, int priority);
int thread_get_priority(unsigned int thread_id);
#endif /* HAVE_PRIORITY_SCHEDULING */
-#ifdef HAVE_IO_PRIORITY
-void thread_set_io_priority(unsigned int thread_id, int io_priority);
-int thread_get_io_priority(unsigned int thread_id);
-#endif /* HAVE_IO_PRIORITY */
-
#if NUM_CORES > 1
unsigned int switch_core(unsigned int new_core);
#endif
diff --git a/firmware/kernel/thread-internal.h b/firmware/kernel/thread-internal.h
index 10606a5..868e57c 100644
--- a/firmware/kernel/thread-internal.h
+++ b/firmware/kernel/thread-internal.h
@@ -134,9 +134,6 @@ struct thread_entry
#ifdef HAVE_SCHEDULER_BOOSTCTRL
unsigned char cpu_boost; /* CPU frequency boost flag */
#endif
-#ifdef HAVE_IO_PRIORITY
- unsigned char io_priority;
-#endif
};
/* Thread ID, 32 bits = |VVVVVVVV|VVVVVVVV|VVVVVVVV|SSSSSSSS| */
diff --git a/firmware/kernel/thread.c b/firmware/kernel/thread.c
index 05c09dc..ea76421 100644
--- a/firmware/kernel/thread.c
+++ b/firmware/kernel/thread.c
@@ -367,10 +367,6 @@ static void new_thread_base_init(struct thread_entry *thread,
#ifdef HAVE_SCHEDULER_BOOSTCTRL
thread->cpu_boost = 0;
#endif
-#ifdef HAVE_IO_PRIORITY
- /* Default to high (foreground) priority */
- thread->io_priority = IO_PRIORITY_IMMEDIATE;
-#endif
}
/*---------------------------------------------------------------------------
@@ -1421,20 +1417,6 @@ int thread_get_priority(unsigned int thread_id)
}
#endif /* HAVE_PRIORITY_SCHEDULING */
-#ifdef HAVE_IO_PRIORITY
-int thread_get_io_priority(unsigned int thread_id)
-{
- struct thread_entry *thread = __thread_id_entry(thread_id);
- return thread->io_priority;
-}
-
-void thread_set_io_priority(unsigned int thread_id,int io_priority)
-{
- struct thread_entry *thread = __thread_id_entry(thread_id);
- thread->io_priority = io_priority;
-}
-#endif
-
/*---------------------------------------------------------------------------
* Starts a frozen thread - similar semantics to wakeup_thread except that
* the thread is on no scheduler or wakeup queue at all. It exists simply by
diff --git a/firmware/storage.c b/firmware/storage.c
index e0b491a..e9a3396 100644
--- a/firmware/storage.c
+++ b/firmware/storage.c
@@ -33,63 +33,9 @@ static unsigned int storage_drivers[NUM_DRIVES];
static unsigned int num_drives;
#endif
-
-#ifdef HAVE_IO_PRIORITY
-
-/* Same for flash? */
-#define STORAGE_MINIMUM_IDLE_TIME (HZ/10)
-#define STORAGE_DELAY_UNIT (HZ/20)
-
-static unsigned int storage_last_thread[NUM_DRIVES];
-static unsigned int storage_last_activity[NUM_DRIVES];
-
-static bool storage_should_wait(int drive, int prio)
-{
- int other_prio = thread_get_io_priority(storage_last_thread[drive]);
- if(TIME_BEFORE(current_tick,storage_last_activity[drive]+STORAGE_MINIMUM_IDLE_TIME))
- {
- if(prio<=other_prio)
- {
- /* There is another active thread, but we have lower priority */
- return false;
- }
- else
- {
- /* There is another active thread, but it has lower priority */
- return true;
- }
- }
- else
- {
- /* There's nothing going on anyway */
- return false;
- }
-}
-
-static void storage_wait_turn(IF_MD_NONVOID(int drive))
-{
-#ifndef HAVE_MULTIDRIVE
- int drive=0;
-#endif
- int my_prio = thread_get_io_priority(thread_self());
- int loops=my_prio;
- while(storage_should_wait(drive, my_prio) && (loops--)>=0)
- {
- sleep(STORAGE_DELAY_UNIT);
- }
-
- storage_last_thread[drive] = thread_self();
- storage_last_activity[drive] = current_tick;
-}
-#endif
-
int storage_read_sectors(IF_MD(int drive,) unsigned long start, int count,
void* buf)
{
-#ifdef HAVE_IO_PRIORITY
- storage_wait_turn(IF_MD(drive));
-#endif
-
#ifdef CONFIG_STORAGE_MULTI
int driver=(storage_drivers[drive] & DRIVER_MASK)>>DRIVER_OFFSET;
int ldrive=(storage_drivers[drive] & DRIVE_MASK)>>DRIVE_OFFSET;
@@ -132,10 +78,6 @@ int storage_read_sectors(IF_MD(int drive,) unsigned long start, int count,
int storage_write_sectors(IF_MD(int drive,) unsigned long start, int count,
const void* buf)
{
-#ifdef HAVE_IO_PRIORITY
- storage_wait_turn(IF_MD(drive));
-#endif
-
#ifdef CONFIG_STORAGE_MULTI
int driver=(storage_drivers[drive] & DRIVER_MASK)>>DRIVER_OFFSET;
int ldrive=(storage_drivers[drive] & DRIVE_MASK)>>DRIVE_OFFSET;