cregit-Linux how code gets into the kernel

Release 4.18 drivers/staging/rtlwifi/phydm/phydm_interface.c

// SPDX-License-Identifier: GPL-2.0
/******************************************************************************
 *
 * Copyright(c) 2007 - 2016  Realtek Corporation.
 *
 * Contact Information:
 * wlanfae <wlanfae@realtek.com>
 * Realtek Corporation, No. 2, Innovation Road II, Hsinchu Science Park,
 * Hsinchu 300, Taiwan.
 *
 * Larry Finger <Larry.Finger@lwfinger.net>
 *
 *****************************************************************************/

/* ************************************************************
 * include files
 * *************************************************************/

#include "mp_precomp.h"
#include "phydm_precomp.h"

/*
 * ODM IO Relative API.
 */


u8 odm_read_1byte(struct phy_dm_struct *dm, u32 reg_addr) { struct rtl_priv *rtlpriv = (struct rtl_priv *)dm->adapter; return rtl_read_byte(rtlpriv, reg_addr); }

Contributors

PersonTokensPropCommitsCommitProp
Ping-Ke Shih35100.00%1100.00%
Total35100.00%1100.00%


u16 odm_read_2byte(struct phy_dm_struct *dm, u32 reg_addr) { struct rtl_priv *rtlpriv = (struct rtl_priv *)dm->adapter; return rtl_read_word(rtlpriv, reg_addr); }

Contributors

PersonTokensPropCommitsCommitProp
Ping-Ke Shih35100.00%1100.00%
Total35100.00%1100.00%


u32 odm_read_4byte(struct phy_dm_struct *dm, u32 reg_addr) { struct rtl_priv *rtlpriv = (struct rtl_priv *)dm->adapter; return rtl_read_dword(rtlpriv, reg_addr); }

Contributors

PersonTokensPropCommitsCommitProp
Ping-Ke Shih35100.00%1100.00%
Total35100.00%1100.00%


void odm_write_1byte(struct phy_dm_struct *dm, u32 reg_addr, u8 data) { struct rtl_priv *rtlpriv = (struct rtl_priv *)dm->adapter; rtl_write_byte(rtlpriv, reg_addr, data); }

Contributors

PersonTokensPropCommitsCommitProp
Ping-Ke Shih39100.00%1100.00%
Total39100.00%1100.00%


void odm_write_2byte(struct phy_dm_struct *dm, u32 reg_addr, u16 data) { struct rtl_priv *rtlpriv = (struct rtl_priv *)dm->adapter; rtl_write_word(rtlpriv, reg_addr, data); }

Contributors

PersonTokensPropCommitsCommitProp
Ping-Ke Shih39100.00%1100.00%
Total39100.00%1100.00%


void odm_write_4byte(struct phy_dm_struct *dm, u32 reg_addr, u32 data) { struct rtl_priv *rtlpriv = (struct rtl_priv *)dm->adapter; rtl_write_dword(rtlpriv, reg_addr, data); }

Contributors

PersonTokensPropCommitsCommitProp
Ping-Ke Shih39100.00%1100.00%
Total39100.00%1100.00%


void odm_set_mac_reg(struct phy_dm_struct *dm, u32 reg_addr, u32 bit_mask, u32 data) { struct rtl_priv *rtlpriv = (struct rtl_priv *)dm->adapter; rtl_set_bbreg(rtlpriv->hw, reg_addr, bit_mask, data); }

Contributors

PersonTokensPropCommitsCommitProp
Ping-Ke Shih46100.00%1100.00%
Total46100.00%1100.00%


u32 odm_get_mac_reg(struct phy_dm_struct *dm, u32 reg_addr, u32 bit_mask) { struct rtl_priv *rtlpriv = (struct rtl_priv *)dm->adapter; return rtl_get_bbreg(rtlpriv->hw, reg_addr, bit_mask); }

Contributors

PersonTokensPropCommitsCommitProp
Ping-Ke Shih42100.00%1100.00%
Total42100.00%1100.00%


void odm_set_bb_reg(struct phy_dm_struct *dm, u32 reg_addr, u32 bit_mask, u32 data) { struct rtl_priv *rtlpriv = (struct rtl_priv *)dm->adapter; rtl_set_bbreg(rtlpriv->hw, reg_addr, bit_mask, data); }

Contributors

PersonTokensPropCommitsCommitProp
Ping-Ke Shih46100.00%1100.00%
Total46100.00%1100.00%


u32 odm_get_bb_reg(struct phy_dm_struct *dm, u32 reg_addr, u32 bit_mask) { struct rtl_priv *rtlpriv = (struct rtl_priv *)dm->adapter; return rtl_get_bbreg(rtlpriv->hw, reg_addr, bit_mask); }

Contributors

