Lines Matching full:offload

40 	struct dc_reg_helper_state *offload,  in submit_dmub_read_modify_write()  argument
43 struct dmub_rb_cmd_read_modify_write *cmd_buf = &offload->cmd_data.read_modify_write; in submit_dmub_read_modify_write()
46 offload->should_burst_write = in submit_dmub_read_modify_write()
47 (offload->same_addr_count == (DMUB_READ_MODIFY_WRITE_SEQ__MAX - 1)); in submit_dmub_read_modify_write()
49 sizeof(struct dmub_cmd_read_modify_write_sequence) * offload->reg_seq_count; in submit_dmub_read_modify_write()
54 dc_dmub_srv_cmd_queue(ctx->dmub_srv, &offload->cmd_data); in submit_dmub_read_modify_write()
60 offload->reg_seq_count = 0; in submit_dmub_read_modify_write()
61 offload->same_addr_count = 0; in submit_dmub_read_modify_write()
65 struct dc_reg_helper_state *offload, in submit_dmub_burst_write() argument
68 struct dmub_rb_cmd_burst_write *cmd_buf = &offload->cmd_data.burst_write; in submit_dmub_burst_write()
72 sizeof(uint32_t) * offload->reg_seq_count; in submit_dmub_burst_write()
77 dc_dmub_srv_cmd_queue(ctx->dmub_srv, &offload->cmd_data); in submit_dmub_burst_write()
83 offload->reg_seq_count = 0; in submit_dmub_burst_write()
87 struct dc_reg_helper_state *offload, in submit_dmub_reg_wait() argument
90 struct dmub_rb_cmd_reg_wait *cmd_buf = &offload->cmd_data.reg_wait; in submit_dmub_reg_wait()
96 dc_dmub_srv_cmd_queue(ctx->dmub_srv, &offload->cmd_data); in submit_dmub_reg_wait()
99 offload->reg_seq_count = 0; in submit_dmub_reg_wait()
150 struct dc_reg_helper_state *offload, in dmub_flush_buffer_execute() argument
153 submit_dmub_read_modify_write(offload, ctx); in dmub_flush_buffer_execute()
158 struct dc_reg_helper_state *offload, in dmub_flush_burst_write_buffer_execute() argument
161 submit_dmub_burst_write(offload, ctx); in dmub_flush_burst_write_buffer_execute()
168 struct dc_reg_helper_state *offload = &ctx->dmub_srv->reg_helper_offload; in dmub_reg_value_burst_set_pack() local
169 struct dmub_rb_cmd_burst_write *cmd_buf = &offload->cmd_data.burst_write; in dmub_reg_value_burst_set_pack()
172 if (offload->reg_seq_count == DMUB_BURST_WRITE_VALUES__MAX) in dmub_reg_value_burst_set_pack()
173 dmub_flush_burst_write_buffer_execute(offload, ctx); in dmub_reg_value_burst_set_pack()
175 if (offload->cmd_data.cmd_common.header.type == DMUB_CMD__REG_SEQ_BURST_WRITE && in dmub_reg_value_burst_set_pack()
177 dmub_flush_burst_write_buffer_execute(offload, ctx); in dmub_reg_value_burst_set_pack()
184 cmd_buf->write_values[offload->reg_seq_count] = reg_val; in dmub_reg_value_burst_set_pack()
185 offload->reg_seq_count++; in dmub_reg_value_burst_set_pack()
193 struct dc_reg_helper_state *offload = &ctx->dmub_srv->reg_helper_offload; in dmub_reg_value_pack() local
194 struct dmub_rb_cmd_read_modify_write *cmd_buf = &offload->cmd_data.read_modify_write; in dmub_reg_value_pack()
198 if (offload->cmd_data.cmd_common.header.type != DMUB_CMD__REG_SEQ_BURST_WRITE && in dmub_reg_value_pack()
199 offload->reg_seq_count == DMUB_READ_MODIFY_WRITE_SEQ__MAX) in dmub_reg_value_pack()
200 dmub_flush_buffer_execute(offload, ctx); in dmub_reg_value_pack()
202 if (offload->should_burst_write) { in dmub_reg_value_pack()
206 offload->should_burst_write = false; in dmub_reg_value_pack()
212 seq = &cmd_buf->seq[offload->reg_seq_count]; in dmub_reg_value_pack()
214 if (offload->reg_seq_count) { in dmub_reg_value_pack()
215 if (cmd_buf->seq[offload->reg_seq_count - 1].addr == addr) in dmub_reg_value_pack()
216 offload->same_addr_count++; in dmub_reg_value_pack()
218 offload->same_addr_count = 0; in dmub_reg_value_pack()
224 offload->reg_seq_count++; in dmub_reg_value_pack()
232 struct dc_reg_helper_state *offload = &ctx->dmub_srv->reg_helper_offload; in dmub_reg_wait_done_pack() local
233 struct dmub_rb_cmd_reg_wait *cmd_buf = &offload->cmd_data.reg_wait; in dmub_reg_wait_done_pack()
518 // when reg read, there should not be any offload. in generic_read_indirect_reg()
659 struct dc_reg_helper_state *offload = in reg_sequence_start_gather() local
662 /* caller sequence mismatch. need to debug caller. offload will not work!!! */ in reg_sequence_start_gather()
663 ASSERT(!offload->gather_in_progress); in reg_sequence_start_gather()
665 offload->gather_in_progress = true; in reg_sequence_start_gather()
671 struct dc_reg_helper_state *offload; in reg_sequence_start_execute() local
676 offload = &ctx->dmub_srv->reg_helper_offload; in reg_sequence_start_execute()
678 if (offload && offload->gather_in_progress) { in reg_sequence_start_execute()
679 offload->gather_in_progress = false; in reg_sequence_start_execute()
680 offload->should_burst_write = false; in reg_sequence_start_execute()
681 switch (offload->cmd_data.cmd_common.header.type) { in reg_sequence_start_execute()
683 submit_dmub_read_modify_write(offload, ctx); in reg_sequence_start_execute()
686 submit_dmub_reg_wait(offload, ctx); in reg_sequence_start_execute()
689 submit_dmub_burst_write(offload, ctx); in reg_sequence_start_execute()
702 struct dc_reg_helper_state *offload; in reg_sequence_wait_done() local
707 offload = &ctx->dmub_srv->reg_helper_offload; in reg_sequence_wait_done()
709 if (offload && in reg_sequence_wait_done()