tmp_suning_uos_patched/drivers/ide
Bartlomiej Zolnierkiewicz 295f00042a ide: don't execute the next queued command from the hard-IRQ context (v2)
* Tell the block layer that we are not done handling requests by using
  blk_plug_device() in ide_do_request() (request handling function)
  and ide_timer_expiry() (timeout handler) if the queue is not empty.

* Remove optimization which directly calls ide_do_request() for the next
  queued command from the ide_intr() (IRQ handler) and ide_timer_expiry().

* Remove no longer needed IRQ masking from ide_do_request() - in case of
  IDE ports needing serialization disable_irq_nosync()/enable_irq() was
  used for the (possibly shared) IRQ of the other IDE port.

* Put the misplaced comment in the right place in ide_do_request().

* Drop no longer needed 'int masked_irq' argument from ide_do_request().

* Merge ide_do_request() into do_ide_request().

* Remove no longer needed IDE_NO_IRQ define.

While at it:

* Don't use HWGROUP() macro in do_ide_request().

* Use __func__ in ide_intr().

This patch reduces IRQ hadling latency for IDE and improves the system-wide
handling of shared IRQs (which should result in more timeout resistant and
stable IDE systems).  It also makes it possible to do some further changes
later (i.e. replace some busy-waiting delays with sleeping equivalents).

v2:
Changes per review from Elias Oltmanns:
- fix wrong goto statement in 'if (startstop == ide_stopped)' block
- use spin_unlock_irq()
- don't use obsolete HWIF() macro