PersonTokensPropCommitsCommitProp
Ping-Ke Shih42100.00%1100.00%
Total42100.00%1100.00%


void odm_set_rf_reg(struct phy_dm_struct *dm, enum odm_rf_radio_path e_rf_path, u32 reg_addr, u32 bit_mask, u32 data) { struct rtl_priv *rtlpriv = (struct rtl_priv *)dm->adapter; rtl_set_rfreg(rtlpriv->hw, (enum radio_path)e_rf_path, reg_addr, bit_mask, data); }

Contributors

PersonTokensPropCommitsCommitProp
Ping-Ke Shih56100.00%1100.00%
Total56100.00%1100.00%


u32 odm_get_rf_reg(struct phy_dm_struct *dm, enum odm_rf_radio_path e_rf_path, u32 reg_addr, u32 bit_mask) { struct rtl_priv *rtlpriv = (struct rtl_priv *)dm->adapter; return rtl_get_rfreg(rtlpriv->hw, (enum radio_path)e_rf_path, reg_addr, bit_mask); }

Contributors

PersonTokensPropCommitsCommitProp
Ping-Ke Shih52100.00%1100.00%
Total52100.00%1100.00%

/* * ODM Memory relative API. */
void odm_allocate_memory(struct phy_dm_struct *dm, void **ptr, u32 length) { *ptr = kmalloc(length, GFP_ATOMIC); }

Contributors

PersonTokensPropCommitsCommitProp
Ping-Ke Shih28100.00%1100.00%
Total28100.00%1100.00%

/* length could be ignored, used to detect memory leakage. */
void odm_free_memory(struct phy_dm_struct *dm, void *ptr, u32 length) { kfree(ptr); }

Contributors

PersonTokensPropCommitsCommitProp
Ping-Ke Shih22100.00%1100.00%
Total22100.00%1100.00%


void odm_move_memory(struct phy_dm_struct *dm, void *p_dest, void *src, u32 length) { memcpy(p_dest, src, length); }

Contributors

PersonTokensPropCommitsCommitProp
Ping-Ke Shih30100.00%1100.00%
Total30100.00%1100.00%


void odm_memory_set(struct phy_dm_struct *dm, void *pbuf, s8 value, u32 length) { memset(pbuf, value, length); }

Contributors

PersonTokensPropCommitsCommitProp
Ping-Ke Shih29100.00%1100.00%
Total29100.00%1100.00%


s32 odm_compare_memory(struct phy_dm_struct *dm, void *p_buf1, void *buf2, u32 length) { return memcmp(p_buf1, buf2, length); }

Contributors

PersonTokensPropCommitsCommitProp
Ping-Ke Shih31100.00%1100.00%
Total31100.00%1100.00%

/* * ODM MISC relative API. */
void odm_acquire_spin_lock(struct phy_dm_struct *dm, enum rt_spinlock_type type) { }

Contributors

PersonTokensPropCommitsCommitProp
Ping-Ke Shih13100.00%1100.00%
Total13100.00%1100.00%


void odm_release_spin_lock(struct phy_dm_struct *dm, enum rt_spinlock_type type) { }

Contributors

PersonTokensPropCommitsCommitProp
Ping-Ke Shih13100.00%1100.00%
Total13100.00%1100.00%

/* * ODM Timer relative API. */
void odm_stall_execution(u32 us_delay) { udelay(us_delay); }

Contributors

PersonTokensPropCommitsCommitProp
Ping-Ke Shih13100.00%1100.00%
Total13100.00%1100.00%


void ODM_delay_ms(u32 ms) { mdelay(ms); }

Contributors

PersonTokensPropCommitsCommitProp
Ping-Ke Shih13100.00%1100.00%
Total13100.00%1100.00%


void ODM_delay_us(u32 us) { udelay(us); }

Contributors

PersonTokensPropCommitsCommitProp
Ping-Ke Shih13100.00%1100.00%
Total13100.00%1100.00%


void ODM_sleep_ms(u32 ms) { msleep(ms); }

Contributors

PersonTokensPropCommitsCommitProp
Ping-Ke Shih13100.00%1100.00%
Total13100.00%1100.00%


void ODM_sleep_us(u32 us) { usleep_range(us, us + 1); }

Contributors

PersonTokensPropCommitsCommitProp
Ping-Ke Shih17100.00%1100.00%
Total17100.00%1100.00%


