[alsa-devel] [bug report] soundwire: Add IO transfer
Vinod Koul
vinod.koul at intel.com
Mon Jan 8 04:37:22 CET 2018
On Fri, Jan 05, 2018 at 04:47:05PM +0300, Dan Carpenter wrote:
> Hello Vinod Koul,
>
> The patch 9d715fa005eb: "soundwire: Add IO transfer" from Dec 14,
> 2017, leads to the following static checker warning:
>
> drivers/soundwire/bus.c:309 sdw_nread()
> info: return a literal instead of 'ret'
>
> drivers/soundwire/bus.c
> 297 int sdw_nread(struct sdw_slave *slave, u32 addr, size_t count, u8 *val)
> 298 {
> 299 struct sdw_msg msg;
> 300 int ret;
> 301
> 302 ret = sdw_fill_msg(&msg, slave, addr, count,
> 303 slave->dev_num, SDW_MSG_FLAG_READ, val);
> 304 if (ret < 0)
> 305 return ret;
> 306
> 307 ret = pm_runtime_get_sync(slave->bus->dev);
> 308 if (!ret)
> 309 return ret;
>
> Changing "return ret;" to "return 0;" is more readable, but I mostly
> am not sure this is correct. rpm_resume() has crap comments. It
> sometimes returns negatives, sometimes zero and sometimes one but I have
> no idea what it means... Probably this check should be:
>
> if (ret <= 0)
> return ret;
That's right we already have a patch for this in our internal code, will send
that out. rpm_resume can return positive values and yes that should be
documented somewhere :)
>
> (Bugs like this is why the static checker warning exists).
>
> 310
> 311 ret = sdw_transfer(slave->bus, &msg);
> 312 pm_runtime_put(slave->bus->dev);
> 313
> 314 return ret;
> 315 }
> 316 EXPORT_SYMBOL(sdw_nread);
> 317
> 318 /**
> 319 * sdw_nwrite() - Write "n" contiguous SDW Slave registers
> 320 * @slave: SDW Slave
> 321 * @addr: Register address
> 322 * @count: length
> 323 * @val: Buffer for values to be read
> 324 */
> 325 int sdw_nwrite(struct sdw_slave *slave, u32 addr, size_t count, u8 *val)
> 326 {
> 327 struct sdw_msg msg;
> 328 int ret;
> 329
> 330 ret = sdw_fill_msg(&msg, slave, addr, count,
> 331 slave->dev_num, SDW_MSG_FLAG_WRITE, val);
> 332 if (ret < 0)
> 333 return ret;
> 334
> 335 ret = pm_runtime_get_sync(slave->bus->dev);
> 336 if (!ret)
> 337 return ret;
>
> Same static checker warning here.
>
> 338
> 339 ret = sdw_transfer(slave->bus, &msg);
> 340 pm_runtime_put(slave->bus->dev);
>
> regards,
> dan carpenter
--
~Vinod
More information about the Alsa-devel
mailing list