Hallo Nxp Community,
I am trying to run MAX9288 in i.MXQXP. Currently while configuration media_enity_pads_init.
From V4L2 framework, creates Kernel Panic
ERROR LOG:
>[ 73.321829] mx8-img-md: Registered sensor subdevice: max9288 16-0049 (1)
>[ 73.331888] -----------[ cut here ]-----------
>[ 73.336509] kernel BUG at drivers/media/media-entity.c:158!
>[ 73.342088] Internal error: Oops - BUG: 0 1 PREEMPT SMP
>[ 73.347577] Modules linked in: max9288
>[ 73.351594] Process modprobe (pid: 2651, stack limit = 0x00000000a4f18683)
Code for V4l2 Interface:
sd->flags |= V4L2_SUBDEV_FL_HAS_DEVNODE;
printk ("v4l2 driver");
sd->entity.function = MEDIA_ENT_F_CAM_SENSOR
priv->pads[MIPI_CSI2_SENS_VC0_PAD_SOURCE].flags = MEDIA_PAD_FL_SOURCE;
printk("Pad Init");
ret = media_entity_pads_init(&sd->entity, MIPI_CSI2_SENS_VCX_PADS_NUM, priv->pads);
if (ret)
dev_err(dev, "pads init ret: %d\n", ret);
printk ("Entity v4l2 driver");
sd->entity.ops = &max9288_sd_media_ops;
/* TODO: more chip init and CSI source subdev registration. */
/* FL end */
printk ("Entity v4l2 driver");
ret = v4l2_async_register_subdev(&priv->subdev);
ret = v4l2_int_device_register(&sd);
if (ret) {
dev_err(dev, "async register subdev ret: %d\n", ret);
media_entity_cleanup(&sd->entity);
return ret;
}
Init Log From MAX9288
Maxim detected
[ 183.153748] Normal operation Hardware PreInit 146
[ 183.160388] max9288 16-0049: DESID: 0x92, Rev: 0x00
[ 183.165430] max9288 16-0049: In max9288_hardware_status()
[ 183.172290] reg 0x02 val 0x0f
[ 183.176705] reg 0x04 val 0x20
[ 183.196247] reg 0x04 val 0x00
[ 183.216263] reg 0x05 val 0x29
[ 183.228253] reg 0x06 val 0x00
[ 183.240252] reg 0x08 val 0x27
[ 183.252257] reg 0x09 val 0x40
[ 183.264256] reg 0x11 val 0x22
[ 183.276258] reg 0x12 val 0x00
[ 183.288286] reg 0x14 val 0x00
[ 183.300257] reg 0x15 val 0x70
[ 183.312254] reg 0x1d val 0x00
[ 183.324259] reg 0x60 val 0x30
[ 183.336234] reg 0x65 val 0x37
[ 183.339688] max9288 16-0049: Locked Status: 0x04: Rev: 0x80
[ 183.345864] max9288 16-0049: DECERR: 0x0D: Rev: 0x00
[ 183.351492] max9288 16-0049: PRBSERR: 0x0E: Rev: 0xff
[ 183.357108] max9288 16-0049: WireCheck : 0x76: Rev: 0x06
[ 183.363019] max9288 16-0049: General Tracking: 0x04: Rev: 0x0f
[ 183.369006] Start V4l2 Interface
@igorpadykov Can you please let me know why BUG_ON cannot detect mdev for V4L2. Why is the CSI not loading the mdev? Can you explain in more details how it can be fixed.
Hoping to hear from you.
Kind Regards,
Hossain
i write driver for 9288,but when i test ,application blocked at DQBUF,is there someone can help me?
Hello mosaddek,
one can use as reference max9286 driver, described in sect.6.1.7 V4L2 Capture
max9286.c\imx8\platform\media\drivers - linux-imx - i.MX Linux kernel
AR0144 and ov9284 drivers for I.MX8QM/QXP. | NXP Community
for debugging one can try camera unit test:
mx8_v4l2_cap_drm.c\mxc_v4l2_test\test - imx-test - i.MX Driver Test Application Software
Regards