This patch removes reads of the following registers:

esr, esrh, eesr, eesrh, iesr, iesrh, qeesr
 are write 1 to set registers

ecr, ecrh, eecr, eecrh, emcr, emcrh,
icr, icrh, secr, secrh,
ccerrclr, qeecr, qemcr, qsecr,
 are write 1 to clear registers

Signed-off-by: Troy Kisky <[EMAIL PROTECTED]>

diff --git a/arch/arm/mach-davinci/dma.c b/arch/arm/mach-davinci/dma.c
index 51f80ae..3a5da88 100644
--- a/arch/arm/mach-davinci/dma.c
+++ b/arch/arm/mach-davinci/dma.c
@@ -445,8 +445,8 @@ static int request_dma_interrupt(int lch,
        }
        if (free_intr_no >= 0 && free_intr_no < 64) {
                (free_intr_no < 32) ?
-                   (ptr_edmacc_regs->shadow[0].iesr |= (1UL << free_intr_no))
-                   : (ptr_edmacc_regs->shadow[0].iesrh |=
+                   (ptr_edmacc_regs->shadow[0].iesr = (1UL << free_intr_no))
+                   : (ptr_edmacc_regs->shadow[0].iesrh =
                       (1UL << (free_intr_no - 32)));
                intr_data[free_intr_no].callback = callback;
                intr_data[free_intr_no].data = data;
@@ -467,9 +467,9 @@ static int request_dma_interrupt(int lch,
 static void free_dma_interrupt(int intr_no)
 {
        if (intr_no >= 0 && intr_no < 64) {
-               (intr_no < 32) ? (ptr_edmacc_regs->shadow[0].icr |=
+               (intr_no < 32) ? (ptr_edmacc_regs->shadow[0].icr =
                                  (1UL << (intr_no))) : (ptr_edmacc_regs->
-                                                        shadow[0].icrh |=
+                                                        shadow[0].icrh =
                                                         (1UL <<
                                                          (intr_no - 32)));
                LOCK;
@@ -522,7 +522,7 @@ static void dma_irq_handler(void)
                        for (i = 0; i < 32; i++) {
                                if (ptr_edmacc_regs->shadow[0].ipr & (1 << i)) {
                                        /* Clear the corresponding IPR bits */
-                                       ptr_edmacc_regs->shadow[0].icr |=
+                                       ptr_edmacc_regs->shadow[0].icr =
                                            (1 << i);
                                        if (intr_data[i].callback) {
                                                intr_data[i].callback(i,
@@ -539,7 +539,7 @@ static void dma_irq_handler(void)
                        for (i = 0; i < 32; i++) {
                                if (ptr_edmacc_regs->shadow[0].iprh & (1 << i)) 
{
                                        /* Clear the corresponding IPR bits */
-                                       ptr_edmacc_regs->shadow[0].icrh |=
+                                       ptr_edmacc_regs->shadow[0].icrh =
                                            (1 << i);
                                        if (intr_data[32 + i].callback) {
                                                intr_data[32 + i].callback(32 +
@@ -584,9 +584,9 @@ static void dma_ccerr_handler(void)
                        for (i = 0; i < 32; i++) {
                                if (ptr_edmacc_regs->emr & (1 << i)) {
                                        /* Clear the corresponding EMR bits */
-                                       ptr_edmacc_regs->emcr |= (1 << i);
+                                       ptr_edmacc_regs->emcr = (1 << i);
                                        /* Clear any SER */
-                                       ptr_edmacc_regs->shadow[0].secr |=
+                                       ptr_edmacc_regs->shadow[0].secr =
                                            (1 << i);
                                        if (intr_data[i].callback) {
                                                intr_data[i].callback(i,
@@ -602,9 +602,9 @@ static void dma_ccerr_handler(void)
                        for (i = 0; i < 32; i++) {
                                if (ptr_edmacc_regs->emrh & (1 << i)) {
                                        /* Clear the corresponding IPR bits */
-                                       ptr_edmacc_regs->emcrh |= (1 << i);
+                                       ptr_edmacc_regs->emcrh = (1 << i);
                                        /* Clear any SER */
-                                       ptr_edmacc_regs->shadow[0].secrh |=
+                                       ptr_edmacc_regs->shadow[0].secrh =
                                            (1 << i);
                                        if (intr_data[i].callback) {
                                                intr_data[i].callback(i,
@@ -620,8 +620,8 @@ static void dma_ccerr_handler(void)
                        for (i = 0; i < 8; i++) {
                                if (ptr_edmacc_regs->qemr & (1 << i)) {
                                        /* Clear the corresponding IPR bits */
-                                       ptr_edmacc_regs->qemcr |= (1 << i);
-                                       ptr_edmacc_regs->shadow[0].qsecr |=
+                                       ptr_edmacc_regs->qemcr = (1 << i);
+                                       ptr_edmacc_regs->shadow[0].qsecr =
                                            (1 << i);
                                }
                        }
@@ -631,7 +631,7 @@ static void dma_ccerr_handler(void)
                        for (i = 0; i < 8; i++) {
                                if (ptr_edmacc_regs->ccerr & (1 << i)) {
                                        /* Clear the corresponding IPR bits */
-                                       ptr_edmacc_regs->ccerrclr |= (1 << i);
+                                       ptr_edmacc_regs->ccerrclr = (1 << i);
                                }
                        }
                }
@@ -1318,9 +1318,9 @@ int davinci_start_dma(int lch)
                                        ptr_edmacc_regs->shadow[0].esr);
 
                                (lch < 32) ?
-                                   (ptr_edmacc_regs->shadow[0].esr |=
+                                   (ptr_edmacc_regs->shadow[0].esr =
                                     (1UL << lch)) : (ptr_edmacc_regs->
-                                                     shadow[0].esrh |=
+                                                     shadow[0].esrh =
                                                      (1UL << (lch - 32)));
                                flag = 1;
                                ret_val = 0;
@@ -1334,20 +1334,20 @@ int davinci_start_dma(int lch)
                                ptr_edmacc_regs->shadow[0].er);
                        /* Clear any pedning error */
                        (lch < 32) ?
-                           (ptr_edmacc_regs->emcr |=
+                           (ptr_edmacc_regs->emcr =
                             (1UL << lch)) :
-                           (ptr_edmacc_regs->emcrh |= (1UL << (lch - 32)));
+                           (ptr_edmacc_regs->emcrh = (1UL << (lch - 32)));
                        /* Clear any SER */
                        (lch < 32) ?
-                           (ptr_edmacc_regs->shadow[0].secr |=
+                           (ptr_edmacc_regs->shadow[0].secr =
                             (1UL << lch)) :
-                           (ptr_edmacc_regs->shadow[0].secrh |=
+                           (ptr_edmacc_regs->shadow[0].secrh =
                             (1UL << (lch - 32)));
 
                        (lch < 32) ?
-                           (ptr_edmacc_regs->shadow[0].eesr |=
+                           (ptr_edmacc_regs->shadow[0].eesr =
                             (1UL << lch)) :
-                           (ptr_edmacc_regs->shadow[0].eesrh |=
+                           (ptr_edmacc_regs->shadow[0].eesrh =
                             (1UL << (lch - 32)));
 
                        dev_dbg(&edma_dev.dev, "EER=%d\r\n",
@@ -1357,7 +1357,7 @@ int davinci_start_dma(int lch)
        } else if ((lch >= DAVINCI_EDMA_NUM_DMACH)
                   && (lch <
                       (DAVINCI_EDMA_NUM_DMACH + DAVINCI_EDMA_NUM_QDMACH))) {
-               ptr_edmacc_regs->shadow[0].qeesr |=
+               ptr_edmacc_regs->shadow[0].qeesr =
                    (1 << (lch - DAVINCI_EDMA_NUM_DMACH));
                ret_val = 0;
        } else {                /* for slaveChannels */
@@ -1392,15 +1392,15 @@ void davinci_stop_dma(int lch)
                }
                if (!flag) {
                        /* EDMA channel with event association */
-                       (lch < 32) ? (ptr_edmacc_regs->shadow[0].eecr |=
+                       (lch < 32) ? (ptr_edmacc_regs->shadow[0].eecr =
                                      (1UL << lch)) :
-                           (ptr_edmacc_regs->shadow[0].eecrh |=
+                           (ptr_edmacc_regs->shadow[0].eecrh =
                             (1UL << (lch - 32)));
                        if (lch < 32) {
                                if (ptr_edmacc_regs->shadow[0].er & (1 << lch)) 
{
                                        dev_dbg(&edma_dev.dev, "ER=%x\n",
                                                ptr_edmacc_regs->shadow[0].er);
-                                       ptr_edmacc_regs->shadow[0].ecr |=
+                                       ptr_edmacc_regs->shadow[0].ecr =
                                            (1 << lch);
                                }
                        } else {
@@ -1408,7 +1408,7 @@ void davinci_stop_dma(int lch)
                                    & (1 << (lch - 32))) {
                                        dev_dbg(&edma_dev.dev, "ERH=%x\n",
                                                ptr_edmacc_regs->shadow[0].erh);
-                                       ptr_edmacc_regs->shadow[0].ecrh |=
+                                       ptr_edmacc_regs->shadow[0].ecrh =
                                            (1 << (lch - 32));
                                }
                        }
@@ -1416,7 +1416,7 @@ void davinci_stop_dma(int lch)
                                if (ptr_edmacc_regs->shadow[0].ser & (1 << 
lch)) {
                                        dev_dbg(&edma_dev.dev, "SER=%x\n",
                                                ptr_edmacc_regs->shadow[0].ser);
-                                       ptr_edmacc_regs->shadow[0].secr |=
+                                       ptr_edmacc_regs->shadow[0].secr =
                                            (1 << lch);
                                } else {
                                }
@@ -1426,7 +1426,7 @@ void davinci_stop_dma(int lch)
                                        dev_dbg(&edma_dev.dev, "SERH=%x\n",
                                                ptr_edmacc_regs->shadow[0].
                                                serh);
-                                       ptr_edmacc_regs->shadow[0].secrh |=
+                                       ptr_edmacc_regs->shadow[0].secrh =
                                            (1 << (lch - 32));
                                }
                        }
@@ -1434,13 +1434,13 @@ void davinci_stop_dma(int lch)
                                if (ptr_edmacc_regs->emr & (1 << lch)) {
                                        dev_dbg(&edma_dev.dev, "EMR=%x\n",
                                                ptr_edmacc_regs->emr);
-                                       ptr_edmacc_regs->emcr |= (1 << lch);
+                                       ptr_edmacc_regs->emcr = (1 << lch);
                                }
                        } else {
                                if (ptr_edmacc_regs->emrh & (1 << (lch - 32))) {
                                        dev_dbg(&edma_dev.dev, "EMRH=%x\n",
                                                ptr_edmacc_regs->emrh);
-                                       ptr_edmacc_regs->emcrh |=
+                                       ptr_edmacc_regs->emcrh =
                                            (1 << (lch - 32));
                                }
                        }
@@ -1454,7 +1454,7 @@ void davinci_stop_dma(int lch)
                   &&
                   (lch < (DAVINCI_EDMA_NUM_DMACH + DAVINCI_EDMA_NUM_QDMACH))) {
                /* for QDMA channels */
-               ptr_edmacc_regs->qeecr |= (1 << (lch - DAVINCI_EDMA_NUM_DMACH));
+               ptr_edmacc_regs->qeecr = (1 << (lch - DAVINCI_EDMA_NUM_DMACH));
                dev_dbg(&edma_dev.dev, "QER=%d\r\n", ptr_edmacc_regs->qer);
                dev_dbg(&edma_dev.dev, "QEER=%d\r\n", ptr_edmacc_regs->qeer);
        } else if ((lch >= (DAVINCI_EDMA_NUM_DMACH + DAVINCI_EDMA_NUM_QDMACH))
@@ -1646,12 +1646,12 @@ void davinci_clean_channel(int ch_no)
        if (ch_no < 32) {
                for (i = 0; i < 32; i++) {
                        if (ch_no == i) {
-                               ptr_edmacc_regs->shadow[0].ecr |= (1 << i);
+                               ptr_edmacc_regs->shadow[0].ecr = (1 << i);
                                /* Clear the corresponding EMR bits */
-                               ptr_edmacc_regs->emcr |= (1 << i);
+                               ptr_edmacc_regs->emcr = (1 << i);
                                /* Clear any SER */
-                               ptr_edmacc_regs->shadow[0].secr |= (1 << i);
-                               ptr_edmacc_regs->ccerrclr |= ((1 << 16) | 0x3);
+                               ptr_edmacc_regs->shadow[0].secr = (1 << i);
+                               ptr_edmacc_regs->ccerrclr = ((1 << 16) | 0x3);
                        }
                }
        }
@@ -1660,12 +1660,12 @@ void davinci_clean_channel(int ch_no)
                dev_dbg(&edma_dev.dev, "EMRH =%d\r\n", ptr_edmacc_regs->emrh);
                for (i = 0; i < 32; i++) {
                        if (ch_no == (i + 32)) {
-                               ptr_edmacc_regs->shadow[0].ecrh |= (1 << i);
+                               ptr_edmacc_regs->shadow[0].ecrh = (1 << i);
                                /* Clear the corresponding IPR bits */
-                               ptr_edmacc_regs->emcrh |= (1 << i);
+                               ptr_edmacc_regs->emcrh = (1 << i);
                                /* Clear any SER */
-                               ptr_edmacc_regs->shadow[0].secrh |= (1 << i);
-                               ptr_edmacc_regs->ccerrclr |= ((1 << 16) | 0x3);
+                               ptr_edmacc_regs->shadow[0].secrh = (1 << i);
+                               ptr_edmacc_regs->ccerrclr = ((1 << 16) | 0x3);
                        }
                }
        }
-- 
1.5.4.3


_______________________________________________
Davinci-linux-open-source mailing list
[email protected]
http://linux.davincidsp.com/mailman/listinfo/davinci-linux-open-source

Reply via email to