cregit-Linux how code gets into the kernel

Release 4.7 drivers/dma/sh/shdma-of.c

Directory: drivers/dma/sh
/*
 * SHDMA Device Tree glue
 *
 * Copyright (C) 2013 Renesas Electronics Inc.
 * Author: Guennadi Liakhovetski <g.liakhovetski@gmx.de>
 *
 * This is free software; you can redistribute it and/or modify
 * it under the terms of version 2 of the GNU General Public License as
 * published by the Free Software Foundation.
 */

#include <linux/dmaengine.h>
#include <linux/module.h>
#include <linux/of.h>
#include <linux/of_dma.h>
#include <linux/of_platform.h>
#include <linux/platform_device.h>
#include <linux/shdma-base.h>


#define to_shdma_chan(c) container_of(c, struct shdma_chan, dma_chan)


static struct dma_chan *shdma_of_xlate(struct of_phandle_args *dma_spec, struct of_dma *ofdma) { u32 id = dma_spec->args[0]; dma_cap_mask_t mask; struct dma_chan *chan; if (dma_spec->args_count != 1) return NULL; dma_cap_zero(mask); /* Only slave DMA channels can be allocated via DT */ dma_cap_set(DMA_SLAVE, mask); chan = dma_request_channel(mask, shdma_chan_filter, (void *)(uintptr_t)id); if (chan) to_shdma_chan(chan)->hw_req = id; return chan; }

Contributors

PersonTokensPropCommitsCommitProp
guennadi liakhovetskiguennadi liakhovetski9196.81%150.00%
laurent pinchartlaurent pinchart33.19%150.00%
Total94100.00%2100.00%


static int shdma_of_probe(struct platform_device *pdev) { const struct of_dev_auxdata *lookup = dev_get_platdata(&pdev->dev); int ret; ret = of_dma_controller_register(pdev->dev.of_node, shdma_of_xlate, pdev); if (ret < 0) return ret; ret = of_platform_populate(pdev->dev.of_node, NULL, lookup, &pdev->dev); if (ret < 0) of_dma_controller_free(pdev->dev.of_node); return ret; }

Contributors

PersonTokensPropCommitsCommitProp
guennadi liakhovetskiguennadi liakhovetski8695.56%150.00%
jingoo hanjingoo han44.44%150.00%
Total90100.00%2100.00%

static const struct of_device_id shdma_of_match[] = { { .compatible = "renesas,shdma-mux", }, { } }; MODULE_DEVICE_TABLE(of, sh_dmae_of_match); static struct platform_driver shdma_of = { .driver = { .name = "shdma-of", .of_match_table = shdma_of_match, }, .probe = shdma_of_probe, }; module_platform_driver(shdma_of); MODULE_LICENSE("GPL v2"); MODULE_DESCRIPTION("SH-DMA driver DT glue"); MODULE_AUTHOR("Guennadi Liakhovetski <g.liakhovetski@gmx.de>");

Overall Contributors

PersonTokensPropCommitsCommitProp
guennadi liakhovetskiguennadi liakhovetski27897.54%133.33%
jingoo hanjingoo han41.40%133.33%
laurent pinchartlaurent pinchart31.05%133.33%
Total285100.00%3100.00%
Directory: drivers/dma/sh
Information contained on this website is for historical information purposes only and does not indicate or represent copyright ownership.
{% endraw %}