Skip to contentSkip to conversation

ARM: OMAP: hsmmc requires data reset after data timeout

PATCH In review Adrian Hunter 2 participants 3 messages Oct 16, 2008 – Oct 28, 2008

Subsystems (2)
lore
Share & tools
lore
#0 lore raw

PATCH 1/3 ARM: OMAP: hsmmc requires data reset after data timeout

According to TRM a software reset SRD after data timeout is required.

---
drivers/mmc/host/omap_hsmmc.c | 5 +++++

1 files changed, 5 insertions(+), 0 deletions(-)
drivers/mmc/host/omap_hsmmc.c +0 -0
index 00b1b68..8fb677e 100644
@@ -417,6 +417,11 @@ static irqreturn_t mmc_omap_irq(int irq, void *dev_id)
					mmc_dma_cleanup(host);
				else
					host->data->error = -EILSEQ;

+ OMAP_HSMMC_WRITE(host->base, SYSCTL,
+ OMAP_HSMMC_READ(host->base,
+ SYSCTL) | SRD);
+ while (OMAP_HSMMC_READ(host->base,

+							SYSCTL) & SRD) ;
				end_trans = 1;
			}
		}
Signature · 1 line
1.5.4.3
#1 lore raw
Quoted 14 lines · Adrian Hunter

According to TRM a software reset SRD after data timeout is required.

---
drivers/mmc/host/omap_hsmmc.c | 5 +++++

1 files changed, 5 insertions(+), 0 deletions(-)
drivers/mmc/host/omap_hsmmc.c +0 -0
index 00b1b68..8fb677e 100644
@@ -417,6 +417,11 @@ static irqreturn_t mmc_omap_irq(int irq, void *dev_id)
                    mmc_dma_cleanup(host);

drivers/mmc/host/omap_hsmmc.c static irqreturn_t mmc_omap_irq(int irq, void *dev_id) · line 427

Quoted 10 lines
drivers/mmc/host/omap_hsmmc.c +5 -0
                else
                    host->data->error = -EILSEQ;
+                OMAP_HSMMC_WRITE(host->base, SYSCTL,
+                    OMAP_HSMMC_READ(host->base,
+                            SYSCTL) | SRD);
+                while (OMAP_HSMMC_READ(host->base,
+                            SYSCTL) & SRD) ;
                end_trans = 1;
            }
        }

Can this and my other 2 patches be applied?

#2 lore raw
Quoted 19 lines · Adrian Hunter
Quoted 18 lines · Adrian Hunter

According to TRM a software reset SRD after data timeout is required.

---
drivers/mmc/host/omap_hsmmc.c | 5 +++++

1 files changed, 5 insertions(+), 0 deletions(-)
drivers/mmc/host/omap_hsmmc.c +2 -0
index 00b1b68..8fb677e 100644
@@ -417,6 +417,11 @@ static irqreturn_t mmc_omap_irq(int irq, void *dev_id)
                    mmc_dma_cleanup(host);
                else
                    host->data->error = -EILSEQ;
+                OMAP_HSMMC_WRITE(host->base, SYSCTL,
+                    OMAP_HSMMC_READ(host->base,
Quoted 8 lines

drivers/mmc/host/omap_hsmmc.c static irqreturn_t mmc_omap_irq(int irq, void *dev_id) · line 427

Quoted 6 lines
drivers/mmc/host/omap_hsmmc.c +3 -0
+                            SYSCTL) | SRD);
+                while (OMAP_HSMMC_READ(host->base,
+                            SYSCTL) & SRD) ;
                end_trans = 1;
            }
        }

Can this and my other 2 patches be applied?

OK, I really want this driver out of the l-o list and submitted via Pierre. So only fixes at this point.. But I guess these can be considered fixes, so I'll push them.

BTW, I'll have some patches coming up for the hsmmc.c init to prepare that for mainline.

Regards,

Tony