From: Seung-Woo Kim Date: Tue, 14 May 2019 07:01:04 +0000 (+0900) Subject: media: radio: sprd: fix only requesting to get snr when used X-Git-Tag: accepted/tizen/unified/20190515.085003~1 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=a3f40c005d7d66d49c2bcddbf492645052ac2d77;p=profile%2Fmobile%2Fplatform%2Fkernel%2Flinux-3.10-sc7730.git 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 --- 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);