linux-media.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Yong <yong.deng@magewell.com>
To: Maxime Ripard <maxime.ripard@free-electrons.com>
Cc: Baruch Siach <baruch@tkos.co.il>,
	Mauro Carvalho Chehab <mchehab@kernel.org>,
	Rob Herring <robh+dt@kernel.org>,
	Mark Rutland <mark.rutland@arm.com>, Chen-Yu Tsai <wens@csie.org>,
	Greg Kroah-Hartman <gregkh@linuxfoundation.org>,
	"David S. Miller" <davem@davemloft.net>,
	Hans Verkuil <hverkuil@xs4all.nl>, Arnd Bergmann <arnd@arndb.de>,
	Hugues Fruchet <hugues.fruchet@st.com>,
	Yannick Fertre <yannick.fertre@st.com>,
	Philipp Zabel <p.zabel@pengutronix.de>,
	Benoit Parrot <bparrot@ti.com>,
	Benjamin Gaignard <benjamin.gaignard@linaro.org>,
	Jean-Christophe Trotin <jean-christophe.trotin@st.com>,
	Ramesh Shanmugasundaram <ramesh.shanmugasundaram@bp.renesas.com>,
	Minghsiu Tsai <minghsiu.tsai@mediatek.com>,
	Krzysztof Kozlowski <krzk@kernel.org>,
	Robert Jarzmik <robert.jarzmik@free.fr>,
	linux-media@vger.kernel.org, devicetree@vger.kernel.org,
	linux-arm-kernel@lists.infradead.org,
	linux-kernel@vger.kernel.org, linux-sunxi@googlegroups.com
Subject: Re: [PATCH v2 1/3] media: V3s: Add support for Allwinner CSI.
Date: Wed, 23 Aug 2017 10:41:18 +0800	[thread overview]
Message-ID: <20170823104118.b4524830e4bb767d7714772c@magewell.com> (raw)
In-Reply-To: <20170821202145.kmxancepyq55v3o2@flea.lan>

On Mon, 21 Aug 2017 22:21:45 +0200
Maxime Ripard <maxime.ripard@free-electrons.com> wrote:

