[media] cx231xx-i2c: reduce stack size in bus scan
The cx231xx_do_i2c_scan function needs a lot of stack because it puts an i2c_client structure on it: drivers/media/usb/cx231xx/cx231xx-i2c.c: In function 'cx231xx_do_i2c_scan': drivers/media/usb/cx231xx/cx231xx-i2c.c:518:1: error: the frame size of 1248 bytes is larger than 1152 bytes [-Werror=frame-larger-than=] This changes it to call i2c_transfer() directly instead, avoiding the need for the structure. Signed-off-by: Arnd Bergmann <arnd@arndb.de> Signed-off-by: Hans Verkuil <hans.verkuil@cisco.com> Signed-off-by: Mauro Carvalho Chehab <mchehab@s-opensource.com>
This commit is contained in:
parent
6830733d53
commit
4063987c9b
@ -491,20 +491,24 @@ void cx231xx_do_i2c_scan(struct cx231xx *dev, int i2c_port)
|
||||
{
|
||||
unsigned char buf;
|
||||
int i, rc;
|
||||
struct i2c_client client;
|
||||
struct i2c_adapter *adap;
|
||||
struct i2c_msg msg = {
|
||||
.flags = I2C_M_RD,
|
||||
.len = 1,
|
||||
.buf = &buf,
|
||||
};
|
||||
|
||||
if (!i2c_scan)
|
||||
return;
|
||||
|
||||
/* Don't generate I2C errors during scan */
|
||||
dev->i2c_scan_running = true;
|
||||
|
||||
memset(&client, 0, sizeof(client));
|
||||
client.adapter = cx231xx_get_i2c_adap(dev, i2c_port);
|
||||
adap = cx231xx_get_i2c_adap(dev, i2c_port);
|
||||
|
||||
for (i = 0; i < 128; i++) {
|
||||
client.addr = i;
|
||||
rc = i2c_master_recv(&client, &buf, 0);
|
||||
msg.addr = i;
|
||||
rc = i2c_transfer(adap, &msg, 1);
|
||||
|
||||
if (rc < 0)
|
||||
continue;
|
||||
dev_info(dev->dev,
|
||||
|
Loading…
Reference in New Issue
Block a user