Rev 2048 | Rev 2071 | Go to most recent revision | Show entire file | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed
| Rev 2048 | Rev 2054 | ||
|---|---|---|---|
| Line 71... | Line 71... | ||
| 71 | status = asi_u64_read(ASI_INTR_DISPATCH_STATUS, 0); |
71 | status = asi_u64_read(ASI_INTR_DISPATCH_STATUS, 0); |
| 72 | if (status & INTR_DISPATCH_STATUS_BUSY) |
72 | if (status & INTR_DISPATCH_STATUS_BUSY) |
| 73 | panic("Interrupt Dispatch Status busy bit set\n"); |
73 | panic("Interrupt Dispatch Status busy bit set\n"); |
| 74 | 74 | ||
| 75 | do { |
75 | do { |
| 76 | asi_u64_write(ASI_UDB_INTR_W, ASI_UDB_INTR_W_DATA_0, (uintptr_t) func); |
76 | asi_u64_write(ASI_UDB_INTR_W, ASI_UDB_INTR_W_DATA_0, (uintptr_t) |
| - | 77 | func); |
|
| 77 | asi_u64_write(ASI_UDB_INTR_W, ASI_UDB_INTR_W_DATA_1, 0); |
78 | asi_u64_write(ASI_UDB_INTR_W, ASI_UDB_INTR_W_DATA_1, 0); |
| 78 | asi_u64_write(ASI_UDB_INTR_W, ASI_UDB_INTR_W_DATA_2, 0); |
79 | asi_u64_write(ASI_UDB_INTR_W, ASI_UDB_INTR_W_DATA_2, 0); |
| - | 80 | asi_u64_write(ASI_UDB_INTR_W, (mid << |
|
| 79 | asi_u64_write(ASI_UDB_INTR_W, (mid << INTR_VEC_DISPATCH_MID_SHIFT) | ASI_UDB_INTR_W_DISPATCH, 0); |
81 | INTR_VEC_DISPATCH_MID_SHIFT) | ASI_UDB_INTR_W_DISPATCH, |
| - | 82 | 0); |
|
| 80 | 83 | ||
| 81 | membar(); |
84 | membar(); |
| 82 | 85 | ||
| 83 | do { |
86 | do { |
| 84 | status = asi_u64_read(ASI_INTR_DISPATCH_STATUS, 0); |
87 | status = asi_u64_read(ASI_INTR_DISPATCH_STATUS, 0); |