<feed xmlns='http://www.w3.org/2005/Atom'>
<title>kernel.git/drivers/scsi/esp_scsi.c, branch linux-4.4.y</title>
<subtitle>Hosts the 0x221E linux distro kernel.
</subtitle>
<id>https://git.0xinfinity.dev/distro/kernel.git/atom?h=linux-4.4.y</id>
<link rel='self' href='https://git.0xinfinity.dev/distro/kernel.git/atom?h=linux-4.4.y'/>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/'/>
<updated>2018-11-21T08:27:32Z</updated>
<entry>
<title>scsi: esp_scsi: Track residual for PIO transfers</title>
<updated>2018-11-21T08:27:32Z</updated>
<author>
<name>Finn Thain</name>
</author>
<published>2018-10-16T05:31:25Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=8c00d5d73231196555032000d25be65a149938a7'/>
<id>urn:sha1:8c00d5d73231196555032000d25be65a149938a7</id>
<content type='text'>
[ Upstream commit fd47d919d0c336e7c22862b51ee94927ffea227a ]

If a target disconnects during a PIO data transfer the command may fail
when the target reconnects:

scsi host1: DMA length is zero!
scsi host1: cur adr[04380000] len[00000000]

The scsi bus is then reset. This happens because the residual reached
zero before the transfer was completed.

The usual residual calculation relies on the Transfer Count registers.
That works for DMA transfers but not for PIO transfers. Fix the problem
by storing the PIO transfer residual and using that to correctly
calculate bytes_sent.

Fixes: 6fe07aaffbf0 ("[SCSI] m68k: new mac_esp scsi driver")
Tested-by: Stan Johnson &lt;userm57@yahoo.com&gt;
Signed-off-by: Finn Thain &lt;fthain@telegraphics.com.au&gt;
Tested-by: Michael Schmitz &lt;schmitzmic@gmail.com&gt;
Signed-off-by: Martin K. Petersen &lt;martin.petersen@oracle.com&gt;
Signed-off-by: Sasha Levin &lt;sashal@kernel.org&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@linuxfoundation.org&gt;
</content>
</entry>
<entry>
<title>scsi: use host wide tags by default</title>
<updated>2015-11-10T01:11:57Z</updated>
<author>
<name>Christoph Hellwig</name>
</author>
<published>2015-10-08T08:28:04Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=64d513ac31bd02a3c9b69ef04444f36c196f9a9d'/>
<id>urn:sha1:64d513ac31bd02a3c9b69ef04444f36c196f9a9d</id>
<content type='text'>
This patch changes the !blk-mq path to the same defaults as the blk-mq
I/O path by always enabling block tagging, and always using host wide
tags.  We've had blk-mq available for a few releases so bugs with
this mode should have been ironed out, and this ensures we get better
coverage of over tagging setup over different configs.

Signed-off-by: Christoph Hellwig &lt;hch@lst.de&gt;
Acked-by: Jens Axboe &lt;axboe@kernel.dk&gt;
Reviewed-by: Hannes Reinecke &lt;hare@suse.de&gt;
Signed-off-by: James Bottomley &lt;JBottomley@Odin.com&gt;
</content>
</entry>
<entry>
<title>esp_scsi: remove check for ESP_MAX_TAGS</title>
<updated>2015-01-09T14:44:23Z</updated>
<author>
<name>Hannes Reinecke</name>
</author>
<published>2015-01-02T14:18:13Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=37c0b105ae61113b98a81529cccc3a8404ba68b7'/>
<id>urn:sha1:37c0b105ae61113b98a81529cccc3a8404ba68b7</id>
<content type='text'>
'num_tags' is an unsigned char, so the check for 'ESP_MAX_TAGS'
(which is set to 256) is pointless.

Acked-by: Geert Uytterhoeven &lt;geert@linux-m68k.org&gt;
Signed-off-by: Hannes Reinecke &lt;hare@suse.de&gt;
Signed-off-by: Christoph Hellwig &lt;hch@lst.de&gt;
</content>
</entry>
<entry>
<title>esp_scsi: enable CONFIG2_FENAB for am53c974</title>
<updated>2014-11-24T15:13:17Z</updated>
<author>
<name>Hannes Reinecke</name>
</author>
<published>2014-11-24T14:37:29Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=e858d930fe6c0baaad60bceb0aa1f44611eaf302'/>
<id>urn:sha1:e858d930fe6c0baaad60bceb0aa1f44611eaf302</id>
<content type='text'>
CONFIG2_FENAB ('feature enable') changed definition between chip
revisions, from 'Latch SCSI Phase' to 'Latch SCSI Phase, display
chip ID upon reset, and enable 24 bit addresses'.
So only enable it for am53c974 where we know what it's doing.

Acked-by: David S. Miller &lt;davem@davemloft.net&gt;
Reviewed-by: Paolo Bonzini &lt;pbonzini@redhat.com&gt;
Signed-off-by: Hannes Reinecke &lt;hare@suse.de&gt;
Signed-off-by: Christoph Hellwig &lt;hch@lst.de&gt;
</content>
</entry>
<entry>
<title>esp_scsi: let DMA driver provide a config2 value</title>
<updated>2014-11-24T15:13:17Z</updated>
<author>
<name>Paolo Bonzini</name>
</author>
<published>2014-11-24T14:37:28Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=8a9aeb45d0f16932f5dc78a48c09f5fc3ab13832'/>
<id>urn:sha1:8a9aeb45d0f16932f5dc78a48c09f5fc3ab13832</id>
<content type='text'>
On PCscsi, the FENAB configuration also enables 24-bit DMA
transfer lengths (and provides the chip id in TCHI after reset).
We want to be able to enable this parameter from the DMA driver.

