コード例 #1
0
static inline int max8971_masked_write(struct max8971_io *io,
	u8 addr, u8 mask, u8 shift, u8 val)
{
	u8 buf = 0;
	int rc;

	if (unlikely(!mask)) {
		/* no actual access */
		rc = 0;
		goto out;
	}

	rc = max8971_read(io, addr, &buf);
	if (likely(!IS_ERR_VALUE(rc)))
		rc = max8971_write(io, addr, __BITS_SET(buf, mask, shift, val));

out:
	return rc;
}
コード例 #2
0
static inline int max8971_masked_read(struct max8971_io *io,
	u8 addr, u8 mask, u8 shift, u8 *val)
{
	u8 buf = 0;
	int rc;

	if (unlikely(!mask)) {
		/*                  */
		*val = 0;
		rc	 = 0;
		goto out;
	}

	rc = max8971_read(io, addr, &buf);
	if (likely(!IS_ERR_VALUE(rc)))
		*val = __BITS_GET(buf, mask, shift);

out:
	return rc;
}