[PATCH v2 48/55] media: rkisp1: Add match data for i.MX8MP ISP
Laurent Pinchart
laurent.pinchart at ideasonboard.com
Sun Jul 17 08:23:10 PDT 2022
Hi Adam,
On Sun, Jul 17, 2022 at 05:56:56PM +0300, Laurent Pinchart wrote:
> On Fri, Jul 15, 2022 at 06:56:57AM -0500, Adam Ford wrote:
> > On Thu, Jun 30, 2022 at 6:27 PM Laurent Pinchart wrote:
> > >
> > > From: Paul Elder <paul.elder at ideasonboard.com>
> > >
> > > Add match data to the rkisp1 driver to match the i.MX8MP ISP.
> >
> > I am testing this series on an i.MX8MP with two Sony IMX219 cameras in
> > 4-lane mode.
> > From what I can tell, the ISP_1 doesn't enumerate if ISP_0 is already
> > enumerated. My guess is that the name of the ISP is hard-coded so the
> > second instance isn't able to load because the names conflict. I
> > don't see any errors, so it's just a guess.
>
> I'll have a look.
Both ISP instances probe successfully for me, with two different sensors
though (IMX327 and IMX296). Can you share more information about your
issue ?
> > > Signed-off-by: Paul Elder <paul.elder at ideasonboard.com>
> > > ---
> > > .../platform/rockchip/rkisp1/rkisp1-dev.c | 22 +++++++++++++++++++
> > > include/uapi/linux/rkisp1-config.h | 3 +++
> > > 2 files changed, 25 insertions(+)
> > >
> > > diff --git a/drivers/media/platform/rockchip/rkisp1/rkisp1-dev.c b/drivers/media/platform/rockchip/rkisp1/rkisp1-dev.c
> > > index f2475c6235ea..a41f89807dd7 100644
> > > --- a/drivers/media/platform/rockchip/rkisp1/rkisp1-dev.c
> > > +++ b/drivers/media/platform/rockchip/rkisp1/rkisp1-dev.c
> > > @@ -496,6 +496,24 @@ static const struct rkisp1_info rk3399_isp_info = {
> > > .features = RKISP1_FEATURE_MIPI_CSI2,
> > > };
> > >
> > > +static const char * const imx8mp_isp_clks[] = {
> > > + "isp",
> > > + "hclk",
> > > + "aclk",
> > > +};
> > > +
> > > +static const struct rkisp1_isr_data imx8mp_isp_isrs[] = {
> > > + { NULL, rkisp1_isr },
> > > +};
> > > +
> > > +static const struct rkisp1_info imx8mp_isp_info = {
> > > + .clks = imx8mp_isp_clks,
> > > + .clk_size = ARRAY_SIZE(imx8mp_isp_clks),
> > > + .isrs = imx8mp_isp_isrs,
> > > + .isr_size = ARRAY_SIZE(imx8mp_isp_isrs),
> > > + .isp_ver = IMX8MP_V10,
> > > +};
> > > +
> > > static const struct of_device_id rkisp1_of_match[] = {
> > > {
> > > .compatible = "rockchip,px30-cif-isp",
> > > @@ -505,6 +523,10 @@ static const struct of_device_id rkisp1_of_match[] = {
> > > .compatible = "rockchip,rk3399-cif-isp",
> > > .data = &rk3399_isp_info,
> > > },
> > > + {
> > > + .compatible = "fsl,imx8mp-isp",
> > > + .data = &imx8mp_isp_info,
> > > + },
> > > {},
> > > };
> > > MODULE_DEVICE_TABLE(of, rkisp1_of_match);
> > > diff --git a/include/uapi/linux/rkisp1-config.h b/include/uapi/linux/rkisp1-config.h
> > > index 583ca0d9a79d..40677d47825c 100644
> > > --- a/include/uapi/linux/rkisp1-config.h
> > > +++ b/include/uapi/linux/rkisp1-config.h
> > > @@ -140,12 +140,15 @@
> > > * @RKISP1_V11: declared in the original vendor code, but not used
> > > * @RKISP1_V12: used at least in rk3326 and px30
> > > * @RKISP1_V13: used at least in rk1808
> > > + * @IMX8MP_V10: used in at least imx8mp
> > > */
> > > enum rkisp1_cif_isp_version {
> > > RKISP1_V10 = 10,
> > > RKISP1_V11,
> > > RKISP1_V12,
> > > RKISP1_V13,
> > > + /* TODO Choose a better version for this */
> > > + IMX8MP_V10,
> > > };
> > >
> > > enum rkisp1_cif_isp_histogram_mode {
--
Regards,
Laurent Pinchart
More information about the Linux-rockchip
mailing list