Messages in this thread Patch in this message | | | From | rkardell <> | Subject | [PATCH] media: dvb: mt352, change i2c read buffer from stack, to kernel space | Date | Thu, 7 Oct 2021 13:44:06 +0200 |
| |
Solve problem with initialization of Mega Sky 580 USB DVB (and other using mt352), error when reading i2c id.
Signed-off-by: rkl099 <rkardell@mida.se> --- drivers/media/dvb-frontends/mt352.c | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-)
diff --git a/drivers/media/dvb-frontends/mt352.c b/drivers/media/dvb-frontends/mt352.c index 399d5c519..d7f33558d 100644 --- a/drivers/media/dvb-frontends/mt352.c +++ b/drivers/media/dvb-frontends/mt352.c @@ -69,7 +69,7 @@ static int mt352_read_register(struct mt352_state* state, u8 reg) { int ret; u8 b0 [] = { reg }; - u8 b1 [] = { 0 }; + u8 *b1=kmalloc(1,GFP_KERNEL); struct i2c_msg msg [] = { { .addr = state->config.demod_address, .flags = 0, .buf = b0, .len = 1 }, @@ -82,12 +82,15 @@ static int mt352_read_register(struct mt352_state* state, u8 reg) if (ret != 2) { printk("%s: readreg error (reg=%d, ret==%i)\n", __func__, reg, ret); + kfree(b1); return ret; } - - return b1[0]; + ret=b1[0]; + kfree(b1); + return ret; }
+ static int mt352_sleep(struct dvb_frontend* fe) { static u8 mt352_softdown[] = { CLOCK_CTL, 0x20, 0x08 }; -- 2.30.2
| |