Check if the caller of scsi_esp_register provided a value for esp-&gt;config2.
If this is the case, assume this is not an ESP100, skip the detection
phase and leave esp-&gt;config2 untouched.  It will be used in esp_reset_esp.

Reviewed-by: Hannes Reinecke &lt;hare@suse.de&gt;
Acked-by: David S. Miller &lt;davem@davemloft.net&gt;
Signed-off-by: Paolo Bonzini &lt;pbonzini@redhat.com&gt;
Signed-off-by: Christoph Hellwig &lt;hch@lst.de&gt;
</content>
</entry>
<entry>
<title>esp_scsi: correctly detect am53c974</title>
<updated>2014-11-24T15:13:16Z</updated>
<author>
<name>Hannes Reinecke</name>
</author>
<published>2014-11-24T14:37:27Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=eeea2f9c2f2ecc5f3217edcacc95817047b143c2'/>
<id>urn:sha1:eeea2f9c2f2ecc5f3217edcacc95817047b143c2</id>
<content type='text'>
The am53c974 returns the same ID as the FAS236, but implements
things slightly differently. So detect the am53c974 by checking
for ESP_CONFIG4 register.

Reviewed-by: Paolo Bonzini &lt;pbonzini@redhat.com&gt;
Signed-off-by: Hannes Reinecke &lt;hare@suse.de&gt;
Signed-off-by: Christoph Hellwig &lt;hch@lst.de&gt;
</content>
</entry>
<entry>
<title>am53c974: BLAST residual handling</title>
<updated>2014-11-24T15:13:15Z</updated>
<author>
<name>Hannes Reinecke</name>
</author>
<published>2014-11-24T14:37:26Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=6df388f2d549d3a2a7ad58b632d2ecd25fc0ff3f'/>
<id>urn:sha1:6df388f2d549d3a2a7ad58b632d2ecd25fc0ff3f</id>
<content type='text'>
The am53c974 has an design issue where a single byte might be
left in the SCSI FIFO after a DMA transfer.
As the handling code is currently untested add a WARN_ON()
statement here.

Reviewed-by: Paolo Bonzini &lt;pbonzini@redhat.com&gt;
Acked-by: David S. Miller &lt;davem@davemloft.net&gt;
Signed-off-by: Hannes Reinecke &lt;hare@suse.de&gt;
Signed-off-by: Christoph Hellwig &lt;hch@lst.de&gt;
</content>
</entry>
<entry>
<title>esp_scsi: use FIFO for command submission</title>
<updated>2014-11-24T15:10:24Z</updated>
<author>
<name>Hannes Reinecke</name>
</author>
<published>2014-11-24T14:37:24Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=3170866f8865809290f4b99e61a096ba39a01472'/>
<id>urn:sha1:3170866f8865809290f4b99e61a096ba39a01472</id>
<content type='text'>
Using DMA for command submission has the drawback that it might
generate additional DMA completion interrupts after the command
has been submitted to the device.
Additionally the am53c974 has a design flaw causing it
to generate spurious interrupts even though DMA completion
interrupts are not enabled.
This can be avoided by using the FIFO for command submission.

Reviewed-by: Paolo Bonzini &lt;pbonzini@redhat.com&gt;
Acked-by: David S. Miller &lt;davem@davemloft.net&gt;
Signed-off-by: Hannes Reinecke &lt;hare@suse.de&gt;
Signed-off-by: Christoph Hellwig &lt;hch@lst.de&gt;
</content>
</entry>
<entry>
<title>esp_scsi: read status registers</title>
<updated>2014-11-24T15:10:24Z</updated>
<author>
<name>Hannes Reinecke</name>
</author>
<published>2014-11-24T14:37:23Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=9535fff3c5f9382b46f656c46a80bc190645dd32'/>
<id>urn:sha1:9535fff3c5f9382b46f656c46a80bc190645dd32</id>
<content type='text'>
A read to ESP_INTRPT will clear ESP_STATUS and ESP_SSTEP. So read
all status registers in one go to avoid losing information.

Reviewed-by: Paolo Bonzini &lt;pbonzini@redhat.com&gt;
Acked-by: David S. Miller &lt;davem@davemloft.net&gt;
Signed-off-by: Hannes Reinecke &lt;hare@suse.de&gt;
Signed-off-by: Christoph Hellwig &lt;hch@lst.de&gt;
</content>
</entry>
<entry>
<title>esp_scsi: debug event and command</title>
<updated>2014-11-24T15:10:23Z</updated>
<author>
<name>Hannes Reinecke</name>
</author>
<published>2014-11-24T14:37:22Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=1af6f60368b3f5be6a89350ccd23e218120fd3d1'/>
<id>urn:sha1:1af6f60368b3f5be6a89350ccd23e218120fd3d1</id>
<content type='text'>
Add new debug definitions for event and command logging.

Reviewed-by: Paolo Bonzini &lt;pbonzini@redhat.com&gt;
Acked-by: David S. Miller &lt;davem@davemloft.net&gt;
Signed-off-by: Hannes Reinecke &lt;hare@suse.de&gt;
Signed-off-by: Christoph Hellwig &lt;hch@lst.de&gt;
</content>
</entry>
</feed>
