<feed xmlns='http://www.w3.org/2005/Atom'>
<title>linux.git/drivers/ide/ide-taskfile.c, branch v2.6.29</title>
<subtitle>Linux kernel source tree</subtitle>
<link rel='alternate' type='text/html' href='https://git.tavy.me/linux.git/'/>
<entry>
<title>ide: remove ide_driver_t typedef</title>
<updated>2009-01-06T16:20:53+00:00</updated>
<author>
<name>Bartlomiej Zolnierkiewicz</name>
<email>bzolnier@gmail.com</email>
</author>
<published>2009-01-06T16:20:53+00:00</published>
<link rel='alternate' type='text/html' href='https://git.tavy.me/linux.git/commit/?id=7f3c868ba78e486bd9d7569f884dd46d8f59bb18'/>
<id>7f3c868ba78e486bd9d7569f884dd46d8f59bb18</id>
<content type='text'>
While at it:
- s/struct ide_driver_s/struct ide_driver/
- use to_ide_driver() macro in ide-proc.c

Signed-off-by: Bartlomiej Zolnierkiewicz &lt;bzolnier@gmail.com&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
While at it:
- s/struct ide_driver_s/struct ide_driver/
- use to_ide_driver() macro in ide-proc.c

Signed-off-by: Bartlomiej Zolnierkiewicz &lt;bzolnier@gmail.com&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>ide: remove HWIF() macro</title>
<updated>2009-01-06T16:20:52+00:00</updated>
<author>
<name>Bartlomiej Zolnierkiewicz</name>
<email>bzolnier@gmail.com</email>
</author>
<published>2009-01-06T16:20:52+00:00</published>
<link rel='alternate' type='text/html' href='https://git.tavy.me/linux.git/commit/?id=898ec223fea2a2df88035e58dbf50f493577e225'/>
<id>898ec223fea2a2df88035e58dbf50f493577e225</id>
<content type='text'>
Signed-off-by: Bartlomiej Zolnierkiewicz &lt;bzolnier@gmail.com&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Signed-off-by: Bartlomiej Zolnierkiewicz &lt;bzolnier@gmail.com&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>ide: merge ide_hwgroup_t with ide_hwif_t (v2)</title>
<updated>2009-01-06T16:20:50+00:00</updated>
<author>
<name>Bartlomiej Zolnierkiewicz</name>
<email>bzolnier@gmail.com</email>
</author>
<published>2009-01-06T16:20:50+00:00</published>
<link rel='alternate' type='text/html' href='https://git.tavy.me/linux.git/commit/?id=b65fac32cfe3b2f98cd472fef400bd1c1340de23'/>
<id>b65fac32cfe3b2f98cd472fef400bd1c1340de23</id>
<content type='text'>
* Merge ide_hwgroup_t with ide_hwif_t.

* Cleanup init_irq() accordingly, then remove no longer needed
  ide_remove_port_from_hwgroup() and ide_ports[].

* Remove now unused HWGROUP() macro.

While at it:

* ide_dump_ata_error() fixups

v2:
* Fix -&gt;quirk_list check in do_ide_request()
  (s/hwif-&gt;cur_dev/prev_port-&gt;cur_dev).

Signed-off-by: Bartlomiej Zolnierkiewicz &lt;bzolnier@gmail.com&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
* Merge ide_hwgroup_t with ide_hwif_t.

* Cleanup init_irq() accordingly, then remove no longer needed
  ide_remove_port_from_hwgroup() and ide_ports[].

* Remove now unused HWGROUP() macro.

While at it:

* ide_dump_ata_error() fixups

v2:
* Fix -&gt;quirk_list check in do_ide_request()
  (s/hwif-&gt;cur_dev/prev_port-&gt;cur_dev).

