[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <CACRpkdan52UB7HOyH1gnHWg4CDke_VQxAdq8cBgwUroibE59Ow@mail.gmail.com>
Date: Sat, 27 Jan 2018 17:14:26 +0100
From: Linus Walleij <linus.walleij@...aro.org>
To: Yong Deng <yong.deng@...ewell.com>
Cc: Maxime Ripard <maxime.ripard@...e-electrons.com>,
Mauro Carvalho Chehab <mchehab@...nel.org>,
Rob Herring <robh+dt@...nel.org>,
Mark Rutland <mark.rutland@....com>,
Chen-Yu Tsai <wens@...e.org>,
"David S. Miller" <davem@...emloft.net>,
Greg Kroah-Hartman <gregkh@...uxfoundation.org>,
Hans Verkuil <hans.verkuil@...co.com>,
Randy Dunlap <rdunlap@...radead.org>,
Stanimir Varbanov <stanimir.varbanov@...aro.org>,
Hugues Fruchet <hugues.fruchet@...com>,
Yannick Fertre <yannick.fertre@...com>,
Philipp Zabel <p.zabel@...gutronix.de>,
Arnd Bergmann <arnd@...db.de>,
Benjamin Gaignard <benjamin.gaignard@...aro.org>,
Ramesh Shanmugasundaram <ramesh.shanmugasundaram@...renesas.com>,
Sakari Ailus <sakari.ailus@...ux.intel.com>,
Rick Chang <rick.chang@...iatek.com>,
linux-media@...r.kernel.org,
"open list:OPEN FIRMWARE AND FLATTENED DEVICE TREE BINDINGS"
<devicetree@...r.kernel.org>,
Linux ARM <linux-arm-kernel@...ts.infradead.org>,
"linux-kernel@...r.kernel.org" <linux-kernel@...r.kernel.org>,
linux-sunxi <linux-sunxi@...glegroups.com>, megous@...ous.com
Subject: Re: [PATCH v6 2/2] media: V3s: Add support for Allwinner CSI.
On Tue, Jan 23, 2018 at 9:18 AM, Yong Deng <yong.deng@...ewell.com> wrote:
> Allwinner V3s SoC features two CSI module. CSI0 is used for MIPI CSI-2
> interface and CSI1 is used for parallel interface. This is not
> documented in datasheet but by test 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.
>
> Tested-by: Maxime Ripard <maxime.ripard@...e-electrons.com>
> Signed-off-by: Yong Deng <yong.deng@...ewell.com>
This is cool stuff :)
> +void sun6i_csi_update_buf_addr(struct sun6i_csi *csi, dma_addr_t addr)
> +{
> + struct sun6i_csi_dev *sdev = sun6i_csi_to_dev(csi);
> + /* transform physical address to bus address */
> + dma_addr_t bus_addr = addr - PHYS_OFFSET;
I am sorry if this is an unjustified drive-by comment. Maybe you
have already investigate other ways to do this.
Accessing PHYS_OFFSET directly seems unintuitive
and not good practice.
But normally an dma_addr_t only comes from some
function inside <linux/dma-mapping.h> such as:
dma_alloc_coherent() for a contigous buffer which is coherent
in physical memory, or from some buffer <= 64KB that
is switching ownership between device and CPU explicitly
with dma_map* or so. Did you check with
Documentation/DMA-API.txt?
Yours,
Linus Walleij
Powered by blists - more mailing lists