lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Date:   Wed, 26 Sep 2018 07:26:24 +0200
From:   Ricardo Ribalda Delgado <ricardo.ribalda@...il.com>
To:     Sakari Ailus <sakari.ailus@...ux.intel.com>
Cc:     Hans Verkuil <hans.verkuil@...co.com>,
        Laurent Pinchart <laurent.pinchart@...asonboard.com>,
        Mauro Carvalho Chehab <mchehab+samsung@...nel.org>,
        LKML <linux-kernel@...r.kernel.org>,
        linux-media <linux-media@...r.kernel.org>
Subject: Re: [PATCH 1/2] [media] imx214: Add imx214 camera sensor driver

Hello Sakari
On Mon, Sep 24, 2018 at 10:32 PM Sakari Ailus
<sakari.ailus@...ux.intel.com> wrote:
>
> Hi Ricardo,
>
> On Fri, Sep 21, 2018 at 12:15:55PM +0200, Ricardo Ribalda Delgado wrote:
> ...
> > > > +static struct reg_8 mode_1920x1080[];
> > > > +static struct reg_8 mode_4096x2304[];
> > >
> > > Const. Could you rearrange the bits to avoid the forward declarations?
> > Const done, but I prefer to keep the forward declaration. Otherwise
> > the long tables will "hide" the mode declaration.
>
> Well, I guess the long tables do "hide" a bunch of other stuff, too. :-)
> But... I agree there's no trivial way around those tables either.
>
> It appears I'm not the only one who's commented on the matter of the
> forward declaration.

Ok, I will change it, Eppur si muove  ;)
>
> ...
>
> > > > +static int imx214_probe(struct i2c_client *client)
> > > > +{
> > > > +     struct device *dev = &client->dev;
> > > > +     struct imx214 *imx214;
> > > > +     struct fwnode_handle *endpoint;
> > > > +     int ret;
> > > > +     static const s64 link_freq[] = {
> > > > +             (IMX214_DEFAULT_PIXEL_RATE * 10LL) / 8,
> > >
> > > You should check the link frequency matches with that from the firmware.
> >
> > I am not sure what you mean here sorry.
>
> The system firmware holds safe frequencies for the CSI-2 bus on that
> particular system; you should check that the register lists are valid for
> that frequency.
>
> ...
>
> > > > +     imx214->pixel_rate = v4l2_ctrl_new_std(&imx214->ctrls, NULL,
> > > > +                                            V4L2_CID_PIXEL_RATE, 0,
> > > > +                                            IMX214_DEFAULT_PIXEL_RATE, 1,
> > > > +                                            IMX214_DEFAULT_PIXEL_RATE);
> > > > +     imx214->link_freq = v4l2_ctrl_new_int_menu(&imx214->ctrls, NULL,
> > > > +                                                V4L2_CID_LINK_FREQ,
> > > > +                                                ARRAY_SIZE(link_freq) - 1,
> > > > +                                                0, link_freq);
> > >
> > > Do I understand this correctly that the driver does not support setting
> > > e.g. exposure time or gain? Those are very basic features...
> >
> >
> > Yep :), this is just a first step. I do not have the register set from
> > the device :(. So I am reverse engineering a lot of things.
> > I will add more controls as I am done with them.
>
> Looking at the registers you have in the register list, the sensor's
> registers appear similar to those used by the smiapp driver (the old SMIA
> standard).
>
> I'd guess the same register would work for setting the exposure time. I'm
> less certain about the limits though.

Thanks for the pointer! I will try this out and probably add it as a patch.

>
> >
> > >
> > > You'll also need to ensure the s_ctrl() callback works without s_power()
> > > being called. My suggestion is to switch to PM runtime; see e.g. the ov1385
> > > driver in the current media tree master.
> >
> >
> > There is one limitation with this chip on the dragonboard. I2c only
> > works if the camss is ON. Therefore whatever s_ctrl needs to be
> > cached and written at streamon.
>
> That's something that doesn't belong to this driver. It's the I涎 adapter
> driver / camss issue, and not necessarily related to drivers only. Is the
> I涎 controller part of the camss btw.?

I am with you here. The i2c controller is a different driver but is
integrated with camss. Checkout
https://patchwork.kernel.org/patch/10569961/ I am interacting with
Todor and Vinod to enable the i2c port indepently with camss. At least
now it does not kill the port after an i2c timeout :)

Will fix the fwd declaration and the csi-2 register. Then I wll upload
it to my github, try it on real hw next monday and send back to the
mailing list

Thanks!

>
> --
> Regards,
>
> Sakari Ailus
> sakari.ailus@...ux.intel.com



-- 
Ricardo Ribalda

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