From patchwork Thu Sep 17 23:02:31 2009 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: "Jung-Ik (John) Lee" X-Patchwork-Id: 33808 X-Patchwork-Delegate: davem@davemloft.net Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Received: from vger.kernel.org (vger.kernel.org [209.132.176.167]) by ozlabs.org (Postfix) with ESMTP id 146C3B7B69 for ; Fri, 18 Sep 2009 09:03:01 +1000 (EST) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1753395AbZIQXCx (ORCPT ); Thu, 17 Sep 2009 19:02:53 -0400 Received: (majordomo@vger.kernel.org) by vger.kernel.org id S1752428AbZIQXCx (ORCPT ); Thu, 17 Sep 2009 19:02:53 -0400 Received: from smtp-out.google.com ([216.239.45.13]:13937 "EHLO smtp-out.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751832AbZIQXCw (ORCPT ); Thu, 17 Sep 2009 19:02:52 -0400 Received: from wpaz1.hot.corp.google.com (wpaz1.hot.corp.google.com [172.24.198.65]) by smtp-out.google.com with ESMTP id n8HN2sie028687; Thu, 17 Sep 2009 16:02:54 -0700 DKIM-Signature: v=1; a=rsa-sha1; c=relaxed/relaxed; d=google.com; s=beta; t=1253228574; bh=LXcjjISMvILjJjOK5pqt+QY3zTE=; h=DomainKey-Signature:MIME-Version:From:Date:Message-ID:Subject:To: Cc:Content-Type:X-System-Of-Record; b=TwCnpi4XuJqqrnNuhAYgGktqKXnM 60jDHu65H/aelin2NZ48a6v8CFY4ftuY8jhDwVG1Z+2sU7l27wCF6cw/+Q== DomainKey-Signature: a=rsa-sha1; s=beta; d=google.com; c=nofws; q=dns; h=mime-version:from:date:message-id:subject:to:cc: content-type:x-system-of-record; b=QB8kxuSHPa1ukT7XEdmHHO0C6zTpbRsoCdmq9p9hkO6/8LWB0JsCgQccv77x+FMs3 QfGnM5a7BqkFL2W2JCffA== Received: from pzk1 (pzk1.prod.google.com [10.243.19.129]) by wpaz1.hot.corp.google.com with ESMTP id n8HN2pmt022255; Thu, 17 Sep 2009 16:02:52 -0700 Received: by pzk1 with SMTP id 1so393159pzk.13 for ; Thu, 17 Sep 2009 16:02:51 -0700 (PDT) MIME-Version: 1.0 Received: by 10.142.74.7 with SMTP id w7mr36492wfa.149.1253228571061; Thu, 17 Sep 2009 16:02:51 -0700 (PDT) From: "Jung-Ik (John) Lee" Date: Thu, 17 Sep 2009 16:02:31 -0700 Message-ID: <8b5805ff0909171602v3dc10db9i5920be3a2abf2e04@mail.gmail.com> Subject: [PATCH] libata:ide: Fix udma timings of pdc202xx_old controllers To: sshtylyov@ru.mvista.com, Bartlomiej Zolnierkiewicz Cc: Jeff Garzik , linux-ide@vger.kernel.org, linux-kernel@vger.kernel.org X-System-Of-Record: true Sender: linux-ide-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-ide@vger.kernel.org From: John(Jung-Ik) Lee Fix udma timings of pdc202xx_old controllers. MB=1, MC=1 (0x20, 0x01) for all UDMA modes of pdc2026{57}. Signed-off-by: John(Jung-Ik) Lee --- drivers/ata/pata_pdc202xx_old.c | 15 +++------------ drivers/ide/pdc202xx_old.c | 8 +++++--- 2 files changed, 8 insertions(+), 15 deletions(-) case XFER_MW_DMA_0: TB = 0xE0; TC = 0x0F; break; -- To unsubscribe from this list: send the line "unsubscribe linux-ide" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html diff --git a/drivers/ata/pata_pdc202xx_old.c b/drivers/ata/pata_pdc202xx_old.c index 2f3c9be..ae76a9e 100644 --- a/drivers/ata/pata_pdc202xx_old.c +++ b/drivers/ata/pata_pdc202xx_old.c @@ -97,14 +97,6 @@ static void pdc202xx_set_dmamode(struct ata_port *ap, struct ata_device *adev) { struct pci_dev *pdev = to_pci_dev(ap->host->dev); int port = 0x60 + 8 * ap->port_no + 4 * adev->devno; - static u8 udma_timing[6][2] = { - { 0x60, 0x03 }, /* 33 Mhz Clock */ - { 0x40, 0x02 }, - { 0x20, 0x01 }, - { 0x40, 0x02 }, /* 66 Mhz Clock */ - { 0x20, 0x01 }, - { 0x20, 0x01 } - }; static u8 mdma_timing[3][2] = { { 0xe0, 0x0f }, { 0x60, 0x04 }, @@ -119,10 +111,9 @@ static void pdc202xx_set_dmamode(struct ata_port *ap, struct ata_device *adev) r_cp &= ~0x0F; if (adev->dma_mode >= XFER_UDMA_0) { - int speed = adev->dma_mode - XFER_UDMA_0; - r_bp |= udma_timing[speed][0]; - r_cp |= udma_timing[speed][1]; - + /* MB=1, MC=1 for all UDMA modes of pdc2026{57} */ + r_bp |= 0x20; + r_cp |= 0x01; } else { int speed = adev->dma_mode - XFER_MW_DMA_0; r_bp |= mdma_timing[speed][0]; diff --git a/drivers/ide/pdc202xx_old.c b/drivers/ide/pdc202xx_old.c index cb812f3..95c58dd 100644 --- a/drivers/ide/pdc202xx_old.c +++ b/drivers/ide/pdc202xx_old.c @@ -51,11 +51,13 @@ static void pdc202xx_set_mode(ide_drive_t *drive, const u8 speed) switch(speed) { case XFER_UDMA_5: - case XFER_UDMA_4: TB = 0x20; TC = 0x01; break; - case XFER_UDMA_2: TB = 0x20; TC = 0x01; break; + case XFER_UDMA_4: case XFER_UDMA_3: - case XFER_UDMA_1: TB = 0x40; TC = 0x02; break; + case XFER_UDMA_2: + case XFER_UDMA_1: case XFER_UDMA_0: + /* MB=1, MC=1 for all UDMA modes of pdc2026{57} */ + TB = 0x20; TC = 0x01; break; case XFER_MW_DMA_2: TB = 0x60; TC = 0x03; break; case XFER_MW_DMA_1: TB = 0x60; TC = 0x04; break;