From: Bart Hartgers <bart.hartgers@gmail.com>
To: linux-kernel@vger.kernel.org, Jeff Garzik <jgarzik@pobox.com>
Cc: linux-ide@vger.kernel.org, Bart Hartgers <bart.hartgers@gmail.com>
Subject: [patch 1/2] sata_via: Correctly setup PIO/DMA for pata slave on vt6421.
Date: Sun, 17 Jan 2010 00:56:54 +0100 [thread overview]
Message-ID: <20100116235849.969478053@gmail.com> (raw)
In-Reply-To: 20100116235653.898098245@gmail.com
[-- Attachment #1: sata_via/vt6421-pata-slave.patch --]
[-- Type: text/plain, Size: 2077 bytes --]
Before only the timings for master were set. Datasheet can be found
here: ftp://ftp.vtbridge.org/Docs/Storage/DS_VT6421A_100_CCPL.PDF
Surprisingly, a slave drive works without this patch. According to the
datasheet, the controller by default derives the DMA mode from the
Set Features command issued to a drive. Not sure about the PIO
timings, though. The real problem is that the timings for the master
effectively are the ones tuned for the slave. If these support
different UDMA-settings, there is trouble, especially when the slave
supports a higher UDMA than the master.
Anyhow, using the same mechanism for both master and slave seems like
a good idea.
Signed-off-by: Bart Hartgers <bart.hartgers@gmail.com>
---
Index: linux-2.6.33-rc4/drivers/ata/sata_via.c
===================================================================
--- linux-2.6.33-rc4.orig/drivers/ata/sata_via.c 2010-01-16 22:28:13.000000000 +0100
+++ linux-2.6.33-rc4/drivers/ata/sata_via.c 2010-01-16 22:29:30.000000000 +0100
@@ -44,7 +44,7 @@
#include <linux/libata.h>
#define DRV_NAME "sata_via"
-#define DRV_VERSION "2.4"
+#define DRV_VERSION "2.5"
/*
* vt8251 is different from other sata controllers of VIA. It has two
@@ -392,14 +392,16 @@ static void vt6421_set_pio_mode(struct a
{
struct pci_dev *pdev = to_pci_dev(ap->host->dev);
static const u8 pio_bits[] = { 0xA8, 0x65, 0x65, 0x31, 0x20 };
- pci_write_config_byte(pdev, PATA_PIO_TIMING, pio_bits[adev->pio_mode - XFER_PIO_0]);
+ pci_write_config_byte(pdev, PATA_PIO_TIMING - adev->devno,
+ pio_bits[adev->pio_mode - XFER_PIO_0]);
}
static void vt6421_set_dma_mode(struct ata_port *ap, struct ata_device *adev)
{
struct pci_dev *pdev = to_pci_dev(ap->host->dev);
static const u8 udma_bits[] = { 0xEE, 0xE8, 0xE6, 0xE4, 0xE2, 0xE1, 0xE0, 0xE0 };
- pci_write_config_byte(pdev, PATA_UDMA_TIMING, udma_bits[adev->dma_mode - XFER_UDMA_0]);
+ pci_write_config_byte(pdev, PATA_UDMA_TIMING - adev->devno,
+ udma_bits[adev->dma_mode - XFER_UDMA_0]);
}
static const unsigned int svia_bar_sizes[] = {
--
next prev parent reply other threads:[~2010-01-16 23:58 UTC|newest]
Thread overview: 17+ messages / expand[flat|nested] mbox.gz Atom feed top
2010-01-16 23:56 [patch 0/2] sata_via: bugfixes for vt6420 and vt6421 Bart Hartgers
2010-01-16 23:56 ` Bart Hartgers [this message]
2010-01-20 3:33 ` [patch 1/2] sata_via: Correctly setup PIO/DMA for pata slave on vt6421 Tejun Heo
2010-01-20 19:35 ` Jeff Garzik
2010-01-16 23:56 ` [patch 2/2] sata_via: Delay on vt6420 when starting ATAPI DMA write Bart Hartgers
2010-01-20 3:30 ` Tejun Heo
2010-01-20 4:53 ` Robert Hancock
2010-01-20 6:33 ` Bart Hartgers
2010-01-20 6:33 ` Bart Hartgers
2010-01-20 6:54 ` Tejun Heo
2010-01-20 10:43 ` Bart Hartgers
2010-01-20 10:43 ` Bart Hartgers
2010-01-20 6:44 ` Bart Hartgers
2010-01-20 6:44 ` Bart Hartgers
2010-01-20 6:55 ` Tejun Heo
2010-02-13 22:47 ` Jeff Garzik
2010-02-14 11:20 ` Bart Hartgers
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20100116235849.969478053@gmail.com \
--to=bart.hartgers@gmail.com \
--cc=jgarzik@pobox.com \
--cc=linux-ide@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.