Files
kernel-tenderloin-3.0/include/linux
Bartlomiej Zolnierkiewicz 7670df73fb ide: mode limiting fixes for user requested speed changes
* Add an extra argument to ide_max_dma_mode() for passing requested transfer
  mode.  Use it as an upper limit when finding the best DMA for device/host.

* Rename ide_max_dma_mode() to ide_find_dma_mode() and at the same time add
  ide_max_dma_mode() wrapper which passes XFER_UDMA_6 as a requested mode to
  ide_find_dma_mode().  Also add inline ide_find_dma_mode() version for
  CONFIG_BLK_DEV_IDEDMA=n case.

* Pass requested transfer mode from ide_find_dma_mode() to ide_get_mode_mask()
  to avoid false warning from eighty_ninty_three().

* Use ide_find_dma_mode() to limit the user requested transfer mode in
  ide_rate_filter().  Also limit the requested mode by host max PIO mode.


Above changes make ide_rate_filter() to:

* Clip desired transfer mode down if it is invalid (values 0x0F, 0x13-0x19
  and 0x25-0x39, values > 0x46 were already clipped down, same for values
  0x25-0x39 but iff UDMA was not supported by the host).

* Clip desired transfer mode down if it is currently unsupported by IDE core
  (PIO6 and MWDMA3-4, the latter were already clipped down but iff UDMA was
  not supported by the host).

* Clip desired transfer mode down according to the host capabilities
  (UDMA modes were already clipped down but MWDMA/SWDMA/PIO weren't,
  also ->atapi_dma flag was not respected).

* Clip desired transfer mode down according to the device capabilities
  (except PIO modes for now which require mode work) - shouldn't be a
  problem since ide_set_xfer_rate() is called _after_ device has accepted
  given transfer mode.

and also result in a number of host driver specific bugfixes:

* icside
  - clip unsupported PIO5 mode down
  - fix unsupported/invalid modes being set in drive->current_speed

* ide-cris
  - clip unsupported PIO5 and SWDMA0-2 modes down
  - clip DMA modes down for ATAPI devices
  - fix BUG() on unsupported/invalid modes

* au1xxx-ide
  - clip unsupported PIO5, SWDMA0-2 and MWDMA0-2
    (if BLK_DEV_IDE_AU1XXX_MDMA2_DBDMA=n) modes down

* aec62xx
  - clip unsupported PIO5 and SWDMA0-2 modes down
  - clip DMA modes down for ATAPI devices
  - fix 0x00 being programmed as PIO timing for unsupported/invalid modes
  - fix unsupported/invalid modes being set on the device

* alim15x3
  - clip DMA modes down for ATAPI devices (chipset revision == 0x20 only)
  - fix theoretical OOPS for 0x0F mode
  - fix unsupported/invalid modes being set on the device

* amd74xx
  - clip unsupported SWDMA0-2 (on COBRA_7401 revs <= 7) modes down
  - fix random PIO timings being set for unsupported/invalid modes
  - fix unsupported/invalid modes being set on the device

* atiixp
  - clip unsupported PIO5 and SWDMA0-2 modes down
  - fix cached MWDMA mode being cleared for unsupported/invalid modes
  - fix PIO{0,2} timings being programmed for unsupported/invalid modes
  - fix theoretical OOPS for PIO5-6 and 0x0F modes
  - fix unsupported/invalid modes being set on the device

* cmd64x
  - clip unsupported SWDMA0-2 modes down

* cs5530
  - clip unsupported PIO5 and SWDMA0-2 modes down
  - fix unsupported/invalid modes being set on the device
  - fix BUG() on unsupported/invalid modes
    (which happened if the device accepted the setting)

* cs5535
  - clip unsupported PIO5 and SWDMA0-2 modes down
  - fix unsupported/invalid modes being set on the device
  - fix theoretical OOPS for PIO5-6 and 0x0F modes

* hpt34x
  - clip DMA modes down for ATAPI devices
  - fix invalid timings being programmed for unsupported/invalid modes
  - fix unsupported/invalid modes being set on the device

* hpt366
  - clip unsupported PIO5 and SWDMA0-2 modes down
  - fix PIO0 timings being programmed for unsupported/invalid modes
  - fix DMA timings being cleared for MWDMA3-4 and 0x25-0x39 modes
  - fix unsupported/invalid modes being set on the device

* it8213
  - clip unsupported PIO5, SWDMA0-1 and MWDMA0 modes down

* it821x
  - clip unsupported PIO5 and SWDMA0-2 modes down
  - clip DMA modes down for ATAPI devices
    (chipset in smart mode and revision 0x10 in pass-through mode)

* jmicron
  - clip unsupported SWDMA0-2 modes down
  - fix unsupported/invalid modes being set on the device

* pdc202xx_new
  - clip unsupported PIO5 and SWDMA0-2 modes down
  - fix unsupported/invalid modes being set on the device

* pdc202xx_old
  - clip unsupported PIO5 mode down
  - fix incorrect timings being set for unsupported/invalid modes
  - fix unsupported/invalid modes being set on the device

* piix
  - clip unsupported PIO5, SWDMA0-1 and MWDMA0 modes down

* sc1200
  - clip unsupported PIO5 and SWDMA0-2 modes down
  - fix unsupported/invalid modes being set on the device
  - fix BUG() on unsupported/invalid modes
    (which happened if the device accepted the setting)

* scc_pata
  - clip unsupported PIO5, SWDMA0-2 and MWDMA0-2 modes down

* serverworks
  - clip unsupported PIO5 and SWDMA0-2 modes down
  - fix DMA/UDMA timings/settings being cleared for unsupported/invalid modes
  - fix unsupported/invalid modes being set on the device

* siimage
  - clip unsupported PIO5 and SWDMA0-2 modes down
  - clip DMA modes down for ATAPI devices (SATA chipsets)

* sis5513
  - clip unsupported PIO5 mode down
  - fix BUG() on unsupported/invalid modes

* sl82c105
  - clip unsupported SWDMA0-2 modes down

* slc90e66
  - clip unsupported PIO5, SWDMA0-1 and MWDMA0 modes down

* tc86c001
  - clip unsupported PIO5 and SWDMA0-2 modes down
  - fix PIO0 timings being programmed for PIO5/0x0F/SWDMA0-2/0x13-0x19 modes
  - fix invalid 0x00 DMA timing being programmed for MWDMA3-4/0x25-0x39 modes
  - fix unsupported/invalid modes being set on the device

* triflex
  - clip unsupported PIO5 mode down

* via82cxxx
  - fix random PIO timings being set for unsupported/invalid modes
  - fix unsupported/invalid modes being set on the device

* pmac
  - clip unsupported PIO5 and SWDMA0-2 modes down

* cmd640/ht6560b
  - clip DMA modes down (if CONFIG_BLK_DEV_IDEDMA=y)
  - fix PIO5 being clipped to PIO4 (if CONFIG_BLK_DEV_IDEDMA=n)

* opti621
  - clip DMA modes down (if CONFIG_BLK_DEV_IDEDMA=y)
  - clip unsupported PIO4 to PIO3 (if CONFIG_BLK_DEV_IDEDMA=n)


While at it:

* Use ide_rate_filter() in cs5520.c::cs5520_tune_chipset().

* Remove no longer needed checks from hpt366.c::hpt3{6,7}x_tune_chipset().

Acked-by: Sergei Shtylyov <sshtylyov@ru.mvista.com>
Signed-off-by: Bartlomiej Zolnierkiewicz <bzolnier@gmail.com>
2007-10-11 23:53:59 +02:00
..
2007-07-12 15:41:24 -07:00
2007-07-26 01:53:39 +02:00
2007-07-19 10:04:52 -07:00
2007-07-31 15:39:44 -07:00
2006-12-04 02:00:22 -05:00
2007-09-11 04:22:16 -07:00
2007-07-19 10:04:43 -07:00
2007-08-23 21:37:45 -07:00
2007-02-20 17:10:15 -08:00
2007-07-19 10:04:45 -07:00
2006-12-08 08:28:39 -08:00
2007-08-11 22:34:48 +02:00
2006-12-07 08:39:20 -08:00
2007-07-31 10:43:05 -05:00
2007-01-30 08:26:45 -08:00
2007-05-07 12:13:00 -07:00
2007-07-10 17:18:59 -07:00
2007-07-16 09:05:46 -07:00
2007-07-17 10:23:04 -07:00
2007-05-10 18:24:13 +02:00
2007-05-08 11:15:25 -07:00
2006-12-07 08:39:25 -08:00
2007-05-08 11:15:26 -07:00
2007-07-09 08:22:54 +01:00
2007-07-09 08:23:17 +01:00
2007-02-09 17:39:36 -05:00
2007-07-11 16:09:00 -07:00
2007-02-11 11:18:07 -08:00
2007-07-19 10:04:54 -07:00
2007-07-12 10:55:56 -07:00
2007-07-17 10:23:06 -07:00
2007-06-01 08:18:29 -07:00
2007-03-27 09:05:15 -07:00
2007-07-16 09:05:52 -07:00
2007-05-09 08:57:56 +02:00
2007-07-16 09:05:52 -07:00
2007-07-18 09:15:20 -04:00
2007-07-18 09:15:20 -04:00
2007-07-17 10:23:13 -07:00
2007-05-06 20:38:28 -04:00
2007-07-16 09:05:45 -07:00
2007-07-18 18:29:37 -04:00
2007-07-16 09:05:41 -07:00
2007-06-18 09:48:41 -07:00
2007-07-17 10:22:59 -07:00
2007-07-10 00:35:17 -04:00
2007-07-09 18:51:58 +02:00
2007-04-28 11:01:07 -04:00
2007-07-19 10:04:41 -07:00
2007-03-16 00:59:29 -04:00
2006-12-10 21:21:29 +01:00
2007-07-31 15:39:41 -07:00
2007-07-16 09:05:34 -07:00
2007-07-10 22:15:03 -07:00
2007-07-14 18:55:06 -07:00
2007-04-25 22:24:41 -07:00
2007-04-25 22:29:10 -07:00
2007-09-20 13:19:59 -07:00
2007-08-11 15:58:13 -07:00
2007-07-16 09:05:50 -07:00
2007-07-16 09:05:47 -07:00
2006-12-07 08:39:47 -08:00
2006-12-07 08:39:47 -08:00
2006-12-07 08:39:47 -08:00
2007-07-31 15:39:41 -07:00
2006-12-08 08:28:57 -08:00
2007-04-25 22:25:52 -07:00
2007-08-26 18:35:34 -07:00
2007-09-11 17:21:20 -07:00
2007-09-04 23:16:04 -04:00
2007-07-18 08:47:40 -07:00
2007-07-30 14:25:12 -07:00
2007-05-09 12:30:53 -07:00
2007-07-10 22:15:26 -07:00
2007-05-03 10:52:32 +03:00
2007-09-11 22:24:45 +01:00
2007-07-17 10:23:03 -07:00
2007-07-17 10:23:13 -07:00
2007-07-19 10:04:49 -07:00
2007-05-18 20:46:30 -07:00
2007-07-24 12:24:59 -07:00
2007-07-16 09:05:34 -07:00
2007-07-18 08:47:45 -07:00
2007-05-08 11:15:18 -07:00
2007-05-09 12:30:49 -07:00
2007-05-03 10:52:22 +03:00
2007-07-16 09:05:42 -07:00
2007-01-23 00:34:54 -05:00
2007-07-19 10:04:45 -07:00
2007-07-16 09:05:51 -07:00
2007-05-09 12:30:54 -07:00
2007-05-04 17:59:07 -07:00
2007-07-20 13:41:56 +10:00
2007-07-20 13:10:22 +10:00
2007-05-08 11:15:05 -07:00
2007-05-08 11:15:05 -07:00
2007-05-05 14:15:32 -07:00
2007-03-12 16:31:50 -07:00
2007-05-08 11:15:14 -07:00
2007-04-17 16:36:26 -07:00
2007-07-26 11:35:21 -07:00
2007-07-26 11:35:21 -07:00
2007-05-08 11:14:57 -07:00
2007-07-16 09:05:50 -07:00
2007-07-16 09:05:46 -07:00
2007-01-11 18:18:21 -08:00
2007-07-17 10:23:03 -07:00
2007-05-07 12:12:54 -07:00
2007-05-09 08:57:56 +02:00
2007-07-18 08:47:40 -07:00
2007-07-21 18:37:10 -07:00
2007-06-07 13:39:34 -07:00
2007-05-17 05:23:06 -07:00
2007-05-08 11:15:18 -07:00
2007-07-16 09:05:50 -07:00
2007-07-22 11:03:37 -07:00
2007-09-20 13:19:59 -07:00
2007-09-16 16:21:16 -07:00
2007-07-20 12:33:44 -07:00
2007-02-20 17:10:14 -08:00
2007-05-21 21:47:27 -07:00
2007-07-16 09:05:45 -07:00
2007-07-16 09:05:46 -07:00
2007-07-19 10:04:49 -07:00
2007-07-16 09:05:40 -07:00
2007-05-08 11:15:18 -07:00
2007-07-18 08:47:40 -07:00
2007-05-09 12:30:57 -07:00
2007-07-17 10:22:59 -07:00
2007-02-20 17:10:13 -08:00
2007-05-11 08:29:34 -07:00
2007-07-31 15:39:39 -07:00
2007-05-11 08:29:36 -07:00
2007-07-20 11:23:02 -07:00
2007-05-11 08:29:35 -07:00
2007-05-11 08:29:35 -07:00
2007-08-11 15:47:41 -07:00
2007-05-03 00:55:34 -04:00
2007-07-18 15:57:15 -07:00
2006-12-15 08:47:51 -08:00
2007-05-07 12:12:58 -07:00
2007-07-30 13:27:44 -07:00
2007-09-19 11:24:18 -07:00
2007-07-17 10:22:59 -07:00
2007-07-09 18:52:01 +02:00
2007-02-11 11:18:05 -08:00
2007-05-04 12:55:39 -07:00