<feed xmlns='http://www.w3.org/2005/Atom'>
<title>kernel.git/include/linux/ide.h, branch linux-2.6.21.y</title>
<subtitle>Hosts the 0x221E linux distro kernel.
</subtitle>
<id>https://git.0xinfinity.dev/distro/kernel.git/atom?h=linux-2.6.21.y</id>
<link rel='self' href='https://git.0xinfinity.dev/distro/kernel.git/atom?h=linux-2.6.21.y'/>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/'/>
<updated>2007-04-10T20:38:37Z</updated>
<entry>
<title>ide: correctly prevent IDE timer expiry function to run if request was already handled</title>
<updated>2007-04-10T20:38:37Z</updated>
<author>
<name>Suleiman Souhlal</name>
</author>
<published>2007-04-10T20:38:37Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=23450319e2890986c247ec0aa1442f060e657e6d'/>
<id>urn:sha1:23450319e2890986c247ec0aa1442f060e657e6d</id>
<content type='text'>
It is possible for the timer expiry function to run even though the
request has already been handled: ide_timer_expiry() only checks that
the handler is not NULL, but it is possible that we have handled a
request (thus clearing the handler) and then started a new request
(thus starting the timer again, and setting a handler). 

A simple way to exhibit this is to set the DMA timeout to 1 jiffy and
run dd: The kernel will panic after a few minutes because
ide_timer_expiry() tries to add a timer when it's already active.

To fix this, we simply add a request generation count that gets
incremented at every interrupt, and check in ide_timer_expiry() that
we have not already handled a new interrupt before running the expiry
function.

Signed-off-by: Suleiman Souhlal &lt;suleiman@google.com&gt;
Signed-off-by: Bartlomiej Zolnierkiewicz &lt;bzolnier@gmail.com&gt;
</content>
</entry>
<entry>
<title>ide: use correct IDE error recovery</title>
<updated>2007-03-26T21:03:20Z</updated>
<author>
<name>Suleiman Souhlal</name>
</author>
<published>2007-03-26T21:03:20Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=513daadd152ddbf32cb6d0447ddba3427ce5b8e8'/>
<id>urn:sha1:513daadd152ddbf32cb6d0447ddba3427ce5b8e8</id>
<content type='text'>
IDE error recovery is using IDLE IMMEDIATE if the drive is busy or has DRQ set.
This violates the ATA spec (can only send IDLEÂ IMMEDIATE when drive is not
busy) and really hoses up some drives (modern drives will not be able to
recover using this error handling).  The correct thing to do is issue a SRST
followed by a SET FEATURES command.  This is what Western Digital recommends
for error recovery and what Western Digital says Windows does. Â ItÂ also does
not violate the ATA spec as far as I can tell.

Bart:
* port the patch over the current tree
* undo the recalibration code removal
* send SET FEATURES command after checking for good drive status
* don't check whether the current request is of REQ_TYPE_ATA_{CMD,TASK}
  type because we need to send SET FEATURES before handling any requests
* some pre-ATA4 drives require INITIALIZE DEVICE PARAMETERS command before
  other commands (except IDENTIFY) so send SET FEATURES only if there are
  no pending drive-&gt;special requests
* update comments and patch description
* any bugs introduced by this patch are mine and not Suleiman's :-)

Signed-off-by: Suleiman Souhlal &lt;suleiman@google.com&gt;
Acked-by: Alan Cox &lt;alan@redhat.com&gt;
Signed-off-by: Bartlomiej Zolnierkiewicz &lt;bzolnier@gmail.com&gt;
</content>
</entry>
<entry>
<title>ide: ide_get_best_pio_mode() returns incorrect IORDY setting (take 2)</title>
<updated>2007-03-03T16:48:53Z</updated>
<author>
<name>Sergei Shtylyov</name>
</author>
<published>2007-03-03T16:48:53Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=81d368e0e2591497106b2543918c79dd6d78277b'/>
<id>urn:sha1:81d368e0e2591497106b2543918c79dd6d78277b</id>
<content type='text'>
The function ide_get_best_pio_mode() fails to return the correct IORDY setting
for the explicitly specified modes -- fix this along with the heading comment,
and also remove the long commented out code.

