I am using the 7280-m device
the driver matches kernel 3.15 and above but I am using kernel 3.10
so that function "v4l2_async_register_subdev(sd)" is not supported
do you have a working referance for older kernel than 3.15?
The bridge driver is responsible for binding your on-SoC video interface to the encoder/decoder chip (the adv7280-m) in this case. Hence it is highly specific to your SoC and hardware platform. The adv7280-m specific bits in the bridge is really just saying that it is a adv7280-m. So there is no generic bridge driver template or reference for the adv7280-m as it is different from platform to platform.
re-assigned to Linux software drivers group
We don't have a version of the driver for v3.10, but we do have a backport of the v4l2_async_register_subdev() functionality to v3.10. You can find it in the v4l2-async-3.10 branch. Just merge the changes from that branch into your tree before the adv7280-m driver.
Thank you , this help greatly!
btw , before the merge , I uncometted the
//ret = v4l2_async_register_subdev(sd);
and deice registers OK:
ls -l /dev/v4l-subdev*
crw-rw---- system camera 81, 128 2013-01-01 14:00 v4l-subdev0
crw-rw---- system camera 81, 129 2013-01-01 14:00 v4l-subdev1
crw-rw---- system camera 81, 130 2013-01-01 14:00 v4l-subdev2
crw-rw---- system camera 81, 131 2013-01-01 14:00 v4l-subdev3
crw-rw---- system camera 81, 132 2013-01-01 14:00 v4l-subdev4
crw-rw---- system camera 81, 133 2013-01-01 14:00 v4l-subdev5
crw-rw---- system camera 81, 134 2013-01-01 14:00 v4l-subdev6
do I have to use the Async option ? or what I have now is enough?
The async infrastructure is one way of matching the fronted device to the bridge driver. For some background information see the commit that initially added support for it.
async registration support is fully optional and if you e.g. directly register the adv7280-m device from you bridge driver removing async registration support from the driver will not affect its operation.
OK as I assumed
I checked the option to backport the V4L but I use some proprietary stuff that do not allow me to back port
I remain with the standard driver where the line "v4l2_async_register_subdev(sd)" is disabled
as I read in v4l instructions the function v4l2_i2c_subdev_init should create the sub-dev
however I do not see a sub-dev created
what should I do in order to see the device ?
What exactly do you mean by subdev created, the /dev/v4l2-subdevX node or the instance of the i2c device driver?
To get the subdev dev node you need to call v4l2_device_register_subdev_nodes() after v4l2_i2c_subdev_init(). Also make sure that you have this patch, which sets the V4L2_SUBDEV_FL_HAS_DEVNODE flag for the adv7280-m driver, which is required for the subdev to be registered.
I have added v4l2_device_register_subdev_nodes(dev);
still no device is registered , I have attached my probe code
* as I saw in V4L the correct definition is to seperate the V4L part to a "bridge" , I will do so when I will have a working driver
btw , I2C communication works well to the device , I have inserted some test script in the kernel and viewed the registers being set
The v4l2_device_register_subdev_nodes() call needs to be done from the bridge driver otherwise it will not work. This instructs the bridge to create a node for all of its subdevices.
do you have a working bridge reference ?
Retrieving data ...