Re: omap3evm LCD red-tint workaround

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 




Op 2 nov 2008, om 20:56 heeft Grazvydas Ignotas het volgende geschreven:

PS: TS is still unusable with the 16x16 pixel resolution
This is also the case for Pandora. The patch below fixes the problem,
but as I have no other boards to test this on, I haven't sent it.
See if it helps you.

This fixes the problem on the EVM as well, thanks!

regards,

Koen





From 91f3af26bbf751b846e6265d86387e81be7c1364 Mon Sep 17 00:00:00 2001
From: Grazvydas Ignotas <notasas@xxxxxxxxx>
Date: Tue, 28 Oct 2008 22:01:42 +0200
Subject: [PATCH] OMAP3: fix McSPI transfers

Currently on OMAP3 if both write and read is set up for a transfer,
the first byte returned on read is corrupted. Work around this by
disabling channel between reads and writes, instead of transfers.
---
drivers/spi/omap2_mcspi.c |    7 ++++---
1 files changed, 4 insertions(+), 3 deletions(-)

diff --git a/drivers/spi/omap2_mcspi.c b/drivers/spi/omap2_mcspi.c
index 454a271..4890b6c 100644
--- a/drivers/spi/omap2_mcspi.c
+++ b/drivers/spi/omap2_mcspi.c
@@ -710,7 +710,6 @@ static void omap2_mcspi_work(struct work_struct *work)
		spi = m->spi;
		cs = spi->controller_state;

-		omap2_mcspi_set_enable(spi, 1);
		list_for_each_entry(t, &m->transfers, transfer_list) {
			if (t->tx_buf == NULL && t->rx_buf == NULL && t->len) {
				status = -EINVAL;
@@ -741,6 +740,8 @@ static void omap2_mcspi_work(struct work_struct *work)
			if (t->len) {
				unsigned	count;

+				omap2_mcspi_set_enable(spi, 1);
+
				/* RX_ONLY mode needs dummy data in TX reg */
				if (t->tx_buf == NULL)
					__raw_writel(0, cs->base
@@ -752,6 +753,8 @@ static void omap2_mcspi_work(struct work_struct *work)
					count = omap2_mcspi_txrx_pio(spi, t);
				m->actual_length += count;

+				omap2_mcspi_set_enable(spi, 0);
+
				if (count != t->len) {
					status = -EIO;
					break;
@@ -777,8 +780,6 @@ static void omap2_mcspi_work(struct work_struct *work)
		if (cs_active)
			omap2_mcspi_force_cs(spi, 0);

-		omap2_mcspi_set_enable(spi, 0);
-
		m->status = status;
		m->complete(m->context);

--
1.5.4.3

--
To unsubscribe from this list: send the line "unsubscribe linux- omap" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Attachment: PGP.sig
Description: This is a digitally signed message part


[Index of Archives]     [Linux Arm (vger)]     [ARM Kernel]     [ARM MSM]     [Linux Tegra]     [Linux WPAN Networking]     [Linux Wireless Networking]     [Maemo Users]     [Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Yosemite Trails]     [Linux Kernel]     [Linux SCSI]

  Powered by Linux