Also, while at it, correct the misliading comment about the PIO cycle time in
&lt;linux/ide.h&gt; -- it actually consists of only the active and recovery periods,
with only some chips also including the address setup time into equation...

[ bart: sl82c105 seems to be currently the only driver affected by this fix ]

Signed-off-by: Sergei Shtylyov &lt;sshtylyov@ru.mvista.com&gt;
Signed-off-by: Bartlomiej Zolnierkiewicz &lt;bzolnier@gmail.com&gt;
</content>
</entry>
<entry>
<title>ide: make ide_hwif_t.ide_dma_host_on void (v2)</title>
<updated>2007-02-17T01:40:26Z</updated>
<author>
<name>Bartlomiej Zolnierkiewicz</name>
</author>
<published>2007-02-17T01:40:26Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=ccf352894ceef79d40d015e1deee4c46c3aa42ed'/>
<id>urn:sha1:ccf352894ceef79d40d015e1deee4c46c3aa42ed</id>
<content type='text'>
* since ide_hwif_t.ide_dma_host_on is called either when drive-&gt;using_dma == 1
  or when return value is discarded make it void, also drop "ide_" prefix
* make __ide_dma_host_on() void and drop "__" prefix

v2:
* while at it rename atiixp_ide_dma_host_on() to atiixp_dma_host_on()
  and sgiioc4_ide_dma_host_on() to sgiioc4_dma_host_on().
  [ Noticed by Sergei Shtylyov &lt;sshtylyov@ru.mvista.com&gt;. ]

Signed-off-by: Bartlomiej Zolnierkiewicz &lt;bzolnier@gmail.com&gt;

</content>
</entry>
<entry>
<title>ide: make ide_hwif_t.ide_dma_{host_off,off_quietly} void (v2)</title>
<updated>2007-02-17T01:40:26Z</updated>
<author>
<name>Bartlomiej Zolnierkiewicz</name>
</author>
<published>2007-02-17T01:40:26Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=7469aaf6a30f4187ed6de7c0aed5c2dd2d1c2d31'/>
<id>urn:sha1:7469aaf6a30f4187ed6de7c0aed5c2dd2d1c2d31</id>
<content type='text'>
* since ide_hwif_t.ide_dma_{host_off,off_quietly} always return '0'
  make these functions void and while at it drop "ide_" prefix
* fix comment for __ide_dma_off_quietly()
* make __ide_dma_{host_off,off_quietly,off}() void and drop "__" prefix

v2:
* while at it rename atiixp_ide_dma_host_off() to atiixp_dma_host_off(),
  sgiioc4_ide_dma_{host_off,off_quietly}() to sgiioc4_dma_{host_off,off_quietly}()
  and sl82c105_ide_dma_off_quietly() to sl82c105_dma_off_quietly()
  [ Noticed by Sergei Shtylyov &lt;sshtylyov@ru.mvista.com&gt;. ]

Signed-off-by: Bartlomiej Zolnierkiewicz &lt;bzolnier@gmail.com&gt;

</content>
</entry>
<entry>
<title>ide: add ide_set_dma() helper (v2)</title>
<updated>2007-02-17T01:40:26Z</updated>
<author>
<name>Bartlomiej Zolnierkiewicz</name>
</author>
<published>2007-02-17T01:40:26Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=3608b5d71a52c053787dbad6af20c25f7e0b75a9'/>
<id>urn:sha1:3608b5d71a52c053787dbad6af20c25f7e0b75a9</id>
<content type='text'>
* add ide_set_dma() helper and make ide_hwif_t.ide_dma_check return
  -1 when DMA needs to be disabled (== need to call -&gt;ide_dma_off_quietly)
   0 when DMA needs to be enabled  (== need to call -&gt;ide_dma_on)
   1 when DMA setting shouldn't be changed
* fix IDE code to use ide_set_dma() instead if using -&gt;ide_dma_check directly

v2:
* updated for scc_pata

Signed-off-by: Bartlomiej Zolnierkiewicz &lt;bzolnier@gmail.com&gt;

