Lines Matching refs:evt_ring_id

207 static void gsi_irq_ev_ctrl_enable(struct gsi *gsi, u32 evt_ring_id)  in gsi_irq_ev_ctrl_enable()  argument
209 u32 val = BIT(evt_ring_id); in gsi_irq_ev_ctrl_enable()
254 static void gsi_irq_ieob_enable_one(struct gsi *gsi, u32 evt_ring_id) in gsi_irq_ieob_enable_one() argument
259 gsi->ieob_enabled_bitmap |= BIT(evt_ring_id); in gsi_irq_ieob_enable_one()
282 static void gsi_irq_ieob_disable_one(struct gsi *gsi, u32 evt_ring_id) in gsi_irq_ieob_disable_one() argument
284 gsi_irq_ieob_disable(gsi, BIT(evt_ring_id)); in gsi_irq_ieob_disable_one()
357 gsi_evt_ring_state(struct gsi *gsi, u32 evt_ring_id) in gsi_evt_ring_state() argument
361 val = ioread32(gsi->virt + GSI_EV_CH_E_CNTXT_0_OFFSET(evt_ring_id)); in gsi_evt_ring_state()
367 static void gsi_evt_ring_command(struct gsi *gsi, u32 evt_ring_id, in gsi_evt_ring_command() argument
375 gsi_irq_ev_ctrl_enable(gsi, evt_ring_id); in gsi_evt_ring_command()
377 val = u32_encode_bits(evt_ring_id, EV_CHID_FMASK); in gsi_evt_ring_command()
388 opcode, evt_ring_id, gsi_evt_ring_state(gsi, evt_ring_id)); in gsi_evt_ring_command()
392 static int gsi_evt_ring_alloc_command(struct gsi *gsi, u32 evt_ring_id) in gsi_evt_ring_alloc_command() argument
397 state = gsi_evt_ring_state(gsi, evt_ring_id); in gsi_evt_ring_alloc_command()
400 evt_ring_id, state); in gsi_evt_ring_alloc_command()
404 gsi_evt_ring_command(gsi, evt_ring_id, GSI_EVT_ALLOCATE); in gsi_evt_ring_alloc_command()
407 state = gsi_evt_ring_state(gsi, evt_ring_id); in gsi_evt_ring_alloc_command()
412 evt_ring_id, state); in gsi_evt_ring_alloc_command()
418 static void gsi_evt_ring_reset_command(struct gsi *gsi, u32 evt_ring_id) in gsi_evt_ring_reset_command() argument
422 state = gsi_evt_ring_state(gsi, evt_ring_id); in gsi_evt_ring_reset_command()
426 evt_ring_id, state); in gsi_evt_ring_reset_command()
430 gsi_evt_ring_command(gsi, evt_ring_id, GSI_EVT_RESET); in gsi_evt_ring_reset_command()
433 state = gsi_evt_ring_state(gsi, evt_ring_id); in gsi_evt_ring_reset_command()
438 evt_ring_id, state); in gsi_evt_ring_reset_command()
442 static void gsi_evt_ring_de_alloc_command(struct gsi *gsi, u32 evt_ring_id) in gsi_evt_ring_de_alloc_command() argument
446 state = gsi_evt_ring_state(gsi, evt_ring_id); in gsi_evt_ring_de_alloc_command()
449 evt_ring_id, state); in gsi_evt_ring_de_alloc_command()
453 gsi_evt_ring_command(gsi, evt_ring_id, GSI_EVT_DE_ALLOC); in gsi_evt_ring_de_alloc_command()
456 state = gsi_evt_ring_state(gsi, evt_ring_id); in gsi_evt_ring_de_alloc_command()
461 evt_ring_id, state); in gsi_evt_ring_de_alloc_command()
652 static void gsi_evt_ring_doorbell(struct gsi *gsi, u32 evt_ring_id, u32 index) in gsi_evt_ring_doorbell() argument
654 struct gsi_ring *ring = &gsi->evt_ring[evt_ring_id].ring; in gsi_evt_ring_doorbell()
661 iowrite32(val, gsi->virt + GSI_EV_CH_E_DOORBELL_0_OFFSET(evt_ring_id)); in gsi_evt_ring_doorbell()
665 static void gsi_evt_ring_program(struct gsi *gsi, u32 evt_ring_id) in gsi_evt_ring_program() argument
667 struct gsi_evt_ring *evt_ring = &gsi->evt_ring[evt_ring_id]; in gsi_evt_ring_program()
675 iowrite32(val, gsi->virt + GSI_EV_CH_E_CNTXT_0_OFFSET(evt_ring_id)); in gsi_evt_ring_program()
678 iowrite32(val, gsi->virt + GSI_EV_CH_E_CNTXT_1_OFFSET(evt_ring_id)); in gsi_evt_ring_program()
685 iowrite32(val, gsi->virt + GSI_EV_CH_E_CNTXT_2_OFFSET(evt_ring_id)); in gsi_evt_ring_program()
687 iowrite32(val, gsi->virt + GSI_EV_CH_E_CNTXT_3_OFFSET(evt_ring_id)); in gsi_evt_ring_program()
692 iowrite32(val, gsi->virt + GSI_EV_CH_E_CNTXT_8_OFFSET(evt_ring_id)); in gsi_evt_ring_program()
695 iowrite32(0, gsi->virt + GSI_EV_CH_E_CNTXT_9_OFFSET(evt_ring_id)); in gsi_evt_ring_program()
696 iowrite32(0, gsi->virt + GSI_EV_CH_E_CNTXT_10_OFFSET(evt_ring_id)); in gsi_evt_ring_program()
697 iowrite32(0, gsi->virt + GSI_EV_CH_E_CNTXT_11_OFFSET(evt_ring_id)); in gsi_evt_ring_program()
700 iowrite32(0, gsi->virt + GSI_EV_CH_E_CNTXT_12_OFFSET(evt_ring_id)); in gsi_evt_ring_program()
701 iowrite32(0, gsi->virt + GSI_EV_CH_E_CNTXT_13_OFFSET(evt_ring_id)); in gsi_evt_ring_program()
704 gsi_evt_ring_doorbell(gsi, evt_ring_id, 0); in gsi_evt_ring_program()
780 val |= u32_encode_bits(channel->evt_ring_id, ERINDEX_FMASK); in gsi_channel_program()
876 gsi_irq_ieob_enable_one(gsi, channel->evt_ring_id); in gsi_channel_start()
880 gsi_irq_ieob_disable_one(gsi, channel->evt_ring_id); in gsi_channel_start()
934 gsi_irq_ieob_disable_one(gsi, channel->evt_ring_id); in gsi_channel_stop()
1091 u32 evt_ring_id = __ffs(event_mask); in gsi_isr_evt_ctrl() local
1093 event_mask ^= BIT(evt_ring_id); in gsi_isr_evt_ctrl()
1116 gsi_isr_glob_evt_err(struct gsi *gsi, u32 err_ee, u32 evt_ring_id, u32 code) in gsi_isr_glob_evt_err() argument
1119 struct gsi_evt_ring *evt_ring = &gsi->evt_ring[evt_ring_id]; in gsi_isr_glob_evt_err()
1130 evt_ring_id, err_ee, code); in gsi_isr_glob_evt_err()
1240 u32 evt_ring_id = __ffs(event_mask); in gsi_isr_ieob() local
1242 event_mask ^= BIT(evt_ring_id); in gsi_isr_ieob()
1244 napi_schedule(&gsi->evt_ring[evt_ring_id].channel->napi); in gsi_isr_ieob()
1441 u32 evt_ring_id; in gsi_evt_ring_id_alloc() local
1448 evt_ring_id = ffz(gsi->event_bitmap); in gsi_evt_ring_id_alloc()
1449 gsi->event_bitmap |= BIT(evt_ring_id); in gsi_evt_ring_id_alloc()
1451 return (int)evt_ring_id; in gsi_evt_ring_id_alloc()
1455 static void gsi_evt_ring_id_free(struct gsi *gsi, u32 evt_ring_id) in gsi_evt_ring_id_free() argument
1457 gsi->event_bitmap &= ~BIT(evt_ring_id); in gsi_evt_ring_id_free()
1476 u32 evt_ring_id = channel->evt_ring_id; in gsi_channel_update() local
1484 evt_ring = &gsi->evt_ring[evt_ring_id]; in gsi_channel_update()
1490 offset = GSI_EV_CH_E_CNTXT_4_OFFSET(evt_ring_id); in gsi_channel_update()
1511 gsi_evt_ring_doorbell(gsi, evt_ring_id, index); in gsi_channel_update()
1571 gsi_irq_ieob_enable_one(channel->gsi, channel->evt_ring_id); in gsi_channel_poll()
1594 u32 evt_ring_id = channel->evt_ring_id; in gsi_channel_setup_one() local
1600 ret = gsi_evt_ring_alloc_command(gsi, evt_ring_id); in gsi_channel_setup_one()
1604 gsi_evt_ring_program(gsi, evt_ring_id); in gsi_channel_setup_one()
1623 gsi_evt_ring_de_alloc_command(gsi, evt_ring_id); in gsi_channel_setup_one()
1632 u32 evt_ring_id = channel->evt_ring_id; in gsi_channel_teardown_one() local
1640 gsi_evt_ring_reset_command(gsi, evt_ring_id); in gsi_channel_teardown_one()
1641 gsi_evt_ring_de_alloc_command(gsi, evt_ring_id); in gsi_channel_teardown_one()
1975 channel->evt_ring_id = ret; in gsi_channel_evt_ring_init()
1977 evt_ring = &gsi->evt_ring[channel->evt_ring_id]; in gsi_channel_evt_ring_init()
1987 gsi_evt_ring_id_free(gsi, channel->evt_ring_id); in gsi_channel_evt_ring_init()
1995 u32 evt_ring_id = channel->evt_ring_id; in gsi_channel_evt_ring_exit() local
1999 evt_ring = &gsi->evt_ring[evt_ring_id]; in gsi_channel_evt_ring_exit()
2001 gsi_evt_ring_id_free(gsi, evt_ring_id); in gsi_channel_evt_ring_exit()