Signed-off-by: Bartlomiej Zolnierkiewicz &lt;bzolnier@gmail.com&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>ide: Implement disk shock protection support (v4)</title>
<updated>2008-10-13T19:39:50+00:00</updated>
<author>
<name>Elias Oltmanns</name>
<email>eo@nebensachen.de</email>
</author>
<published>2008-10-13T19:39:50+00:00</published>
<link rel='alternate' type='text/html' href='https://git.tavy.me/linux.git/commit/?id=4abdc6ee7c47a1a6e12f95717e461baeebee5df7'/>
<id>4abdc6ee7c47a1a6e12f95717e461baeebee5df7</id>
<content type='text'>
On user request (through sysfs), the IDLE IMMEDIATE command with UNLOAD
FEATURE as specified in ATA-7 is issued to the device and processing of
the request queue is stopped thereafter until the specified timeout
expires or user space asks to resume normal operation. This is supposed
to prevent the heads of a hard drive from accidentally crashing onto the
platter when a heavy shock is anticipated (like a falling laptop expected
to hit the floor). Port resets are deferred whenever a device on that
port is in the parked state.

v3:
Elias Oltmanns &lt;eo@nebensachen.de&gt; wrote:
[...]
&gt; &gt;&gt; 1. Make sure that no negative value is being passed to
&gt; &gt;&gt;    jiffies_to_msecs() in ide_park_show().
&gt; &gt;&gt; 2. Drop the superfluous variable hwif in ide_special_rq().
&gt; &gt;&gt; 3. Skip initialisation of task and tf in ide_special_rq() if we are not
&gt; &gt;&gt;    handling a (un)park request.
&gt; &gt;
&gt; &gt; Well, #3 should have been done differently because we donn't want to
&gt; &gt; check for REQ_(UN)?PARK_HEADS more often than is necessary.
&gt; 
&gt; While preparing the backport to 2.6.27, it has just occurred to me that
&gt; we need to clear the IDE_DFLAG_PARKED flag in ide_disk_pre_reset()
&gt; because this flag must not be set after *any* sort of access to the
&gt; device.

v4:
Fix a memory leak due to a missing blk_put_request() in
issue_park_cmd(). Additionally, we should plug the queue when enqueueing
the unpark request because there is no guarantee that the park timeout
has not expired by then. Even though the chance for that to happen is
very slim, the request might end up hanging in the queue until the next
I/O operation is queued up. While at it, clean up the code a little:
- make issue_park_cmd() a function of type void since nobody cares for
  the return value anyway;
- use blk_start_queueing() instead of __blk_run_queue() since we don't
  have to worry about recursion;
- remove a superfluous pointer deference in task_no_data_intr().

Signed-off-by: Elias Oltmanns &lt;eo@nebensachen.de&gt;
Cc: Jeff Garzik &lt;jeff@garzik.org&gt;,
Cc: Randy Dunlap &lt;randy.dunlap@oracle.com&gt;
Cc: Tejun Heo &lt;htejun@gmail.com&gt;
Signed-off-by: Bartlomiej Zolnierkiewicz &lt;bzolnier@gmail.com&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
On user request (through sysfs), the IDLE IMMEDIATE command with UNLOAD
FEATURE as specified in ATA-7 is issued to the device and processing of
the request queue is stopped thereafter until the specified timeout
expires or user space asks to resume normal operation. This is supposed
to prevent the heads of a hard drive from accidentally crashing onto the
platter when a heavy shock is anticipated (like a falling laptop expected
to hit the floor). Port resets are deferred whenever a device on that
port is in the parked state.

v3:
Elias Oltmanns &lt;eo@nebensachen.de&gt; wrote:
[...]
&gt; &gt;&gt; 1. Make sure that no negative value is being passed to
&gt; &gt;&gt;    jiffies_to_msecs() in ide_park_show().
&gt; &gt;&gt; 2. Drop the superfluous variable hwif in ide_special_rq().
&gt; &gt;&gt; 3. Skip initialisation of task and tf in ide_special_rq() if we are not
&gt; &gt;&gt;    handling a (un)park request.
&gt; &gt;
&gt; &gt; Well, #3 should have been done differently because we donn't want to
&gt; &gt; check for REQ_(UN)?PARK_HEADS more often than is necessary.
&gt; 
&gt; While preparing the backport to 2.6.27, it has just occurred to me that
&gt; we need to clear the IDE_DFLAG_PARKED flag in ide_disk_pre_reset()
&gt; because this flag must not be set after *any* sort of access to the
&gt; device.