</content>
</entry>
<entry>
<title>ide: convert ide_hwif_t.mmio into flag (v2)</title>
<updated>2007-02-17T01:40:25Z</updated>
<author>
<name>Bartlomiej Zolnierkiewicz</name>
</author>
<published>2007-02-17T01:40:25Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=2ad1e558a2305c2b3d5099ee2f4a5929307c20ca'/>
<id>urn:sha1:2ad1e558a2305c2b3d5099ee2f4a5929307c20ca</id>
<content type='text'>
All users of -&gt;mmio == 1 are gone so convert -&gt;mmio into flag.

Noticed by Alan Cox.

v2:
* updated for scc_pata

Signed-off-by: Bartlomiej Zolnierkiewicz &lt;bzolnier@gmail.com&gt;

</content>
</entry>
<entry>
<title>ide: use PIO/MMIO operations directly where possible (v2)</title>
<updated>2007-02-17T01:40:25Z</updated>
<author>
<name>Bartlomiej Zolnierkiewicz</name>
</author>
<published>2007-02-17T01:40:25Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=0ecdca26e556eae9668ce6de9554757dddb942ef'/>
<id>urn:sha1:0ecdca26e556eae9668ce6de9554757dddb942ef</id>
<content type='text'>
This results in smaller/faster/simpler code and allows future optimizations.
Also remove no longer needed ide[_mm]_{inl,outl}() and ide_hwif_t.{INL,OUTL}.

v2:
* updated for scc_pata

Signed-off-by: Bartlomiej Zolnierkiewicz &lt;bzolnier@gmail.com&gt;

</content>
</entry>
<entry>
<title>ide: add ide_use_fast_pio() helper (v3)</title>
<updated>2007-02-17T01:40:25Z</updated>
<author>
<name>Bartlomiej Zolnierkiewicz</name>
</author>
<published>2007-02-17T01:40:25Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=7569e8dc2213ecc47024ea5edbadc8736487d926'/>
<id>urn:sha1:7569e8dc2213ecc47024ea5edbadc8736487d926</id>
<content type='text'>
* add ide_use_fast_pio() helper for use by host drivers

* add DMA capability and hwif-&gt;autodma checks to ide_use_dma()

  - au1xxx-ide/it8213/it821x drivers didn't check for (id-&gt;capability &amp; 1)

    [ for the IT8211/2 in SMART mode this check shouldn't be made but since
      in it821x_fixups() we set DMA bit explicitly:

               if(strstr(id-&gt;model, "Integrated Technology Express")) {
                       /* In raid mode the ident block is slightly buggy
                          We need to set the bits so that the IDE layer knows
                          LBA28. LBA48 and DMA ar valid */
                       id-&gt;capability |= 3;            /* LBA28, DMA */

       we are better off using generic helper if we can ]

  - ide-cris driver didn't set -&gt;autodma

    [ before the patch hwif-&gt;autodma was only checked in the chipset specific
      hwif-&gt;ide_dma_check implementations, for ide-cris it is cris_dma_check()
      function so there no behavior change here ]

v2:
* updated patch description (thanks to Alan Cox for the feedback)

v3:
* updated for scc_pata driver

Signed-off-by: Bartlomiej Zolnierkiewicz &lt;bzolnier@gmail.com&gt;

</content>
</entry>
<entry>
<title>ide: remove ide_drive_t.usage</title>
<updated>2007-02-17T01:40:24Z</updated>
<author>
<name>Bartlomiej Zolnierkiewicz</name>
</author>
<published>2007-02-17T01:40:24Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=c94964a4555eb58be3f45edf2b63a2b3f549ef29'/>
<id>urn:sha1:c94964a4555eb58be3f45edf2b63a2b3f549ef29</id>
<content type='text'>
This field is no longer used by the core IDE code so fix ide-{disk,floppy}
drivers to keep openers count in the driver specific objects and remove
it from ide-{cd,scsi,tape} drivers (it was write-only).

Signed-off-by: Bartlomiej Zolnierkiewicz &lt;bzolnier@gmail.com&gt;

</content>
</entry>
</feed>
