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); |