From bc8e54076f8ea66c087fbf2e293d9fd3439f358c Mon Sep 17 00:00:00 2001 From: Mauro Carvalho Chehab Date: Mon, 7 Sep 2009 01:30:57 -0300 Subject: changeset: 12701:86bff049a6fb From: Mauro Carvalho Chehab tag: tip user: Mauro Carvalho Chehab date: Mon Sep 07 01:30:10 2009 -0300 files: linux/drivers/media/video/saa7134/saa7134-input.c linux/drivers/media/video/saa7134/saa7134.h description: SAA7134: ir-kbd-i2c initialization data should point to a persistent object ir-kbd-i2c's ir_probe() function can be called much later (i.e. at ir-kbd-i2c module load), than the lifetime of a struct IR_i2c_init_data allocated off of the stack in cx18_i2c_new_ir() at registration time. Make sure we pass a pointer to a persistent IR_i2c_init_data object at i2c registration time. Thanks to Brain Rogers, Dustin Mitchell, Andy Walls and Jean Delvare to rise this question. Before this patch, if ir-kbd-i2c were probed after SAA7134, trash data were used. Compile tested only, but the patch is identical to em28xx one. So, it should work properly. Priority: high Signed-off-by: Mauro Carvalho Chehab --- linux/drivers/media/video/saa7134/saa7134.h | 4 ++++ 1 file changed, 4 insertions(+) (limited to 'linux/drivers/media/video/saa7134/saa7134.h') diff --git a/linux/drivers/media/video/saa7134/saa7134.h b/linux/drivers/media/video/saa7134/saa7134.h index 8c164bc79..d01281d1e 100644 --- a/linux/drivers/media/video/saa7134/saa7134.h +++ b/linux/drivers/media/video/saa7134/saa7134.h @@ -594,6 +594,10 @@ struct saa7134_dev { int nosignal; unsigned int insuspend; + /* I2C keyboard data */ + struct i2c_board_info info; + struct IR_i2c_init_data init_data; + /* SAA7134_MPEG_* */ struct saa7134_ts ts; struct saa7134_dmaqueue ts_q; -- cgit v1.2.3