All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH 0/4] libata patches for 2.6.30
@ 2009-03-24 10:21 Alan Cox
  2009-03-24 10:21 ` [PATCH 1/4] pata_artop: Serializing support Alan Cox
                   ` (3 more replies)
  0 siblings, 4 replies; 9+ messages in thread
From: Alan Cox @ 2009-03-24 10:21 UTC (permalink / raw)
  To: jeff, linux-kernel, linux-ide

Just a small set but the libata stuff is fairly important
---

Alan Cox (4):
      libata: Improve timeout handling
      libata: Drain data on errors
      pata_sc1200: Activate secondary channel
      pata_artop: Serializing support


 block/blk-settings.c       |    2 -
 drivers/ata/libata-eh.c    |   19 ++++++++-
 drivers/ata/libata-sff.c   |   91 +++++++++++++++++++++++++++++++++++++++++++-
 drivers/ata/pata_artop.c   |   33 +++++++++++++---
 drivers/ata/pata_isapnp.c  |   12 +++++-
 drivers/ata/pata_pcmcia.c  |   34 ++++++++++++++++
 drivers/ata/pata_sc1200.c  |   29 +++++++++++++-
 drivers/ata/pdc_adma.c     |    2 +
 drivers/ata/sata_mv.c      |    2 +
 drivers/ata/sata_nv.c      |    1 
 drivers/ata/sata_promise.c |    2 +
 drivers/ata/sata_qstor.c   |    1 
 drivers/ata/sata_vsc.c     |    3 +
 include/linux/libata.h     |    5 ++
 14 files changed, 219 insertions(+), 17 deletions(-)

-- 
If this writing is visible please refill and remember to order a new box of
signature files from your supplier


^ permalink raw reply	[flat|nested] 9+ messages in thread
* [PATCH 1/4] pata_artop: Serializing support
@ 2009-03-24 10:19 Alan Cox
  0 siblings, 0 replies; 9+ messages in thread
From: Alan Cox @ 2009-03-24 10:19 UTC (permalink / raw)
  To: jeff, linux-kernel, linux-ide

From: Alan Cox <alan@redhat.com>

Enable both ports on the 6210 and serialize them

Signed-off-by: Alan Cox <alan@redhat.com>
---

 block/blk-settings.c     |    2 +-
 drivers/ata/pata_artop.c |   33 +++++++++++++++++++++++++++------
 2 files changed, 28 insertions(+), 7 deletions(-)


diff --git a/block/blk-settings.c b/block/blk-settings.c
index 59fd05d..69c42ad 100644
--- a/block/blk-settings.c
+++ b/block/blk-settings.c
@@ -431,7 +431,7 @@ EXPORT_SYMBOL(blk_queue_segment_boundary);
  *
  * description:
  *    set required memory and length alignment for direct dma transactions.
- *    this is used when buiding direct io requests for the queue.
+ *    this is used when building direct io requests for the queue.
  *
  **/
 void blk_queue_dma_alignment(struct request_queue *q, int mask)
diff --git a/drivers/ata/pata_artop.c b/drivers/ata/pata_artop.c
index 6b3092c..eee4287 100644
--- a/drivers/ata/pata_artop.c
+++ b/drivers/ata/pata_artop.c
@@ -12,7 +12,6 @@
  *		performance Alessandro Zummo <alessandro.zummo@towertech.it>
  *
  *	TODO
- *	850 serialization once the core supports it
  *	Investigate no_dsc on 850R
  *	Clock detect
  */
@@ -29,7 +28,7 @@
 #include <linux/ata.h>
 
 #define DRV_NAME	"pata_artop"
-#define DRV_VERSION	"0.4.4"
+#define DRV_VERSION	"0.4.5"
 
 /*
  *	The ARTOP has 33 Mhz and "over clocked" timing tables. Until we
@@ -283,6 +282,31 @@ static void artop6260_set_dmamode (struct ata_port *ap, struct ata_device *adev)
 	pci_write_config_byte(pdev, 0x44 + ap->port_no, ultra);
 }
 
+/**
+ *	artop_6210_qc_defer	-	implement serialization
+ *	@qc: command
+ *
+ *	Issue commands per host on this chip.
+ */
+
+static int artop6210_qc_defer(struct ata_queued_cmd *qc)
+{
+	struct ata_host *host = qc->ap->host;
+	struct ata_port *alt = host->ports[1 ^ qc->ap->port_no];
+	int rc;
+
+	/* First apply the usual rules */
+	rc = ata_std_qc_defer(qc);
+	if (rc != 0)
+		return rc;
+
+	/* Now apply serialization rules. Only allow a command if the
+	   other channel state machine is idle */
+	if (alt && alt->qc_active)
+		return	ATA_DEFER_PORT;
+	return 0;
+}
+
 static struct scsi_host_template artop_sht = {
 	ATA_BMDMA_SHT(DRV_NAME),
 };
@@ -293,6 +317,7 @@ static struct ata_port_operations artop6210_ops = {
 	.set_piomode		= artop6210_set_piomode,
 	.set_dmamode		= artop6210_set_dmamode,
 	.prereset		= artop6210_pre_reset,
+	.qc_defer		= artop6210_qc_defer,
 };
 
 static struct ata_port_operations artop6260_ops = {
@@ -362,12 +387,8 @@ static int artop_init_one (struct pci_dev *pdev, const struct pci_device_id *id)
 
 	if (id->driver_data == 0) {	/* 6210 variant */
 		ppi[0] = &info_6210;
-		ppi[1] = &ata_dummy_port_info;
 		/* BIOS may have left us in UDMA, clear it before libata probe */
 		pci_write_config_byte(pdev, 0x54, 0);
-		/* For the moment (also lacks dsc) */
-		printk(KERN_WARNING "ARTOP 6210 requires serialize functionality not yet supported by libata.\n");
-		printk(KERN_WARNING "Secondary ATA ports will not be activated.\n");
 	}
 	else if (id->driver_data == 1)	/* 6260 */
 		ppi[0] = &info_626x;

^ permalink raw reply related	[flat|nested] 9+ messages in thread

end of thread, other threads:[~2009-03-25  2:51 UTC | newest]

Thread overview: 9+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2009-03-24 10:21 [PATCH 0/4] libata patches for 2.6.30 Alan Cox
2009-03-24 10:21 ` [PATCH 1/4] pata_artop: Serializing support Alan Cox
2009-03-25  2:46   ` Jeff Garzik
2009-03-24 10:22 ` [PATCH 2/4] pata_sc1200: Activate secondary channel Alan Cox
2009-03-24 10:23 ` [PATCH 3/4] libata: Drain data on errors Alan Cox
2009-03-25  2:48   ` Jeff Garzik
2009-03-24 10:23 ` [PATCH 4/4] libata: Improve timeout handling Alan Cox
2009-03-25  2:51   ` Jeff Garzik
  -- strict thread matches above, loose matches on Subject: below --
2009-03-24 10:19 [PATCH 1/4] pata_artop: Serializing support Alan Cox

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.