From patchwork Thu Jun 23 02:00:10 2011 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: dirk.brandewie@gmail.com X-Patchwork-Id: 907782 Received: from lists.sourceforge.net (lists.sourceforge.net [216.34.181.88]) by demeter2.kernel.org (8.14.4/8.14.4) with ESMTP id p5N21214023400 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=NO) for ; Thu, 23 Jun 2011 02:01:22 GMT Received: from localhost ([127.0.0.1] helo=sfs-ml-4.v29.ch3.sourceforge.com) by sfs-ml-4.v29.ch3.sourceforge.com with esmtp (Exim 4.76) (envelope-from ) id 1QZZE5-0006KV-Sr; Thu, 23 Jun 2011 02:01:01 +0000 Received: from sog-mx-4.v43.ch3.sourceforge.com ([172.29.43.194] helo=mx.sourceforge.net) by sfs-ml-4.v29.ch3.sourceforge.com with esmtp (Exim 4.76) (envelope-from ) id 1QZZE4-0006Jt-Lq for spi-devel-general@lists.sourceforge.net; Thu, 23 Jun 2011 02:01:00 +0000 Received-SPF: pass (sog-mx-4.v43.ch3.sourceforge.com: domain of gmail.com designates 74.125.83.175 as permitted sender) client-ip=74.125.83.175; envelope-from=dirk.brandewie@gmail.com; helo=mail-pv0-f175.google.com; Received: from mail-pv0-f175.google.com ([74.125.83.175]) by sog-mx-4.v43.ch3.sourceforge.com with esmtps (TLSv1:RC4-SHA:128) (Exim 4.76) id 1QZZE3-0000CE-UQ for spi-devel-general@lists.sourceforge.net; Thu, 23 Jun 2011 02:01:00 +0000 Received: by pvf24 with SMTP id 24so1239173pvf.34 for ; Wed, 22 Jun 2011 19:00:54 -0700 (PDT) Received: by 10.68.40.69 with SMTP id v5mr826712pbk.148.1308794454038; Wed, 22 Jun 2011 19:00:54 -0700 (PDT) Received: from localhost.localdomain (static-50-43-44-248.bvtn.or.frontiernet.net [50.43.44.248]) by mx.google.com with ESMTPS id u6sm846417pbh.80.2011.06.22.19.00.53 (version=TLSv1/SSLv3 cipher=OTHER); Wed, 22 Jun 2011 19:00:53 -0700 (PDT) From: dirk.brandewie@gmail.com To: linux-kernel@vger.kernel.org, spi-devel-general@lists.sourceforge.net Subject: [PATCH 08/11] spi-dw: Ensure fifo lenght is set. Date: Wed, 22 Jun 2011 19:00:10 -0700 Message-Id: <1308794413-11069-9-git-send-email-dirk.brandewie@gmail.com> X-Mailer: git-send-email 1.7.3.4 In-Reply-To: <1308794413-11069-1-git-send-email-dirk.brandewie@gmail.com> References: <1308794413-11069-1-git-send-email-dirk.brandewie@gmail.com> X-Spam-Score: -1.6 (-) X-Spam-Report: Spam Filtering performed by mx.sourceforge.net. See http://spamassassin.org/tag/ for more details. -1.5 SPF_CHECK_PASS SPF reports sender host as permitted sender for sender-domain 0.0 FREEMAIL_FROM Sender email is freemail (dirk.brandewie[at]gmail.com) -0.0 SPF_PASS SPF: sender matches SPF record -0.1 DKIM_VALID_AU Message has a valid DKIM or DK signature from author's domain 0.1 DKIM_SIGNED Message has a DKIM or DK signature, not necessarily valid -0.1 DKIM_VALID Message has at least one valid DKIM or DK signature 0.0 RFC_ABUSE_POST Both abuse and postmaster missing on sender domain 0.0 T_TO_NO_BRKTS_FREEMAIL T_TO_NO_BRKTS_FREEMAIL -0.0 AWL AWL: From: address is in the auto white-list X-Headers-End: 1QZZE3-0000CE-UQ Cc: Dirk Brandewie X-BeenThere: spi-devel-general@lists.sourceforge.net X-Mailman-Version: 2.1.9 Precedence: list List-Id: Linux SPI core/device drivers discussion List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , MIME-Version: 1.0 Errors-To: spi-devel-general-bounces@lists.sourceforge.net X-Greylist: IP, sender and recipient auto-whitelisted, not delayed by milter-greylist-4.2.6 (demeter2.kernel.org [140.211.167.43]); Thu, 23 Jun 2011 02:01:23 +0000 (UTC) From: Dirk Brandewie Bug on fifo_len not being set. The fifo sizing routine does not work since the txfltr register can not be written while the controller is enabled. The max value of txfltr can be larger than the fifo. The register allows values upto 0x3f (63) the fifo depth on the Intel SOC's if 40 Signed-off-by: Dirk Brandewie --- drivers/spi/spi-dw.c | 18 ++---------------- 1 files changed, 2 insertions(+), 16 deletions(-) diff --git a/drivers/spi/spi-dw.c b/drivers/spi/spi-dw.c index ad92826..cc38aa0 100644 --- a/drivers/spi/spi-dw.c +++ b/drivers/spi/spi-dw.c @@ -776,25 +776,11 @@ static int destroy_queue(struct spi_dw *dws) /* Restart the controller, disable all interrupts, clean rx fifo */ static void spi_dw_hw_init(struct spi_dw *dws) { + BUG_ON(!dws->fifo_len); + spi_dw_disable(dws); spi_dw_mask_intr(dws, 0xff); spi_dw_enable(dws); - - /* - * Try to detect the FIFO depth if not set by interface driver, - * the depth could be from 2 to 256 from HW spec - */ - if (!dws->fifo_len) { - u32 fifo; - for (fifo = 2; fifo <= 257; fifo++) { - dw_writew(dws, txfltr, fifo); - if (fifo != dw_readw(dws, txfltr)) - break; - } - - dws->fifo_len = (fifo == 257) ? 0 : fifo; - dw_writew(dws, txfltr, 0); - } } int __devinit spi_dw_add_host(struct spi_dw *dws)