[linux-sunxi] Re: [PATCH v6 2/2] media: V3s: Add support for Allwinner CSI.

Liviu Dudau liviu at dudau.co.uk
Tue Jan 30 19:08:08 PST 2018


On Fri, Jan 26, 2018 at 11:00:41AM +0800, Yong wrote:
> Hi Maxime,
> 
> On Fri, 26 Jan 2018 09:46:58 +0800
> Yong <yong.deng at magewell.com> wrote:
> 
> > Hi Maxime,
> > 
> > Do you have any experience in solving this problem?
> > It seems the PHYS_OFFSET maybe undeclared when the ARCH is not arm.
> 
> Got it.
> Should I add 'depends on ARM' in Kconfig?

No, I don't think you should do that, you should fix the code.

The dma_addr_t addr that you've got is ideally coming from dma_alloc_coherent(),
in which case the addr is already "suitable" for use by the device (because the
bus where the device is attached to does all the address translations). If you
apply PHYS_OFFSET forcefully to it you might get unexpected results.

Best regards,
Liviu

> 
> > 
> > On Fri, 26 Jan 2018 08:04:18 +0800
> > kbuild test robot <lkp at intel.com> wrote:
> > 
> > > Hi Yong,
> > > 
> > > I love your patch! Yet something to improve:
> > > 
> > > [auto build test ERROR on linuxtv-media/master]
> > > [also build test ERROR on v4.15-rc9 next-20180119]
> > > [if your patch is applied to the wrong git tree, please drop us a note to help improve the system]
> > > 
> > > url:    https://github.com/0day-ci/linux/commits/Yong-Deng/dt-bindings-media-Add-Allwinner-V3s-Camera-Sensor-Interface-CSI/20180126-054511
> > > base:   git://linuxtv.org/media_tree.git master
> > > config: i386-allmodconfig (attached as .config)
> > > compiler: gcc-7 (Debian 7.2.0-12) 7.2.1 20171025
> > > reproduce:
> > >         # save the attached .config to linux build tree
> > >         make ARCH=i386 
> > > 
> > > All errors (new ones prefixed by >>):
> > > 
> > >    drivers/media/platform/sunxi/sun6i-csi/sun6i_csi.c: In function 'sun6i_csi_update_buf_addr':
> > > >> drivers/media/platform/sunxi/sun6i-csi/sun6i_csi.c:567:31: error: 'PHYS_OFFSET' undeclared (first use in this function); did you mean 'PAGE_OFFSET'?
> > >      dma_addr_t bus_addr = addr - PHYS_OFFSET;
> > >                                   ^~~~~~~~~~~
> > >                                   PAGE_OFFSET
> > >    drivers/media/platform/sunxi/sun6i-csi/sun6i_csi.c:567:31: note: each undeclared identifier is reported only once for each function it appears in
> > > 
> > > vim +567 drivers/media/platform/sunxi/sun6i-csi/sun6i_csi.c
> > > 
> > >    562	
> > >    563	void sun6i_csi_update_buf_addr(struct sun6i_csi *csi, dma_addr_t addr)
> > >    564	{
> > >    565		struct sun6i_csi_dev *sdev = sun6i_csi_to_dev(csi);
> > >    566		/* transform physical address to bus address */
> > >  > 567		dma_addr_t bus_addr = addr - PHYS_OFFSET;
> > >    568	
> > >    569		regmap_write(sdev->regmap, CSI_CH_F0_BUFA_REG,
> > >    570			     (bus_addr + sdev->planar_offset[0]) >> 2);
> > >    571		if (sdev->planar_offset[1] != -1)
> > >    572			regmap_write(sdev->regmap, CSI_CH_F1_BUFA_REG,
> > >    573				     (bus_addr + sdev->planar_offset[1]) >> 2);
> > >    574		if (sdev->planar_offset[2] != -1)
> > >    575			regmap_write(sdev->regmap, CSI_CH_F2_BUFA_REG,
> > >    576				     (bus_addr + sdev->planar_offset[2]) >> 2);
> > >    577	}
> > >    578	
> > > 
> > > ---
> > > 0-DAY kernel test infrastructure                Open Source Technology Center
> > > https://lists.01.org/pipermail/kbuild-all                   Intel Corporation
> > 
> > 
> > Thanks,
> > Yong
> 
> 
> Thanks,
> Yong
> 
> -- 
> You received this message because you are subscribed to the Google Groups "linux-sunxi" group.
> To unsubscribe from this group and stop receiving emails from it, send an email to linux-sunxi+unsubscribe at googlegroups.com.
> For more options, visit https://groups.google.com/d/optout.



More information about the linux-arm-kernel mailing list