diff options
author | Dan Willemsen <dwillemsen@nvidia.com> | 2013-08-19 21:41:20 -0700 |
---|---|---|
committer | Dan Willemsen <dwillemsen@nvidia.com> | 2013-09-13 22:38:55 -0700 |
commit | 1fc5edbfe87fbed5efa40f4e2c57500f0974275f (patch) | |
tree | f395da84d9d24706354bbff09f2c63e7203bde6b /drivers/dma | |
parent | 229394ce66a580bb5cfda533d1d077e16f48ffb9 (diff) |
Revert "dma: tegra: assume CONFIG_OF"
This reverts commit dc7badba1942270a7695ef380853abcbce725a53.
Signed-off-by: Dan Willemsen <dwillemsen@nvidia.com>
Diffstat (limited to 'drivers/dma')
-rw-r--r-- | drivers/dma/tegra20-apb-dma.c | 22 |
1 files changed, 15 insertions, 7 deletions
diff --git a/drivers/dma/tegra20-apb-dma.c b/drivers/dma/tegra20-apb-dma.c index 5a0b66c2a60c..fcee27eae1f6 100644 --- a/drivers/dma/tegra20-apb-dma.c +++ b/drivers/dma/tegra20-apb-dma.c @@ -1213,6 +1213,7 @@ static const struct tegra_dma_chip_data tegra20_dma_chip_data = { .support_channel_pause = false, }; +#if defined(CONFIG_OF) /* Tegra30 specific DMA controller information */ static const struct tegra_dma_chip_data tegra30_dma_chip_data = { .nr_channels = 32, @@ -1242,6 +1243,7 @@ static const struct of_device_id tegra_dma_of_match[] = { }, }; MODULE_DEVICE_TABLE(of, tegra_dma_of_match); +#endif static int tegra_dma_probe(struct platform_device *pdev) { @@ -1250,14 +1252,20 @@ static int tegra_dma_probe(struct platform_device *pdev) int ret; int i; const struct tegra_dma_chip_data *cdata = NULL; - const struct of_device_id *match; - match = of_match_device(tegra_dma_of_match, &pdev->dev); - if (!match) { - dev_err(&pdev->dev, "Error: No device match found\n"); - return -ENODEV; + if (pdev->dev.of_node) { + const struct of_device_id *match; + match = of_match_device(of_match_ptr(tegra_dma_of_match), + &pdev->dev); + if (!match) { + dev_err(&pdev->dev, "Error: No device match found\n"); + return -ENODEV; + } + cdata = match->data; + } else { + /* If no device tree then fallback to tegra20 */ + cdata = &tegra20_dma_chip_data; } - cdata = match->data; tdma = devm_kzalloc(&pdev->dev, sizeof(*tdma) + cdata->nr_channels * sizeof(struct tegra_dma_channel), GFP_KERNEL); @@ -1452,7 +1460,7 @@ static struct platform_driver tegra_dmac_driver = { .name = "tegra-apbdma", .owner = THIS_MODULE, .pm = &tegra_dma_dev_pm_ops, - .of_match_table = tegra_dma_of_match, + .of_match_table = of_match_ptr(tegra_dma_of_match), }, .probe = tegra_dma_probe, .remove = tegra_dma_remove, |