Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 2cdd634e authored by Ping-Ke Shih's avatar Ping-Ke Shih Committed by Kalle Valo
Browse files

rtlwifi: add efuse ops for other components



The new component phydm need to access efuse content, so we prepare ops
for reference.

Signed-off-by: default avatarTsang-Shian Lin <thlin@realtek.com>
Signed-off-by: default avatarPing-Ke Shih <pkshih@realtek.com>
Acked-by: default avatarLarry Finger <Larry.Finger@lwfinger.net>
Signed-off-by: default avatarKalle Valo <kvalo@codeaurora.org>
parent ed979a1e
Loading
Loading
Loading
Loading
+13 −0
Original line number Diff line number Diff line
@@ -50,6 +50,11 @@ static const struct efuse_map RTL8712_SDIO_EFUSE_TABLE[] = {
	{11, 0, 0, 28}
};

static const struct rtl_efuse_ops efuse_ops = {
	.efuse_onebyte_read = efuse_one_byte_read,
	.efuse_logical_map_read = efuse_shadow_read,
};

static void efuse_shadow_read_1byte(struct ieee80211_hw *hw, u16 offset,
				    u8 *value);
static void efuse_shadow_read_2byte(struct ieee80211_hw *hw, u16 offset,
@@ -1364,3 +1369,11 @@ void rtl_fill_dummy(u8 *pfwbuf, u32 *pfwlen)
	*pfwlen = fwlen;
}
EXPORT_SYMBOL_GPL(rtl_fill_dummy);

void rtl_efuse_ops_init(struct ieee80211_hw *hw)
{
	struct rtl_priv *rtlpriv = rtl_priv(hw);

	rtlpriv->efuse.efuse_ops = &efuse_ops;
}
EXPORT_SYMBOL_GPL(rtl_efuse_ops_init);
+1 −1
Original line number Diff line number Diff line
@@ -116,5 +116,5 @@ void rtl_fill_dummy(u8 *pfwbuf, u32 *pfwlen);
void rtl_fw_page_write(struct ieee80211_hw *hw, u32 page, const u8 *buffer,
		       u32 size);
void rtl_fw_block_write(struct ieee80211_hw *hw, const u8 *buffer, u32 size);

void rtl_efuse_ops_init(struct ieee80211_hw *hw);
#endif
+1 −0
Original line number Diff line number Diff line
@@ -2238,6 +2238,7 @@ int rtl_pci_probe(struct pci_dev *pdev,
	rtlpriv->cfg = (struct rtl_hal_cfg *)(id->driver_data);
	rtlpriv->intf_ops = &rtl_pci_ops;
	rtlpriv->glb_var = &rtl_global_var;
	rtl_efuse_ops_init(hw);

	/* MEM map */
	err = pci_request_regions(pdev, KBUILD_MODNAME);
+7 −0
Original line number Diff line number Diff line
@@ -1813,6 +1813,7 @@ struct rtl_dm {
#define	EFUSE_MAX_LOGICAL_SIZE			512

struct rtl_efuse {
	const struct rtl_efuse_ops *efuse_ops;
	bool autoLoad_ok;
	bool bootfromefuse;
	u16 max_physical_size;
@@ -1918,6 +1919,12 @@ struct rtl_efuse {
	u8 channel_plan;
};

struct rtl_efuse_ops {
	int (*efuse_onebyte_read)(struct ieee80211_hw *hw, u16 addr, u8 *data);
	void (*efuse_logical_map_read)(struct ieee80211_hw *hw, u8 type,
				       u16 offset, u32 *value);
};

struct rtl_tx_report {
	atomic_t sn;
	u16 last_sent_sn;