All of lore.kernel.org
 help / color / mirror / Atom feed
From: kernel test robot <lkp@intel.com>
To: Bart Van Assche <bvanassche@acm.org>
Cc: kbuild-all@lists.01.org, linux-kernel@vger.kernel.org
Subject: [bvanassche:ufs-for-next 318/322] drivers/scsi/ufs/ufs-qcom.h:135:19: error: implicit declaration of function 'ufshcd_readl'
Date: Wed, 23 Mar 2022 05:21:17 +0800	[thread overview]
Message-ID: <202203230504.dpKCeXdj-lkp@intel.com> (raw)

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@intel.com/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@intel.com>

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@codeaurora.org>
:::::: CC: Christoph Hellwig <hch@lst.de>

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

                 reply	other threads:[~2022-03-22 21:21 UTC|newest]

Thread overview: [no followups] expand[flat|nested]  mbox.gz  Atom feed

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=202203230504.dpKCeXdj-lkp@intel.com \
    --to=lkp@intel.com \
    --cc=bvanassche@acm.org \
    --cc=kbuild-all@lists.01.org \
    --cc=linux-kernel@vger.kernel.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.