[PATCH v2 1/4] ALSA: hda/cirrus: Add error handling into CS8409 I2C functions

kernel test robot lkp at intel.com
Mon Mar 15 19:29:37 CET 2021


Hi Vitaly,

Thank you for the patch! Perhaps something to improve:

[auto build test WARNING on sound/for-next]
[also build test WARNING on next-20210315]
[cannot apply to v5.12-rc3]
[If your patch is applied to the wrong git tree, kindly drop us a note.
And when submitting patch, we suggest to use '--base' as documented in
https://git-scm.com/docs/git-format-patch]

url:    https://github.com/0day-ci/linux/commits/Vitaly-Rodionov/ALSA-hda-cirrus-Make-CS8409-driver-more-generic-by-using-fixups/20210316-010109
base:   https://git.kernel.org/pub/scm/linux/kernel/git/tiwai/sound.git for-next
config: i386-randconfig-s002-20210315 (attached as .config)
compiler: gcc-9 (Debian 9.3.0-22) 9.3.0
reproduce:
        # apt-get install sparse
        # sparse version: v0.6.3-277-gc089cd2d-dirty
        # https://github.com/0day-ci/linux/commit/649ba4016100c8793c314c9dd5213ea910a70ffd
        git remote add linux-review https://github.com/0day-ci/linux
        git fetch --no-tags linux-review Vitaly-Rodionov/ALSA-hda-cirrus-Make-CS8409-driver-more-generic-by-using-fixups/20210316-010109
        git checkout 649ba4016100c8793c314c9dd5213ea910a70ffd
        # save the attached .config to linux build tree
        make W=1 C=1 CF='-fdiagnostic-prefix -D__CHECK_ENDIAN__' ARCH=i386 

If you fix the issue, kindly add following tag as appropriate
Reported-by: kernel test robot <lkp at intel.com>

All warnings (new ones prefixed by >>):

>> sound/pci/hda/patch_cirrus.c:1600: warning: expecting prototype for cs8409_i2c_read(). Prototype was for cs8409_i2c_write() instead


vim +1600 sound/pci/hda/patch_cirrus.c

6cc7e93f46a5ce Vitaly Rodionov 2021-03-06  1584  
649ba4016100c8 Stefan Binding  2021-03-15  1585  /**
649ba4016100c8 Stefan Binding  2021-03-15  1586   * cs8409_i2c_read - CS8409 I2C Write.
649ba4016100c8 Stefan Binding  2021-03-15  1587   * @codec: the codec instance
649ba4016100c8 Stefan Binding  2021-03-15  1588   * @i2c_address: I2C Address
649ba4016100c8 Stefan Binding  2021-03-15  1589   * @i2c_reg: Register to write to
649ba4016100c8 Stefan Binding  2021-03-15  1590   * @i2c_data: Data to write
649ba4016100c8 Stefan Binding  2021-03-15  1591   * @paged: Is a paged transaction
649ba4016100c8 Stefan Binding  2021-03-15  1592   *
649ba4016100c8 Stefan Binding  2021-03-15  1593   * CS8409 I2C Write.
649ba4016100c8 Stefan Binding  2021-03-15  1594   * Returns negative on error, otherwise returns 0.
649ba4016100c8 Stefan Binding  2021-03-15  1595   */
649ba4016100c8 Stefan Binding  2021-03-15  1596  static int cs8409_i2c_write(struct hda_codec *codec,
6cc7e93f46a5ce Vitaly Rodionov 2021-03-06  1597  		unsigned int i2c_address, unsigned int i2c_reg,
6cc7e93f46a5ce Vitaly Rodionov 2021-03-06  1598  		unsigned int i2c_data,
6cc7e93f46a5ce Vitaly Rodionov 2021-03-06  1599  		unsigned int paged)
6cc7e93f46a5ce Vitaly Rodionov 2021-03-06 @1600  {
649ba4016100c8 Stefan Binding  2021-03-15  1601  	unsigned int i2c_reg_data;
6cc7e93f46a5ce Vitaly Rodionov 2021-03-06  1602  
6cc7e93f46a5ce Vitaly Rodionov 2021-03-06  1603  	cs8409_enable_i2c_clock(codec, 1);
6cc7e93f46a5ce Vitaly Rodionov 2021-03-06  1604  	cs_vendor_coef_set(codec, CIR_I2C_ADDR, i2c_address);
6cc7e93f46a5ce Vitaly Rodionov 2021-03-06  1605  
6cc7e93f46a5ce Vitaly Rodionov 2021-03-06  1606  	if (paged) {
6cc7e93f46a5ce Vitaly Rodionov 2021-03-06  1607  		cs_vendor_coef_set(codec, CIR_I2C_QWRITE, i2c_reg >> 8);
649ba4016100c8 Stefan Binding  2021-03-15  1608  		if (cs8409_i2c_wait_complete(codec) < 0) {
6cc7e93f46a5ce Vitaly Rodionov 2021-03-06  1609  			codec_err(codec,
649ba4016100c8 Stefan Binding  2021-03-15  1610  				"%s() Paged Transaction Failed 0x%02x : 0x%04x\n",
649ba4016100c8 Stefan Binding  2021-03-15  1611  				__func__, i2c_address, i2c_reg);
649ba4016100c8 Stefan Binding  2021-03-15  1612  			return -EIO;
6cc7e93f46a5ce Vitaly Rodionov 2021-03-06  1613  		}
6cc7e93f46a5ce Vitaly Rodionov 2021-03-06  1614  	}
6cc7e93f46a5ce Vitaly Rodionov 2021-03-06  1615  
6cc7e93f46a5ce Vitaly Rodionov 2021-03-06  1616  	i2c_reg_data = ((i2c_reg << 8) & 0x0ff00) | (i2c_data & 0x0ff);
6cc7e93f46a5ce Vitaly Rodionov 2021-03-06  1617  	cs_vendor_coef_set(codec, CIR_I2C_QWRITE, i2c_reg_data);
6cc7e93f46a5ce Vitaly Rodionov 2021-03-06  1618  
649ba4016100c8 Stefan Binding  2021-03-15  1619  	if (cs8409_i2c_wait_complete(codec) < 0) {
649ba4016100c8 Stefan Binding  2021-03-15  1620  		codec_err(codec, "%s() Transaction Failed 0x%02x : 0x%04x\n",
649ba4016100c8 Stefan Binding  2021-03-15  1621  			__func__, i2c_address, i2c_reg);
649ba4016100c8 Stefan Binding  2021-03-15  1622  		return -EIO;
6cc7e93f46a5ce Vitaly Rodionov 2021-03-06  1623  	}
6cc7e93f46a5ce Vitaly Rodionov 2021-03-06  1624  
6cc7e93f46a5ce Vitaly Rodionov 2021-03-06  1625  	cs8409_enable_i2c_clock(codec, 0);
6cc7e93f46a5ce Vitaly Rodionov 2021-03-06  1626  
649ba4016100c8 Stefan Binding  2021-03-15  1627  	return 0;
6cc7e93f46a5ce Vitaly Rodionov 2021-03-06  1628  }
6cc7e93f46a5ce Vitaly Rodionov 2021-03-06  1629  

---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all@lists.01.org
-------------- next part --------------
A non-text attachment was scrubbed...
Name: .config.gz
Type: application/gzip
Size: 39359 bytes
Desc: not available
URL: <http://mailman.alsa-project.org/pipermail/alsa-devel/attachments/20210316/8cd4c898/attachment-0001.gz>


More information about the Alsa-devel mailing list