All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH v5 0/4]  fpga: reorganize to subdirs
@ 2021-06-22 20:05 ` trix
  0 siblings, 0 replies; 15+ messages in thread
From: trix @ 2021-06-22 20:05 UTC (permalink / raw)
  To: hao.wu, mdf, corbet, michal.simek, gregkh, nava.manne, dinguyen,
	krzysztof.kozlowski, yilun.xu, davidgow, fpacheco,
	russell.h.weight, richard.gong, luca
  Cc: linux-fpga, linux-doc, linux-kernel, linux-arm-kernel, Tom Rix

From: Tom Rix <trix@redhat.com>

The incoming xrt patchset has a toplevel subdir xrt/
The current fpga/ uses a single dir with filename prefixes to subdivide owners
For consistency, there should be only one way to organize the fpga/ dir.
Because the subdir model scales better, refactor to use it.
The discussion wrt xrt is here:
https://lore.kernel.org/linux-fpga/68e85a4f-4a10-1ff9-0443-aa565878c855@redhat.com/

Follow drivers/net/ethernet/ which has control configs
NET_VENDOR_BLA that map to drivers/net/ethernet/bla
Since fpgas do not have many vendors, drop the 'VENDOR' and use
FPGA_BLA.

There are several new subdirs
altera/
dfl/
lattice/
xilinx/

Each subdir has a Kconfig that has a new/reused

if FPGA_BLA
  ... existing configs ...
endif FPGA_BLA

Which is sourced into the main fpga/Kconfig

Each subdir has a Makefile whose transversal is controlled in the
fpga/Makefile by

obj-$(CONFIG_FPGA_BLA) += bla/

Some cleanup to arrange thing alphabetically and make fpga/Makefile's
whitespace look more like net/'s

Changes from
v1
  Drop renaming files
  Cleanup makefiles

v2
  Expand commit messages
  Add SPDX to Kconfig
  Expand new Kconfig variable help messages

v3
  Update Documentation/fpga/dfl.rst for fpga/dfl/

v4
  Restore HAS_IOMEM depends in dfl/Kconfig
  Fix vendor names in Kconfig's

Tom Rix (4):
  fpga: dfl: reorganize to subdir layout
  fpga: xilinx: reorganize to subdir layout
  fpga: altera: reorganize to subdir layout
  fpga: lattice: reorganize to subdir layout

 Documentation/fpga/dfl.rst                    |   4 +-
 MAINTAINERS                                   |   2 +-
 drivers/fpga/Kconfig                          | 204 +-----------------
 drivers/fpga/Makefile                         |  47 +---
 drivers/fpga/altera/Kconfig                   |  85 ++++++++
 drivers/fpga/altera/Makefile                  |  12 ++
 drivers/fpga/{ => altera}/altera-cvp.c        |   0
 drivers/fpga/{ => altera}/altera-fpga2sdram.c |   0
 .../fpga/{ => altera}/altera-freeze-bridge.c  |   0
 drivers/fpga/{ => altera}/altera-hps2fpga.c   |   0
 .../{ => altera}/altera-pr-ip-core-plat.c     |   0
 drivers/fpga/{ => altera}/altera-pr-ip-core.c |   0
 drivers/fpga/{ => altera}/altera-ps-spi.c     |   0
 drivers/fpga/{ => altera}/socfpga-a10.c       |   0
 drivers/fpga/{ => altera}/socfpga.c           |   0
 drivers/fpga/{ => altera}/stratix10-soc.c     |   0
 drivers/fpga/{ => altera}/ts73xx-fpga.c       |   0
 drivers/fpga/dfl/Kconfig                      |  83 +++++++
 drivers/fpga/dfl/Makefile                     |  16 ++
 drivers/fpga/{ => dfl}/dfl-afu-dma-region.c   |   0
 drivers/fpga/{ => dfl}/dfl-afu-error.c        |   0
 drivers/fpga/{ => dfl}/dfl-afu-main.c         |   0
 drivers/fpga/{ => dfl}/dfl-afu-region.c       |   0
 drivers/fpga/{ => dfl}/dfl-afu.h              |   0
 drivers/fpga/{ => dfl}/dfl-fme-br.c           |   0
 drivers/fpga/{ => dfl}/dfl-fme-error.c        |   0
 drivers/fpga/{ => dfl}/dfl-fme-main.c         |   0
 drivers/fpga/{ => dfl}/dfl-fme-mgr.c          |   0
 drivers/fpga/{ => dfl}/dfl-fme-perf.c         |   0
 drivers/fpga/{ => dfl}/dfl-fme-pr.c           |   0
 drivers/fpga/{ => dfl}/dfl-fme-pr.h           |   0
 drivers/fpga/{ => dfl}/dfl-fme-region.c       |   0
 drivers/fpga/{ => dfl}/dfl-fme.h              |   0
 drivers/fpga/{ => dfl}/dfl-n3000-nios.c       |   0
 drivers/fpga/{ => dfl}/dfl-pci.c              |   0
 drivers/fpga/{ => dfl}/dfl.c                  |   0
 drivers/fpga/{ => dfl}/dfl.h                  |   0
 drivers/fpga/lattice/Kconfig                  |  29 +++
 drivers/fpga/lattice/Makefile                 |   4 +
 drivers/fpga/{ => lattice}/ice40-spi.c        |   0
 drivers/fpga/{ => lattice}/machxo2-spi.c      |   0
 drivers/fpga/xilinx/Kconfig                   |  55 +++++
 drivers/fpga/xilinx/Makefile                  |   6 +
 .../fpga/{ => xilinx}/xilinx-pr-decoupler.c   |   0
 drivers/fpga/{ => xilinx}/xilinx-spi.c        |   0
 drivers/fpga/{ => xilinx}/zynq-fpga.c         |   0
 drivers/fpga/{ => xilinx}/zynqmp-fpga.c       |   0
 47 files changed, 305 insertions(+), 242 deletions(-)
 create mode 100644 drivers/fpga/altera/Kconfig
 create mode 100644 drivers/fpga/altera/Makefile
 rename drivers/fpga/{ => altera}/altera-cvp.c (100%)
 rename drivers/fpga/{ => altera}/altera-fpga2sdram.c (100%)
 rename drivers/fpga/{ => altera}/altera-freeze-bridge.c (100%)
 rename drivers/fpga/{ => altera}/altera-hps2fpga.c (100%)
 rename drivers/fpga/{ => altera}/altera-pr-ip-core-plat.c (100%)
 rename drivers/fpga/{ => altera}/altera-pr-ip-core.c (100%)
 rename drivers/fpga/{ => altera}/altera-ps-spi.c (100%)
 rename drivers/fpga/{ => altera}/socfpga-a10.c (100%)
 rename drivers/fpga/{ => altera}/socfpga.c (100%)
 rename drivers/fpga/{ => altera}/stratix10-soc.c (100%)
 rename drivers/fpga/{ => altera}/ts73xx-fpga.c (100%)
 create mode 100644 drivers/fpga/dfl/Kconfig
 create mode 100644 drivers/fpga/dfl/Makefile
 rename drivers/fpga/{ => dfl}/dfl-afu-dma-region.c (100%)
 rename drivers/fpga/{ => dfl}/dfl-afu-error.c (100%)
 rename drivers/fpga/{ => dfl}/dfl-afu-main.c (100%)
 rename drivers/fpga/{ => dfl}/dfl-afu-region.c (100%)
 rename drivers/fpga/{ => dfl}/dfl-afu.h (100%)
 rename drivers/fpga/{ => dfl}/dfl-fme-br.c (100%)
 rename drivers/fpga/{ => dfl}/dfl-fme-error.c (100%)
 rename drivers/fpga/{ => dfl}/dfl-fme-main.c (100%)
 rename drivers/fpga/{ => dfl}/dfl-fme-mgr.c (100%)
 rename drivers/fpga/{ => dfl}/dfl-fme-perf.c (100%)
 rename drivers/fpga/{ => dfl}/dfl-fme-pr.c (100%)
 rename drivers/fpga/{ => dfl}/dfl-fme-pr.h (100%)
 rename drivers/fpga/{ => dfl}/dfl-fme-region.c (100%)
 rename drivers/fpga/{ => dfl}/dfl-fme.h (100%)
 rename drivers/fpga/{ => dfl}/dfl-n3000-nios.c (100%)
 rename drivers/fpga/{ => dfl}/dfl-pci.c (100%)
 rename drivers/fpga/{ => dfl}/dfl.c (100%)
 rename drivers/fpga/{ => dfl}/dfl.h (100%)
 create mode 100644 drivers/fpga/lattice/Kconfig
 create mode 100644 drivers/fpga/lattice/Makefile
 rename drivers/fpga/{ => lattice}/ice40-spi.c (100%)
 rename drivers/fpga/{ => lattice}/machxo2-spi.c (100%)
 create mode 100644 drivers/fpga/xilinx/Kconfig
 create mode 100644 drivers/fpga/xilinx/Makefile
 rename drivers/fpga/{ => xilinx}/xilinx-pr-decoupler.c (100%)
 rename drivers/fpga/{ => xilinx}/xilinx-spi.c (100%)
 rename drivers/fpga/{ => xilinx}/zynq-fpga.c (100%)
 rename drivers/fpga/{ => xilinx}/zynqmp-fpga.c (100%)

-- 
2.26.3


^ permalink raw reply	[flat|nested] 15+ messages in thread
* Re: [PATCH v5 2/4] fpga: xilinx: reorganize to subdir layout
  2021-06-22 20:05   ` trix
