memirq->bo = bo;
memirq->source = IOSYS_MAP_INIT_OFFSET(&bo->vmap, XE_MEMIRQ_SOURCE_OFFSET(0));
memirq->status = IOSYS_MAP_INIT_OFFSET(&bo->vmap, XE_MEMIRQ_STATUS_OFFSET(0));
- memirq->mask = IOSYS_MAP_INIT_OFFSET(&bo->vmap, XE_MEMIRQ_ENABLE_OFFSET);
memirq->num_pages = num_pages;
memirq_assert(memirq, !memirq->source.is_iomem);
memirq_assert(memirq, !memirq->status.is_iomem);
- memirq_assert(memirq, !memirq->mask.is_iomem);
memirq_debug(memirq, "pages: count %u size %zu\n", num_pages, bo_size);
memirq_debug(memirq, "page0: source %#x status %#x mask %#x\n",
* We only care about the GT_MI_USER_INTERRUPT from the engines and
* the GuC does not look at the ENABLE mask at all.
*/
- iosys_map_wr(&memirq->mask, 0, u32, enable ? GT_MI_USER_INTERRUPT : 0);
+ iosys_map_wr(&memirq->bo->vmap, XE_MEMIRQ_ENABLE_OFFSET, u32,
+ enable ? GT_MI_USER_INTERRUPT : 0);
memirq->enabled = enable;
}
* @num_pages: number of per-instance source/status pages.
* @source: iosys pointer to `Interrupt Source Report Page`_.
* @status: iosys pointer to `Interrupt Status Report Page`_.
- * @mask: iosys pointer to Interrupt Enable Mask.
* @enabled: internal flag used to control processing of the interrupts.
*/
struct xe_memirq {
unsigned int num_pages;
struct iosys_map source;
struct iosys_map status;
- struct iosys_map mask;
bool enabled;
};