Updated from Linux LTS 3.10.21 to 3.10.22
This commit is contained in:
@@ -21,6 +21,9 @@
|
||||
|
||||
#include "af9033_priv.h"
|
||||
|
||||
/* Max transfer size done by I2C transfer functions */
|
||||
#define MAX_XFER_SIZE 64
|
||||
|
||||
struct af9033_state {
|
||||
struct i2c_adapter *i2c;
|
||||
struct dvb_frontend fe;
|
||||
@@ -40,16 +43,23 @@ static int af9033_wr_regs(struct af9033_state *state, u32 reg, const u8 *val,
|
||||
int len)
|
||||
{
|
||||
int ret;
|
||||
u8 buf[3 + len];
|
||||
u8 buf[MAX_XFER_SIZE];
|
||||
struct i2c_msg msg[1] = {
|
||||
{
|
||||
.addr = state->cfg.i2c_addr,
|
||||
.flags = 0,
|
||||
.len = sizeof(buf),
|
||||
.len = 3 + len,
|
||||
.buf = buf,
|
||||
}
|
||||
};
|
||||
|
||||
if (3 + len > sizeof(buf)) {
|
||||
dev_warn(&state->i2c->dev,
|
||||
"%s: i2c wr reg=%04x: len=%d is too big!\n",
|
||||
KBUILD_MODNAME, reg, len);
|
||||
return -EINVAL;
|
||||
}
|
||||
|
||||
buf[0] = (reg >> 16) & 0xff;
|
||||
buf[1] = (reg >> 8) & 0xff;
|
||||
buf[2] = (reg >> 0) & 0xff;
|
||||
@@ -161,7 +171,14 @@ static int af9033_wr_reg_val_tab(struct af9033_state *state,
|
||||
const struct reg_val *tab, int tab_len)
|
||||
{
|
||||
int ret, i, j;
|
||||
u8 buf[tab_len];
|
||||
u8 buf[MAX_XFER_SIZE];
|
||||
|
||||
if (tab_len > sizeof(buf)) {
|
||||
dev_warn(&state->i2c->dev,
|
||||
"%s: i2c wr len=%d is too big!\n",
|
||||
KBUILD_MODNAME, tab_len);
|
||||
return -EINVAL;
|
||||
}
|
||||
|
||||
dev_dbg(&state->i2c->dev, "%s: tab_len=%d\n", __func__, tab_len);
|
||||
|
||||
|
||||
Reference in New Issue
Block a user