From a3f40c005d7d66d49c2bcddbf492645052ac2d77 Mon Sep 17 00:00:00 2001 From: Seung-Woo Kim Date: Tue, 14 May 2019 16:01:04 +0900 Subject: [PATCH] media: radio: sprd: fix only requesting to get snr when used When not used, requesting to get snr causes following kernel panic because driver is not initialized. Fix only requesting to get snr when used. Internal error: Oops: 805 [#1] PREEMPT SMP ARM ... [] (skb_queue_tail+0x34/0x58) from [] (__fm_send_cmd.isra.0+0xcc/0xf8) [] (__fm_send_cmd.isra.0+0xcc/0xf8) from [] (fmc_send_cmd+0x6c/0x210) [] (fmc_send_cmd+0x6c/0x210) from [] (fm_rx_get_snr+0x4c/0x84) [] (fm_rx_get_snr+0x4c/0x84) from [] (show_fmrx_curr_snr+0x34/0x6c) [] (show_fmrx_curr_snr+0x34/0x6c) from [] (dev_attr_show+0x30/0x54) [] (dev_attr_show+0x30/0x54) from [] (sysfs_read_file+0xc0/0x170) [] (sysfs_read_file+0xc0/0x170) from [] (vfs_read+0xbc/0x138) [] (vfs_read+0xbc/0x138) from [] (SyS_read+0x50/0x78) [] (SyS_read+0x50/0x78) from [] (__sys_trace_return+0x0/0x14) Change-Id: I6ada090c40925212ef96107d56021612c5cf46fe Signed-off-by: Seung-Woo Kim --- drivers/media/radio/sc2331/fmdrv_v4l2.c | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/drivers/media/radio/sc2331/fmdrv_v4l2.c b/drivers/media/radio/sc2331/fmdrv_v4l2.c index d512bb8..2841be3 100755 --- a/drivers/media/radio/sc2331/fmdrv_v4l2.c +++ b/drivers/media/radio/sc2331/fmdrv_v4l2.c @@ -387,12 +387,15 @@ static ssize_t show_fmrx_curr_snr(struct device *dev, unsigned int curr_snr = 0; struct fmdrv_ops *fmdev = dev_get_drvdata(dev); - ret = fm_rx_get_snr(fmdev,&curr_snr); + if(atomic_read(&v4l2_device_available) != 1) { + /* only request when it is currently used */ + ret = fm_rx_get_snr(fmdev,&curr_snr); - if (ret < 0 ) - { - pr_err("(fmdrv) %s(): fail to get current SNR\n", + if (ret < 0 ) + { + pr_err("(fmdrv) %s(): fail to get current SNR\n", __func__); + } } return sprintf(buf, "%d\n", curr_snr); -- 2.7.4