31 static volatile int *lasat_int_status;
32 static volatile int *lasat_int_mask;
33 static volatile int lasat_int_mask_shift;
39 *lasat_int_mask &= ~(1 << irq_nr) << lasat_int_mask_shift;
46 *lasat_int_mask |= (1 << irq_nr) << lasat_int_mask_shift;
49 static struct irq_chip lasat_irq_type = {
55 static inline int ls1bit32(
unsigned int x)
59 s = 16;
if (x << 16 == 0)
s = 0; b -=
s; x <<=
s;
60 s = 8;
if (x << 8 == 0)
s = 0; b -=
s; x <<=
s;
61 s = 4;
if (x << 4 == 0)
s = 0; b -=
s; x <<=
s;
62 s = 2;
if (x << 2 == 0)
s = 0; b -=
s; x <<=
s;
63 s = 1;
if (x << 1 == 0)
s = 0; b -=
s;
68 static unsigned long (*get_int_status)(
void);
70 static unsigned long get_int_status_100(
void)
72 return *lasat_int_status & *lasat_int_mask;
75 static unsigned long get_int_status_200(
void)
79 int_status = *lasat_int_status;
95 int_status = get_int_status();
119 get_int_status = get_int_status_200;
120 *lasat_int_mask &= 0xffff;
125 get_int_status = get_int_status_100;