projects
/
ppcskel.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
first attempt to get interrupt transfers working. epic fail :(
[ppcskel.git]
/
irq.c
diff --git
a/irq.c
b/irq.c
index 389ae75fc81358e79f6a5528c2e26799d573173b..5b0241c4087aada266fbf5ac489ec0d16c364401 100644
(file)
--- a/
irq.c
+++ b/
irq.c
@@
-14,7
+14,9
@@
Copyright (C) 2009 Andre Heider "dhewg" <dhewg@wiibrew.org>
#include "hollywood.h"
#include "ipc.h"
#include "bootmii_ppc.h"
#include "hollywood.h"
#include "ipc.h"
#include "bootmii_ppc.h"
-#include "ohci.h"
+#include "usb/host/host.h"
+
+void show_frame_no(void);
void irq_initialize(void)
{
void irq_initialize(void)
{
@@
-59,6
+61,7
@@
void irq_handler(void)
if (flags & (1<<BW_PI_IRQ_RESET)) {
write32(BW_PI_IRQFLAG, 1<<BW_PI_IRQ_RESET);
if (flags & (1<<BW_PI_IRQ_RESET)) {
write32(BW_PI_IRQFLAG, 1<<BW_PI_IRQ_RESET);
+ show_frame_no();
printf("IRQ-BW RESET\n");
}
if (flags & (1<<BW_PI_IRQ_HW)) { //HW-PIC IRQ
printf("IRQ-BW RESET\n");
}
if (flags & (1<<BW_PI_IRQ_HW)) { //HW-PIC IRQ
@@
-111,12
+114,12
@@
void irq_handler(void)
//sdhc_irq();
}
if (hw_flags & IRQF_OHCI0) {
//sdhc_irq();
}
if (hw_flags & IRQF_OHCI0) {
-
ohci0_irq(
);
+
hcdi_irq(OHCI0_REG_BASE
);
write32(HW_PPCIRQFLAG, IRQF_OHCI0);
}
if (hw_flags & IRQF_OHCI1) {
write32(HW_PPCIRQFLAG, IRQF_OHCI0);
}
if (hw_flags & IRQF_OHCI1) {
+ hcdi_irq(OHCI1_REG_BASE);
write32(HW_PPCIRQFLAG, IRQF_OHCI1);
write32(HW_PPCIRQFLAG, IRQF_OHCI1);
- //TODO: ohci1_irq();
}
hw_flags &= ~IRQF_ALL;
}
hw_flags &= ~IRQF_ALL;
@@
-157,5
+160,6
@@
u32 irq_kill() {
void irq_restore(u32 cookie) {
_CPU_ISR_Restore(cookie);
void irq_restore(u32 cookie) {
_CPU_ISR_Restore(cookie);
+ _CPU_ISR_Enable(); //wtf :/
}
}