mirror of
https://git.proxmox.com/git/mirror_ubuntu-kernels.git
synced 2025-11-23 16:24:15 +00:00
Add a sub-driver for SDIO based chipsets which implements the following functionality: - register accessors for 8, 16 and 32 bits for all states of the card (including usage of 4x 8 bit access for one 32 bit buffer if the card is not fully powered on yet - or if it's fully powered on then 1x 32 bit access is used) - checking whether there's space in the TX FIFO queue to transmit data - transfers from the host to the device for actual network traffic, reserved pages (for firmware download) and H2C (host-to-card) transfers - receiving data from the device - deep power saving state The transmit path is optimized so DMA-capable SDIO host controllers can directly use the buffers provided because the buffer's physical addresses are 8 byte aligned. The receive path is prepared to support RX aggregation where the chipset combines multiple MAC frames into one bigger buffer to reduce SDIO transfer overhead. Co-developed-by: Jernej Skrabec <jernej.skrabec@gmail.com> Signed-off-by: Jernej Skrabec <jernej.skrabec@gmail.com> Reviewed-by: Ulf Hansson <ulf.hansson@linaro.org> Signed-off-by: Martin Blumenstingl <martin.blumenstingl@googlemail.com> Reviewed-by: Ping-Ke Shih <pkshih@realtek.com> Signed-off-by: Kalle Valo <kvalo@kernel.org> Link: https://lore.kernel.org/r/20230405200729.632435-3-martin.blumenstingl@googlemail.com
63 lines
1.5 KiB
C
63 lines
1.5 KiB
C
/* SPDX-License-Identifier: GPL-2.0 OR BSD-3-Clause */
|
|
/* Copyright(c) 2018-2019 Realtek Corporation
|
|
*/
|
|
|
|
#ifndef __RTW_DEBUG_H
|
|
#define __RTW_DEBUG_H
|
|
|
|
enum rtw_debug_mask {
|
|
RTW_DBG_PCI = 0x00000001,
|
|
RTW_DBG_TX = 0x00000002,
|
|
RTW_DBG_RX = 0x00000004,
|
|
RTW_DBG_PHY = 0x00000008,
|
|
RTW_DBG_FW = 0x00000010,
|
|
RTW_DBG_EFUSE = 0x00000020,
|
|
RTW_DBG_COEX = 0x00000040,
|
|
RTW_DBG_RFK = 0x00000080,
|
|
RTW_DBG_REGD = 0x00000100,
|
|
RTW_DBG_DEBUGFS = 0x00000200,
|
|
RTW_DBG_PS = 0x00000400,
|
|
RTW_DBG_BF = 0x00000800,
|
|
RTW_DBG_WOW = 0x00001000,
|
|
RTW_DBG_CFO = 0x00002000,
|
|
RTW_DBG_PATH_DIV = 0x00004000,
|
|
RTW_DBG_ADAPTIVITY = 0x00008000,
|
|
RTW_DBG_HW_SCAN = 0x00010000,
|
|
RTW_DBG_STATE = 0x00020000,
|
|
RTW_DBG_SDIO = 0x00040000,
|
|
|
|
RTW_DBG_ALL = 0xffffffff
|
|
};
|
|
|
|
#ifdef CONFIG_RTW88_DEBUGFS
|
|
|
|
void rtw_debugfs_init(struct rtw_dev *rtwdev);
|
|
void rtw_debugfs_get_simple_phy_info(struct seq_file *m);
|
|
|
|
#else
|
|
|
|
static inline void rtw_debugfs_init(struct rtw_dev *rtwdev) {}
|
|
|
|
#endif /* CONFIG_RTW88_DEBUGFS */
|
|
|
|
#ifdef CONFIG_RTW88_DEBUG
|
|
|
|
__printf(3, 4)
|
|
void __rtw_dbg(struct rtw_dev *rtwdev, enum rtw_debug_mask mask,
|
|
const char *fmt, ...);
|
|
|
|
#define rtw_dbg(rtwdev, a...) __rtw_dbg(rtwdev, ##a)
|
|
|
|
#else
|
|
|
|
static inline void rtw_dbg(struct rtw_dev *rtwdev, enum rtw_debug_mask mask,
|
|
const char *fmt, ...) {}
|
|
|
|
#endif /* CONFIG_RTW88_DEBUG */
|
|
|
|
#define rtw_info(rtwdev, a...) dev_info(rtwdev->dev, ##a)
|
|
#define rtw_warn(rtwdev, a...) dev_warn(rtwdev->dev, ##a)
|
|
#define rtw_err(rtwdev, a...) dev_err(rtwdev->dev, ##a)
|
|
|
|
#endif
|