Lines Matching refs:offload

39 	struct dc_reg_helper_state *offload,  in submit_dmub_read_modify_write()  argument
42 struct dmub_rb_cmd_read_modify_write *cmd_buf = &offload->cmd_data.read_modify_write; in submit_dmub_read_modify_write()
45 offload->should_burst_write = in submit_dmub_read_modify_write()
46 (offload->same_addr_count == (DMUB_READ_MODIFY_WRITE_SEQ__MAX - 1)); in submit_dmub_read_modify_write()
48 sizeof(struct dmub_cmd_read_modify_write_sequence) * offload->reg_seq_count; in submit_dmub_read_modify_write()
53 dc_dmub_srv_cmd_queue(ctx->dmub_srv, &offload->cmd_data); in submit_dmub_read_modify_write()
59 offload->reg_seq_count = 0; in submit_dmub_read_modify_write()
60 offload->same_addr_count = 0; in submit_dmub_read_modify_write()
64 struct dc_reg_helper_state *offload, in submit_dmub_burst_write() argument
67 struct dmub_rb_cmd_burst_write *cmd_buf = &offload->cmd_data.burst_write; in submit_dmub_burst_write()
71 sizeof(uint32_t) * offload->reg_seq_count; in submit_dmub_burst_write()
76 dc_dmub_srv_cmd_queue(ctx->dmub_srv, &offload->cmd_data); in submit_dmub_burst_write()
82 offload->reg_seq_count = 0; in submit_dmub_burst_write()
86 struct dc_reg_helper_state *offload, in submit_dmub_reg_wait() argument
89 struct dmub_rb_cmd_reg_wait *cmd_buf = &offload->cmd_data.reg_wait; in submit_dmub_reg_wait()
95 dc_dmub_srv_cmd_queue(ctx->dmub_srv, &offload->cmd_data); in submit_dmub_reg_wait()
98 offload->reg_seq_count = 0; in submit_dmub_reg_wait()
149 struct dc_reg_helper_state *offload, in dmub_flush_buffer_execute() argument
152 submit_dmub_read_modify_write(offload, ctx); in dmub_flush_buffer_execute()
157 struct dc_reg_helper_state *offload, in dmub_flush_burst_write_buffer_execute() argument
160 submit_dmub_burst_write(offload, ctx); in dmub_flush_burst_write_buffer_execute()
167 struct dc_reg_helper_state *offload = &ctx->dmub_srv->reg_helper_offload; in dmub_reg_value_burst_set_pack() local
168 struct dmub_rb_cmd_burst_write *cmd_buf = &offload->cmd_data.burst_write; in dmub_reg_value_burst_set_pack()
171 if (offload->reg_seq_count == DMUB_BURST_WRITE_VALUES__MAX) in dmub_reg_value_burst_set_pack()
172 dmub_flush_burst_write_buffer_execute(offload, ctx); in dmub_reg_value_burst_set_pack()
174 if (offload->cmd_data.cmd_common.header.type == DMUB_CMD__REG_SEQ_BURST_WRITE && in dmub_reg_value_burst_set_pack()
176 dmub_flush_burst_write_buffer_execute(offload, ctx); in dmub_reg_value_burst_set_pack()
183 cmd_buf->write_values[offload->reg_seq_count] = reg_val; in dmub_reg_value_burst_set_pack()
184 offload->reg_seq_count++; in dmub_reg_value_burst_set_pack()
192 struct dc_reg_helper_state *offload = &ctx->dmub_srv->reg_helper_offload; in dmub_reg_value_pack() local
193 struct dmub_rb_cmd_read_modify_write *cmd_buf = &offload->cmd_data.read_modify_write; in dmub_reg_value_pack()
197 if (offload->cmd_data.cmd_common.header.type != DMUB_CMD__REG_SEQ_BURST_WRITE && in dmub_reg_value_pack()
198 offload->reg_seq_count == DMUB_READ_MODIFY_WRITE_SEQ__MAX) in dmub_reg_value_pack()
199 dmub_flush_buffer_execute(offload, ctx); in dmub_reg_value_pack()
201 if (offload->should_burst_write) { in dmub_reg_value_pack()
205 offload->should_burst_write = false; in dmub_reg_value_pack()
211 seq = &cmd_buf->seq[offload->reg_seq_count]; in dmub_reg_value_pack()
213 if (offload->reg_seq_count) { in dmub_reg_value_pack()
214 if (cmd_buf->seq[offload->reg_seq_count - 1].addr == addr) in dmub_reg_value_pack()
215 offload->same_addr_count++; in dmub_reg_value_pack()
217 offload->same_addr_count = 0; in dmub_reg_value_pack()
223 offload->reg_seq_count++; in dmub_reg_value_pack()
231 struct dc_reg_helper_state *offload = &ctx->dmub_srv->reg_helper_offload; in dmub_reg_wait_done_pack() local
232 struct dmub_rb_cmd_reg_wait *cmd_buf = &offload->cmd_data.reg_wait; in dmub_reg_wait_done_pack()
624 struct dc_reg_helper_state *offload = in reg_sequence_start_gather() local
628 ASSERT(!offload->gather_in_progress); in reg_sequence_start_gather()
630 offload->gather_in_progress = true; in reg_sequence_start_gather()
636 struct dc_reg_helper_state *offload; in reg_sequence_start_execute() local
641 offload = &ctx->dmub_srv->reg_helper_offload; in reg_sequence_start_execute()
643 if (offload && offload->gather_in_progress) { in reg_sequence_start_execute()
644 offload->gather_in_progress = false; in reg_sequence_start_execute()
645 offload->should_burst_write = false; in reg_sequence_start_execute()
646 switch (offload->cmd_data.cmd_common.header.type) { in reg_sequence_start_execute()
648 submit_dmub_read_modify_write(offload, ctx); in reg_sequence_start_execute()
651 submit_dmub_reg_wait(offload, ctx); in reg_sequence_start_execute()
654 submit_dmub_burst_write(offload, ctx); in reg_sequence_start_execute()
667 struct dc_reg_helper_state *offload; in reg_sequence_wait_done() local
672 offload = &ctx->dmub_srv->reg_helper_offload; in reg_sequence_wait_done()
674 if (offload && in reg_sequence_wait_done()