<feed xmlns='http://www.w3.org/2005/Atom'>
<title>linux/drivers/ata/sata_mv.c, branch v2.6.39-rc2</title>
<subtitle>Linux Kernel (branches are rebased on master from time to time)</subtitle>
<id>https://sre.ring0.de/linux/atom?h=v2.6.39-rc2</id>
<link rel='self' href='https://sre.ring0.de/linux/atom?h=v2.6.39-rc2'/>
<link rel='alternate' type='text/html' href='https://sre.ring0.de/linux/'/>
<updated>2011-03-02T07:36:46Z</updated>
<entry>
<title>libata: remove ATA_FLAG_NO_LEGACY</title>
<updated>2011-03-02T07:36:46Z</updated>
<author>
<name>Sergei Shtylyov</name>
<email>sshtylyov@ru.mvista.com</email>
</author>
<published>2011-02-04T19:05:48Z</published>
<link rel='alternate' type='text/html' href='https://sre.ring0.de/linux/commit/?id=9cbe056f6c467e7395d5aec39aceec47812eb98e'/>
<id>urn:sha1:9cbe056f6c467e7395d5aec39aceec47812eb98e</id>
<content type='text'>
All checks of ATA_FLAG_NO_LEGACY have been removed by the commits
c791c30670ea61f19eec390124128bf278e854fe ([libata] minor PCI IDE probe
fixes and cleanups) and f0d36efdc624beb3d9e29b9ab9e9537bf0f25d5b (libata:
update libata core layer to use devres), so I think it's time to finally
get rid of this flag...

Signed-off-by: Sergei Shtylyov &lt;sshtylyov@ru.mvista.com&gt;
Signed-off-by: Jeff Garzik &lt;jgarzik@redhat.com&gt;
</content>
</entry>
<entry>
<title>libata: remove ATA_FLAG_MMIO</title>
<updated>2011-03-02T07:36:46Z</updated>
<author>
<name>Sergei Shtylyov</name>
<email>sshtylyov@ru.mvista.com</email>
</author>
<published>2011-02-04T19:04:17Z</published>
<link rel='alternate' type='text/html' href='https://sre.ring0.de/linux/commit/?id=3696df309971b3427cb9cb039138a1732a865a0b'/>
<id>urn:sha1:3696df309971b3427cb9cb039138a1732a865a0b</id>
<content type='text'>
Commit 0d5ff566779f894ca9937231a181eb31e4adff0e (libata: convert to iomap)
removed all checks of ATA_FLAG_MMIO but neglected to remove the flag itself.
Do it now, at last...

Signed-off-by: Sergei Shtylyov &lt;sshtylyov@ru.mvista.com&gt;
Signed-off-by: Jeff Garzik &lt;jgarzik@redhat.com&gt;
</content>
</entry>
<entry>
<title>libata: always use ata_qc_complete_multiple() for NCQ command completions</title>
<updated>2010-10-22T00:21:03Z</updated>
<author>
<name>Tejun Heo</name>
<email>tj@kernel.org</email>
</author>
<published>2010-06-25T13:03:34Z</published>
<link rel='alternate' type='text/html' href='https://sre.ring0.de/linux/commit/?id=1aadf5c3bbbbb0db09dcb5aa26c61326e0d3e9e7'/>
<id>urn:sha1:1aadf5c3bbbbb0db09dcb5aa26c61326e0d3e9e7</id>
<content type='text'>
Currently, sata_fsl, mv and nv call ata_qc_complete() multiple times
from their interrupt handlers to indicate completion of NCQ commands.
This limits the visibility the libata core layer has into how commands
are being executed and completed, which is necessary to support IRQ
expecting in generic way.  libata already has an interface to complete
multiple commands at once - ata_qc_complete_multiple() which ahci and
sata_sil24 already use.

This patch updates the three drivers to use ata_qc_complete_multiple()
too and updates comments on ata_qc_complete[_multiple]() regarding
their usages with NCQ completions.  This change not only provides
better visibility into command execution to the core layer but also
simplifies low level drivers.

* sata_fsl: It already builds done_mask.  Conversion is straight
  forward.

* sata_mv: mv_process_crpb_response() no longer checks for illegal
  completions, it just returns whether the tag is completed or not.
  mv_process_crpb_entries() builds done_mask from it and passes it to
  ata_qc_complete_multiple() which will check for illegal completions.

* sata_nv adma: Similar to sata_mv.  nv_adma_check_cpb() now just
  returns the tag status and nv_adma_interrupt() builds done_mask from
  it and passes it to ata_qc_complete_multiple().

