summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDamien Zammit <damien@zamaudio.com>2015-09-17 23:14:43 +1000
committerDamien Zammit <damien@zamaudio.com>2015-09-17 23:14:43 +1000
commit95dff6517289be00ea0de72ac0c8e5c0c302d78d (patch)
treea64f6a0b6b6dc69cfc772ff65efe65116cf6bf2b
parent8325e4acf5ff64b1a1a66d9f5031b3aaa4e1e9d6 (diff)
No interrupts
Signed-off-by: Damien Zammit <damien@zamaudio.com>
-rw-r--r--firmware/servicereq.c27
-rw-r--r--firmware/servicereq.h2
-rw-r--r--firmware/smu.c18
3 files changed, 25 insertions, 22 deletions
diff --git a/firmware/servicereq.c b/firmware/servicereq.c
index 37f1585..b697b85 100644
--- a/firmware/servicereq.c
+++ b/firmware/servicereq.c
@@ -1371,6 +1371,21 @@ x180ac:
return;
}
+static void x18d04(void)
+{
+
+}
+
+static void x18490(void)
+{
+
+}
+
+static void x180f0(void)
+{
+
+}
+
static void set_phyln(int onoff)
{
u32 r1, r2, r3, r4, r5, r6, r7, r8, r9, r10, r11, r12, r13, r14, r15, r16;
@@ -1866,7 +1881,7 @@ static void set_bapm(int onoff)
{
}
-void smu_service_request(unsigned int level, void* empty)
+void smu_service_request(void)
{
int requestid;
write32(0xe0003004, 1);
@@ -1968,20 +1983,12 @@ void smu_service_request(unsigned int level, void* empty)
void MicoISRHandler(void)
{
- /*
- * If an interrupt-handler exists for the relevant interrupt (as detected
- * from ip and im cpu registers), then invoke the handler else disable the
- * interrupt in the im.
- */
unsigned int ip, im, Mask, IntLevel;
asm volatile ("rcsr %0,im":"=r"(im));
- /* Inform that we've entered main ISR */
//OSIntEnter();
- /* Service all interrupts */
do {
- /* read ip and calculate effective ip */
asm volatile ("rcsr %0,ip":"=r"(ip));
ip &= im;
Mask = 0x1;
@@ -2012,9 +2019,7 @@ void MicoISRHandler(void)
} while(1);
- /* Inform that we're done with servicing interrupts */
//OSIntExit();
return;
}
-
diff --git a/firmware/servicereq.h b/firmware/servicereq.h
index c67233b..60a969c 100644
--- a/firmware/servicereq.h
+++ b/firmware/servicereq.h
@@ -23,4 +23,4 @@ typedef struct ISREntry{
static ISREntry_t ISREntryTable[32];
void MicoISRHandler(void);
-void smu_service_request(unsigned int, void*);
+void smu_service_request(void);
diff --git a/firmware/smu.c b/firmware/smu.c
index 6973745..595fcc0 100644
--- a/firmware/smu.c
+++ b/firmware/smu.c
@@ -19,32 +19,30 @@
void main(void)
{
- int ie, mask, im;
+ int ie;
+// int mask, im;
+// int irq = 1;
+// mask = 0x1 << irq; // << irq
- int irq = 1;
-
- mask = 0x1 << irq; // << irq
-
- /* disable peripheral interrupts */
+ /* disable interrupts */
asm volatile ("rcsr %0,ie":"=r"(ie));
ie &= (~0x1);
asm volatile ("wcsr ie, %0"::"r"(ie));
+/**** Enable interrupts and handler
ISREntryTable[irq].Callback = &smu_service_request;
ISREntryTable[irq].Context = 0; //?
- /* enable mask in the im */
asm volatile ("rcsr %0, im":"=r"(im));
im |= mask;
asm volatile ("wcsr im, %0"::"r"(im));
- /* enable interrupts */
ie |= 0x1;
asm volatile ("wcsr ie, %0"::"r"(ie));
-
+*/
while (1) {
mdelay(10);
- MicoISRHandler();
+ smu_service_request();
}
}