static u8 phydm_trans_h2c_id(struct phy_dm_struct *dm, u8 phydm_h2c_id) { u8 platform_h2c_id = phydm_h2c_id; switch (phydm_h2c_id) { /* 1 [0] */ case ODM_H2C_RSSI_REPORT: break; /* 1 [3] */ case ODM_H2C_WIFI_CALIBRATION: break; /* 1 [4] */ case ODM_H2C_IQ_CALIBRATION: break; /* 1 [5] */ case ODM_H2C_RA_PARA_ADJUST: break; /* 1 [6] */ case PHYDM_H2C_DYNAMIC_TX_PATH: break; /* [7]*/ case PHYDM_H2C_FW_TRACE_EN: platform_h2c_id = 0x49; break; case PHYDM_H2C_TXBF: break; case PHYDM_H2C_MU: platform_h2c_id = 0x4a; /*H2C_MU*/ break; default: platform_h2c_id = phydm_h2c_id; break; } return platform_h2c_id; }

Contributors

PersonTokensPropCommitsCommitProp
Ping-Ke Shih81100.00%1100.00%
Total81100.00%1100.00%

/*ODM FW relative API.*/
void odm_fill_h2c_cmd(struct phy_dm_struct *dm, u8 phydm_h2c_id, u32 cmd_len, u8 *cmd_buffer) { struct rtl_priv *rtlpriv = (struct rtl_priv *)dm->adapter; u8 platform_h2c_id; platform_h2c_id = phydm_trans_h2c_id(dm, phydm_h2c_id); ODM_RT_TRACE(dm, PHYDM_COMP_RA_DBG, "[H2C] platform_h2c_id = ((0x%x))\n", platform_h2c_id); rtlpriv->cfg->ops->fill_h2c_cmd(rtlpriv->hw, platform_h2c_id, cmd_len, cmd_buffer); }

Contributors

PersonTokensPropCommitsCommitProp
Ping-Ke Shih76100.00%1100.00%
Total76100.00%1100.00%


u8 phydm_c2H_content_parsing(void *dm_void, u8 c2h_cmd_id, u8 c2h_cmd_len, u8 *tmp_buf) { struct phy_dm_struct *dm = (struct phy_dm_struct *)dm_void; u8 extend_c2h_sub_id = 0; u8 find_c2h_cmd = true; switch (c2h_cmd_id) { case PHYDM_C2H_DBG: phydm_fw_trace_handler(dm, tmp_buf, c2h_cmd_len); break; case PHYDM_C2H_RA_RPT: phydm_c2h_ra_report_handler(dm, tmp_buf, c2h_cmd_len); break; case PHYDM_C2H_RA_PARA_RPT: odm_c2h_ra_para_report_handler(dm, tmp_buf, c2h_cmd_len); break; case PHYDM_C2H_DYNAMIC_TX_PATH_RPT: break; case PHYDM_C2H_IQK_FINISH: break; case PHYDM_C2H_DBG_CODE: phydm_fw_trace_handler_code(dm, tmp_buf, c2h_cmd_len); break; case PHYDM_C2H_EXTEND: extend_c2h_sub_id = tmp_buf[0]; if (extend_c2h_sub_id == PHYDM_EXTEND_C2H_DBG_PRINT) phydm_fw_trace_handler_8051(dm, tmp_buf, c2h_cmd_len); break; default: find_c2h_cmd = false; break; } return find_c2h_cmd; }

Contributors

PersonTokensPropCommitsCommitProp
Ping-Ke Shih142100.00%1100.00%
Total142100.00%1100.00%


u64 odm_get_current_time(struct phy_dm_struct *dm) { return jiffies; }

Contributors

PersonTokensPropCommitsCommitProp
Ping-Ke Shih13100.00%1100.00%
Total13100.00%1100.00%


u64 odm_get_progressing_time(struct phy_dm_struct *dm, u64 start_time) { return jiffies_to_msecs(jiffies - (u32)start_time); }

Contributors

PersonTokensPropCommitsCommitProp
Ping-Ke Shih24100.00%1100.00%
Total24100.00%1100.00%


void odm_set_tx_power_index_by_rate_section(struct phy_dm_struct *dm, u8 rf_path, u8 channel, u8 rate_section) { void *adapter = dm->adapter; phy_set_tx_power_index_by_rs(adapter, channel, rf_path, rate_section); }

Contributors

PersonTokensPropCommitsCommitProp
Ping-Ke Shih38100.00%1100.00%
Total38100.00%1100.00%


u8 odm_get_tx_power_index(struct phy_dm_struct *dm, u8 rf_path, u8 tx_rate, u8 band_width, u8 channel) { void *adapter = dm->adapter; return phy_get_tx_power_index(adapter, (enum odm_rf_radio_path)rf_path, tx_rate, band_width, channel); }

Contributors

PersonTokensPropCommitsCommitProp
Ping-Ke Shih48100.00%1100.00%
Total48100.00%1100.00%


Overall Contributors

PersonTokensPropCommitsCommitProp
Ping-Ke Shih117699.83%150.00%
Nathan Chancellor20.17%150.00%
Total1178100.00%2100.00%
Information contained on this website is for historical information purposes only and does not indicate or represent copyright ownership.
Created with cregit.