* sata_nv swncq: It already builds done_mask.  Drop unnecessary
  illegal transition checks and call ata_qc_complete_multiple().

In the long run, it might be a good idea to make ata_qc_complete()
whine if called when multiple NCQ commands are in flight.

Signed-off-by: Tejun Heo &lt;tj@kernel.org&gt;
Cc: Ashish Kalra &lt;ashish.kalra@freescale.com&gt;
Cc: Saeed Bishara &lt;saeed@marvell.com&gt;
Cc: Mark Lord &lt;liml@rtr.ca&gt;
Cc: Robert Hancock &lt;hancockr@shaw.ca&gt;
Signed-off-by: Jeff Garzik &lt;jgarzik@redhat.com&gt;
</content>
</entry>
<entry>
<title>libata-sff: Reenable Port Multiplier after libata-sff remodeling.</title>
<updated>2010-09-10T02:31:55Z</updated>
<author>
<name>Gwendal Grignou</name>
<email>gwendal@google.com</email>
</author>
<published>2010-08-31T23:20:36Z</published>
<link rel='alternate' type='text/html' href='https://sre.ring0.de/linux/commit/?id=ea3c64506ea7965f86f030155e6fdef381de10e2'/>
<id>urn:sha1:ea3c64506ea7965f86f030155e6fdef381de10e2</id>
<content type='text'>
Keep track of the link on the which the current request is in progress.
It allows support of links behind port multiplier.

Not all libata-sff is PMP compliant. Code for native BMDMA controller
does not take in accound PMP.

Tested on Marvell 7042 and Sil7526.

Signed-off-by: Gwendal Grignou &lt;gwendal@google.com&gt;
Signed-off-by: Jeff Garzik &lt;jgarzik@redhat.com&gt;
</content>
</entry>
<entry>
<title>sata_mv: fix broken DSM/TRIM support (v2)</title>
<updated>2010-08-25T23:24:16Z</updated>
<author>
<name>Mark Lord</name>
<email>kernel@teksavvy.com</email>
</author>
<published>2010-08-20T01:40:44Z</published>
<link rel='alternate' type='text/html' href='https://sre.ring0.de/linux/commit/?id=44b733809a5aba7f6b15a548d31a56d25bf3851c'/>
<id>urn:sha1:44b733809a5aba7f6b15a548d31a56d25bf3851c</id>
<content type='text'>
Fix DSM/TRIM commands in sata_mv (v2).
These need to be issued using old-school "BM DMA",
rather than via the EDMA host queue.

Since the chips don't have proper BM DMA status,
we need to be more careful with setting the ATA_DMA_INTR bit,
since DSM/TRIM often has a long delay between "DMA complete"
and "command complete".

GEN_I chips don't have BM DMA, so no TRIM for them.

Signed-off-by: Mark Lord &lt;mlord@pobox.com&gt;
Signed-off-by: Jeff Garzik &lt;jgarzik@redhat.com&gt;
Cc: stable@kernel.org
</content>
</entry>
<entry>
<title>sata_fsl,mv,nv: prepare for NCQ command completion update</title>
<updated>2010-08-01T23:46:48Z</updated>
<author>
<name>Tejun Heo</name>
<email>tj@kernel.org</email>
</author>
<published>2010-06-25T13:02:59Z</published>
<link rel='alternate' type='text/html' href='https://sre.ring0.de/linux/commit/?id=752e386c247664152f2cce37915d1f50631d7f42'/>
<id>urn:sha1:752e386c247664152f2cce37915d1f50631d7f42</id>
<content type='text'>
Make the following changes to prepare for NCQ command completion
update.  Changes made by this patch don't cause any functional
difference.

* sata_fsl_host_intr(): rename the local variable qc_active to
  done_mask as that's what it is.

* mv_process_crpb_response(): restructure if clause for easier update.

* nv_adma_interrupt(): drop unnecessary error variable.

* nv_swncq_sdbfis(): drop unnecessary nr_done and return 0 on success.
  Typo fix.

* nv_swncq_dmafis(): drop unused return value and return void.

* nv_swncq_host_interrupt(): drop unnecessary return value handling.

