From patchwork Mon Jan 18 17:15:47 2010 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Bartlomiej Zolnierkiewicz X-Patchwork-Id: 43137 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.180.67]) by ozlabs.org (Postfix) with ESMTP id 574A8B7C63 for ; Tue, 19 Jan 2010 04:31:51 +1100 (EST) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1754544Ab0ARRRK (ORCPT ); Mon, 18 Jan 2010 12:17:10 -0500 Received: (majordomo@vger.kernel.org) by vger.kernel.org id S1754295Ab0ARRRH (ORCPT ); Mon, 18 Jan 2010 12:17:07 -0500 Received: from mail-ew0-f214.google.com ([209.85.219.214]:63659 "EHLO mail-ew0-f214.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1754463Ab0ARRRC (ORCPT ); Mon, 18 Jan 2010 12:17:02 -0500 Received: by mail-ew0-f214.google.com with SMTP id 6so3704658ewy.29 for ; Mon, 18 Jan 2010 09:17:01 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=gamma; h=domainkey-signature:received:received:from:to:cc:date:message-id :in-reply-to:references:subject; bh=yz7kDHU958ZtnoDHAgaz9h2MVmvk59+NkzlqWtrbLQA=; b=WxWprADLApLPnRNKt9GNArQTxahWqShHuLLZDOkIGqDku17cThKo3ucf7+i70xX6Nm SBA+gNOlNIsiv4TEM34uUheBOY4c9wai3MrJVAQdv1t4mn5vSqsq8x0VhWf/sxPMCmcj 8EHn9JhHfp6ac2udWIgS/URfRG6viIijMBlxo= DomainKey-Signature: a=rsa-sha1; c=nofws; d=gmail.com; s=gamma; h=from:to:cc:date:message-id:in-reply-to:references:subject; b=WqgV39j1fbF0UuOL06nr00LSI1Md93qO4XROIW+JEFuiJv+DD1NumMchkkOFDAPKnl JqbnTLe2CYP4MWl7/qnbsSsuKK9Y2Nz64Z5SlNNhNSbl1ZTWwSJVdDQt3swwrHd1ZUdZ 0uZirbQcPGDFvjHbV9diCsmyG6Z0wMsL8T4D4= Received: by 10.216.86.7 with SMTP id v7mr931748wee.203.1263835017284; Mon, 18 Jan 2010 09:16:57 -0800 (PST) Received: from ?127.0.0.1? (chello089079027028.chello.pl [89.79.27.28]) by mx.google.com with ESMTPS id i35sm8791885gve.26.2010.01.18.09.16.54 (version=TLSv1/SSLv3 cipher=RC4-MD5); Mon, 18 Jan 2010 09:16:55 -0800 (PST) From: Bartlomiej Zolnierkiewicz To: linux-ide@vger.kernel.org Cc: Bartlomiej Zolnierkiewicz , linux-kernel@vger.kernel.org Date: Mon, 18 Jan 2010 18:15:47 +0100 Message-Id: <20100118171547.14623.54536.sendpatchset@localhost> In-Reply-To: <20100118171349.14623.90030.sendpatchset@localhost> References: <20100118171349.14623.90030.sendpatchset@localhost> Subject: [PATCH 14/64] pata_cypress: fix PIO timings underclocking Sender: linux-ide-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-ide@vger.kernel.org From: Bartlomiej Zolnierkiewicz Subject: [PATCH] pata_cypress: fix PIO timings underclocking Timing registers should be programmed with the desired number of clocks minus one clock. Signed-off-by: Bartlomiej Zolnierkiewicz --- drivers/ata/pata_cypress.c | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) -- 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 Index: b/drivers/ata/pata_cypress.c =================================================================== --- a/drivers/ata/pata_cypress.c +++ b/drivers/ata/pata_cypress.c @@ -62,14 +62,16 @@ static void cy82c693_set_piomode(struct return; } - time_16 = clamp_val(t.recover, 0, 15) | (clamp_val(t.active, 0, 15) << 4); - time_8 = clamp_val(t.act8b, 0, 15) | (clamp_val(t.rec8b, 0, 15) << 4); + time_16 = clamp_val(t.recover - 1, 0, 15) | + (clamp_val(t.active - 1, 0, 15) << 4); + time_8 = clamp_val(t.act8b - 1, 0, 15) | + (clamp_val(t.rec8b - 1, 0, 15) << 4); if (adev->devno == 0) { pci_read_config_dword(pdev, CY82_IDE_ADDRSETUP, &addr); addr &= ~0x0F; /* Mask bits */ - addr |= clamp_val(t.setup, 0, 15); + addr |= clamp_val(t.setup - 1, 0, 15); pci_write_config_dword(pdev, CY82_IDE_ADDRSETUP, addr); pci_write_config_byte(pdev, CY82_IDE_MASTER_IOR, time_16); @@ -79,7 +81,7 @@ static void cy82c693_set_piomode(struct pci_read_config_dword(pdev, CY82_IDE_ADDRSETUP, &addr); addr &= ~0xF0; /* Mask bits */ - addr |= (clamp_val(t.setup, 0, 15) << 4); + addr |= (clamp_val(t.setup - 1, 0, 15) << 4); pci_write_config_dword(pdev, CY82_IDE_ADDRSETUP, addr); pci_write_config_byte(pdev, CY82_IDE_SLAVE_IOR, time_16);