|
@@ -226,12 +226,14 @@ static int stb6100_write_reg_range(struct stb6100_state *state, u8 buf[], int st
|
|
|
|
|
|
static int stb6100_write_reg(struct stb6100_state *state, u8 reg, u8 data)
|
|
|
{
|
|
|
+ u8 tmp = data; /* see gcc.gnu.org/bugzilla/show_bug.cgi?id=81715 */
|
|
|
+
|
|
|
if (unlikely(reg >= STB6100_NUMREGS)) {
|
|
|
dprintk(verbose, FE_ERROR, 1, "Invalid register offset 0x%x", reg);
|
|
|
return -EREMOTEIO;
|
|
|
}
|
|
|
- data = (data & stb6100_template[reg].mask) | stb6100_template[reg].set;
|
|
|
- return stb6100_write_reg_range(state, &data, reg, 1);
|
|
|
+ tmp = (tmp & stb6100_template[reg].mask) | stb6100_template[reg].set;
|
|
|
+ return stb6100_write_reg_range(state, &tmp, reg, 1);
|
|
|
}
|
|
|
|
|
|
|