[PATCH v2] ASoC: tas2781: Add tas2781 driver.

kernel test robot lkp at intel.com
Tue Jan 31 16:09:47 CET 2023


Hi Shenghao,

Thank you for the patch! Perhaps something to improve:

[auto build test WARNING on broonie-sound/for-next]
[also build test WARNING on linus/master v6.2-rc6 next-20230131]
[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#_base_tree_information]

url:    https://github.com/intel-lab-lkp/linux/commits/Shenghao-Ding/ASoC-tas2781-Add-tas2781-driver/20230131-212221
base:   https://git.kernel.org/pub/scm/linux/kernel/git/broonie/sound.git for-next
patch link:    https://lore.kernel.org/r/20230131131701.7097-1-13916275206%40139.com
patch subject: [PATCH v2] ASoC: tas2781: Add tas2781 driver.
config: sparc-allyesconfig (https://download.01.org/0day-ci/archive/20230131/202301312243.8wxlGhpo-lkp@intel.com/config)
compiler: sparc64-linux-gcc (GCC) 12.1.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/intel-lab-lkp/linux/commit/d0782b52a1274657458fa49356eacb7c56eddf6b
        git remote add linux-review https://github.com/intel-lab-lkp/linux
        git fetch --no-tags linux-review Shenghao-Ding/ASoC-tas2781-Add-tas2781-driver/20230131-212221
        git checkout d0782b52a1274657458fa49356eacb7c56eddf6b
        # save the config file
        mkdir build_dir && cp config build_dir/.config
        COMPILER_INSTALL_PATH=$HOME/0day COMPILER=gcc-12.1.0 make.cross W=1 O=build_dir ARCH=sparc olddefconfig
        COMPILER_INSTALL_PATH=$HOME/0day COMPILER=gcc-12.1.0 make.cross W=1 O=build_dir ARCH=sparc SHELL=/bin/bash sound/soc/

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

All warnings (new ones prefixed by >>):

>> sound/soc/codecs/tas2781-dsp.c:591:5: warning: no previous prototype for 'fw_parse_variable_header_git' [-Wmissing-prototypes]
     591 | int fw_parse_variable_header_git(struct tasdevice_priv *tas_dev,
         |     ^~~~~~~~~~~~~~~~~~~~~~~~~~~~
>> sound/soc/codecs/tas2781-dsp.c:650:5: warning: no previous prototype for 'fw_parse_variable_header_cal' [-Wmissing-prototypes]
     650 | int fw_parse_variable_header_cal(struct tasdevice_priv *tas_dev,
         |     ^~~~~~~~~~~~~~~~~~~~~~~~~~~~


vim +/fw_parse_variable_header_git +591 sound/soc/codecs/tas2781-dsp.c

   590	
 > 591	int fw_parse_variable_header_git(struct tasdevice_priv *tas_dev,
   592		const struct firmware *fmw, int offset)
   593	{
   594		const unsigned char *buf = fmw->data;
   595		struct tasdevice_fw *tas_fmw = tas_dev->fmw;
   596		struct tasdevice_dspfw_hdr *fw_hdr = &(tas_fmw->fw_hdr);
   597		int i = strlen((char *)&buf[offset]);
   598	
   599		i++;
   600	
   601		if (offset + i > fmw->size) {
   602			dev_err(tas_dev->dev, "%s: File Size error\n", __func__);
   603			offset = -1;
   604			goto out;
   605		}
   606	
   607		offset  += i;
   608	
   609		if (offset + 4 > fmw->size) {
   610			dev_err(tas_dev->dev, "%s: File Size error\n", __func__);
   611			offset = -1;
   612			goto out;
   613		}
   614		fw_hdr->device_family = SMS_HTONL(buf[offset], buf[offset + 1],
   615			buf[offset + 2], buf[offset + 3]);
   616		if (fw_hdr->device_family != 0) {
   617			dev_err(tas_dev->dev, "ERROR:%s: not TAS device\n", __func__);
   618			offset = -1;
   619			goto out;
   620		}
   621		offset  += 4;
   622		if (offset + 4 > fmw->size) {
   623			dev_err(tas_dev->dev, "%s: File Size error\n", __func__);
   624			offset = -1;
   625			goto out;
   626		}
   627		fw_hdr->device = SMS_HTONL(buf[offset], buf[offset + 1],
   628			buf[offset + 2], buf[offset + 3]);
   629		if (fw_hdr->device >= TASDEVICE_DSP_TAS_MAX_DEVICE ||
   630			fw_hdr->device == 6) {
   631			dev_err(tas_dev->dev, "ERROR:%s: not support device %d\n",
   632				__func__, fw_hdr->device);
   633			offset = -1;
   634			goto out;
   635		}
   636		offset  += 4;
   637		fw_hdr->ndev = deviceNumber[fw_hdr->device];
   638		if (fw_hdr->ndev != tas_dev->ndev) {
   639			dev_err(tas_dev->dev,
   640				"%s: ndev(%u) in dspbin dismatch ndev(%u) in DTS\n",
   641				__func__, fw_hdr->ndev,
   642				tas_dev->ndev);
   643			offset = -1;
   644		}
   645	
   646	out:
   647		return offset;
   648	}
   649	
 > 650	int fw_parse_variable_header_cal(struct tasdevice_priv *tas_dev,
   651		struct tasdevice_fw *tas_fmw, const struct firmware *fmw, int offset)
   652	{
   653		const unsigned char *buf = fmw->data;
   654		struct tasdevice_dspfw_hdr *fw_hdr = &(tas_fmw->fw_hdr);
   655		int i = strlen((char *)&buf[offset]);
   656	
   657		i++;
   658	
   659		if (offset + i > fmw->size) {
   660			dev_err(tas_dev->dev, "%s: File Size error\n", __func__);
   661			offset = -1;
   662			goto out;
   663		}
   664	
   665		offset  += i;
   666	
   667		if (offset + 4 > fmw->size) {
   668			dev_err(tas_dev->dev, "%s: mnDeviceFamily error\n", __func__);
   669			offset = -1;
   670			goto out;
   671		}
   672		fw_hdr->device_family = SMS_HTONL(buf[offset], buf[offset + 1],
   673			buf[offset + 2], buf[offset + 3]);
   674		if (fw_hdr->device_family != 0) {
   675			dev_err(tas_dev->dev, "ERROR:%s: not TAS device\n", __func__);
   676			offset = -1;
   677			goto out;
   678		}
   679		offset  += 4;
   680		if (offset + 4 > fmw->size) {
   681			dev_err(tas_dev->dev, "%s: mnDevice error\n", __func__);
   682			offset = -1;
   683			goto out;
   684		}
   685		fw_hdr->device = SMS_HTONL(buf[offset], buf[offset + 1],
   686			buf[offset + 2], buf[offset + 3]);
   687		if (fw_hdr->device >= TASDEVICE_DSP_TAS_MAX_DEVICE ||
   688			fw_hdr->device == 6) {
   689			dev_err(tas_dev->dev, "ERROR:%s: not support device %d\n",
   690				__func__, fw_hdr->device);
   691			offset = -1;
   692			goto out;
   693		}
   694		offset  += 4;
   695		fw_hdr->ndev = deviceNumber[fw_hdr->device];
   696		if (fw_hdr->ndev != 1) {
   697			dev_err(tas_dev->dev,
   698				"%s: calbin must be 1, but currently ndev(%u)\n",
   699				__func__, fw_hdr->ndev);
   700			offset = -1;
   701		}
   702	
   703	out:
   704		return offset;
   705	}
   706	

-- 
0-DAY CI Kernel Test Service
https://github.com/intel/lkp-tests


More information about the Alsa-devel mailing list