Signed-off-by: Tejun Heo &lt;tj@kernel.org&gt;
Cc: Ashish Kalra &lt;ashish.kalra@freescale.com&gt;
Cc: Saeed Bishara &lt;saeed@marvell.com&gt;
Cc: Mark Lord &lt;liml@rtr.ca&gt;
Cc: Robert Hancock &lt;hancockr@shaw.ca&gt;
Signed-off-by: Jeff Garzik &lt;jgarzik@redhat.com&gt;
</content>
</entry>
<entry>
<title>libata-sff: separate out BMDMA irq handler</title>
<updated>2010-05-25T23:40:24Z</updated>
<author>
<name>Tejun Heo</name>
<email>tj@kernel.org</email>
</author>
<published>2010-05-19T20:10:21Z</published>
<link rel='alternate' type='text/html' href='https://sre.ring0.de/linux/commit/?id=c3b2889424c26f3b42962b6f39aabb4f1fd1b576'/>
<id>urn:sha1:c3b2889424c26f3b42962b6f39aabb4f1fd1b576</id>
<content type='text'>
Separate out BMDMA irq handler from SFF irq handler.  The misnamed
host_intr() functions are renamed to ata_sff_port_intr() and
ata_bmdma_port_intr().  Common parts are factored into
__ata_sff_port_intr() and __ata_sff_interrupt() and used by sff and
bmdma interrupt routines.

All BMDMA drivers now use ata_bmdma_interrupt() or
ata_bmdma_port_intr() while all non-BMDMA SFF ones use
ata_sff_interrupt() or ata_sff_port_intr().

For now, ata_pci_sff_init_one() uses ata_bmdma_interrupt() as it's
used by both SFF and BMDMA drivers.

Signed-off-by: Tejun Heo &lt;tj@kernel.org&gt;
Signed-off-by: Jeff Garzik &lt;jgarzik@redhat.com&gt;
</content>
</entry>
<entry>
<title>sata_mv: drop unncessary EH callback resetting</title>
<updated>2010-05-25T23:40:15Z</updated>
<author>
<name>Tejun Heo</name>
<email>tj@kernel.org</email>
</author>
<published>2010-05-19T20:10:19Z</published>
<link rel='alternate' type='text/html' href='https://sre.ring0.de/linux/commit/?id=2f20ccf8190b064468cb2c7ba92e757ae37e61b1'/>
<id>urn:sha1:2f20ccf8190b064468cb2c7ba92e757ae37e61b1</id>
<content type='text'>
Now that BMDMA EH ops are separated out from SFF ops, mv5_ops doesn't
have to explicitly reset -&gt;error_handler() and -&gt;post_internal_cmd().
Drop them.

Signed-off-by: Tejun Heo &lt;tj@kernel.org&gt;
Signed-off-by: Jeff Garzik &lt;jgarzik@redhat.com&gt;
</content>
</entry>
<entry>
<title>libata-sff: separate out BMDMA qc_issue</title>
<updated>2010-05-19T17:38:55Z</updated>
<author>
<name>Tejun Heo</name>
<email>tj@kernel.org</email>
</author>
<published>2010-05-10T19:41:42Z</published>
<link rel='alternate' type='text/html' href='https://sre.ring0.de/linux/commit/?id=360ff7833098e944e5003618b03894251e937802'/>
<id>urn:sha1:360ff7833098e944e5003618b03894251e937802</id>
<content type='text'>
Separate out ata_bmdma_qc_issue() from ata_sff_qc_issue() such that
ata_sff_qc_issue() only deals with non-BMDMA SFF protocols (PIO and
nodata) while ata_bmdma_qc_issue() deals with the BMDMA protocols and
uses ata_sff_qc_issue() for non-DMA commands.  All the users are
updated accordingly.

Signed-off-by: Tejun Heo &lt;tj@kernel.org&gt;
Signed-off-by: Jeff Garzik &lt;jgarzik@redhat.com&gt;
</content>
</entry>
<entry>
<title>libata-sff: port_task is SFF specific</title>
<updated>2010-05-19T17:35:49Z</updated>
<author>
<name>Tejun Heo</name>
<email>tj@kernel.org</email>
</author>
<published>2010-05-10T19:41:38Z</published>
<link rel='alternate' type='text/html' href='https://sre.ring0.de/linux/commit/?id=c429137a67b82788d24682153bb9c96501a9ef34'/>
<id>urn:sha1:c429137a67b82788d24682153bb9c96501a9ef34</id>
<content type='text'>
port_task is tightly bound to the standard SFF PIO HSM implementation.
Using it for any other purpose would be error-prone and there's no
such user and if some drivers need such feature, it would be much
better off using its own.  Move it inside CONFIG_ATA_SFF and rename it
to sff_pio_task.

The only function which is exposed to the core layer is
ata_sff_flush_pio_task() which is renamed from ata_port_flush_task()
and now also takes care of resetting hsm_task_state to HSM_ST_IDLE,
which is possible as it's now specific to PIO HSM.

Signed-off-by: Tejun Heo &lt;tj@kernel.org&gt;
Signed-off-by: Jeff Garzik &lt;jgarzik@redhat.com&gt;
</content>
</entry>
</feed>
