On Fri, Aug 04, 2023 at 04:50:05PM +0200, Julien Stephan wrote: > On Mon, Jul 03, 2023 at 01:02:02PM +0200, AngeloGioacchino Del Regno wrote: > > Il 30/06/23 12:01, Julien Stephan ha scritto: > ..snip.. > > > + > > > +static const struct mtk_seninf_format_info mtk_seninf_formats[] = { > > > + { > > > + .code = MEDIA_BUS_FMT_SBGGR8_1X8, > > > + .flags = MTK_SENINF_FORMAT_BAYER, > > > > Each entry fits in one line. > > > > { .code = MEDIA_BUS_FMT_SBGGR8_1X8, .flags = MTK_SENINF_FORMAT_BAYER }, > > > > Hi Angelo, > > Actually not all entries fit in one line. The last 4 ones don't: > > { .code = MEDIA_BUS_FMT_SGRBG10_DPCM8_1X8, .flags = MTK_SENINF_FORMAT_DPCM | MTK_SENINF_FORMAT_INPUT_ONLY }, > which is 115 chars.. > > so what is the best? put all in one line except the last 4 one? or keep > them all as is? I'd keep them all as is. > > > + }, { > ..snip.. > > > + udelay(1); > > > + mtk_seninf_input_update(input, SENINF_CTRL, CSI2_SW_RST, 0); > > > > Is there any way to check if the CSI port did reset, or is it *guaranteed* to get > > out of reset in a microsecond after deasserting SW_RST? > > I will double check this > > > > +} > > > + > ..snip.. > > > + > > > + val = mtk_seninf_mux_read(mux, SENINF_MUX_CTRL); > > > > rst_mask = SENINF_MUX_CTRL_SENINF_IRQ_SW_RST | SENINF_MUX_CTRL_SENINF_MUX_SW_RST; > > > > writel(mux->base + SENINF_MUX_CTRL, val | rst_mask); > > writel(mux->base + SENINFMUX_CTRL, val & ~rst_mask); > > > > that's better, right? :-) With mtk_seninf_mux_write() instead of writel(), yes :-) > right :) > > > > + mtk_seninf_mux_write(mux, SENINF_MUX_CTRL, val | > > > + SENINF_MUX_CTRL_SENINF_IRQ_SW_RST | > > > + SENINF_MUX_CTRL_SENINF_MUX_SW_RST); -- Regards, Laurent Pinchart