Cc: Elias Oltmanns <eo@nebensachen.de>
Signed-off-by: Bartlomiej Zolnierkiewicz <bzolnier@gmail.com>
2009-01-02 16:12:48 +01:00
..
aec62xx.c ide: remove useless subdirs from drivers/ide/ 2008-10-21 20:57:23 +02:00
ali14xx.c ide: remove useless subdirs from drivers/ide/ 2008-10-21 20:57:23 +02:00
alim15x3.c alim15x3: fix sparse warning 2008-12-02 20:40:04 +01:00
amd74xx.c amd74xx: workaround unreliable AltStatus register for nVidia controllers 2008-12-02 20:40:03 +01:00
atiixp.c ide: remove useless subdirs from drivers/ide/ 2008-10-21 20:57:23 +02:00
au1xxx-ide.c ide: remove useless subdirs from drivers/ide/ 2008-10-21 20:57:23 +02:00
buddha.c ide: remove useless subdirs from drivers/ide/ 2008-10-21 20:57:23 +02:00
cmd64x.c cmd64x: set IDE_HFLAG_SERIALIZE explictly for CMD646 2008-12-29 20:27:32 +01:00
cmd640.c ide: remove useless subdirs from drivers/ide/ 2008-10-21 20:57:23 +02:00
cs5520.c ide: remove useless subdirs from drivers/ide/ 2008-10-21 20:57:23 +02:00
cs5530.c drivers/ide/{cs5530.c,sc1200.c}: Move a dereference below a NULL test 2008-12-22 23:05:06 +01:00
cs5535.c ide: remove useless subdirs from drivers/ide/ 2008-10-21 20:57:23 +02:00
cy82c693.c cy82c693: remove superfluous ide_cy82c693 chipset type 2008-12-29 20:27:34 +01:00
delkin_cb.c ide: remove useless subdirs from drivers/ide/ 2008-10-21 20:57:23 +02:00
dtc2278.c ide: remove useless subdirs from drivers/ide/ 2008-10-21 20:57:23 +02:00
falconide.c ide: remove useless subdirs from drivers/ide/ 2008-10-21 20:57:23 +02:00
gayle.c gayle: set IDE_HFLAG_SERIALIZE explictly 2008-12-29 20:27:33 +01:00
hpt366.c ide: rework handling of serialized ports (v2) 2008-12-29 20:27:36 +01:00
ht6560b.c ide: remove useless subdirs from drivers/ide/ 2008-10-21 20:57:23 +02:00
icside.c icside section warnings 2008-11-30 10:03:36 -08:00
ide_arm.c [ARM] clps7500: remove support 2008-11-27 12:38:11 +00:00
ide_platform.c ide: remove useless subdirs from drivers/ide/ 2008-10-21 20:57:23 +02:00
ide-4drives.c ide: remove useless subdirs from drivers/ide/ 2008-10-21 20:57:23 +02:00
ide-acpi.c ide: fix IDE ACPI regression breaking suspend 2008-12-29 20:27:29 +01:00
ide-atapi.c ide: remove IDE_AFLAG_NO_DOORLOCKING 2008-10-17 18:09:11 +02:00
ide-cd_ioctl.c ide: remove IDE_AFLAG_NO_DOORLOCKING 2008-10-17 18:09:11 +02:00
ide-cd_verbose.c block: replace sizeof(rq->cmd) with BLK_MAX_CDB 2008-04-29 14:48:55 +02:00
ide-cd.c ide-cd: remove dead dsc_overlap setting 2008-12-29 20:27:38 +01:00
ide-cd.h ide-cd: remove obsolete seek optimization 2008-12-29 20:27:32 +01:00
ide-cs.c pcmcia: add another pata/ide ID 2008-11-09 21:35:36 +01:00
ide-disk_ioctl.c [PATCH] switch ide_disk_ops ->ioctl() to sane prototype 2008-10-21 07:47:30 -04:00
ide-disk_proc.c ide-disk: factor out generic disk handling code to ide-gd.c 2008-10-17 18:09:12 +02:00
ide-disk.c ide: Switch to a common address 2008-11-02 21:40:08 +01:00
ide-disk.h [PATCH] switch ide_disk_ops ->ioctl() to sane prototype 2008-10-21 07:47:30 -04:00
ide-dma-sff.c ide: use ATA_DMA_* defines in ide-dma-sff.c 2008-12-29 20:27:37 +01:00
ide-dma.c ide: move SFF DMA code to ide-dma-sff.c 2008-10-13 21:39:47 +02:00
ide-floppy_ioctl.c [PATCH] switch ide_disk_ops ->ioctl() to sane prototype 2008-10-21 07:47:30 -04:00
ide-floppy_proc.c ide: prepare for merging ide-gd-floppy.c with ide-gd.c 2008-10-17 18:09:13 +02:00
ide-floppy.c ide-floppy: remove idefloppy_floppy_t typedef 2008-10-17 18:09:16 +02:00
ide-floppy.h [PATCH] switch ide_disk_ops ->ioctl() to sane prototype 2008-10-21 07:47:30 -04:00
ide-gd.c ide-gd: re-get capacity on revalidate 2008-11-02 21:40:10 +01:00
ide-gd.h ide: add generic ATA/ATAPI disk driver 2008-10-17 18:09:14 +02:00
ide-generic.c ide-generic: remove no longer needed ide_probe_legacy() 2008-10-13 21:39:42 +02:00
ide-h8300.c ide: remove useless subdirs from drivers/ide/ 2008-10-21 20:57:23 +02:00
ide-io.c ide: don't execute the next queued command from the hard-IRQ context (v2) 2009-01-02 16:12:48 +01:00
ide-ioctls.c ide-cd: remove dead dsc_overlap setting 2008-12-29 20:27:38 +01:00
ide-iops.c ide: replace the global ide_lock spinlock by per-hwgroup spinlocks (v2) 2008-12-29 20:27:31 +01:00
ide-legacy.c ide: move legacy ISA/VLB ports handling to ide-legacy.c (v2) 2008-12-29 20:27:37 +01:00
ide-lib.c ide: remove superfluous local_irq_{save,restore}() from ide_dump_status() 2008-12-29 20:27:37 +01:00
ide-park.c ide: replace the global ide_lock spinlock by per-hwgroup spinlocks (v2) 2008-12-29 20:27:31 +01:00
ide-pci-generic.c ide: Switch to a common address 2008-11-02 21:40:08 +01:00
ide-pio-blacklist.c ide: move PIO blacklist to ide-pio-blacklist.c 2008-07-16 20:33:39 +02:00
ide-pm.c ide: move Power Management support to ide-pm.c 2008-12-29 20:27:37 +01:00
ide-pnp.c ide: add ide_host_add() helper 2008-07-23 19:55:57 +02:00
ide-probe.c ide: move sysfs support to ide-sysfs.c 2009-01-02 16:12:48 +01:00
ide-proc.c cy82c693: remove superfluous ide_cy82c693 chipset type 2008-12-29 20:27:34 +01:00
ide-scan-pci.c ide: replace remaining __FUNCTION__ occurrences 2008-04-26 22:25:20 +02:00
ide-sysfs.c ide: move sysfs support to ide-sysfs.c 2009-01-02 16:12:48 +01:00
ide-tape.c [PATCH] switch ide-tape 2008-10-21 07:48:27 -04:00
ide-taskfile.c ide: Implement disk shock protection support (v4) 2008-10-13 21:39:50 +02:00
ide-timings.c ide: include <linux/hdreg.h> only when needed 2008-10-10 22:39:27 +02:00
ide.c ide: move sysfs support to ide-sysfs.c 2009-01-02 16:12:48 +01:00
it821x.c ide: Switch to a common address 2008-11-02 21:40:08 +01:00
it8213.c ide: remove useless subdirs from drivers/ide/ 2008-10-21 20:57:23 +02:00
jmicron.c ide: Switch to a common address 2008-11-02 21:40:08 +01:00
Kconfig Merge branch 'devel' of master.kernel.org:/home/rmk/linux-2.6-arm 2008-12-30 17:36:49 -08:00
macide.c m68k: machw.h cleanup 2008-12-28 20:00:03 +01:00
Makefile ide: move sysfs support to ide-sysfs.c 2009-01-02 16:12:48 +01:00
ns87415.c ide: remove useless subdirs from drivers/ide/ 2008-10-21 20:57:23 +02:00
opti621.c ide: remove useless subdirs from drivers/ide/ 2008-10-21 20:57:23 +02:00
palm_bk3710.c ide: remove useless subdirs from drivers/ide/ 2008-10-21 20:57:23 +02:00
pdc202xx_new.c ide: remove useless subdirs from drivers/ide/ 2008-10-21 20:57:23 +02:00
pdc202xx_old.c ide: add ->max_sectors field to struct ide_port_info 2008-12-29 20:27:34 +01:00
piix.c ide: Switch to a common address 2008-11-02 21:40:08 +01:00
pmac.c ide: build-fix for CONFIG_BLK_DEV_IDEDMA_PMAC=n 2008-12-08 17:52:05 +01:00
q40ide.c ide: remove useless subdirs from drivers/ide/ 2008-10-21 20:57:23 +02:00
qd65xx.c ide: remove useless subdirs from drivers/ide/ 2008-10-21 20:57:23 +02:00
qd65xx.h ide: remove useless subdirs from drivers/ide/ 2008-10-21 20:57:23 +02:00
rapide.c arm ide breakage 2008-10-26 09:35:05 -07:00
rz1000.c rz1000: apply chipset quirks early (v2) 2008-12-29 20:27:33 +01:00
sc1200.c drivers/ide/{cs5530.c,sc1200.c}: Move a dereference below a NULL test 2008-12-22 23:05:06 +01:00
scc_pata.c ide: Switch to a common address 2008-11-02 21:40:08 +01:00
serverworks.c ide: remove useless subdirs from drivers/ide/ 2008-10-21 20:57:23 +02:00
setup-pci.c ide: add proper PCI PM support (v2) 2008-10-10 22:39:32 +02:00
sgiioc4.c [IA64] Clear up section mismatch for ioc4_ide_attach_one. 2008-12-09 10:08:48 -08:00
siimage.c ide: Switch to a common address 2008-11-02 21:40:08 +01:00
sis5513.c ide: remove useless subdirs from drivers/ide/ 2008-10-21 20:57:23 +02:00
sl82c105.c ide: remove useless subdirs from drivers/ide/ 2008-10-21 20:57:23 +02:00
slc90e66.c ide: remove useless subdirs from drivers/ide/ 2008-10-21 20:57:23 +02:00
tc86c001.c ide: remove useless subdirs from drivers/ide/ 2008-10-21 20:57:23 +02:00
triflex.c ide: remove useless subdirs from drivers/ide/ 2008-10-21 20:57:23 +02:00
trm290.c trm290: add IDE_HFLAG_TRM290 host flag 2008-12-29 20:27:34 +01:00
tx4938ide.c ide: remove chipset type fixup from ide_host_register() 2009-01-02 16:12:47 +01:00
tx4939ide.c ide: remove chipset type fixup from ide_host_register() 2009-01-02 16:12:47 +01:00
umc8672.c ide: replace the global ide_lock spinlock by per-hwgroup spinlocks (v2) 2008-12-29 20:27:31 +01:00
via82cxxx.c ide: remove useless subdirs from drivers/ide/ 2008-10-21 20:57:23 +02:00