All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH 0/2] Add Intel LGM soc DMA support
@ 2020-06-10 12:17 Amireddy Mallikarjuna reddy
  2020-06-10 12:17 ` [PATCH 1/2] dt-bindings: dma: Add bindings for intel LGM SOC Amireddy Mallikarjuna reddy
  2020-06-10 12:17 ` [PATCH 2/2] Add Intel LGM soc DMA support Amireddy Mallikarjuna reddy
  0 siblings, 2 replies; 12+ messages in thread
From: Amireddy Mallikarjuna reddy @ 2020-06-10 12:17 UTC (permalink / raw)
  To: dmaengine, vkoul, devicetree, robh+dt
  Cc: linux-kernel, andriy.shevchenko, chuanhua.lei, cheol.yong.kim,
	qi-ming.wu, malliamireddy009, Amireddy Mallikarjuna reddy

Add DMA controller driver for Lightning Mountain(LGM) family of SoCs.

The main function of the DMA controller is the transfer of data from/to any
DPlus compliant peripheral to/from the memory. A memory to memory copy
capability can also be configured.
This ldma driver is used for configure the device and channnels for data
and control paths.

These controllers provide DMA capabilities for a variety of on-chip
devices such as SSC, HSNAND and GSWIP.

-------------
Future Plans:
-------------
LGM SOC also supports Hardware Memory Copy engine.
The role of the HW Memory copy engine is to offload memory copy operations
from the CPU.

Amireddy Mallikarjuna reddy (2):
  dt-bindings: dma: Add bindings for intel LGM SOC
  Add Intel LGM soc DMA support.

 .../devicetree/bindings/dma/intel,ldma.yaml        |  428 +++++
 drivers/dma/Kconfig                                |    2 +
 drivers/dma/Makefile                               |    1 +
 drivers/dma/lgm/Kconfig                            |    9 +
 drivers/dma/lgm/Makefile                           |    2 +
 drivers/dma/lgm/lgm-dma.c                          | 1951 ++++++++++++++++++++
 6 files changed, 2393 insertions(+)
 create mode 100644 Documentation/devicetree/bindings/dma/intel,ldma.yaml
 create mode 100644 drivers/dma/lgm/Kconfig
 create mode 100644 drivers/dma/lgm/Makefile
 create mode 100644 drivers/dma/lgm/lgm-dma.c

-- 
2.11.0


^ permalink raw reply	[flat|nested] 12+ messages in thread
* Re: [PATCH 2/2] Add Intel LGM soc DMA support.
@ 2020-06-20 21:09 kernel test robot
  0 siblings, 0 replies; 12+ messages in thread
From: kernel test robot @ 2020-06-20 21:09 UTC (permalink / raw)
  To: kbuild

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

CC: kbuild-all(a)lists.01.org
In-Reply-To: <93e1f8627f31c8fa9a17b3fa0f26629c57a97ef9.1591790337.git.mallikarjunax.reddy@linux.intel.com>
References: <93e1f8627f31c8fa9a17b3fa0f26629c57a97ef9.1591790337.git.mallikarjunax.reddy@linux.intel.com>
TO: Amireddy Mallikarjuna reddy <mallikarjunax.reddy@linux.intel.com>
TO: dmaengine(a)vger.kernel.org
TO: vkoul(a)kernel.org
TO: devicetree(a)vger.kernel.org
TO: robh+dt(a)kernel.org
CC: linux-kernel(a)vger.kernel.org
CC: andriy.shevchenko(a)intel.com
CC: chuanhua.lei(a)linux.intel.com
CC: cheol.yong.kim(a)intel.com
CC: qi-ming.wu(a)intel.com
CC: malliamireddy009(a)gmail.com

Hi Amireddy,

Thank you for the patch! Perhaps something to improve:

