[bvanassche:ufs-for-next 318/322] drivers/scsi/ufs/ufs-qcom.h:135:19: error: implicit declaration of function 'ufshcd_readl'

From: kernel test robot
Date: Tue Mar 22 2022 - 17:21:43 EST


tree: https://github.com/bvanassche/linux ufs-for-next
head: 8fa6e7568ac59ecefa91caa1ac6a39d87ee280d5
commit: 88b7805e9ca963d3844133baf17e5281d28ecbea [318/322] scsi: ufs: Remove unnecessary ufshcd-crypto.h include directives
config: arm-allmodconfig (https://download.01.org/0day-ci/archive/20220323/202203230504.dpKCeXdj-lkp@xxxxxxxxx/config)
compiler: arm-linux-gnueabi-gcc (GCC) 11.2.0
reproduce (this is a W=1 build):
wget https://raw.githubusercontent.com/intel/lkp-tests/master/sbin/make.cross -O ~/bin/make.cross
chmod +x ~/bin/make.cross
# https://github.com/bvanassche/linux/commit/88b7805e9ca963d3844133baf17e5281d28ecbea
git remote add bvanassche https://github.com/bvanassche/linux
git fetch --no-tags bvanassche ufs-for-next
git checkout 88b7805e9ca963d3844133baf17e5281d28ecbea
# save the config file to linux build tree
mkdir build_dir
COMPILER_INSTALL_PATH=$HOME/0day COMPILER=gcc-11.2.0 make.cross O=build_dir ARCH=arm SHELL=/bin/bash drivers/scsi/

If you fix the issue, kindly add following tag as appropriate
Reported-by: kernel test robot <lkp@xxxxxxxxx>

All error/warnings (new ones prefixed by >>):

In file included from drivers/scsi/ufs/ufs-qcom-ice.c:12:
>> drivers/scsi/ufs/ufs-qcom.h:132:41: warning: 'struct ufs_hba' declared inside parameter list will not be visible outside of this definition or declaration
132 | ufs_qcom_get_controller_revision(struct ufs_hba *hba,
| ^~~~~~~
drivers/scsi/ufs/ufs-qcom.h: In function 'ufs_qcom_get_controller_revision':
>> drivers/scsi/ufs/ufs-qcom.h:135:19: error: implicit declaration of function 'ufshcd_readl' [-Werror=implicit-function-declaration]
135 | u32 ver = ufshcd_readl(hba, REG_UFS_HW_VERSION);
| ^~~~~~~~~~~~
drivers/scsi/ufs/ufs-qcom.h: At top level:
drivers/scsi/ufs/ufs-qcom.h:142:49: warning: 'struct ufs_hba' declared inside parameter list will not be visible outside of this definition or declaration
142 | static inline void ufs_qcom_assert_reset(struct ufs_hba *hba)
| ^~~~~~~
drivers/scsi/ufs/ufs-qcom.h: In function 'ufs_qcom_assert_reset':
>> drivers/scsi/ufs/ufs-qcom.h:144:9: error: implicit declaration of function 'ufshcd_rmwl' [-Werror=implicit-function-declaration]
144 | ufshcd_rmwl(hba, MASK_UFS_PHY_SOFT_RESET,
| ^~~~~~~~~~~
drivers/scsi/ufs/ufs-qcom.h: At top level:
drivers/scsi/ufs/ufs-qcom.h:154:51: warning: 'struct ufs_hba' declared inside parameter list will not be visible outside of this definition or declaration
154 | static inline void ufs_qcom_deassert_reset(struct ufs_hba *hba)
| ^~~~~~~
>> drivers/scsi/ufs/ufs-qcom.h:198:34: error: field 'dev_req_params' has incomplete type
198 | struct ufs_pa_layer_attr dev_req_params;
| ^~~~~~~~~~~~~~
>> drivers/scsi/ufs/ufs-qcom.h:252:42: warning: 'union ufs_crypto_cfg_entry' declared inside parameter list will not be visible outside of this definition or declaration
252 | const union ufs_crypto_cfg_entry *cfg, int slot);
| ^~~~~~~~~~~~~~~~~~~~
drivers/scsi/ufs/ufs-qcom-ice.c: In function 'qcom_ice_supported':
>> drivers/scsi/ufs/ufs-qcom-ice.c:67:39: error: invalid use of undefined type 'struct ufs_hba'
67 | struct device *dev = host->hba->dev;
| ^~
>> drivers/scsi/ufs/ufs-qcom-ice.c:63:9: error: implicit declaration of function 'readl' [-Werror=implicit-function-declaration]
63 | readl((host)->ice_mmio + (reg))
| ^~~~~
drivers/scsi/ufs/ufs-qcom-ice.c:68:22: note: in expansion of macro 'qcom_ice_readl'
68 | u32 regval = qcom_ice_readl(host, QCOM_ICE_REG_VERSION);
| ^~~~~~~~~~~~~~
drivers/scsi/ufs/ufs-qcom-ice.c: In function 'ufs_qcom_ice_init':
drivers/scsi/ufs/ufs-qcom-ice.c:97:33: error: invalid use of undefined type 'struct ufs_hba'
97 | struct device *dev = hba->dev;
| ^~
>> drivers/scsi/ufs/ufs-qcom-ice.c:102:33: error: 'REG_CONTROLLER_CAPABILITIES' undeclared (first use in this function)
102 | if (!(ufshcd_readl(hba, REG_CONTROLLER_CAPABILITIES) &
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~
drivers/scsi/ufs/ufs-qcom-ice.c:102:33: note: each undeclared identifier is reported only once for each function it appears in
>> drivers/scsi/ufs/ufs-qcom-ice.c:103:15: error: 'MASK_CRYPTO_SUPPORT' undeclared (first use in this function)
103 | MASK_CRYPTO_SUPPORT))
| ^~~~~~~~~~~~~~~~~~~
drivers/scsi/ufs/ufs-qcom-ice.c:131:12: error: invalid use of undefined type 'struct ufs_hba'
131 | hba->caps &= ~UFSHCD_CAP_CRYPTO;
| ^~
>> drivers/scsi/ufs/ufs-qcom-ice.c:131:23: error: 'UFSHCD_CAP_CRYPTO' undeclared (first use in this function)
131 | hba->caps &= ~UFSHCD_CAP_CRYPTO;
| ^~~~~~~~~~~~~~~~~
drivers/scsi/ufs/ufs-qcom-ice.c: In function 'qcom_ice_low_power_mode_enable':
>> drivers/scsi/ufs/ufs-qcom-ice.c:61:9: error: implicit declaration of function 'writel' [-Werror=implicit-function-declaration]
61 | writel((val), (host)->ice_mmio + (reg))
| ^~~~~~
drivers/scsi/ufs/ufs-qcom-ice.c:145:9: note: in expansion of macro 'qcom_ice_writel'
145 | qcom_ice_writel(host, regval, QCOM_ICE_REG_ADVANCED_CONTROL);
| ^~~~~~~~~~~~~~~
drivers/scsi/ufs/ufs-qcom-ice.c: In function 'qcom_ice_optimization_enable':
>> drivers/scsi/ufs/ufs-qcom-ice.c:156:9: error: implicit declaration of function 'udelay' [-Werror=implicit-function-declaration]
156 | udelay(5);
| ^~~~~~
drivers/scsi/ufs/ufs-qcom-ice.c: In function 'ufs_qcom_ice_enable':
drivers/scsi/ufs/ufs-qcom-ice.c:163:24: error: invalid use of undefined type 'struct ufs_hba'
163 | if (!(host->hba->caps & UFSHCD_CAP_CRYPTO))
| ^~
drivers/scsi/ufs/ufs-qcom-ice.c:163:33: error: 'UFSHCD_CAP_CRYPTO' undeclared (first use in this function)
163 | if (!(host->hba->caps & UFSHCD_CAP_CRYPTO))
| ^~~~~~~~~~~~~~~~~
drivers/scsi/ufs/ufs-qcom-ice.c: In function 'ufs_qcom_ice_resume':
drivers/scsi/ufs/ufs-qcom-ice.c:191:24: error: invalid use of undefined type 'struct ufs_hba'
191 | if (!(host->hba->caps & UFSHCD_CAP_CRYPTO))
| ^~
drivers/scsi/ufs/ufs-qcom-ice.c:191:33: error: 'UFSHCD_CAP_CRYPTO' undeclared (first use in this function)
191 | if (!(host->hba->caps & UFSHCD_CAP_CRYPTO))
| ^~~~~~~~~~~~~~~~~
In file included from include/linux/device.h:15,
from include/linux/platform_device.h:13,
from drivers/scsi/ufs/ufs-qcom-ice.c:9:
drivers/scsi/ufs/ufs-qcom-ice.c:196:34: error: invalid use of undefined type 'struct ufs_hba'
196 | dev_err(host->hba->dev, "BIST status error (%d)\n", err);
| ^~
include/linux/dev_printk.h:110:25: note: in definition of macro 'dev_printk_index_wrap'
110 | _p_func(dev, fmt, ##__VA_ARGS__); \
| ^~~
drivers/scsi/ufs/ufs-qcom-ice.c:196:17: note: in expansion of macro 'dev_err'
196 | dev_err(host->hba->dev, "BIST status error (%d)\n", err);
| ^~~~~~~
drivers/scsi/ufs/ufs-qcom-ice.c: At top level:
>> drivers/scsi/ufs/ufs-qcom-ice.c:207:42: warning: 'union ufs_crypto_cfg_entry' declared inside parameter list will not be visible outside of this definition or declaration
207 | const union ufs_crypto_cfg_entry *cfg, int slot)
| ^~~~~~~~~~~~~~~~~~~~
>> drivers/scsi/ufs/ufs-qcom-ice.c:206:5: error: conflicting types for 'ufs_qcom_ice_program_key'; have 'int(struct ufs_hba *, const union ufs_crypto_cfg_entry *, int)'
206 | int ufs_qcom_ice_program_key(struct ufs_hba *hba,
| ^~~~~~~~~~~~~~~~~~~~~~~~
In file included from drivers/scsi/ufs/ufs-qcom-ice.c:12:
drivers/scsi/ufs/ufs-qcom.h:251:5: note: previous declaration of 'ufs_qcom_ice_program_key' with type 'int(struct ufs_hba *, const union ufs_crypto_cfg_entry *, int)'
251 | int ufs_qcom_ice_program_key(struct ufs_hba *hba,
| ^~~~~~~~~~~~~~~~~~~~~~~~
drivers/scsi/ufs/ufs-qcom-ice.c: In function 'ufs_qcom_ice_program_key':
>> drivers/scsi/ufs/ufs-qcom-ice.c:209:36: error: storage size of 'cap' isn't known
209 | union ufs_crypto_cap_entry cap;
| ^~~
>> drivers/scsi/ufs/ufs-qcom-ice.c:217:18: error: invalid use of undefined type 'const union ufs_crypto_cfg_entry'
217 | if (!(cfg->config_enable & UFS_CRYPTO_CONFIGURATION_ENABLE))
| ^~
>> drivers/scsi/ufs/ufs-qcom-ice.c:217:36: error: 'UFS_CRYPTO_CONFIGURATION_ENABLE' undeclared (first use in this function)
217 | if (!(cfg->config_enable & UFS_CRYPTO_CONFIGURATION_ENABLE))
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
drivers/scsi/ufs/ufs-qcom-ice.c:221:18: error: invalid use of undefined type 'struct ufs_hba'
221 | cap = hba->crypto_cap_array[cfg->crypto_cap_idx];
| ^~
drivers/scsi/ufs/ufs-qcom-ice.c:221:40: error: invalid use of undefined type 'const union ufs_crypto_cfg_entry'
221 | cap = hba->crypto_cap_array[cfg->crypto_cap_idx];
| ^~
>> drivers/scsi/ufs/ufs-qcom-ice.c:222:33: error: 'UFS_CRYPTO_ALG_AES_XTS' undeclared (first use in this function)
222 | if (cap.algorithm_id != UFS_CRYPTO_ALG_AES_XTS ||
| ^~~~~~~~~~~~~~~~~~~~~~
>> drivers/scsi/ufs/ufs-qcom-ice.c:223:29: error: 'UFS_CRYPTO_KEY_SIZE_256' undeclared (first use in this function)
223 | cap.key_size != UFS_CRYPTO_KEY_SIZE_256) {
| ^~~~~~~~~~~~~~~~~~~~~~~
In file included from include/linux/device.h:15,
from include/linux/platform_device.h:13,
from drivers/scsi/ufs/ufs-qcom-ice.c:9:
drivers/scsi/ufs/ufs-qcom-ice.c:224:40: error: invalid use of undefined type 'struct ufs_hba'
224 | dev_err_ratelimited(hba->dev,
| ^~
include/linux/dev_printk.h:110:25: note: in definition of macro 'dev_printk_index_wrap'
110 | _p_func(dev, fmt, ##__VA_ARGS__); \
| ^~~
include/linux/dev_printk.h:208:17: note: in expansion of macro 'dev_err'
208 | dev_level(dev, fmt, ##__VA_ARGS__); \
| ^~~~~~~~~
include/linux/dev_printk.h:218:9: note: in expansion of macro 'dev_level_ratelimited'
218 | dev_level_ratelimited(dev_err, dev, fmt, ##__VA_ARGS__)
| ^~~~~~~~~~~~~~~~~~~~~
drivers/scsi/ufs/ufs-qcom-ice.c:224:17: note: in expansion of macro 'dev_err_ratelimited'
224 | dev_err_ratelimited(hba->dev,
| ^~~~~~~~~~~~~~~~~~~
drivers/scsi/ufs/ufs-qcom-ice.c:230:30: error: invalid use of undefined type 'const union ufs_crypto_cfg_entry'
230 | memcpy(key.bytes, cfg->crypto_key, AES_256_XTS_KEY_SIZE);
| ^~
drivers/scsi/ufs/ufs-qcom-ice.c:241:39: error: invalid use of undefined type 'const union ufs_crypto_cfg_entry'
241 | cfg->data_unit_size);
| ^~
drivers/scsi/ufs/ufs-qcom-ice.c:209:36: warning: unused variable 'cap' [-Wunused-variable]
209 | union ufs_crypto_cap_entry cap;
| ^~~
cc1: some warnings being treated as errors


vim +/ufshcd_readl +135 drivers/scsi/ufs/ufs-qcom.h

f06fcc7155dcbc Yaniv Gardi 2015-10-28 130
81c0fc51b7a790 Yaniv Gardi 2015-01-15 131 static inline void
81c0fc51b7a790 Yaniv Gardi 2015-01-15 @132 ufs_qcom_get_controller_revision(struct ufs_hba *hba,
81c0fc51b7a790 Yaniv Gardi 2015-01-15 133 u8 *major, u16 *minor, u16 *step)
81c0fc51b7a790 Yaniv Gardi 2015-01-15 134 {
81c0fc51b7a790 Yaniv Gardi 2015-01-15 @135 u32 ver = ufshcd_readl(hba, REG_UFS_HW_VERSION);
81c0fc51b7a790 Yaniv Gardi 2015-01-15 136
81c0fc51b7a790 Yaniv Gardi 2015-01-15 137 *major = (ver & UFS_HW_VER_MAJOR_MASK) >> UFS_HW_VER_MAJOR_SHFT;
81c0fc51b7a790 Yaniv Gardi 2015-01-15 138 *minor = (ver & UFS_HW_VER_MINOR_MASK) >> UFS_HW_VER_MINOR_SHFT;
81c0fc51b7a790 Yaniv Gardi 2015-01-15 139 *step = (ver & UFS_HW_VER_STEP_MASK) >> UFS_HW_VER_STEP_SHFT;
81c0fc51b7a790 Yaniv Gardi 2015-01-15 140 };
81c0fc51b7a790 Yaniv Gardi 2015-01-15 141
81c0fc51b7a790 Yaniv Gardi 2015-01-15 142 static inline void ufs_qcom_assert_reset(struct ufs_hba *hba)
81c0fc51b7a790 Yaniv Gardi 2015-01-15 143 {
81c0fc51b7a790 Yaniv Gardi 2015-01-15 @144 ufshcd_rmwl(hba, MASK_UFS_PHY_SOFT_RESET,
81c0fc51b7a790 Yaniv Gardi 2015-01-15 145 1 << OFFSET_UFS_PHY_SOFT_RESET, REG_UFS_CFG1);
81c0fc51b7a790 Yaniv Gardi 2015-01-15 146
81c0fc51b7a790 Yaniv Gardi 2015-01-15 147 /*
81c0fc51b7a790 Yaniv Gardi 2015-01-15 148 * Make sure assertion of ufs phy reset is written to
81c0fc51b7a790 Yaniv Gardi 2015-01-15 149 * register before returning
81c0fc51b7a790 Yaniv Gardi 2015-01-15 150 */
81c0fc51b7a790 Yaniv Gardi 2015-01-15 151 mb();
81c0fc51b7a790 Yaniv Gardi 2015-01-15 152 }
81c0fc51b7a790 Yaniv Gardi 2015-01-15 153
81c0fc51b7a790 Yaniv Gardi 2015-01-15 154 static inline void ufs_qcom_deassert_reset(struct ufs_hba *hba)
81c0fc51b7a790 Yaniv Gardi 2015-01-15 155 {
81c0fc51b7a790 Yaniv Gardi 2015-01-15 156 ufshcd_rmwl(hba, MASK_UFS_PHY_SOFT_RESET,
81c0fc51b7a790 Yaniv Gardi 2015-01-15 157 0 << OFFSET_UFS_PHY_SOFT_RESET, REG_UFS_CFG1);
81c0fc51b7a790 Yaniv Gardi 2015-01-15 158
81c0fc51b7a790 Yaniv Gardi 2015-01-15 159 /*
81c0fc51b7a790 Yaniv Gardi 2015-01-15 160 * Make sure de-assertion of ufs phy reset is written to
81c0fc51b7a790 Yaniv Gardi 2015-01-15 161 * register before returning
81c0fc51b7a790 Yaniv Gardi 2015-01-15 162 */
81c0fc51b7a790 Yaniv Gardi 2015-01-15 163 mb();
81c0fc51b7a790 Yaniv Gardi 2015-01-15 164 }
81c0fc51b7a790 Yaniv Gardi 2015-01-15 165
bfdbe8ba21291c Yaniv Gardi 2015-03-31 166 /* Host controller hardware version: major.minor.step */
bfdbe8ba21291c Yaniv Gardi 2015-03-31 167 struct ufs_hw_version {
bfdbe8ba21291c Yaniv Gardi 2015-03-31 168 u16 step;
bfdbe8ba21291c Yaniv Gardi 2015-03-31 169 u16 minor;
bfdbe8ba21291c Yaniv Gardi 2015-03-31 170 u8 major;
bfdbe8ba21291c Yaniv Gardi 2015-03-31 171 };
cad2e03d860779 Yaniv Gardi 2015-03-31 172
6e3fd44d7b7638 Yaniv Gardi 2015-10-28 173 struct ufs_qcom_testbus {
6e3fd44d7b7638 Yaniv Gardi 2015-10-28 174 u8 select_major;
6e3fd44d7b7638 Yaniv Gardi 2015-10-28 175 u8 select_minor;
6e3fd44d7b7638 Yaniv Gardi 2015-10-28 176 };
6e3fd44d7b7638 Yaniv Gardi 2015-10-28 177
b8416b2fedbf1c Bjorn Andersson 2019-08-28 178 struct gpio_desc;
b8416b2fedbf1c Bjorn Andersson 2019-08-28 179
6e3fd44d7b7638 Yaniv Gardi 2015-10-28 180 struct ufs_qcom_host {
cad2e03d860779 Yaniv Gardi 2015-03-31 181 /*
cad2e03d860779 Yaniv Gardi 2015-03-31 182 * Set this capability if host controller supports the QUniPro mode
cad2e03d860779 Yaniv Gardi 2015-03-31 183 * and if driver wants the Host controller to operate in QUniPro mode.
cad2e03d860779 Yaniv Gardi 2015-03-31 184 * Note: By default this capability will be kept enabled if host
cad2e03d860779 Yaniv Gardi 2015-03-31 185 * controller supports the QUniPro mode.
cad2e03d860779 Yaniv Gardi 2015-03-31 186 */
7e014efdc0b11c Alim Akhtar 2017-10-03 187 #define UFS_QCOM_CAP_QUNIPRO 0x1
f06fcc7155dcbc Yaniv Gardi 2015-10-28 188
f06fcc7155dcbc Yaniv Gardi 2015-10-28 189 /*
f06fcc7155dcbc Yaniv Gardi 2015-10-28 190 * Set this capability if host controller can retain the secure
f06fcc7155dcbc Yaniv Gardi 2015-10-28 191 * configuration even after UFS controller core power collapse.
f06fcc7155dcbc Yaniv Gardi 2015-10-28 192 */
7e014efdc0b11c Alim Akhtar 2017-10-03 193 #define UFS_QCOM_CAP_RETAIN_SEC_CFG_AFTER_PWR_COLLAPSE 0x2
cad2e03d860779 Yaniv Gardi 2015-03-31 194 u32 caps;
cad2e03d860779 Yaniv Gardi 2015-03-31 195
81c0fc51b7a790 Yaniv Gardi 2015-01-15 196 struct phy *generic_phy;
81c0fc51b7a790 Yaniv Gardi 2015-01-15 197 struct ufs_hba *hba;
81c0fc51b7a790 Yaniv Gardi 2015-01-15 @198 struct ufs_pa_layer_attr dev_req_params;
81c0fc51b7a790 Yaniv Gardi 2015-01-15 199 struct clk *rx_l0_sync_clk;
81c0fc51b7a790 Yaniv Gardi 2015-01-15 200 struct clk *tx_l0_sync_clk;
81c0fc51b7a790 Yaniv Gardi 2015-01-15 201 struct clk *rx_l1_sync_clk;
81c0fc51b7a790 Yaniv Gardi 2015-01-15 202 struct clk *tx_l1_sync_clk;
81c0fc51b7a790 Yaniv Gardi 2015-01-15 203 bool is_lane_clks_enabled;
bfdbe8ba21291c Yaniv Gardi 2015-03-31 204
f06fcc7155dcbc Yaniv Gardi 2015-10-28 205 void __iomem *dev_ref_clk_ctrl_mmio;
f06fcc7155dcbc Yaniv Gardi 2015-10-28 206 bool is_dev_ref_clk_enabled;
bfdbe8ba21291c Yaniv Gardi 2015-03-31 207 struct ufs_hw_version hw_ver;
df4ec2fa7a4dc2 Eric Biggers 2020-07-10 208 #ifdef CONFIG_SCSI_UFS_CRYPTO
df4ec2fa7a4dc2 Eric Biggers 2020-07-10 209 void __iomem *ice_mmio;
df4ec2fa7a4dc2 Eric Biggers 2020-07-10 210 #endif
f06fcc7155dcbc Yaniv Gardi 2015-10-28 211
f06fcc7155dcbc Yaniv Gardi 2015-10-28 212 u32 dev_ref_clk_en_mask;
f06fcc7155dcbc Yaniv Gardi 2015-10-28 213
6e3fd44d7b7638 Yaniv Gardi 2015-10-28 214 /* Bitmask for enabling debug prints */
6e3fd44d7b7638 Yaniv Gardi 2015-10-28 215 u32 dbg_print_en;
6e3fd44d7b7638 Yaniv Gardi 2015-10-28 216 struct ufs_qcom_testbus testbus;
12fd5f250db2ad Evan Green 2019-03-21 217
870b1279c7a034 Can Guo 2019-11-14 218 /* Reset control of HCI */
870b1279c7a034 Can Guo 2019-11-14 219 struct reset_control *core_reset;
12fd5f250db2ad Evan Green 2019-03-21 220 struct reset_controller_dev rcdev;
b8416b2fedbf1c Bjorn Andersson 2019-08-28 221
b8416b2fedbf1c Bjorn Andersson 2019-08-28 222 struct gpio_desc *device_reset;
81c0fc51b7a790 Yaniv Gardi 2015-01-15 223 };
81c0fc51b7a790 Yaniv Gardi 2015-01-15 224
eba5ed3539071b Yaniv Gardi 2016-03-10 225 static inline u32
eba5ed3539071b Yaniv Gardi 2016-03-10 226 ufs_qcom_get_debug_reg_offset(struct ufs_qcom_host *host, u32 reg)
eba5ed3539071b Yaniv Gardi 2016-03-10 227 {
eba5ed3539071b Yaniv Gardi 2016-03-10 228 if (host->hw_ver.major <= 0x02)
eba5ed3539071b Yaniv Gardi 2016-03-10 229 return UFS_CNTLR_2_x_x_VEN_REGS_OFFSET(reg);
eba5ed3539071b Yaniv Gardi 2016-03-10 230
eba5ed3539071b Yaniv Gardi 2016-03-10 231 return UFS_CNTLR_3_x_x_VEN_REGS_OFFSET(reg);
eba5ed3539071b Yaniv Gardi 2016-03-10 232 };
eba5ed3539071b Yaniv Gardi 2016-03-10 233
81c0fc51b7a790 Yaniv Gardi 2015-01-15 234 #define ufs_qcom_is_link_off(hba) ufshcd_is_link_off(hba)
81c0fc51b7a790 Yaniv Gardi 2015-01-15 235 #define ufs_qcom_is_link_active(hba) ufshcd_is_link_active(hba)
81c0fc51b7a790 Yaniv Gardi 2015-01-15 236 #define ufs_qcom_is_link_hibern8(hba) ufshcd_is_link_hibern8(hba)
81c0fc51b7a790 Yaniv Gardi 2015-01-15 237
6e3fd44d7b7638 Yaniv Gardi 2015-10-28 238 int ufs_qcom_testbus_config(struct ufs_qcom_host *host);
6e3fd44d7b7638 Yaniv Gardi 2015-10-28 239
cad2e03d860779 Yaniv Gardi 2015-03-31 240 static inline bool ufs_qcom_cap_qunipro(struct ufs_qcom_host *host)
cad2e03d860779 Yaniv Gardi 2015-03-31 241 {
f6f56bf5db2b1c Bart Van Assche 2021-12-06 242 return host->caps & UFS_QCOM_CAP_QUNIPRO;
cad2e03d860779 Yaniv Gardi 2015-03-31 243 }
cad2e03d860779 Yaniv Gardi 2015-03-31 244
df4ec2fa7a4dc2 Eric Biggers 2020-07-10 245 /* ufs-qcom-ice.c */
df4ec2fa7a4dc2 Eric Biggers 2020-07-10 246
df4ec2fa7a4dc2 Eric Biggers 2020-07-10 247 #ifdef CONFIG_SCSI_UFS_CRYPTO
df4ec2fa7a4dc2 Eric Biggers 2020-07-10 248 int ufs_qcom_ice_init(struct ufs_qcom_host *host);
df4ec2fa7a4dc2 Eric Biggers 2020-07-10 249 int ufs_qcom_ice_enable(struct ufs_qcom_host *host);
df4ec2fa7a4dc2 Eric Biggers 2020-07-10 250 int ufs_qcom_ice_resume(struct ufs_qcom_host *host);
df4ec2fa7a4dc2 Eric Biggers 2020-07-10 251 int ufs_qcom_ice_program_key(struct ufs_hba *hba,
df4ec2fa7a4dc2 Eric Biggers 2020-07-10 @252 const union ufs_crypto_cfg_entry *cfg, int slot);
df4ec2fa7a4dc2 Eric Biggers 2020-07-10 253 #else
df4ec2fa7a4dc2 Eric Biggers 2020-07-10 254 static inline int ufs_qcom_ice_init(struct ufs_qcom_host *host)
df4ec2fa7a4dc2 Eric Biggers 2020-07-10 255 {
df4ec2fa7a4dc2 Eric Biggers 2020-07-10 256 return 0;
df4ec2fa7a4dc2 Eric Biggers 2020-07-10 257 }
df4ec2fa7a4dc2 Eric Biggers 2020-07-10 258 static inline int ufs_qcom_ice_enable(struct ufs_qcom_host *host)
df4ec2fa7a4dc2 Eric Biggers 2020-07-10 259 {
df4ec2fa7a4dc2 Eric Biggers 2020-07-10 260 return 0;
df4ec2fa7a4dc2 Eric Biggers 2020-07-10 261 }
df4ec2fa7a4dc2 Eric Biggers 2020-07-10 262 static inline int ufs_qcom_ice_resume(struct ufs_qcom_host *host)
df4ec2fa7a4dc2 Eric Biggers 2020-07-10 263 {
df4ec2fa7a4dc2 Eric Biggers 2020-07-10 264 return 0;
df4ec2fa7a4dc2 Eric Biggers 2020-07-10 265 }
df4ec2fa7a4dc2 Eric Biggers 2020-07-10 266 #define ufs_qcom_ice_program_key NULL
df4ec2fa7a4dc2 Eric Biggers 2020-07-10 267 #endif /* !CONFIG_SCSI_UFS_CRYPTO */
df4ec2fa7a4dc2 Eric Biggers 2020-07-10 268

:::::: The code at line 135 was first introduced by commit
:::::: 81c0fc51b7a790ebe05a35de2c9176bd2f5bfe46 ufs-qcom: add support for Qualcomm Technologies Inc platforms

:::::: TO: Yaniv Gardi <ygardi@xxxxxxxxxxxxxx>
:::::: CC: Christoph Hellwig <hch@xxxxxx>

--
0-DAY CI Kernel Test Service
https://01.org/lkp