Hi Laurent, On Mon, 2020-05-18 at 16:54 +0300, Laurent Pinchart wrote: [...] > > > + /* > > > + * Configure routing, disabling all paths that are not used by > > > + * selecting the "no output" (3) option. The datasheet doesn't > > > + * explicitly require this, but the PXP has been seen to hand after > > > + * processing a few hundreds of frames otherwise. > > > + */ > > > pxp_write(dev, HW_PXP_DATA_PATH_CTRL0, > > > > Which commit should this patch be applied on? I have a writel() here. > > My bad, I have a commit in my tree that wraps writel() and readl() into > inline accessors, as it made it easier during debugging to add printk() > calls there to log all register accesses. Would you accept that ? If so > I'll include it in v2. Sure, go ahead. > > > - BF_PXP_DATA_PATH_CTRL0_MUX15_SEL(0)| > > > - BF_PXP_DATA_PATH_CTRL0_MUX14_SEL(1)| > > > - BF_PXP_DATA_PATH_CTRL0_MUX13_SEL(0)| > > > - BF_PXP_DATA_PATH_CTRL0_MUX12_SEL(0)| > > > + BF_PXP_DATA_PATH_CTRL0_MUX15_SEL(3)| > > > + BF_PXP_DATA_PATH_CTRL0_MUX14_SEL(0)| > > > + BF_PXP_DATA_PATH_CTRL0_MUX13_SEL(3)| > > > + BF_PXP_DATA_PATH_CTRL0_MUX12_SEL(1)| > > > BF_PXP_DATA_PATH_CTRL0_MUX11_SEL(0)| > > > - BF_PXP_DATA_PATH_CTRL0_MUX10_SEL(0)| > > > + BF_PXP_DATA_PATH_CTRL0_MUX10_SEL(3)| > > > BF_PXP_DATA_PATH_CTRL0_MUX9_SEL(1)| > > > BF_PXP_DATA_PATH_CTRL0_MUX8_SEL(0)| > > > - BF_PXP_DATA_PATH_CTRL0_MUX7_SEL(0)| > > > - BF_PXP_DATA_PATH_CTRL0_MUX6_SEL(0)| > > > - BF_PXP_DATA_PATH_CTRL0_MUX5_SEL(0)| > > > - BF_PXP_DATA_PATH_CTRL0_MUX4_SEL(0)| > > > + BF_PXP_DATA_PATH_CTRL0_MUX7_SEL(3)| > > > + BF_PXP_DATA_PATH_CTRL0_MUX6_SEL(1)| > > > + BF_PXP_DATA_PATH_CTRL0_MUX5_SEL(3)| > > > + BF_PXP_DATA_PATH_CTRL0_MUX4_SEL(3)| > > > BF_PXP_DATA_PATH_CTRL0_MUX3_SEL(0)| > > > - BF_PXP_DATA_PATH_CTRL0_MUX2_SEL(0)| > > > - BF_PXP_DATA_PATH_CTRL0_MUX1_SEL(0)| > > > - BF_PXP_DATA_PATH_CTRL0_MUX0_SEL(0)); > > > + BF_PXP_DATA_PATH_CTRL0_MUX2_SEL(3)| > > > + BF_PXP_DATA_PATH_CTRL0_MUX1_SEL(3)| > > > + BF_PXP_DATA_PATH_CTRL0_MUX0_SEL(3)); > > > pxp_write(dev, HW_PXP_DATA_PATH_CTRL1, > > > - BF_PXP_DATA_PATH_CTRL1_MUX17_SEL(1) | > > > - BF_PXP_DATA_PATH_CTRL1_MUX16_SEL(1)); > > > + BF_PXP_DATA_PATH_CTRL1_MUX17_SEL(3) | > > > + BF_PXP_DATA_PATH_CTRL1_MUX16_SEL(3)); > > > > I have tried this change on i.MX6ULL / v5.6, it does not work. > > The PXP interrupt never triggers. > > :-( Could you try the combination of 1/2 and 2/2 ? With both patches applied, it still hangs. Looking at the "PXP Architecture" Figures 41-1 in the i.MX6ULL Reference Manual and 13-87 in the i.MX7D Reference Manual, there are quite a few muxes dropped on i.MX6ULL, especially around the rotation engines, and the routing is slightly different. Muxes 2, 4-7, 10, 13, and 15 are all documented as "reserved, read-only, always 0". We'll have to use different path control settings per compatible. regards Philipp