v4:
Fix a memory leak due to a missing blk_put_request() in
issue_park_cmd(). Additionally, we should plug the queue when enqueueing
the unpark request because there is no guarantee that the park timeout
has not expired by then. Even though the chance for that to happen is
very slim, the request might end up hanging in the queue until the next
I/O operation is queued up. While at it, clean up the code a little:
- make issue_park_cmd() a function of type void since nobody cares for
  the return value anyway;
- use blk_start_queueing() instead of __blk_run_queue() since we don't
  have to worry about recursion;
- remove a superfluous pointer deference in task_no_data_intr().

Signed-off-by: Elias Oltmanns &lt;eo@nebensachen.de&gt;
Cc: Jeff Garzik &lt;jeff@garzik.org&gt;,
Cc: Randy Dunlap &lt;randy.dunlap@oracle.com&gt;
Cc: Tejun Heo &lt;htejun@gmail.com&gt;
Signed-off-by: Bartlomiej Zolnierkiewicz &lt;bzolnier@gmail.com&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>ide: merge all TASKFILE_NO_DATA data phase handlers into taskfile_no_intr()</title>
<updated>2008-10-13T19:39:41+00:00</updated>
<author>
<name>Bartlomiej Zolnierkiewicz</name>
<email>bzolnier@gmail.com</email>
</author>
<published>2008-10-13T19:39:41+00:00</published>
<link rel='alternate' type='text/html' href='https://git.tavy.me/linux.git/commit/?id=d6ff9f64e68d23feab44efa07cc6aee01f3ef32b'/>
<id>d6ff9f64e68d23feab44efa07cc6aee01f3ef32b</id>
<content type='text'>
* Add 'struct task_s' to ide_hwif_t and init it to the current command
  in do_rw_taskfile().

* Merge all TASKFILE_NO_DATA data phase handlers into taskfile_no_intr().

Signed-off-by: Bartlomiej Zolnierkiewicz &lt;bzolnier@gmail.com&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
* Add 'struct task_s' to ide_hwif_t and init it to the current command
  in do_rw_taskfile().

* Merge all TASKFILE_NO_DATA data phase handlers into taskfile_no_intr().

Signed-off-by: Bartlomiej Zolnierkiewicz &lt;bzolnier@gmail.com&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>ide: add device flags</title>
<updated>2008-10-13T19:39:36+00:00</updated>
<author>
<name>Bartlomiej Zolnierkiewicz</name>
<email>bzolnier@gmail.com</email>
</author>
<published>2008-10-13T19:39:36+00:00</published>
<link rel='alternate' type='text/html' href='https://git.tavy.me/linux.git/commit/?id=97100fc816badbbc162644cfde7ad39ae9211fb4'/>
<id>97100fc816badbbc162644cfde7ad39ae9211fb4</id>
<content type='text'>
Add 'unsigned long dev_flags' to ide_drive_t and convert bitfields
to IDE_DFLAG_* flags.

While at it:
- IDE_DFLAG_ADDRESSING -&gt; IDE_DFLAG_LBA48
- fixup some comments
- remove needless g-&gt;flags zeroing from ide*_probe()

There should be no functional changes caused by this patch.

Signed-off-by: Bartlomiej Zolnierkiewicz &lt;bzolnier@gmail.com&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Add 'unsigned long dev_flags' to ide_drive_t and convert bitfields
to IDE_DFLAG_* flags.

