Subversion Repositories freemyipod

Rev

Rev 427 | Show entire file | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 427 Rev 560
Line 22... Line 22...
22
 
22
 
23
 
23
 
24
#include "global.h"
24
#include "global.h"
25
#include "panic.h"
25
#include "panic.h"
26
#include "s5l8702.h"
26
#include "s5l8702.h"
-
 
27
#include "clockgates-target.h"
27
 
28
 
28
 
29
 
29
#define default_interrupt(name) extern __attribute__((weak,alias("unhandled_irq"))) void name(void)
30
#define default_interrupt(name) extern __attribute__((weak,alias("unhandled_irq"))) void name(void)
30
 
31
 
31
default_interrupt(INT_IRQ0);
32
default_interrupt(INT_IRQ0);
Line 147... Line 148...
147
};
148
};
148
 
149
 
149
void INT_DMAC0(void) ICODE_ATTR;
150
void INT_DMAC0(void) ICODE_ATTR;
150
void INT_DMAC0()
151
void INT_DMAC0()
151
{
152
{
-
 
153
    clockgate_dma(0, 8, true);
152
    uint32_t intsts = DMAC0INTSTS;
154
    uint32_t intsts = DMAC0INTSTS;
153
    if (intsts & 1) dmavector[0]();
155
    if (intsts & 1) dmavector[0]();
154
    if (intsts & 2) dmavector[1]();
156
    if (intsts & 2) dmavector[1]();
155
    if (intsts & 4) dmavector[2]();
157
    if (intsts & 4) dmavector[2]();
156
    if (intsts & 8) dmavector[3]();
158
    if (intsts & 8) dmavector[3]();
157
    if (intsts & 0x10) dmavector[4]();
159
    if (intsts & 0x10) dmavector[4]();
158
    if (intsts & 0x20) dmavector[5]();
160
    if (intsts & 0x20) dmavector[5]();
159
    if (intsts & 0x40) dmavector[6]();
161
    if (intsts & 0x40) dmavector[6]();
160
    if (intsts & 0x80) dmavector[7]();
162
    if (intsts & 0x80) dmavector[7]();
-
 
163
    clockgate_dma(0, 8, false);
161
}
164
}
162
 
165
 
163
void INT_DMAC1(void) ICODE_ATTR;
166
void INT_DMAC1(void) ICODE_ATTR;
164
void INT_DMAC1()
167
void INT_DMAC1()
165
{
168
{
-
 
169
    clockgate_dma(1, 8, true);
166
    uint32_t intsts = DMAC1INTSTS;
170
    uint32_t intsts = DMAC1INTSTS;
167
    if (intsts & 1) dmavector[8]();
171
    if (intsts & 1) dmavector[8]();
168
    if (intsts & 2) dmavector[9]();
172
    if (intsts & 2) dmavector[9]();
169
    if (intsts & 4) dmavector[10]();
173
    if (intsts & 4) dmavector[10]();
170
    if (intsts & 8) dmavector[11]();
174
    if (intsts & 8) dmavector[11]();
171
    if (intsts & 0x10) dmavector[12]();
175
    if (intsts & 0x10) dmavector[12]();
172
    if (intsts & 0x20) dmavector[13]();
176
    if (intsts & 0x20) dmavector[13]();
173
    if (intsts & 0x40) dmavector[14]();
177
    if (intsts & 0x40) dmavector[14]();
174
    if (intsts & 0x80) dmavector[15]();
178
    if (intsts & 0x80) dmavector[15]();
-
 
179
    clockgate_dma(1, 8, false);
175
}
180
}
176
 
181
 
177
static void (* irqvector[])(void) IDATA_ATTR =
182
static void (* irqvector[])(void) IDATA_ATTR =
178
{
183
{
179
    INT_IRQ0,INT_IRQ1,INT_IRQ2,INT_IRQ3,INT_IRQ4,INT_IRQ5,INT_IRQ6,INT_IRQ7,
184
    INT_IRQ0,INT_IRQ1,INT_IRQ2,INT_IRQ3,INT_IRQ4,INT_IRQ5,INT_IRQ6,INT_IRQ7,