|
|
@ -368,6 +368,7 @@ void cs5536_ohci_init(void) |
|
|
|
|
|
|
|
void cs5536_i8259_init(void) |
|
|
|
{ |
|
|
|
int hi,lo; |
|
|
|
outb(CS5536_LEGACY_BASE_ADDR | 0x20, 0x11); /* Initialization sequence (8259A-1). */ |
|
|
|
outb(CS5536_LEGACY_BASE_ADDR | 0xA0, 0x11); /* Initialization sequence (8259A-2). */ |
|
|
|
outb(CS5536_LEGACY_BASE_ADDR | 0x21, 0x0); /* Start of hardware INTs (0x20). */ |
|
|
@ -381,6 +382,15 @@ void cs5536_i8259_init(void) |
|
|
|
outb(CS5536_LEGACY_BASE_ADDR | 0x21, 0xFB); /* Mask all IRQs but IRQ2 is cascaded.*/ |
|
|
|
// outb(CS5536_LEGACY_BASE_ADDR | 0xA1, 0x00); /* Mask off all interrupts for now. */
|
|
|
|
// outb(CS5536_LEGACY_BASE_ADDR | 0x21, 0x00); /* Mask all IRQs but IRQ2 is cascaded.*/
|
|
|
|
_rdmsr(DIVIL_MSR_REG(PIC_IRQM_LPC), &hi, &lo); |
|
|
|
lo |= 0x1002; |
|
|
|
_wrmsr(DIVIL_MSR_REG(PIC_IRQM_LPC), hi, lo); |
|
|
|
_rdmsr(DIVIL_MSR_REG(PIC_IRQM_PRIM), &hi, &lo); |
|
|
|
lo &=~(0x1002) ; |
|
|
|
_wrmsr(DIVIL_MSR_REG(PIC_IRQM_PRIM), hi, lo); |
|
|
|
_rdmsr(DIVIL_MSR_REG(LPC_SIRQ), &hi, &lo); |
|
|
|
lo |=0xc0 ; |
|
|
|
_wrmsr(DIVIL_MSR_REG(LPC_SIRQ), hi, lo); |
|
|
|
return; |
|
|
|
} |
|
|
|
|
|
|
|