> Hi Baruch,
> 
> On Sun, Jul 30, 2017 at 09:08:01AM +0300, Baruch Siach wrote:
> > On Fri, Jul 28, 2017 at 06:02:33PM +0200, Maxime Ripard wrote:
> > > Hi, 
> > > 
> > > Thanks for the second iteration!
> > > 
> > > On Thu, Jul 27, 2017 at 01:01:35PM +0800, Yong Deng wrote:
> > > > Allwinner V3s SoC have two CSI module. CSI0 is used for MIPI interface
> > > > and CSI1 is used for parallel interface. This is not documented in
> > > > datasheet but by testing and guess.
> > > > 
> > > > This patch implement a v4l2 framework driver for it.
> > > > 
> > > > Currently, the driver only support the parallel interface. MIPI-CSI2,
> > > > ISP's support are not included in this patch.
> > > > 
> > > > Signed-off-by: Yong Deng <yong.deng@magewell.com>
> > 
> > [...]
> > 
> > > > +#ifdef DEBUG
> > > > +static void sun6i_csi_dump_regs(struct sun6i_csi_dev *sdev)
> > > > +{
> > > > +	struct regmap *regmap = sdev->regmap;
> > > > +	u32 val;
> > > > +
> > > > +	regmap_read(regmap, CSI_EN_REG, &val);
> > > > +	printk("CSI_EN_REG=0x%x\n",		val);
> > > > +	regmap_read(regmap, CSI_IF_CFG_REG, &val);
> > > > +	printk("CSI_IF_CFG_REG=0x%x\n",		val);
> > > > +	regmap_read(regmap, CSI_CAP_REG, &val);
> > > > +	printk("CSI_CAP_REG=0x%x\n",		val);
> > > > +	regmap_read(regmap, CSI_SYNC_CNT_REG, &val);
> > > > +	printk("CSI_SYNC_CNT_REG=0x%x\n",	val);
> > > > +	regmap_read(regmap, CSI_FIFO_THRS_REG, &val);
> > > > +	printk("CSI_FIFO_THRS_REG=0x%x\n",	val);
> > > > +	regmap_read(regmap, CSI_PTN_LEN_REG, &val);
> > > > +	printk("CSI_PTN_LEN_REG=0x%x\n",	val);
> > > > +	regmap_read(regmap, CSI_PTN_ADDR_REG, &val);
> > > > +	printk("CSI_PTN_ADDR_REG=0x%x\n",	val);
> > > > +	regmap_read(regmap, CSI_VER_REG, &val);
> > > > +	printk("CSI_VER_REG=0x%x\n",		val);
> > > > +	regmap_read(regmap, CSI_CH_CFG_REG, &val);
> > > > +	printk("CSI_CH_CFG_REG=0x%x\n",		val);
> > > > +	regmap_read(regmap, CSI_CH_SCALE_REG, &val);
> > > > +	printk("CSI_CH_SCALE_REG=0x%x\n",	val);
> > > > +	regmap_read(regmap, CSI_CH_F0_BUFA_REG, &val);
> > > > +	printk("CSI_CH_F0_BUFA_REG=0x%x\n",	val);
> > > > +	regmap_read(regmap, CSI_CH_F1_BUFA_REG, &val);
> > > > +	printk("CSI_CH_F1_BUFA_REG=0x%x\n",	val);
> > > > +	regmap_read(regmap, CSI_CH_F2_BUFA_REG, &val);
> > > > +	printk("CSI_CH_F2_BUFA_REG=0x%x\n",	val);
> > > > +	regmap_read(regmap, CSI_CH_STA_REG, &val);
> > > > +	printk("CSI_CH_STA_REG=0x%x\n",		val);
> > > > +	regmap_read(regmap, CSI_CH_INT_EN_REG, &val);
> > > > +	printk("CSI_CH_INT_EN_REG=0x%x\n",	val);
> > > > +	regmap_read(regmap, CSI_CH_INT_STA_REG, &val);
> > > > +	printk("CSI_CH_INT_STA_REG=0x%x\n",	val);
> > > > +	regmap_read(regmap, CSI_CH_FLD1_VSIZE_REG, &val);
> > > > +	printk("CSI_CH_FLD1_VSIZE_REG=0x%x\n",	val);
> > > > +	regmap_read(regmap, CSI_CH_HSIZE_REG, &val);
> > > > +	printk("CSI_CH_HSIZE_REG=0x%x\n",	val);
> > > > +	regmap_read(regmap, CSI_CH_VSIZE_REG, &val);
> > > > +	printk("CSI_CH_VSIZE_REG=0x%x\n",	val);
> > > > +	regmap_read(regmap, CSI_CH_BUF_LEN_REG, &val);
> > > > +	printk("CSI_CH_BUF_LEN_REG=0x%x\n",	val);
> > > > +	regmap_read(regmap, CSI_CH_FLIP_SIZE_REG, &val);
> > > > +	printk("CSI_CH_FLIP_SIZE_REG=0x%x\n",	val);
> > > > +	regmap_read(regmap, CSI_CH_FRM_CLK_CNT_REG, &val);
> > > > +	printk("CSI_CH_FRM_CLK_CNT_REG=0x%x\n",	val);
> > > > +	regmap_read(regmap, CSI_CH_ACC_ITNL_CLK_CNT_REG, &val);
> > > > +	printk("CSI_CH_ACC_ITNL_CLK_CNT_REG=0x%x\n",	val);
> > > > +	regmap_read(regmap, CSI_CH_FIFO_STAT_REG, &val);
> > > > +	printk("CSI_CH_FIFO_STAT_REG=0x%x\n",	val);
> > > > +	regmap_read(regmap, CSI_CH_PCLK_STAT_REG, &val);
> > > > +	printk("CSI_CH_PCLK_STAT_REG=0x%x\n",	val);
> > > > +}
> > > > +#endif
> > > 
> > > You can already dump a regmap through debugfs, that's redundant.
> > 
> > The advantage of in-code registers dump routine is the ability to
> > synchronize the snapshot with the driver code execution. This is
> > particularly important for the capture statistics registers. I have
> > found it useful here.
> 
> You also have the option to use the traces to do that, but if that's
> useful, this should be added to regmap itself. It can benefit others
> too.
> 
> > > > +static irqreturn_t sun6i_csi_isr(int irq, void *dev_id)
> > > > +{
> > > > +	struct sun6i_csi_dev *sdev = (struct sun6i_csi_dev *)dev_id;
> > > > +	struct regmap *regmap = sdev->regmap;
> > > > +	u32 status;
> > > > +
> > > > +	regmap_read(regmap, CSI_CH_INT_STA_REG, &status);
> > > > +
> > > > +	if ((status & CSI_CH_INT_STA_FIFO0_OF_PD) ||
> > > > +	    (status & CSI_CH_INT_STA_FIFO1_OF_PD) ||
> > > > +	    (status & CSI_CH_INT_STA_FIFO2_OF_PD) ||
> > > > +	    (status & CSI_CH_INT_STA_HB_OF_PD)) {
> > > > +		regmap_write(regmap, CSI_CH_INT_STA_REG, status);
> > > > +		regmap_update_bits(regmap, CSI_EN_REG, CSI_EN_CSI_EN, 0);
> > > > +		regmap_update_bits(regmap, CSI_EN_REG, CSI_EN_CSI_EN,
> > > > +				   CSI_EN_CSI_EN);
> > > 
> > > You need to enable / disable it at every frame? How do you deal with
> > > double buffering? (or did you choose to ignore it for now?)
> > 
> > These *_OF_PD status bits indicate an overflow error condition.
> 
> Shouldn't we return an error code then? The names of these flags could
> be better too.

Then, where and how to deal with the error coce.

> 
> Maxime
> 
> -- 
> Maxime Ripard, Free Electrons
> Embedded Linux and Kernel engineering
> http://free-electrons.com


Thanks,
Yong

  reply	other threads:[~2017-08-23  2:41 UTC|newest]

Thread overview: 52+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2017-07-27  5:01 [PATCH v2 0/3] Initial Allwinner V3s CSI Support Yong Deng
2017-07-27  5:01 ` [PATCH v2 1/3] media: V3s: Add support for Allwinner CSI Yong Deng
2017-07-27 12:16   ` Baruch Siach
2017-07-27 12:25     ` Maxime Ripard
2017-07-31  0:47       ` Yong
2017-07-28 16:02   ` Maxime Ripard
2017-07-30  6:08     ` Baruch Siach
2017-07-31  1:48       ` Yong
2017-07-31  5:13         ` Baruch Siach
2017-08-21 20:21       ` Maxime Ripard
2017-08-23  2:41         ` Yong [this message]
2017-08-23 19:24           ` Maxime Ripard
2017-08-24  1:43             ` Yong
2017-07-31  3:16     ` Yong
2017-08-22 17:43       ` Maxime Ripard
2017-08-23  2:32         ` Yong
2017-08-25 13:41           ` Maxime Ripard
2017-08-28  7:00             ` Yong
2017-08-21 14:37   ` Hans Verkuil
2017-08-22  3:01     ` Yong
2017-08-22  6:43       ` Hans Verkuil
2017-08-22  7:51         ` Yong
2017-08-22 20:17         ` Maxime Ripard
2017-08-22 20:52           ` Laurent Pinchart
2017-08-23  6:52           ` Hans Verkuil
2017-08-23  7:43             ` Laurent Pinchart
2017-08-23 11:13               ` icenowy
2017-09-21 13:45   ` [linux-sunxi] " Ondřej Jirman
2017-09-22  8:44   ` Mylene JOSSERAND
2017-09-22  9:08     ` Yong
2017-11-21 15:48   ` Maxime Ripard
2017-11-22  1:33     ` Yong
2017-11-22  9:45       ` Maxime Ripard
2017-11-23  1:14         ` Yong
2017-11-25 16:02           ` Maxime Ripard
2017-12-04  9:45             ` Yong
2017-12-15 10:50               ` Maxime Ripard
2017-12-15 11:01                 ` Yong
2017-12-15 22:14                   ` Maxime Ripard
2017-07-27  5:01 ` [PATCH v2 2/3] dt-bindings: media: Add Allwinner V3s Camera Sensor Interface (CSI) Yong Deng
2017-07-28 16:03   ` Maxime Ripard
2017-07-31  0:50     ` Yong
2017-08-03 19:14   ` Rob Herring
2017-08-07  1:00     ` Yong
2017-12-19 11:53   ` Sakari Ailus
2017-12-21  2:49     ` Yong
2017-12-27 21:47       ` Sakari Ailus
2017-12-28  1:04         ` Yong
2017-07-27  5:01 ` [PATCH v2 3/3] media: MAINTAINERS: add entries for Allwinner V3s CSI Yong Deng
2017-12-19 11:48   ` Sakari Ailus
2017-12-21  2:40     ` Yong
  -- strict thread matches above, loose matches on Subject: below --
2017-07-27  3:51 [PATCH v2 0/3] Initial Allwinner V3s CSI Support Yong Deng
2017-07-27  3:51 ` [PATCH v2 1/3] media: V3s: Add support for Allwinner CSI Yong Deng

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20170823104118.b4524830e4bb767d7714772c@magewell.com \
    --to=yong.deng@magewell.com \
    --cc=arnd@arndb.de \
    --cc=baruch@tkos.co.il \
    --cc=benjamin.gaignard@linaro.org \
    --cc=bparrot@ti.com \
    --cc=davem@davemloft.net \
    --cc=devicetree@vger.kernel.org \
    --cc=gregkh@linuxfoundation.org \
    --cc=hugues.fruchet@st.com \
    --cc=hverkuil@xs4all.nl \
    --cc=jean-christophe.trotin@st.com \
    --cc=krzk@kernel.org \
    --cc=linux-arm-kernel@lists.infradead.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-media@vger.kernel.org \
    --cc=linux-sunxi@googlegroups.com \
    --cc=mark.rutland@arm.com \
    --cc=maxime.ripard@free-electrons.com \
    --cc=mchehab@kernel.org \
    --cc=minghsiu.tsai@mediatek.com \
    --cc=p.zabel@pengutronix.de \
    --cc=ramesh.shanmugasundaram@bp.renesas.com \
    --cc=robert.jarzmik@free.fr \
    --cc=robh+dt@kernel.org \
    --cc=wens@csie.org \
    --cc=yannick.fertre@st.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).