Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

dma: of: Remove check on always true condition

Both of_dma_nbcells field of the of_dma_controller and the args_count field of
the dma_spec are initialized by parsing the #dma-cells attribute of their device
tree node. So if the device tree nodes of a DMA controller and the dma_spec
match this means that of_dma_nbcells and args_count will also match. So the
second test in the of_dma_find_controller loop is redundant because given the
first test yields true the second test will also yield true. So we can safely
remove the test whether of_dma_nbcells matches args_count. Since this was the
last user of the of_dma_nbcells field we can remove it altogether.

Signed-off-by: Lars-Peter Clausen <lars@metafoo.de>
Acked-by: Arnd Bergmann <arnd@arndb.de>
Signed-off-by: Vinod Koul <vinod.koul@intel.com>

authored by

Lars-Peter Clausen and committed by
Vinod Koul
8552bb4f ff0e0f4f

+1 -14
+1 -13
drivers/dma/of-dma.c
··· 35 35 struct of_dma *ofdma; 36 36 37 37 list_for_each_entry(ofdma, &of_dma_list, of_dma_controllers) 38 - if ((ofdma->of_node == dma_spec->np) && 39 - (ofdma->of_dma_nbcells == dma_spec->args_count)) 38 + if (ofdma->of_node == dma_spec->np) 40 39 return ofdma; 41 40 42 41 pr_debug("%s: can't find DMA controller %s\n", __func__, ··· 63 64 void *data) 64 65 { 65 66 struct of_dma *ofdma; 66 - const __be32 *prop; 67 67 68 68 if (!np || !of_dma_xlate) { 69 69 pr_err("%s: not enough information provided\n", __func__); ··· 73 75 if (!ofdma) 74 76 return -ENOMEM; 75 77 76 - prop = of_get_property(np, "#dma-cells", NULL); 77 - if (!prop) { 78 - pr_err("%s: #dma-cells property is missing\n", 79 - __func__); 80 - kfree(ofdma); 81 - return -EINVAL; 82 - } 83 - 84 - 85 78 ofdma->of_node = np; 86 - ofdma->of_dma_nbcells = be32_to_cpup(prop); 87 79 ofdma->of_dma_xlate = of_dma_xlate; 88 80 ofdma->of_dma_data = data; 89 81
-1
include/linux/of_dma.h
··· 21 21 struct of_dma { 22 22 struct list_head of_dma_controllers; 23 23 struct device_node *of_node; 24 - int of_dma_nbcells; 25 24 struct dma_chan *(*of_dma_xlate) 26 25 (struct of_phandle_args *, struct of_dma *); 27 26 void *of_dma_data;