@ 2021-06-28  8:46 ` Dan Carpenter
  -1 siblings, 0 replies; 15+ messages in thread
From: kernel test robot @ 2021-06-26  3:49 UTC (permalink / raw)
  To: kbuild

[-- Attachment #1: Type: text/plain, Size: 9379 bytes --]

CC: kbuild-all(a)lists.01.org
In-Reply-To: <20210622200511.3739914-4-trix@redhat.com>
References: <20210622200511.3739914-4-trix@redhat.com>
TO: trix(a)redhat.com
TO: hao.wu(a)intel.com
TO: mdf(a)kernel.org
TO: corbet(a)lwn.net
TO: michal.simek(a)xilinx.com
TO: gregkh(a)linuxfoundation.org
TO: nava.manne(a)xilinx.com
TO: dinguyen(a)kernel.org
TO: krzysztof.kozlowski(a)canonical.com
TO: yilun.xu(a)intel.com
TO: davidgow(a)google.com

Hi,

I love your patch! Perhaps something to improve:

[auto build test WARNING on linus/master]
[also build test WARNING on v5.13-rc7 next-20210625]
[cannot apply to xlnx/master]
[If your patch is applied to the wrong git tree, kindly drop us a note.
And when submitting patch, we suggest to use '--base' as documented in
https://git-scm.com/docs/git-format-patch]

url:    https://github.com/0day-ci/linux/commits/trix-redhat-com/fpga-reorganize-to-subdirs/20210623-040811
base:   https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git 0c18f29aae7ce3dadd26d8ee3505d07cc982df75
:::::: branch date: 3 days ago
:::::: commit date: 3 days ago
config: i386-randconfig-m031-20210625 (attached as .config)
compiler: gcc-9 (Debian 9.3.0-22) 9.3.0

If you fix the issue, kindly add following tag as appropriate
Reported-by: kernel test robot <lkp@intel.com>
Reported-by: Dan Carpenter <dan.carpenter@oracle.com>

smatch warnings:
drivers/fpga/xilinx/zynq-fpga.c:626 zynq_fpga_probe() warn: 'priv->clk' not released on lines: 615.

vim +626 drivers/fpga/xilinx/zynq-fpga.c

37784706bf9e3b drivers/fpga/zynq-fpga.c Moritz Fischer     2015-10-16  552  
37784706bf9e3b drivers/fpga/zynq-fpga.c Moritz Fischer     2015-10-16  553  static int zynq_fpga_probe(struct platform_device *pdev)
37784706bf9e3b drivers/fpga/zynq-fpga.c Moritz Fischer     2015-10-16  554  {
37784706bf9e3b drivers/fpga/zynq-fpga.c Moritz Fischer     2015-10-16  555  	struct device *dev = &pdev->dev;
37784706bf9e3b drivers/fpga/zynq-fpga.c Moritz Fischer     2015-10-16  556  	struct zynq_fpga_priv *priv;
7085e2a94f7df5 drivers/fpga/zynq-fpga.c Alan Tull          2018-05-16  557  	struct fpga_manager *mgr;
37784706bf9e3b drivers/fpga/zynq-fpga.c Moritz Fischer     2015-10-16  558  	struct resource *res;
37784706bf9e3b drivers/fpga/zynq-fpga.c Moritz Fischer     2015-10-16  559  	int err;
37784706bf9e3b drivers/fpga/zynq-fpga.c Moritz Fischer     2015-10-16  560  
37784706bf9e3b drivers/fpga/zynq-fpga.c Moritz Fischer     2015-10-16  561  	priv = devm_kzalloc(dev, sizeof(*priv), GFP_KERNEL);
37784706bf9e3b drivers/fpga/zynq-fpga.c Moritz Fischer     2015-10-16  562  	if (!priv)
37784706bf9e3b drivers/fpga/zynq-fpga.c Moritz Fischer     2015-10-16  563  		return -ENOMEM;
425902f5c8e303 drivers/fpga/zynq-fpga.c Jason Gunthorpe    2017-02-01  564  	spin_lock_init(&priv->dma_lock);
37784706bf9e3b drivers/fpga/zynq-fpga.c Moritz Fischer     2015-10-16  565  
37784706bf9e3b drivers/fpga/zynq-fpga.c Moritz Fischer     2015-10-16  566  	res = platform_get_resource(pdev, IORESOURCE_MEM, 0);
37784706bf9e3b drivers/fpga/zynq-fpga.c Moritz Fischer     2015-10-16  567  	priv->io_base = devm_ioremap_resource(dev, res);
37784706bf9e3b drivers/fpga/zynq-fpga.c Moritz Fischer     2015-10-16  568  	if (IS_ERR(priv->io_base))
37784706bf9e3b drivers/fpga/zynq-fpga.c Moritz Fischer     2015-10-16  569  		return PTR_ERR(priv->io_base);
37784706bf9e3b drivers/fpga/zynq-fpga.c Moritz Fischer     2015-10-16  570  
37784706bf9e3b drivers/fpga/zynq-fpga.c Moritz Fischer     2015-10-16  571  	priv->slcr = syscon_regmap_lookup_by_phandle(dev->of_node,
37784706bf9e3b drivers/fpga/zynq-fpga.c Moritz Fischer     2015-10-16  572  		"syscon");
37784706bf9e3b drivers/fpga/zynq-fpga.c Moritz Fischer     2015-10-16  573  	if (IS_ERR(priv->slcr)) {
1930c2865108d5 drivers/fpga/zynq-fpga.c Jason Gunthorpe    2016-11-21  574  		dev_err(dev, "unable to get zynq-slcr regmap\n");
37784706bf9e3b drivers/fpga/zynq-fpga.c Moritz Fischer     2015-10-16  575  		return PTR_ERR(priv->slcr);
37784706bf9e3b drivers/fpga/zynq-fpga.c Moritz Fischer     2015-10-16  576  	}
37784706bf9e3b drivers/fpga/zynq-fpga.c Moritz Fischer     2015-10-16  577  
37784706bf9e3b drivers/fpga/zynq-fpga.c Moritz Fischer     2015-10-16  578  	init_completion(&priv->dma_done);
37784706bf9e3b drivers/fpga/zynq-fpga.c Moritz Fischer     2015-10-16  579  
37784706bf9e3b drivers/fpga/zynq-fpga.c Moritz Fischer     2015-10-16  580  	priv->irq = platform_get_irq(pdev, 0);
d20c0da8b2020a drivers/fpga/zynq-fpga.c Stephen Boyd       2019-07-30  581  	if (priv->irq < 0)
37784706bf9e3b drivers/fpga/zynq-fpga.c Moritz Fischer     2015-10-16  582  		return priv->irq;
37784706bf9e3b drivers/fpga/zynq-fpga.c Moritz Fischer     2015-10-16  583  
37784706bf9e3b drivers/fpga/zynq-fpga.c Moritz Fischer     2015-10-16  584  	priv->clk = devm_clk_get(dev, "ref_clk");
37784706bf9e3b drivers/fpga/zynq-fpga.c Moritz Fischer     2015-10-16  585  	if (IS_ERR(priv->clk)) {
daec0f4a594d48 drivers/fpga/zynq-fpga.c Shubhrajyoti Datta 2020-02-12  586  		if (PTR_ERR(priv->clk) != -EPROBE_DEFER)
1930c2865108d5 drivers/fpga/zynq-fpga.c Jason Gunthorpe    2016-11-21  587  			dev_err(dev, "input clock not found\n");
37784706bf9e3b drivers/fpga/zynq-fpga.c Moritz Fischer     2015-10-16  588  		return PTR_ERR(priv->clk);
37784706bf9e3b drivers/fpga/zynq-fpga.c Moritz Fischer     2015-10-16  589  	}
37784706bf9e3b drivers/fpga/zynq-fpga.c Moritz Fischer     2015-10-16  590  
37784706bf9e3b drivers/fpga/zynq-fpga.c Moritz Fischer     2015-10-16  591  	err = clk_prepare_enable(priv->clk);
37784706bf9e3b drivers/fpga/zynq-fpga.c Moritz Fischer     2015-10-16  592  	if (err) {
1930c2865108d5 drivers/fpga/zynq-fpga.c Jason Gunthorpe    2016-11-21  593  		dev_err(dev, "unable to enable clock\n");
37784706bf9e3b drivers/fpga/zynq-fpga.c Moritz Fischer     2015-10-16  594  		return err;
37784706bf9e3b drivers/fpga/zynq-fpga.c Moritz Fischer     2015-10-16  595  	}
37784706bf9e3b drivers/fpga/zynq-fpga.c Moritz Fischer     2015-10-16  596  
37784706bf9e3b drivers/fpga/zynq-fpga.c Moritz Fischer     2015-10-16  597  	/* unlock the device */
37784706bf9e3b drivers/fpga/zynq-fpga.c Moritz Fischer     2015-10-16  598  	zynq_fpga_write(priv, UNLOCK_OFFSET, UNLOCK_MASK);
37784706bf9e3b drivers/fpga/zynq-fpga.c Moritz Fischer     2015-10-16  599  
6b45e0f24c7b53 drivers/fpga/zynq-fpga.c Jason Gunthorpe    2017-02-01  600  	zynq_fpga_set_irq(priv, 0);
340c0c53ea3073 drivers/fpga/zynq-fpga.c Jason Gunthorpe    2016-11-21  601  	zynq_fpga_write(priv, INT_STS_OFFSET, IXR_ALL_MASK);
340c0c53ea3073 drivers/fpga/zynq-fpga.c Jason Gunthorpe    2016-11-21  602  	err = devm_request_irq(dev, priv->irq, zynq_fpga_isr, 0, dev_name(dev),
340c0c53ea3073 drivers/fpga/zynq-fpga.c Jason Gunthorpe    2016-11-21  603  			       priv);
340c0c53ea3073 drivers/fpga/zynq-fpga.c Jason Gunthorpe    2016-11-21  604  	if (err) {
340c0c53ea3073 drivers/fpga/zynq-fpga.c Jason Gunthorpe    2016-11-21  605  		dev_err(dev, "unable to request IRQ\n");
340c0c53ea3073 drivers/fpga/zynq-fpga.c Jason Gunthorpe    2016-11-21  606  		clk_disable_unprepare(priv->clk);
340c0c53ea3073 drivers/fpga/zynq-fpga.c Jason Gunthorpe    2016-11-21  607  		return err;
340c0c53ea3073 drivers/fpga/zynq-fpga.c Jason Gunthorpe    2016-11-21  608  	}
340c0c53ea3073 drivers/fpga/zynq-fpga.c Jason Gunthorpe    2016-11-21  609  
37784706bf9e3b drivers/fpga/zynq-fpga.c Moritz Fischer     2015-10-16  610  	clk_disable(priv->clk);
37784706bf9e3b drivers/fpga/zynq-fpga.c Moritz Fischer     2015-10-16  611  
084181fe8cc747 drivers/fpga/zynq-fpga.c Alan Tull          2018-10-15  612  	mgr = devm_fpga_mgr_create(dev, "Xilinx Zynq FPGA Manager",
37784706bf9e3b drivers/fpga/zynq-fpga.c Moritz Fischer     2015-10-16  613  				   &zynq_fpga_ops, priv);
7085e2a94f7df5 drivers/fpga/zynq-fpga.c Alan Tull          2018-05-16  614  	if (!mgr)
7085e2a94f7df5 drivers/fpga/zynq-fpga.c Alan Tull          2018-05-16  615  		return -ENOMEM;
7085e2a94f7df5 drivers/fpga/zynq-fpga.c Alan Tull          2018-05-16  616  
7085e2a94f7df5 drivers/fpga/zynq-fpga.c Alan Tull          2018-05-16  617  	platform_set_drvdata(pdev, mgr);
7085e2a94f7df5 drivers/fpga/zynq-fpga.c Alan Tull          2018-05-16  618  
7085e2a94f7df5 drivers/fpga/zynq-fpga.c Alan Tull          2018-05-16  619  	err = fpga_mgr_register(mgr);
37784706bf9e3b drivers/fpga/zynq-fpga.c Moritz Fischer     2015-10-16  620  	if (err) {
1930c2865108d5 drivers/fpga/zynq-fpga.c Jason Gunthorpe    2016-11-21  621  		dev_err(dev, "unable to register FPGA manager\n");
6376931babd833 drivers/fpga/zynq-fpga.c Moritz Fischer     2015-10-19  622  		clk_unprepare(priv->clk);
37784706bf9e3b drivers/fpga/zynq-fpga.c Moritz Fischer     2015-10-16  623  		return err;
37784706bf9e3b drivers/fpga/zynq-fpga.c Moritz Fischer     2015-10-16  624  	}
37784706bf9e3b drivers/fpga/zynq-fpga.c Moritz Fischer     2015-10-16  625  
37784706bf9e3b drivers/fpga/zynq-fpga.c Moritz Fischer     2015-10-16 @626  	return 0;
37784706bf9e3b drivers/fpga/zynq-fpga.c Moritz Fischer     2015-10-16  627  }
37784706bf9e3b drivers/fpga/zynq-fpga.c Moritz Fischer     2015-10-16  628  

---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all(a)lists.01.org

[-- Attachment #2: config.gz --]
[-- Type: application/gzip, Size: 37643 bytes --]

^ permalink raw reply	[flat|nested] 15+ messages in thread

end of thread, other threads:[~2021-07-05 14:48 UTC | newest]

Thread overview: 15+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2021-06-22 20:05 [PATCH v5 0/4] fpga: reorganize to subdirs trix
2021-06-22 20:05 ` trix
2021-06-22 20:05 ` [PATCH v5 1/4] fpga: dfl: reorganize to subdir layout trix
2021-06-22 20:05   ` trix
2021-06-22 20:05 ` [PATCH v5 2/4] fpga: xilinx: " trix
2021-06-22 20:05   ` trix
2021-07-05 14:48   ` kernel test robot
2021-06-22 20:05 ` [PATCH v5 3/4] fpga: altera: " trix
2021-06-22 20:05   ` trix
2021-07-02  1:56   ` kernel test robot
2021-07-02  2:43     ` Moritz Fischer
2021-06-22 20:05 ` [PATCH v5 4/4] fpga: lattice: " trix
2021-06-22 20:05   ` trix
2021-06-26  3:49 [PATCH v5 2/4] fpga: xilinx: " kernel test robot
2021-06-28  8:46 ` Dan Carpenter

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.