[auto build test WARNING on robh/for-next]
[also build test WARNING on linus/master v5.8-rc1 next-20200618]
[If your patch is applied to the wrong git tree, kindly drop us a note.
And when submitting patch, we suggest to use  as documented in
https://git-scm.com/docs/git-format-patch]

url:    https://github.com/0day-ci/linux/commits/Amireddy-Mallikarjuna-reddy/Add-Intel-LGM-soc-DMA-support/20200610-202116
base:   https://git.kernel.org/pub/scm/linux/kernel/git/robh/linux.git for-next
:::::: branch date: 10 days ago
:::::: commit date: 10 days ago
config: i386-randconfig-m021-20200621 (attached as .config)
compiler: gcc-9 (Debian 9.3.0-13) 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/dma/lgm/lgm-dma.c:1306 ldma_cfg_init() error: uninitialized symbol 'ret'.

# https://github.com/0day-ci/linux/commit/23493bf02c8f7255c8ff22b02f42f0adccb8e8ad
git remote add linux-review https://github.com/0day-ci/linux
git remote update linux-review
git checkout 23493bf02c8f7255c8ff22b02f42f0adccb8e8ad
vim +/ret +1306 drivers/dma/lgm/lgm-dma.c

23493bf02c8f72 Amireddy Mallikarjuna reddy 2020-06-10  1197  
23493bf02c8f72 Amireddy Mallikarjuna reddy 2020-06-10  1198  static int ldma_cfg_init(struct ldma_dev *d)
23493bf02c8f72 Amireddy Mallikarjuna reddy 2020-06-10  1199  {
23493bf02c8f72 Amireddy Mallikarjuna reddy 2020-06-10  1200  	struct fwnode_handle *fwnode = dev_fwnode(d->dev);
23493bf02c8f72 Amireddy Mallikarjuna reddy 2020-06-10  1201  	struct fwnode_handle *fw_chans, *fw_chan;
23493bf02c8f72 Amireddy Mallikarjuna reddy 2020-06-10  1202  	struct fwnode_handle *fw_ports, *fw_port;
23493bf02c8f72 Amireddy Mallikarjuna reddy 2020-06-10  1203  	struct ldma_chan *c;
23493bf02c8f72 Amireddy Mallikarjuna reddy 2020-06-10  1204  	struct ldma_port *p;
23493bf02c8f72 Amireddy Mallikarjuna reddy 2020-06-10  1205  	u32 txendi, rxendi;
23493bf02c8f72 Amireddy Mallikarjuna reddy 2020-06-10  1206  	u32 prop, val;
23493bf02c8f72 Amireddy Mallikarjuna reddy 2020-06-10  1207  	int ret, i;
23493bf02c8f72 Amireddy Mallikarjuna reddy 2020-06-10  1208  
23493bf02c8f72 Amireddy Mallikarjuna reddy 2020-06-10  1209  	if (fwnode_property_read_bool(fwnode, "intel,dma-chan-fc"))
23493bf02c8f72 Amireddy Mallikarjuna reddy 2020-06-10  1210  		d->flags |= DMA_CHAN_FLOW_CTL;
23493bf02c8f72 Amireddy Mallikarjuna reddy 2020-06-10  1211  
23493bf02c8f72 Amireddy Mallikarjuna reddy 2020-06-10  1212  	if (fwnode_property_read_bool(fwnode, "intel,dma-desc-fod"))
23493bf02c8f72 Amireddy Mallikarjuna reddy 2020-06-10  1213  		d->flags |= DMA_DESC_FTOD;
23493bf02c8f72 Amireddy Mallikarjuna reddy 2020-06-10  1214  
23493bf02c8f72 Amireddy Mallikarjuna reddy 2020-06-10  1215  	if (fwnode_property_read_bool(fwnode, "intel,dma-desc-in-sram"))
23493bf02c8f72 Amireddy Mallikarjuna reddy 2020-06-10  1216  		d->flags |= DMA_DESC_IN_SRAM;
23493bf02c8f72 Amireddy Mallikarjuna reddy 2020-06-10  1217  
23493bf02c8f72 Amireddy Mallikarjuna reddy 2020-06-10  1218  	if (fwnode_property_read_bool(fwnode, "intel,dma-byte-en"))
23493bf02c8f72 Amireddy Mallikarjuna reddy 2020-06-10  1219  		d->flags |= DMA_EN_BYTE_EN;
23493bf02c8f72 Amireddy Mallikarjuna reddy 2020-06-10  1220  
23493bf02c8f72 Amireddy Mallikarjuna reddy 2020-06-10  1221  	if (fwnode_property_read_bool(fwnode, "intel,dma-dfetch-ack"))
23493bf02c8f72 Amireddy Mallikarjuna reddy 2020-06-10  1222  		d->flags |= DMA_VLD_FETCH_ACK;
23493bf02c8f72 Amireddy Mallikarjuna reddy 2020-06-10  1223  
23493bf02c8f72 Amireddy Mallikarjuna reddy 2020-06-10  1224  	if (fwnode_property_read_bool(fwnode, "intel,dma-dburst-wr"))
23493bf02c8f72 Amireddy Mallikarjuna reddy 2020-06-10  1225  		d->flags |= DMA_DBURST_WR;
23493bf02c8f72 Amireddy Mallikarjuna reddy 2020-06-10  1226  
23493bf02c8f72 Amireddy Mallikarjuna reddy 2020-06-10  1227  	if (fwnode_property_read_bool(fwnode, "intel,dma-drb"))
23493bf02c8f72 Amireddy Mallikarjuna reddy 2020-06-10  1228  		d->flags |= DMA_DFT_DRB;
23493bf02c8f72 Amireddy Mallikarjuna reddy 2020-06-10  1229  
23493bf02c8f72 Amireddy Mallikarjuna reddy 2020-06-10  1230  	if (fwnode_property_read_u32(fwnode, "intel,dma-polling-cnt",
23493bf02c8f72 Amireddy Mallikarjuna reddy 2020-06-10  1231  				     &d->pollcnt))
23493bf02c8f72 Amireddy Mallikarjuna reddy 2020-06-10  1232  		d->pollcnt = DMA_DFT_POLL_CNT;
23493bf02c8f72 Amireddy Mallikarjuna reddy 2020-06-10  1233  
23493bf02c8f72 Amireddy Mallikarjuna reddy 2020-06-10  1234  	if (!fwnode_property_read_u32(fwnode, "intel,dma-orrc", &val)) {
23493bf02c8f72 Amireddy Mallikarjuna reddy 2020-06-10  1235  		if (val > DMA_ORRC_MAX_CNT)
23493bf02c8f72 Amireddy Mallikarjuna reddy 2020-06-10  1236  			return -EINVAL;
23493bf02c8f72 Amireddy Mallikarjuna reddy 2020-06-10  1237  		d->orrc = val;
23493bf02c8f72 Amireddy Mallikarjuna reddy 2020-06-10  1238  	}
23493bf02c8f72 Amireddy Mallikarjuna reddy 2020-06-10  1239  
23493bf02c8f72 Amireddy Mallikarjuna reddy 2020-06-10  1240  	if (d->ver > DMA_VER22) {
23493bf02c8f72 Amireddy Mallikarjuna reddy 2020-06-10  1241  		if (fwnode_property_read_u32(fwnode, "intel,dma-txendi",
23493bf02c8f72 Amireddy Mallikarjuna reddy 2020-06-10  1242  					     &txendi))
23493bf02c8f72 Amireddy Mallikarjuna reddy 2020-06-10  1243  			txendi = DMA_DFT_ENDIAN;
23493bf02c8f72 Amireddy Mallikarjuna reddy 2020-06-10  1244  
23493bf02c8f72 Amireddy Mallikarjuna reddy 2020-06-10  1245  		if (fwnode_property_read_u32(fwnode, "intel,dma-rxendi",
23493bf02c8f72 Amireddy Mallikarjuna reddy 2020-06-10  1246  					     &rxendi))
23493bf02c8f72 Amireddy Mallikarjuna reddy 2020-06-10  1247  			rxendi = DMA_DFT_ENDIAN;
23493bf02c8f72 Amireddy Mallikarjuna reddy 2020-06-10  1248  
23493bf02c8f72 Amireddy Mallikarjuna reddy 2020-06-10  1249  		if (!d->port_nrs)
23493bf02c8f72 Amireddy Mallikarjuna reddy 2020-06-10  1250  			return -EINVAL;
23493bf02c8f72 Amireddy Mallikarjuna reddy 2020-06-10  1251  
23493bf02c8f72 Amireddy Mallikarjuna reddy 2020-06-10  1252  		for (i = 0; i < d->port_nrs; i++) {
23493bf02c8f72 Amireddy Mallikarjuna reddy 2020-06-10  1253  			p = &d->ports[i];
23493bf02c8f72 Amireddy Mallikarjuna reddy 2020-06-10  1254  			p->rxendi = rxendi;
23493bf02c8f72 Amireddy Mallikarjuna reddy 2020-06-10  1255  			p->txendi = txendi;
23493bf02c8f72 Amireddy Mallikarjuna reddy 2020-06-10  1256  
23493bf02c8f72 Amireddy Mallikarjuna reddy 2020-06-10  1257  			if (!fwnode_property_read_u32(fwnode, "intel,dma-burst",
23493bf02c8f72 Amireddy Mallikarjuna reddy 2020-06-10  1258  						      &prop)) {
23493bf02c8f72 Amireddy Mallikarjuna reddy 2020-06-10  1259  				p->rxbl = prop;
23493bf02c8f72 Amireddy Mallikarjuna reddy 2020-06-10  1260  				p->txbl = prop;
23493bf02c8f72 Amireddy Mallikarjuna reddy 2020-06-10  1261  			} else {
23493bf02c8f72 Amireddy Mallikarjuna reddy 2020-06-10  1262  				p->rxbl = DMA_DFT_BURST;
23493bf02c8f72 Amireddy Mallikarjuna reddy 2020-06-10  1263  				p->txbl = DMA_DFT_BURST;
23493bf02c8f72 Amireddy Mallikarjuna reddy 2020-06-10  1264  			}
23493bf02c8f72 Amireddy Mallikarjuna reddy 2020-06-10  1265  
23493bf02c8f72 Amireddy Mallikarjuna reddy 2020-06-10  1266  			p->pkt_drop = DMA_PKT_DROP_DIS;
23493bf02c8f72 Amireddy Mallikarjuna reddy 2020-06-10  1267  			p->flush_memcpy = 0;
23493bf02c8f72 Amireddy Mallikarjuna reddy 2020-06-10  1268  		}
23493bf02c8f72 Amireddy Mallikarjuna reddy 2020-06-10  1269  	}
23493bf02c8f72 Amireddy Mallikarjuna reddy 2020-06-10  1270  
23493bf02c8f72 Amireddy Mallikarjuna reddy 2020-06-10  1271  	/* Port specific, required for dma0 */
23493bf02c8f72 Amireddy Mallikarjuna reddy 2020-06-10  1272  	fw_ports = fwnode_get_named_child_node(fwnode, "dma,ports");
23493bf02c8f72 Amireddy Mallikarjuna reddy 2020-06-10  1273  	if (!fw_ports && d->ver == DMA_VER22) {
23493bf02c8f72 Amireddy Mallikarjuna reddy 2020-06-10  1274  		dev_err(d->dev, "Failed to get ports settings\n");
23493bf02c8f72 Amireddy Mallikarjuna reddy 2020-06-10  1275  		return -ENODEV;
23493bf02c8f72 Amireddy Mallikarjuna reddy 2020-06-10  1276  	}
23493bf02c8f72 Amireddy Mallikarjuna reddy 2020-06-10  1277  	if (fw_ports) {
23493bf02c8f72 Amireddy Mallikarjuna reddy 2020-06-10  1278  		fwnode_for_each_child_node(fw_ports, fw_port) {
23493bf02c8f72 Amireddy Mallikarjuna reddy 2020-06-10  1279  			ret = dma_parse_port_dt(fw_port, d);
23493bf02c8f72 Amireddy Mallikarjuna reddy 2020-06-10  1280  			if (ret) {
23493bf02c8f72 Amireddy Mallikarjuna reddy 2020-06-10  1281  				fwnode_handle_put(fw_port);
23493bf02c8f72 Amireddy Mallikarjuna reddy 2020-06-10  1282  				fwnode_handle_put(fw_ports);
23493bf02c8f72 Amireddy Mallikarjuna reddy 2020-06-10  1283  				return -EINVAL;
23493bf02c8f72 Amireddy Mallikarjuna reddy 2020-06-10  1284  			}
23493bf02c8f72 Amireddy Mallikarjuna reddy 2020-06-10  1285  		}
23493bf02c8f72 Amireddy Mallikarjuna reddy 2020-06-10  1286  		fwnode_handle_put(fw_ports);
23493bf02c8f72 Amireddy Mallikarjuna reddy 2020-06-10  1287  	}
23493bf02c8f72 Amireddy Mallikarjuna reddy 2020-06-10  1288  
23493bf02c8f72 Amireddy Mallikarjuna reddy 2020-06-10  1289  	d->chans = devm_kcalloc(d->dev, d->chan_nrs, sizeof(*c), GFP_KERNEL);
23493bf02c8f72 Amireddy Mallikarjuna reddy 2020-06-10  1290  	if (!d->chans)
23493bf02c8f72 Amireddy Mallikarjuna reddy 2020-06-10  1291  		return -ENOMEM;
23493bf02c8f72 Amireddy Mallikarjuna reddy 2020-06-10  1292  
23493bf02c8f72 Amireddy Mallikarjuna reddy 2020-06-10  1293  	/* Channel based configuration if available, optional */
23493bf02c8f72 Amireddy Mallikarjuna reddy 2020-06-10  1294  	fw_chans = fwnode_get_named_child_node(fwnode, "dma,channels");
23493bf02c8f72 Amireddy Mallikarjuna reddy 2020-06-10  1295  	if (fw_chans) {
23493bf02c8f72 Amireddy Mallikarjuna reddy 2020-06-10  1296  		fwnode_for_each_child_node(fw_chans, fw_chan) {
23493bf02c8f72 Amireddy Mallikarjuna reddy 2020-06-10  1297  			if (dma_parse_chan_dt(fw_chan, d)) {
23493bf02c8f72 Amireddy Mallikarjuna reddy 2020-06-10  1298  				fwnode_handle_put(fw_chan);
23493bf02c8f72 Amireddy Mallikarjuna reddy 2020-06-10  1299  				fwnode_handle_put(fw_chans);
23493bf02c8f72 Amireddy Mallikarjuna reddy 2020-06-10  1300  				return -EINVAL;
23493bf02c8f72 Amireddy Mallikarjuna reddy 2020-06-10  1301  			}
23493bf02c8f72 Amireddy Mallikarjuna reddy 2020-06-10  1302  		}
23493bf02c8f72 Amireddy Mallikarjuna reddy 2020-06-10  1303  		fwnode_handle_put(fw_chans);
23493bf02c8f72 Amireddy Mallikarjuna reddy 2020-06-10  1304  	}
23493bf02c8f72 Amireddy Mallikarjuna reddy 2020-06-10  1305  
23493bf02c8f72 Amireddy Mallikarjuna reddy 2020-06-10 @1306  	return ret;
23493bf02c8f72 Amireddy Mallikarjuna reddy 2020-06-10  1307  }
23493bf02c8f72 Amireddy Mallikarjuna reddy 2020-06-10  1308  

---
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: 29798 bytes --]

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

end of thread, other threads:[~2020-06-22 11:40 UTC | newest]

Thread overview: 12+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2020-06-10 12:17 [PATCH 0/2] Add Intel LGM soc DMA support Amireddy Mallikarjuna reddy
2020-06-10 12:17 ` [PATCH 1/2] dt-bindings: dma: Add bindings for intel LGM SOC Amireddy Mallikarjuna reddy
2020-06-12 21:54   ` Rob Herring
2020-06-10 12:17 ` [PATCH 2/2] Add Intel LGM soc DMA support Amireddy Mallikarjuna reddy
2020-06-10 23:35   ` kernel test robot
2020-06-10 23:35     ` kernel test robot
2020-06-17  2:20   ` kernel test robot
2020-06-17  2:20     ` kernel test robot
2020-06-22 11:37   ` Dan Carpenter
2020-06-22 11:37     ` Dan Carpenter
2020-06-22 11:37     ` Dan Carpenter
  -- strict thread matches above, loose matches on Subject: below --
2020-06-20 21:09 kernel test robot

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.