While at it:
- IDE_DFLAG_ADDRESSING -&gt; IDE_DFLAG_LBA48
- fixup some comments
- remove needless g-&gt;flags zeroing from ide*_probe()

There should be no functional changes caused by this patch.

Signed-off-by: Bartlomiej Zolnierkiewicz &lt;bzolnier@gmail.com&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>ide: move ioctls handling to ide-ioctls.c</title>
<updated>2008-10-10T20:39:33+00:00</updated>
<author>
<name>Bartlomiej Zolnierkiewicz</name>
<email>bzolnier@gmail.com</email>
</author>
<published>2008-10-10T20:39:33+00:00</published>
<link rel='alternate' type='text/html' href='https://git.tavy.me/linux.git/commit/?id=05236ea6df7419f0f37cf9603cfee265cfce5832'/>
<id>05236ea6df7419f0f37cf9603cfee265cfce5832</id>
<content type='text'>
* Move ioctls handling to ide-ioctls.c
  (except HDIO_DRIVE_TASKFILE for now).

* Make ide_{cmd,task}() static.

Signed-off-by: Bartlomiej Zolnierkiewicz &lt;bzolnier@gmail.com&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
* Move ioctls handling to ide-ioctls.c
  (except HDIO_DRIVE_TASKFILE for now).

* Make ide_{cmd,task}() static.

Signed-off-by: Bartlomiej Zolnierkiewicz &lt;bzolnier@gmail.com&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>ide: remove SECTOR_WORDS define</title>
<updated>2008-10-10T20:39:28+00:00</updated>
<author>
<name>Bartlomiej Zolnierkiewicz</name>
<email>bzolnier@gmail.com</email>
</author>
<published>2008-10-10T20:39:28+00:00</published>
<link rel='alternate' type='text/html' href='https://git.tavy.me/linux.git/commit/?id=151a670186a0f8441798f90c8701647adb7a1589'/>
<id>151a670186a0f8441798f90c8701647adb7a1589</id>
<content type='text'>
Just use SECTOR_SIZE instead.

Signed-off-by: Bartlomiej Zolnierkiewicz &lt;bzolnier@gmail.com&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Just use SECTOR_SIZE instead.

Signed-off-by: Bartlomiej Zolnierkiewicz &lt;bzolnier@gmail.com&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>ide: use ATA_* defines instead of *_STAT and *_ERR ones</title>
<updated>2008-10-10T20:39:21+00:00</updated>
<author>
<name>Bartlomiej Zolnierkiewicz</name>
<email>bzolnier@gmail.com</email>
</author>
<published>2008-10-10T20:39:21+00:00</published>
<link rel='alternate' type='text/html' href='https://git.tavy.me/linux.git/commit/?id=3a7d24841ad794ae64c90d7d00d62a83741912aa'/>
<id>3a7d24841ad794ae64c90d7d00d62a83741912aa</id>
<content type='text'>
* ERR_STAT   -&gt; ATA_ERR
* INDEX_STAT -&gt; ATA_IDX
* ECC_STAT   -&gt; ATA_CORR
* DRQ_STAT   -&gt; ATA_DRQ
* SEEK_STAT  -&gt; ATA_DSC
* WRERR_STAT -&gt; ATA_DF
* READY_STAT -&gt; ATA_DRDY
* BUSY_STAT  -&gt; ATA_BUSY

* MARK_ERR   -&gt; ATA_AMNF
* TRK0_ERR   -&gt; ATA_TRK0NF
* ABRT_ERR   -&gt; ATA_ABORTED
* MCR_ERR    -&gt; ATA_MCR
* ID_ERR     -&gt; ATA_IDNF
* MC_ERR     -&gt; ATA_MC
* ECC_ERR    -&gt; ATA_UNC
* ICRC_ERR   -&gt; ATA_ICRC

* BBD_ERR    -&gt; ATA_BBK

Also:

