mirror of
https://github.com/torvalds/linux.git
synced 2026-05-24 15:12:13 +02:00
Merge branch 'qed-deadcoding'
Dr. David Alan Gilbert says: ==================== qed deadcoding This is a set of deadcode removals for the qed ethernet device. I've tried to avoid removing anything that are trivial firmware wrappers. One odd one I've not removed is qed_bw_update(), it doesn't seem to be called but looks like the only caller of the bw_update(..) method which qedf does define. Perhaps qed_bw_update is supposed to be called somewhere? ==================== Link: https://patch.msgid.link/20250414005247.341243-1-linux@treblig.org Signed-off-by: Jakub Kicinski <kuba@kernel.org>
This commit is contained in:
commit
0418711f60
|
|
@ -939,7 +939,6 @@ u16 qed_get_cm_pq_idx_ofld_mtc(struct qed_hwfn *p_hwfn, u8 tc);
|
|||
u16 qed_get_cm_pq_idx_llt_mtc(struct qed_hwfn *p_hwfn, u8 tc);
|
||||
|
||||
/* doorbell recovery mechanism */
|
||||
void qed_db_recovery_dp(struct qed_hwfn *p_hwfn);
|
||||
void qed_db_recovery_execute(struct qed_hwfn *p_hwfn);
|
||||
bool qed_edpm_enabled(struct qed_hwfn *p_hwfn);
|
||||
|
||||
|
|
|
|||
|
|
@ -1304,37 +1304,6 @@ enum dbg_status qed_print_mcp_trace_results(struct qed_hwfn *p_hwfn,
|
|||
u32 num_dumped_dwords,
|
||||
char *results_buf);
|
||||
|
||||
/**
|
||||
* qed_print_mcp_trace_results_cont(): Prints MCP Trace results, and
|
||||
* keeps the MCP trace meta data allocated, to support continuous MCP Trace
|
||||
* parsing. After the continuous parsing ends, mcp_trace_free_meta_data should
|
||||
* be called to free the meta data.
|
||||
*
|
||||
* @p_hwfn: HW device data.
|
||||
* @dump_buf: MVP trace dump buffer, starting from the header.
|
||||
* @results_buf: Buffer for printing the mcp trace results.
|
||||
*
|
||||
* Return: Error if the parsing fails, ok otherwise.
|
||||
*/
|
||||
enum dbg_status qed_print_mcp_trace_results_cont(struct qed_hwfn *p_hwfn,
|
||||
u32 *dump_buf,
|
||||
char *results_buf);
|
||||
|
||||
/**
|
||||
* qed_print_mcp_trace_line(): Prints MCP Trace results for a single line
|
||||
*
|
||||
* @p_hwfn: HW device data.
|
||||
* @dump_buf: MCP trace dump buffer, starting from the header.
|
||||
* @num_dumped_bytes: Number of bytes that were dumped.
|
||||
* @results_buf: Buffer for printing the mcp trace results.
|
||||
*
|
||||
* Return: Error if the parsing fails, ok otherwise.
|
||||
*/
|
||||
enum dbg_status qed_print_mcp_trace_line(struct qed_hwfn *p_hwfn,
|
||||
u8 *dump_buf,
|
||||
u32 num_dumped_bytes,
|
||||
char *results_buf);
|
||||
|
||||
/**
|
||||
* qed_mcp_trace_free_meta_data(): Frees the MCP Trace meta data.
|
||||
* Should be called after continuous MCP Trace parsing.
|
||||
|
|
|
|||
|
|
@ -7614,31 +7614,6 @@ enum dbg_status qed_print_mcp_trace_results(struct qed_hwfn *p_hwfn,
|
|||
results_buf, &parsed_buf_size, true);
|
||||
}
|
||||
|
||||
enum dbg_status qed_print_mcp_trace_results_cont(struct qed_hwfn *p_hwfn,
|
||||
u32 *dump_buf,
|
||||
char *results_buf)
|
||||
{
|
||||
u32 parsed_buf_size;
|
||||
|
||||
return qed_parse_mcp_trace_dump(p_hwfn, dump_buf, results_buf,
|
||||
&parsed_buf_size, false);
|
||||
}
|
||||
|
||||
enum dbg_status qed_print_mcp_trace_line(struct qed_hwfn *p_hwfn,
|
||||
u8 *dump_buf,
|
||||
u32 num_dumped_bytes,
|
||||
char *results_buf)
|
||||
{
|
||||
u32 parsed_results_bytes;
|
||||
|
||||
return qed_parse_mcp_trace_buf(p_hwfn,
|
||||
dump_buf,
|
||||
num_dumped_bytes,
|
||||
0,
|
||||
num_dumped_bytes,
|
||||
results_buf, &parsed_results_bytes);
|
||||
}
|
||||
|
||||
/* Frees the specified MCP Trace meta data */
|
||||
void qed_mcp_trace_free_meta_data(struct qed_hwfn *p_hwfn)
|
||||
{
|
||||
|
|
|
|||
|
|
@ -255,25 +255,6 @@ static void qed_db_recovery_teardown(struct qed_hwfn *p_hwfn)
|
|||
p_hwfn->db_recovery_info.db_recovery_counter = 0;
|
||||
}
|
||||
|
||||
/* Print the content of the doorbell recovery mechanism */
|
||||
void qed_db_recovery_dp(struct qed_hwfn *p_hwfn)
|
||||
{
|
||||
struct qed_db_recovery_entry *db_entry = NULL;
|
||||
|
||||
DP_NOTICE(p_hwfn,
|
||||
"Displaying doorbell recovery database. Counter was %d\n",
|
||||
p_hwfn->db_recovery_info.db_recovery_counter);
|
||||
|
||||
/* Protect the list */
|
||||
spin_lock_bh(&p_hwfn->db_recovery_info.lock);
|
||||
list_for_each_entry(db_entry,
|
||||
&p_hwfn->db_recovery_info.list, list_entry) {
|
||||
qed_db_recovery_dp_entry(p_hwfn, db_entry, "Printing");
|
||||
}
|
||||
|
||||
spin_unlock_bh(&p_hwfn->db_recovery_info.lock);
|
||||
}
|
||||
|
||||
/* Ring the doorbell of a single doorbell recovery entry */
|
||||
static void qed_db_recovery_ring(struct qed_hwfn *p_hwfn,
|
||||
struct qed_db_recovery_entry *db_entry)
|
||||
|
|
|
|||
|
|
@ -2666,58 +2666,6 @@ void qed_gft_config(struct qed_hwfn *p_hwfn,
|
|||
void qed_enable_context_validation(struct qed_hwfn *p_hwfn,
|
||||
struct qed_ptt *p_ptt);
|
||||
|
||||
/**
|
||||
* qed_calc_session_ctx_validation(): Calcualte validation byte for
|
||||
* session context.
|
||||
*
|
||||
* @p_ctx_mem: Pointer to context memory.
|
||||
* @ctx_size: Context size.
|
||||
* @ctx_type: Context type.
|
||||
* @cid: Context cid.
|
||||
*
|
||||
* Return: Void.
|
||||
*/
|
||||
void qed_calc_session_ctx_validation(void *p_ctx_mem,
|
||||
u16 ctx_size, u8 ctx_type, u32 cid);
|
||||
|
||||
/**
|
||||
* qed_calc_task_ctx_validation(): Calcualte validation byte for task
|
||||
* context.
|
||||
*
|
||||
* @p_ctx_mem: Pointer to context memory.
|
||||
* @ctx_size: Context size.
|
||||
* @ctx_type: Context type.
|
||||
* @tid: Context tid.
|
||||
*
|
||||
* Return: Void.
|
||||
*/
|
||||
void qed_calc_task_ctx_validation(void *p_ctx_mem,
|
||||
u16 ctx_size, u8 ctx_type, u32 tid);
|
||||
|
||||
/**
|
||||
* qed_memset_session_ctx(): Memset session context to 0 while
|
||||
* preserving validation bytes.
|
||||
*
|
||||
* @p_ctx_mem: Pointer to context memory.
|
||||
* @ctx_size: Size to initialzie.
|
||||
* @ctx_type: Context type.
|
||||
*
|
||||
* Return: Void.
|
||||
*/
|
||||
void qed_memset_session_ctx(void *p_ctx_mem, u32 ctx_size, u8 ctx_type);
|
||||
|
||||
/**
|
||||
* qed_memset_task_ctx(): Memset task context to 0 while preserving
|
||||
* validation bytes.
|
||||
*
|
||||
* @p_ctx_mem: Pointer to context memory.
|
||||
* @ctx_size: size to initialzie.
|
||||
* @ctx_type: context type.
|
||||
*
|
||||
* Return: Void.
|
||||
*/
|
||||
void qed_memset_task_ctx(void *p_ctx_mem, u32 ctx_size, u8 ctx_type);
|
||||
|
||||
#define NUM_STORMS 6
|
||||
|
||||
/**
|
||||
|
|
|
|||
|
|
@ -69,17 +69,6 @@ int qed_ptt_pool_alloc(struct qed_hwfn *p_hwfn)
|
|||
return 0;
|
||||
}
|
||||
|
||||
void qed_ptt_invalidate(struct qed_hwfn *p_hwfn)
|
||||
{
|
||||
struct qed_ptt *p_ptt;
|
||||
int i;
|
||||
|
||||
for (i = 0; i < PXP_EXTERNAL_BAR_PF_WINDOW_NUM; i++) {
|
||||
p_ptt = &p_hwfn->p_ptt_pool->ptts[i];
|
||||
p_ptt->pxp.offset = QED_BAR_INVALID_OFFSET;
|
||||
}
|
||||
}
|
||||
|
||||
void qed_ptt_pool_free(struct qed_hwfn *p_hwfn)
|
||||
{
|
||||
kfree(p_hwfn->p_ptt_pool);
|
||||
|
|
|
|||
|
|
@ -61,15 +61,6 @@ enum _dmae_cmd_crc_mask {
|
|||
*/
|
||||
void qed_gtt_init(struct qed_hwfn *p_hwfn);
|
||||
|
||||
/**
|
||||
* qed_ptt_invalidate(): Forces all ptt entries to be re-configured
|
||||
*
|
||||
* @p_hwfn: HW device data.
|
||||
*
|
||||
* Return: Void.
|
||||
*/
|
||||
void qed_ptt_invalidate(struct qed_hwfn *p_hwfn);
|
||||
|
||||
/**
|
||||
* qed_ptt_pool_alloc(): Allocate and initialize PTT pool.
|
||||
*
|
||||
|
|
|
|||
|
|
@ -18,16 +18,6 @@
|
|||
|
||||
#define CDU_VALIDATION_DEFAULT_CFG CDU_CONTEXT_VALIDATION_DEFAULT_CFG
|
||||
|
||||
static u16 con_region_offsets[3][NUM_OF_CONNECTION_TYPES] = {
|
||||
{400, 336, 352, 368, 304, 384, 416, 352}, /* region 3 offsets */
|
||||
{528, 496, 416, 512, 448, 512, 544, 480}, /* region 4 offsets */
|
||||
{608, 544, 496, 576, 576, 592, 624, 560} /* region 5 offsets */
|
||||
};
|
||||
|
||||
static u16 task_region_offsets[1][NUM_OF_CONNECTION_TYPES] = {
|
||||
{240, 240, 112, 0, 0, 0, 0, 96} /* region 1 offsets */
|
||||
};
|
||||
|
||||
/* General constants */
|
||||
#define QM_PQ_MEM_4KB(pq_size) (pq_size ? DIV_ROUND_UP((pq_size + 1) * \
|
||||
QM_PQ_ELEMENT_SIZE, \
|
||||
|
|
@ -1576,134 +1566,6 @@ void qed_gft_config(struct qed_hwfn *p_hwfn,
|
|||
qed_wr(p_hwfn, p_ptt, PRS_REG_SEARCH_GFT, 1);
|
||||
}
|
||||
|
||||
DECLARE_CRC8_TABLE(cdu_crc8_table);
|
||||
|
||||
/* Calculate and return CDU validation byte per connection type/region/cid */
|
||||
static u8 qed_calc_cdu_validation_byte(u8 conn_type, u8 region, u32 cid)
|
||||
{
|
||||
const u8 validation_cfg = CDU_VALIDATION_DEFAULT_CFG;
|
||||
u8 crc, validation_byte = 0;
|
||||
static u8 crc8_table_valid; /* automatically initialized to 0 */
|
||||
u32 validation_string = 0;
|
||||
__be32 data_to_crc;
|
||||
|
||||
if (!crc8_table_valid) {
|
||||
crc8_populate_msb(cdu_crc8_table, 0x07);
|
||||
crc8_table_valid = 1;
|
||||
}
|
||||
|
||||
/* The CRC is calculated on the String-to-compress:
|
||||
* [31:8] = {CID[31:20],CID[11:0]}
|
||||
* [7:4] = Region
|
||||
* [3:0] = Type
|
||||
*/
|
||||
if ((validation_cfg >> CDU_CONTEXT_VALIDATION_CFG_USE_CID) & 1)
|
||||
validation_string |= (cid & 0xFFF00000) | ((cid & 0xFFF) << 8);
|
||||
|
||||
if ((validation_cfg >> CDU_CONTEXT_VALIDATION_CFG_USE_REGION) & 1)
|
||||
validation_string |= ((region & 0xF) << 4);
|
||||
|
||||
if ((validation_cfg >> CDU_CONTEXT_VALIDATION_CFG_USE_TYPE) & 1)
|
||||
validation_string |= (conn_type & 0xF);
|
||||
|
||||
/* Convert to big-endian and calculate CRC8 */
|
||||
data_to_crc = cpu_to_be32(validation_string);
|
||||
crc = crc8(cdu_crc8_table, (u8 *)&data_to_crc, sizeof(data_to_crc),
|
||||
CRC8_INIT_VALUE);
|
||||
|
||||
/* The validation byte [7:0] is composed:
|
||||
* for type A validation
|
||||
* [7] = active configuration bit
|
||||
* [6:0] = crc[6:0]
|
||||
*
|
||||
* for type B validation
|
||||
* [7] = active configuration bit
|
||||
* [6:3] = connection_type[3:0]
|
||||
* [2:0] = crc[2:0]
|
||||
*/
|
||||
validation_byte |=
|
||||
((validation_cfg >>
|
||||
CDU_CONTEXT_VALIDATION_CFG_USE_ACTIVE) & 1) << 7;
|
||||
|
||||
if ((validation_cfg >>
|
||||
CDU_CONTEXT_VALIDATION_CFG_VALIDATION_TYPE_SHIFT) & 1)
|
||||
validation_byte |= ((conn_type & 0xF) << 3) | (crc & 0x7);
|
||||
else
|
||||
validation_byte |= crc & 0x7F;
|
||||
|
||||
return validation_byte;
|
||||
}
|
||||
|
||||
/* Calcualte and set validation bytes for session context */
|
||||
void qed_calc_session_ctx_validation(void *p_ctx_mem,
|
||||
u16 ctx_size, u8 ctx_type, u32 cid)
|
||||
{
|
||||
u8 *x_val_ptr, *t_val_ptr, *u_val_ptr, *p_ctx;
|
||||
|
||||
p_ctx = (u8 * const)p_ctx_mem;
|
||||
x_val_ptr = &p_ctx[con_region_offsets[0][ctx_type]];
|
||||
t_val_ptr = &p_ctx[con_region_offsets[1][ctx_type]];
|
||||
u_val_ptr = &p_ctx[con_region_offsets[2][ctx_type]];
|
||||
|
||||
memset(p_ctx, 0, ctx_size);
|
||||
|
||||
*x_val_ptr = qed_calc_cdu_validation_byte(ctx_type, 3, cid);
|
||||
*t_val_ptr = qed_calc_cdu_validation_byte(ctx_type, 4, cid);
|
||||
*u_val_ptr = qed_calc_cdu_validation_byte(ctx_type, 5, cid);
|
||||
}
|
||||
|
||||
/* Calcualte and set validation bytes for task context */
|
||||
void qed_calc_task_ctx_validation(void *p_ctx_mem,
|
||||
u16 ctx_size, u8 ctx_type, u32 tid)
|
||||
{
|
||||
u8 *p_ctx, *region1_val_ptr;
|
||||
|
||||
p_ctx = (u8 * const)p_ctx_mem;
|
||||
region1_val_ptr = &p_ctx[task_region_offsets[0][ctx_type]];
|
||||
|
||||
memset(p_ctx, 0, ctx_size);
|
||||
|
||||
*region1_val_ptr = qed_calc_cdu_validation_byte(ctx_type, 1, tid);
|
||||
}
|
||||
|
||||
/* Memset session context to 0 while preserving validation bytes */
|
||||
void qed_memset_session_ctx(void *p_ctx_mem, u32 ctx_size, u8 ctx_type)
|
||||
{
|
||||
u8 *x_val_ptr, *t_val_ptr, *u_val_ptr, *p_ctx;
|
||||
u8 x_val, t_val, u_val;
|
||||
|
||||
p_ctx = (u8 * const)p_ctx_mem;
|
||||
x_val_ptr = &p_ctx[con_region_offsets[0][ctx_type]];
|
||||
t_val_ptr = &p_ctx[con_region_offsets[1][ctx_type]];
|
||||
u_val_ptr = &p_ctx[con_region_offsets[2][ctx_type]];
|
||||
|
||||
x_val = *x_val_ptr;
|
||||
t_val = *t_val_ptr;
|
||||
u_val = *u_val_ptr;
|
||||
|
||||
memset(p_ctx, 0, ctx_size);
|
||||
|
||||
*x_val_ptr = x_val;
|
||||
*t_val_ptr = t_val;
|
||||
*u_val_ptr = u_val;
|
||||
}
|
||||
|
||||
/* Memset task context to 0 while preserving validation bytes */
|
||||
void qed_memset_task_ctx(void *p_ctx_mem, u32 ctx_size, u8 ctx_type)
|
||||
{
|
||||
u8 *p_ctx, *region1_val_ptr;
|
||||
u8 region1_val;
|
||||
|
||||
p_ctx = (u8 * const)p_ctx_mem;
|
||||
region1_val_ptr = &p_ctx[task_region_offsets[0][ctx_type]];
|
||||
|
||||
region1_val = *region1_val_ptr;
|
||||
|
||||
memset(p_ctx, 0, ctx_size);
|
||||
|
||||
*region1_val_ptr = region1_val;
|
||||
}
|
||||
|
||||
/* Enable and configure context validation */
|
||||
void qed_enable_context_validation(struct qed_hwfn *p_hwfn,
|
||||
struct qed_ptt *p_ptt)
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user