提交 7f3c2e1d 编写于 作者: H Hans Verkuil 提交者: Mauro Carvalho Chehab

[media] cx231xx: fix compiler warning

Fix this compiler warning by allocating a structure to read the eeprom instead
of doing it on the stack and worse: the eeprom array is static, so that can
cause problems if there are multiple cx231xx instances.

cx231xx-cards.c: In function 'cx231xx_card_setup':
cx231xx-cards.c:1110:1: warning: the frame size of 2064 bytes is larger than 2048 bytes [-Wframe-larger-than=]
 }
 ^

I did consider removing the code altogether since the result is actually
not used at the moment, but I decided against it since it is used in other
drivers and someone might want to start using it in this driver as well. And
then it is useful that the code is already there.
Signed-off-by: NHans Verkuil <hans.verkuil@cisco.com>
Signed-off-by: NMauro Carvalho Chehab <mchehab@osg.samsung.com>
上级 d0154d83
......@@ -1092,17 +1092,25 @@ void cx231xx_card_setup(struct cx231xx *dev)
case CX231XX_BOARD_HAUPPAUGE_930C_HD_1114xx:
case CX231XX_BOARD_HAUPPAUGE_955Q:
{
struct tveeprom tvee;
static u8 eeprom[256];
struct i2c_client client;
memset(&client, 0, sizeof(client));
client.adapter = cx231xx_get_i2c_adap(dev, I2C_1_MUX_1);
client.addr = 0xa0 >> 1;
struct eeprom {
struct tveeprom tvee;
u8 eeprom[256];
struct i2c_client client;
};
struct eeprom *e = kzalloc(sizeof(*e), GFP_KERNEL);
if (e == NULL) {
dev_err(dev->dev,
"failed to allocate memory to read eeprom\n");
break;
}
e->client.adapter = cx231xx_get_i2c_adap(dev, I2C_1_MUX_1);
e->client.addr = 0xa0 >> 1;
read_eeprom(dev, &client, eeprom, sizeof(eeprom));
tveeprom_hauppauge_analog(&client,
&tvee, eeprom + 0xc0);
read_eeprom(dev, &e->client, e->eeprom, sizeof(e->eeprom));
tveeprom_hauppauge_analog(&e->client,
&e->tvee, e->eeprom + 0xc0);
kfree(e);
break;
}
}
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册