* ILI_ERR    -&gt; ATAPI_ILI
* EOM_ERR    -&gt; ATAPI_EOM
* LFS_ERR    -&gt; ATAPI_LFS

* CD         -&gt; ATAPI_COD
* IO         -&gt; ATAPI_IO

Signed-off-by: Bartlomiej Zolnierkiewicz &lt;bzolnier@gmail.com&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
* ERR_STAT   -&gt; ATA_ERR
* INDEX_STAT -&gt; ATA_IDX
* ECC_STAT   -&gt; ATA_CORR
* DRQ_STAT   -&gt; ATA_DRQ
* SEEK_STAT  -&gt; ATA_DSC
* WRERR_STAT -&gt; ATA_DF
* READY_STAT -&gt; ATA_DRDY
* BUSY_STAT  -&gt; ATA_BUSY

* MARK_ERR   -&gt; ATA_AMNF
* TRK0_ERR   -&gt; ATA_TRK0NF
* ABRT_ERR   -&gt; ATA_ABORTED
* MCR_ERR    -&gt; ATA_MCR
* ID_ERR     -&gt; ATA_IDNF
* MC_ERR     -&gt; ATA_MC
* ECC_ERR    -&gt; ATA_UNC
* ICRC_ERR   -&gt; ATA_ICRC

* BBD_ERR    -&gt; ATA_BBK

Also:

* ILI_ERR    -&gt; ATAPI_ILI
* EOM_ERR    -&gt; ATAPI_EOM
* LFS_ERR    -&gt; ATAPI_LFS

* CD         -&gt; ATAPI_COD
* IO         -&gt; ATAPI_IO

Signed-off-by: Bartlomiej Zolnierkiewicz &lt;bzolnier@gmail.com&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>ide: WIN_* -&gt; ATA_CMD_*</title>
<updated>2008-10-10T20:39:21+00:00</updated>
<author>
<name>Bartlomiej Zolnierkiewicz</name>
<email>bzolnier@gmail.com</email>
</author>
<published>2008-10-10T20:39:21+00:00</published>
<link rel='alternate' type='text/html' href='https://git.tavy.me/linux.git/commit/?id=aaaade3f059fa1b57283d4a7c8351a42ec747bf0'/>
<id>aaaade3f059fa1b57283d4a7c8351a42ec747bf0</id>
<content type='text'>
* Use ATA_CMD_* defines instead of WIN_* ones.

While at it:

* EXABYTE_ENABLE_NEXT -&gt; ATA_EXABYTE_ENABLE_NEST

* SETFEATURES_{EN,DIS}_WCACHE -&gt; SETFEATURES_WC_{ON,OFF}

* SETFEATURES_{EN,DIS}_AAM -&gt; SETFEATURES_AAM_{ON,OFF}

* SMART_* -&gt; ATA_SMART_*

* Remove stale comment from ide-proc.c.

Partially based on earlier work by Chris Wedgwood.

Acked-by: Chris Wedgwood &lt;cw@f00f.org&gt;
Signed-off-by: Bartlomiej Zolnierkiewicz &lt;bzolnier@gmail.com&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
* Use ATA_CMD_* defines instead of WIN_* ones.

While at it:

* EXABYTE_ENABLE_NEXT -&gt; ATA_EXABYTE_ENABLE_NEST

* SETFEATURES_{EN,DIS}_WCACHE -&gt; SETFEATURES_WC_{ON,OFF}

* SETFEATURES_{EN,DIS}_AAM -&gt; SETFEATURES_AAM_{ON,OFF}

* SMART_* -&gt; ATA_SMART_*

* Remove stale comment from ide-proc.c.

Partially based on earlier work by Chris Wedgwood.

Acked-by: Chris Wedgwood &lt;cw@f00f.org&gt;
Signed-off-by: Bartlomiej Zolnierkiewicz &lt;bzolnier@gmail.com&gt;
</pre>
</div>
</content>
</entry>
</feed>
