1. 27 3月, 2009 20 次提交
  2. 07 1月, 2009 3 次提交
  3. 14 10月, 2008 3 次提交
    • E
      ide: Implement disk shock protection support (v4) · 4abdc6ee
      Elias Oltmanns 提交于
      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 <eo@nebensachen.de> wrote:
      [...]
      > >> 1. Make sure that no negative value is being passed to
      > >>    jiffies_to_msecs() in ide_park_show().
      > >> 2. Drop the superfluous variable hwif in ide_special_rq().
      > >> 3. Skip initialisation of task and tf in ide_special_rq() if we are not
      > >>    handling a (un)park request.
      > >
      > > Well, #3 should have been done differently because we donn't want to
      > > check for REQ_(UN)?PARK_HEADS more often than is necessary.
      > 
      > While preparing the backport to 2.6.27, it has just occurred to me that
      > we need to clear the IDE_DFLAG_PARKED flag in ide_disk_pre_reset()
      > because this flag must not be set after *any* sort of access to the
      > 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: NElias Oltmanns <eo@nebensachen.de>
      Cc: Jeff Garzik <jeff@garzik.org>,
      Cc: Randy Dunlap <randy.dunlap@oracle.com>
      Cc: Tejun Heo <htejun@gmail.com>
      Signed-off-by: NBartlomiej Zolnierkiewicz <bzolnier@gmail.com>
      4abdc6ee
    • B
      ide: merge all TASKFILE_NO_DATA data phase handlers into taskfile_no_intr() · d6ff9f64
      Bartlomiej Zolnierkiewicz 提交于
      * 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: NBartlomiej Zolnierkiewicz <bzolnier@gmail.com>
      d6ff9f64
    • B
      ide: add device flags · 97100fc8
      Bartlomiej Zolnierkiewicz 提交于
      Add 'unsigned long dev_flags' to ide_drive_t and convert bitfields
      to IDE_DFLAG_* flags.
      
      While at it:
      - IDE_DFLAG_ADDRESSING -> IDE_DFLAG_LBA48
      - fixup some comments
      - remove needless g->flags zeroing from ide*_probe()
      
      There should be no functional changes caused by this patch.
      Signed-off-by: NBartlomiej Zolnierkiewicz <bzolnier@gmail.com>
      97100fc8
  4. 11 10月, 2008 5 次提交
  5. 25 7月, 2008 1 次提交
  6. 24 7月, 2008 4 次提交
    • B
      ide: add struct ide_tp_ops (take 2) · 374e042c
      Bartlomiej Zolnierkiewicz 提交于
      * Add struct ide_tp_ops for transport methods.
      
      * Add 'const struct ide_tp_ops *tp_ops' to struct ide_port_info
        and ide_hwif_t.
      
      * Set the default hwif->tp_ops in ide_init_port_data().
      
      * Set host driver specific hwif->tp_ops in ide_init_port().
      
      * Export ide_exec_command(), ide_read_status(), ide_read_altstatus(),
        ide_read_sff_dma_status(), ide_set_irq(), ide_tf_{load,read}()
        and ata_{in,out}put_data().
      
      * Convert host drivers and core code to use struct ide_tp_ops.
      
      * Remove no longer needed default_hwif_transport().
      
      * Cleanup ide_hwif_t from methods that are now in struct ide_tp_ops.
      
      While at it:
      
      * Use struct ide_port_info in falconide.c and q40ide.c.
      
      * Rename ata_{in,out}put_data() to ide_{in,out}put_data().
      
      v2:
      
      * Fix missing convertion in ns87415.c.
      
      There should be no functional changes caused by this patch.
      Signed-off-by: NBartlomiej Zolnierkiewicz <bzolnier@gmail.com>
      374e042c
    • B
      ide: add ->set_irq method · 6e6afb3b
      Bartlomiej Zolnierkiewicz 提交于
      Add ->set_irq method for setting nIEN bit of ATA Device Control
      register and use it instead of ide_set_irq().
      
      While at it:
      
      * Use ->set_irq in init_irq() and do_reset1().
      
      * Don't use HWIF() macro in ide_check_pm_state().
      
      There should be no functional changes caused by this patch.
      Signed-off-by: NBartlomiej Zolnierkiewicz <bzolnier@gmail.com>
      6e6afb3b
    • B
      ide: add ->read_status method · b73c7ee2
      Bartlomiej Zolnierkiewicz 提交于
      * Remove ide_read_status() inline helper.
      
      * Add ->read_status method for reading ATA Status register
        and use it instead of ->INB.
      
      While at it:
      
      * Don't use HWGROUP() macro.
      
      There should be no functional changes caused by this patch.
      Signed-off-by: NBartlomiej Zolnierkiewicz <bzolnier@gmail.com>
      b73c7ee2
    • B
      ide: add ->exec_command method · c6dfa867
      Bartlomiej Zolnierkiewicz 提交于
      Add ->exec_command method for writing ATA Command register
      and use it instead of ->OUTBSYNC.
      
      There should be no functional changes caused by this patch.
      Signed-off-by: NBartlomiej Zolnierkiewicz <bzolnier@gmail.com>
      c6dfa867
  7. 17 7月, 2008 3 次提交
  8. 16 7月, 2008 1 次提交