[PATCH 11/13] media: i2c: imx214: Add analogue/digital gain control

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



From: André Apitzsch <git@xxxxxxxxxxx>

The imx214 sensor supports analogue gain up to 8x and digital gain up to
16x. Implement the corresponding controls in the driver. Default gain
values are not modified by this patch.

Signed-off-by: André Apitzsch <git@xxxxxxxxxxx>

---

With the analogue gain control added by this patch, the kernel log shows
the following message when closing megapixels and a similar one when
closing qcam (from libcamera):

[  100.042856] ------------[ cut here ]------------
[  100.042886] WARNING: CPU: 4 PID: 3444 at drivers/media/common/videobuf2/videobuf2-core.c:2182 __vb2_queue_cancel+0x228/0x2c0 [videobuf2_common]
[  100.042948] Modules linked in: rfcomm zstd zstd_compress zram zsmalloc rpmsg_wwan_ctrl q6voice_dai q6asm_dai q6voice q6afe_dai q6routing q6cvs q6adm q6asm q6cvp q6mvm snd_q6dsp_common q6voice_common q6afe q6core apr pdr_interface nft_reject_inet nf_reject_ipv4 nf_reject_ipv6 nft_reject nft_ct nf_conntrack nf_defrag_ipv6 nf_defrag_ipv4 nf_tables nfnetlink algif_hash algif_skcipher af_alg bnep qcom_pd_mapper qcom_pdr_msg wcn36xx btqcomsmd btqca ipv6 wcnss_ctrl qcom_bam_dmux imx214 v4l2_cci ledtrig_pattern bmi160_i2c ak8975 leds_ktd202x bmi160_core ltr501 leds_sy7802 qcom_wcnss_pil qcom_camss qcom_q6v5_mss snd_soc_msm8916_digital snd_soc_msm8916_analog pm8xxx_vibrator v4l2_fwnode qcom_pil_info videobuf2_dma_sg qcom_common qcom_q6v5 videobuf2_memops videobuf2_v4l2 videobuf2_common i2c_qcom_cci leds_sgm3140 v4l2_flash_led_class led_class_flash v4l2_async videodev qcom_memshare mc usb_f_ncm u_ether panel_longcheer_truly_nt35695 atmel_mxt_ts smb1360 msm mdt_loader drm_exec drm_display_he
 lper gpu_sched libcomposite
[  100.043688] CPU: 4 UID: 10000 PID: 3444 Comm: megapixels Not tainted 6.11.0-rc3-msm8916 #312
[  100.043716] Hardware name: BQ Aquaris M5 (Longcheer L9100) (DT)
[  100.043730] pstate: 20000005 (nzCv daif -PAN -UAO -TCO -DIT -SSBS BTYPE=--)
[  100.043756] pc : __vb2_queue_cancel+0x228/0x2c0 [videobuf2_common]
[  100.043787] lr : __vb2_queue_cancel+0x28/0x2c0 [videobuf2_common]
[  100.043815] sp : ffff80008450ba50
[  100.043826] x29: ffff80008450ba50 x28: 0000000000000001 x27: ffff00000f946180
[  100.043867] x26: 0000000000000000 x25: ffff00000f946780 x24: ffff00000f946910
[  100.043906] x23: ffff00000175a620 x22: ffff0000036ddc90 x21: ffff0000036e4410
[  100.043946] x20: ffff0000036e44b8 x19: ffff0000036e4410 x18: ffff80008450ba98
[  100.043985] x17: ffffffffffffffff x16: 0000000000000000 x15: 0000000000000040
[  100.044023] x14: 0256932925642338 x13: ffff00000f946200 x12: 0000000000000001
[  100.044062] x11: ffff00000f946200 x10: 0000000000000a20 x9 : 0000000000000000
[  100.044100] x8 : ffff0000bf964880 x7 : 0000000000000020 x6 : 0000000000000100
[  100.044138] x5 : ffff0000036e4b68 x4 : 0000000000000000 x3 : ffff00000f946180
[  100.044176] x2 : 0000000000000000 x1 : 0000000000000000 x0 : 000000000000000f
[  100.044214] Call trace:
[  100.044226]  __vb2_queue_cancel+0x228/0x2c0 [videobuf2_common]
[  100.044257]  vb2_core_queue_release+0x20/0x74 [videobuf2_common]
[  100.044285]  _vb2_fop_release+0x68/0xb0 [videobuf2_v4l2]
[  100.044314]  vb2_fop_release+0x28/0x50 [videobuf2_v4l2]
[  100.044341]  video_release+0x20/0x40 [qcom_camss]
[  100.044406]  v4l2_release+0xb4/0xf4 [videodev]
[  100.044481]  __fput+0xbc/0x274
[  100.044510]  ____fput+0xc/0x14
[  100.044533]  task_work_run+0x78/0xc0
[  100.044563]  do_exit+0x2dc/0x8b0
[  100.044590]  do_group_exit+0x30/0x8c
[  100.044615]  get_signal+0x7b4/0x8a0
[  100.044643]  do_signal+0x94/0xd14
[  100.044672]  do_notify_resume+0xd0/0x120
[  100.044697]  el0_svc+0x44/0x60
[  100.044730]  el0t_64_sync_handler+0x118/0x124
[  100.044753]  el0t_64_sync+0x14c/0x150
[  100.044775] ---[ end trace 0000000000000000 ]---
[  100.044793] videobuf2_common: driver bug: stop_streaming operation is leaving buffer 0 in active state
[  100.045722] videobuf2_common: driver bug: stop_streaming operation is leaving buffer 1 in active state
[  100.046587] videobuf2_common: driver bug: stop_streaming operation is leaving buffer 2 in active state
[  100.047439] videobuf2_common: driver bug: stop_streaming operation is leaving buffer 3 in active state
[  100.048288] videobuf2_common: driver bug: stop_streaming operation is leaving buffer 4 in active state
[  100.049242] videobuf2_common: driver bug: stop_streaming operation is leaving buffer 5 in active state
[  100.050098] videobuf2_common: driver bug: stop_streaming operation is leaving buffer 6 in active state
[  100.050945] videobuf2_common: driver bug: stop_streaming operation is leaving buffer 7 in active state
[  100.051793] videobuf2_common: driver bug: stop_streaming operation is leaving buffer 8 in active state
[  100.052692] videobuf2_common: driver bug: stop_streaming operation is leaving buffer 14 in active state
[  100.053548] videobuf2_common: driver bug: stop_streaming operation is leaving buffer 15 in active state
[  100.054396] videobuf2_common: driver bug: stop_streaming operation is leaving buffer 16 in active state
[  100.055244] videobuf2_common: driver bug: stop_streaming operation is leaving buffer 17 in active state
[  100.056137] videobuf2_common: driver bug: stop_streaming operation is leaving buffer 18 in active state
[  100.056988] videobuf2_common: driver bug: stop_streaming operation is leaving buffer 19 in active state


[Index of Archives]     [Linux Input]     [Video for Linux]     [Gstreamer Embedded]     [Mplayer Users]     [Linux USB Devel]     [Linux Audio Users]     [Linux Kernel]     [Linux SCSI]     [Yosemite Backpacking]

  Powered by Linux