From: kernel test robot <lkp@intel.com>
To: Shenghao Ding <13916275206@139.com>,
broonie@kernel.org, lgirdwood@gmail.com, perex@perex.cz,
pierre-louis.bossart@linux.intel.com
Cc: oe-kbuild-all@lists.linux.dev, kevin-lu@ti.com,
shenghao-ding@ti.com, alsa-devel@alsa-project.org,
linux-kernel@vger.kernel.org, Shenghao Ding <13916275206@139.com>
Subject: Re: [PATCH v2] ASoC: tas2781: Add tas2781 driver.
Date: Wed, 1 Feb 2023 06:54:07 +0800 [thread overview]
Message-ID: <202302010621.HbhoRa8c-lkp@intel.com> (raw)
In-Reply-To: <20230131131701.7097-1-13916275206@139.com>
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: m68k-randconfig-m031-20230129 (https://download.01.org/0day-ci/archive/20230201/202302010621.HbhoRa8c-lkp@intel.com/config)
compiler: m68k-linux-gcc (GCC) 12.1.0
If you fix the issue, kindly add following tag where applicable
| Reported-by: kernel test robot <lkp@intel.com>
New smatch warnings:
sound/soc/codecs/tas2781-i2c.c:220 tasdevice_process_block() warn: inconsistent indenting
sound/soc/codecs/tas2781-i2c.c:471 tas2781_digital_putvol() warn: unsigned 'val' is never less than zero.
sound/soc/codecs/tas2781-i2c.c:544 tas2781_amp_putvol() warn: unsigned 'val' is never less than zero.
sound/soc/codecs/tas2781-i2c.c:841 tasdevice_rca_ready() error: we previously assumed 'tas_dev' could be null (see line 840)
sound/soc/codecs/tas2781-i2c.c:1095 tasdevice_dapm_event() error: uninitialized symbol 'pwr_state'.
sound/soc/codecs/tas2781-i2c.c:1818 tasdevice_pm_suspend() error: we previously assumed 'tas_dev' could be null (see line 1817)
sound/soc/codecs/tas2781-dsp.c:1670 tasdevice_load_block() warn: inconsistent indenting
sound/soc/codecs/tas2781-dsp.c:732 tas2781_clear_calfirmware() warn: inconsistent indenting
sound/soc/codecs/tas2781-dsp.c:2038 tasdevice_dsp_remove() warn: inconsistent indenting
Old smatch warnings:
sound/soc/codecs/tas2781-dsp.c:1688 tasdevice_load_block() warn: inconsistent indenting
sound/soc/codecs/tas2781-dsp.c:2042 tasdevice_dsp_remove() warn: inconsistent indenting
sound/soc/codecs/tas2781-dsp.c:2069 tasdevice_dsp_remove() warn: inconsistent indenting
sound/soc/codecs/tas2781-dsp.c:2073 tasdevice_dsp_remove() warn: inconsistent indenting
vim +220 sound/soc/codecs/tas2781-i2c.c
94
95 int tasdevice_process_block(void *context,
96 unsigned char *data, unsigned char dev_idx, int sublocksize)
97 {
98 struct tasdevice_priv *tas_dev =
99 (struct tasdevice_priv *)context;
100 unsigned char subblk_typ = data[1];
101 int subblk_offset = 2;
102 int chn = 0, chnend = 0;
103 int rc = 0;
104 int blktyp = dev_idx & 0xC0, idx = dev_idx & 0x3F;
105 bool is_err = false;
106
107 if (idx) {
108 chn = idx-1;
109 chnend = idx;
110 } else {
111 if (tas_dev->set_global_mode) {
112 chn = tas_dev->ndev;
113 chnend = tas_dev->ndev + 1;
114 } else {
115 chn = 0;
116 chnend = tas_dev->ndev;
117 }
118 }
119
120 for (; chn < chnend; chn++) {
121 if (tas_dev->set_global_mode == NULL &&
122 tas_dev->tasdevice[chn].is_loading == false)
123 continue;
124
125 is_err = false;
126 subblk_offset = 2;
127 switch (subblk_typ) {
128 case TASDEVICE_CMD_SING_W: {
129 int i = 0;
130 unsigned short len = SMS_HTONS(data[2], data[3]);
131
132 subblk_offset += 2;
133 if (subblk_offset + 4 * len > sublocksize) {
134 dev_err(tas_dev->dev,
135 "process_block: Out of memory\n");
136 is_err = true;
137 break;
138 }
139
140 for (i = 0; i < len; i++) {
141 rc = tasdevice_dev_write(tas_dev, chn,
142 TASDEVICE_REG(data[subblk_offset],
143 data[subblk_offset + 1],
144 data[subblk_offset + 2]),
145 data[subblk_offset + 3]);
146 if (rc < 0) {
147 is_err = true;
148 dev_err(tas_dev->dev,
149 "process_block: single write error\n");
150 }
151 subblk_offset += 4;
152 }
153 }
154 break;
155 case TASDEVICE_CMD_BURST: {
156 unsigned short len = SMS_HTONS(data[2], data[3]);
157
158 subblk_offset += 2;
159 if (subblk_offset + 4 + len > sublocksize) {
160 dev_err(tas_dev->dev,
161 "process_block: BURST Out of memory\n");
162 is_err = true;
163 break;
164 }
165 if (len % 4) {
166 dev_err(tas_dev->dev,
167 "%s: Burst len(%u) can be div by 4\n",
168 __func__, len);
169 break;
170 }
171
172 rc = tasdevice_dev_bulk_write(tas_dev, chn,
173 TASDEVICE_REG(data[subblk_offset],
174 data[subblk_offset + 1],
175 data[subblk_offset + 2]),
176 &(data[subblk_offset + 4]), len);
177 if (rc < 0) {
178 is_err = true;
179 dev_err(tas_dev->dev,
180 "%s: bulk_write error = %d\n",
181 __func__, rc);
182 }
183 subblk_offset += (len + 4);
184 }
185 break;
186 case TASDEVICE_CMD_DELAY: {
187 unsigned short delay_time = 0;
188
189 if (subblk_offset + 2 > sublocksize) {
190 dev_err(tas_dev->dev,
191 "%s: deley Out of memory\n",
192 __func__);
193 is_err = true;
194 break;
195 }
196 delay_time = SMS_HTONS(data[2], data[3]);
197 usleep_range(delay_time*1000, delay_time*1000);
198 subblk_offset += 2;
199 }
200 break;
201 case TASDEVICE_CMD_FIELD_W:
202 if (subblk_offset + 6 > sublocksize) {
203 dev_err(tas_dev->dev,
204 "process_block: bit write Out of memory\n");
205 is_err = true;
206 break;
207 }
208 rc = tasdevice_dev_update_bits(tas_dev, chn,
209 TASDEVICE_REG(data[subblk_offset + 2],
210 data[subblk_offset + 3],
211 data[subblk_offset + 4]),
212 data[subblk_offset + 1],
213 data[subblk_offset + 5]);
214 if (rc < 0) {
215 is_err = true;
216 dev_err(tas_dev->dev,
217 "process_block: update_bits error = %d\n", rc);
218 }
219 subblk_offset += 6;
> 220 break;
221 default:
222 break;
223 };
224 if (is_err == true && blktyp != 0) {
225 if (blktyp == 0x80) {
226 tas_dev->tasdevice[chn].cur_prog = -1;
227 tas_dev->tasdevice[chn].cur_conf = -1;
228 } else
229 tas_dev->tasdevice[chn].cur_conf = -1;
230 }
231 }
232 return subblk_offset;
233 }
234
--
0-DAY CI Kernel Test Service
https://github.com/intel/lkp-tests
prev parent reply other threads:[~2023-01-31 22:54 UTC|newest]
Thread overview: 4+ messages / expand[flat|nested] mbox.gz Atom feed top
2023-01-31 13:17 [PATCH v2] ASoC: tas2781: Add tas2781 driver Shenghao Ding
2023-01-31 15:09 ` kernel test robot
2023-01-31 16:23 ` kernel test robot
2023-01-31 22:54 ` kernel test robot [this message]
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=202302010621.HbhoRa8c-lkp@intel.com \
--to=lkp@intel.com \
--cc=13916275206@139.com \
--cc=alsa-devel@alsa-project.org \
--cc=broonie@kernel.org \
--cc=kevin-lu@ti.com \
--cc=lgirdwood@gmail.com \
--cc=linux-kernel@vger.kernel.org \
--cc=oe-kbuild-all@lists.linux.dev \
--cc=perex@perex.cz \
--cc=pierre-louis.bossart@linux.intel.com \
--cc=shenghao-ding@ti.com \
/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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox