aboutsummaryrefslogtreecommitdiffstats
path: root/arch
diff options
context:
space:
mode:
Diffstat (limited to 'arch')
-rw-r--r--arch/arm/common/edma.c28
1 files changed, 1 insertions, 27 deletions
diff --git a/arch/arm/common/edma.c b/arch/arm/common/edma.c
index fde56e2ba203..4df5d443b0b3 100644
--- a/arch/arm/common/edma.c
+++ b/arch/arm/common/edma.c
@@ -290,12 +290,6 @@ static void map_dmach_queue(unsigned ctlr, unsigned ch_no,
290 ~(0x7 << bit), queue_no << bit); 290 ~(0x7 << bit), queue_no << bit);
291} 291}
292 292
293static void __init map_queue_tc(unsigned ctlr, int queue_no, int tc_no)
294{
295 int bit = queue_no * 4;
296 edma_modify(ctlr, EDMA_QUETCMAP, ~(0x7 << bit), ((tc_no & 0x7) << bit));
297}
298
299static void __init assign_priority_to_queue(unsigned ctlr, int queue_no, 293static void __init assign_priority_to_queue(unsigned ctlr, int queue_no,
300 int priority) 294 int priority)
301{ 295{
@@ -1488,7 +1482,7 @@ static int edma_of_parse_dt(struct device *dev,
1488 struct property *prop; 1482 struct property *prop;
1489 size_t sz; 1483 size_t sz;
1490 struct edma_rsv_info *rsv_info; 1484 struct edma_rsv_info *rsv_info;
1491 s8 (*queue_tc_map)[2], (*queue_priority_map)[2]; 1485 s8 (*queue_priority_map)[2];
1492 1486
1493 ret = of_property_read_u32(node, "dma-channels", &value); 1487 ret = of_property_read_u32(node, "dma-channels", &value);
1494 if (ret < 0) 1488 if (ret < 0)
@@ -1513,19 +1507,6 @@ static int edma_of_parse_dt(struct device *dev,
1513 return -ENOMEM; 1507 return -ENOMEM;
1514 pdata->rsv = rsv_info; 1508 pdata->rsv = rsv_info;
1515 1509
1516 queue_tc_map = devm_kzalloc(dev, 8*sizeof(s8), GFP_KERNEL);
1517 if (!queue_tc_map)
1518 return -ENOMEM;
1519
1520 for (i = 0; i < 3; i++) {
1521 queue_tc_map[i][0] = i;
1522 queue_tc_map[i][1] = i;
1523 }
1524 queue_tc_map[i][0] = -1;
1525 queue_tc_map[i][1] = -1;
1526
1527 pdata->queue_tc_mapping = queue_tc_map;
1528
1529 queue_priority_map = devm_kzalloc(dev, 8*sizeof(s8), GFP_KERNEL); 1510 queue_priority_map = devm_kzalloc(dev, 8*sizeof(s8), GFP_KERNEL);
1530 if (!queue_priority_map) 1511 if (!queue_priority_map)
1531 return -ENOMEM; 1512 return -ENOMEM;
@@ -1586,7 +1567,6 @@ static int edma_probe(struct platform_device *pdev)
1586 struct edma_soc_info **info = pdev->dev.platform_data; 1567 struct edma_soc_info **info = pdev->dev.platform_data;
1587 struct edma_soc_info *ninfo[EDMA_MAX_CC] = {NULL}; 1568 struct edma_soc_info *ninfo[EDMA_MAX_CC] = {NULL};
1588 s8 (*queue_priority_mapping)[2]; 1569 s8 (*queue_priority_mapping)[2];
1589 s8 (*queue_tc_mapping)[2];
1590 int i, j, off, ln, found = 0; 1570 int i, j, off, ln, found = 0;
1591 int status = -1; 1571 int status = -1;
1592 const s16 (*rsv_chans)[2]; 1572 const s16 (*rsv_chans)[2];
@@ -1753,14 +1733,8 @@ static int edma_probe(struct platform_device *pdev)
1753 for (i = 0; i < edma_cc[j]->num_channels; i++) 1733 for (i = 0; i < edma_cc[j]->num_channels; i++)
1754 map_dmach_queue(j, i, info[j]->default_queue); 1734 map_dmach_queue(j, i, info[j]->default_queue);
1755 1735
1756 queue_tc_mapping = info[j]->queue_tc_mapping;
1757 queue_priority_mapping = info[j]->queue_priority_mapping; 1736 queue_priority_mapping = info[j]->queue_priority_mapping;
1758 1737
1759 /* Event queue to TC mapping */
1760 for (i = 0; queue_tc_mapping[i][0] != -1; i++)
1761 map_queue_tc(j, queue_tc_mapping[i][0],
1762 queue_tc_mapping[i][1]);
1763
1764 /* Event queue priority mapping */ 1738 /* Event queue priority mapping */
1765 for (i = 0; queue_priority_mapping[i][0] != -1; i++) 1739 for (i = 0; queue_priority_mapping[i][0] != -1; i++)
1766 assign_priority_to_queue(j, 1740 assign_priority_to_queue(j,