• Bartlomiej Zolnierkiewicz's avatar
    ide: filter out "default" transfer mode values in set_xfer_rate() · 3b2a5c71
    Bartlomiej Zolnierkiewicz authored
    * Filter out "default" transfer mode values (0x00 - default PIO mode,
      0x01 - default PIO mode w/ IORDY disabled) in write handler for obsoleted
      /proc/ide/hd?/settings:current_speed setting.
    
      Allowing "default" transfer mode values is a dangerous thing to do as
      we don't support programming controller to the "default" transfer mode
      and devices often use different values for the default and maximum PIO
      mode (i.e. PIO2 default and PIO4 maximum) so the controller will stay
      programmed for higher PIO mode while device will use the lower PIO mode.
    
      There is no functionality loss as by using special IOCTLs device can
      still be programmed to "default" transfer modes (it is only useful for
      debugging/testing purposes anyway).
    
    * Remove no longer needed IDE_HFLAG_ABUSE_SET_DMA_MODE host flag, it was
      previously used by few host drivers to program the controller to PIO0
      timings for "default" transfer mode == 0x01 (although some host drivers
      would program invalid PIO timings instead).
    
    * Cleanup ide_set_xfer_rate() and add BUG_ON().
    Suggested-by: default avatarSergei Shtylyov <sshtylyov@ru.mvista.com>
    Signed-off-by: default avatarBartlomiej Zolnierkiewicz <bzolnier@gmail.com>
    3b2a5c71
via82cxxx.c 13.6 KB