aboutsummaryrefslogtreecommitdiffstats
path: root/arch/arm
diff options
context:
space:
mode:
Diffstat (limited to 'arch/arm')
-rw-r--r--arch/arm/plat-pxa/ssp.c18
1 files changed, 14 insertions, 4 deletions
diff --git a/arch/arm/plat-pxa/ssp.c b/arch/arm/plat-pxa/ssp.c
index c83f27b6bdda..3ea02903d75a 100644
--- a/arch/arm/plat-pxa/ssp.c
+++ b/arch/arm/plat-pxa/ssp.c
@@ -132,6 +132,7 @@ static int pxa_ssp_probe(struct platform_device *pdev)
132 if (dev->of_node) { 132 if (dev->of_node) {
133 struct of_phandle_args dma_spec; 133 struct of_phandle_args dma_spec;
134 struct device_node *np = dev->of_node; 134 struct device_node *np = dev->of_node;
135 int ret;
135 136
136 /* 137 /*
137 * FIXME: we should allocate the DMA channel from this 138 * FIXME: we should allocate the DMA channel from this
@@ -140,14 +141,23 @@ static int pxa_ssp_probe(struct platform_device *pdev)
140 */ 141 */
141 142
142 /* rx */ 143 /* rx */
143 of_parse_phandle_with_args(np, "dmas", "#dma-cells", 144 ret = of_parse_phandle_with_args(np, "dmas", "#dma-cells",
144 0, &dma_spec); 145 0, &dma_spec);
146
147 if (ret) {
148 dev_err(dev, "Can't parse dmas property\n");
149 return -ENODEV;
150 }
145 ssp->drcmr_rx = dma_spec.args[0]; 151 ssp->drcmr_rx = dma_spec.args[0];
146 of_node_put(dma_spec.np); 152 of_node_put(dma_spec.np);
147 153
148 /* tx */ 154 /* tx */
149 of_parse_phandle_with_args(np, "dmas", "#dma-cells", 155 ret = of_parse_phandle_with_args(np, "dmas", "#dma-cells",
150 1, &dma_spec); 156 1, &dma_spec);
157 if (ret) {
158 dev_err(dev, "Can't parse dmas property\n");
159 return -ENODEV;
160 }
151 ssp->drcmr_tx = dma_spec.args[0]; 161 ssp->drcmr_tx = dma_spec.args[0];
152 of_node_put(dma_spec.np); 162 of_node_put(dma_spec.np);
153 } else { 163 } else {