aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/ide
Commit message (Collapse)AuthorAge
...
* [PATCH] ide: HPT3xxN clocking fixesSergei Shtylyov2006-12-13
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Fix serious problems with the HPT372N clock turnaround code: - the wrong ports were written to when called for the secondary channel; - it didn't serialize access to the channels; - turnaround shou;dn't be done on 66 MHz PCI; - caching the clock mode per-channel caused it to get out of sync with the actual register value. Additionally, avoid calibrating PLL twice (for each channel) as the second try results in a wrong PCI frequency and thus in the wrong timings. Make the driver deal with HPT302N and HPT371N correctly -- the clocking and (seemingly) a need for clock tunaround is the same as for HPT372N. HPT371/N chips have only one, secondary channel, so avoid touching their "pure virtual" primary channel, and disable it if the BIOS haven't done this already. Also, while at it, disable UltraATA/133 for HPT372 by default -- 50 MHz DPLL clock don't allow for this speed anyway. And remove the traces of the former bad patch that wasn't even applicable to this version of driver. Has been tested on HPT370/371N, unfortunately I don't have an instant access to the other chips... Signed-off-by: Sergei Shtylyov <sshtylyov@ru.mvista.com> Cc: Bartlomiej Zolnierkiewicz <B.Zolnierkiewicz@elka.pw.edu.pl> Cc: Alan Cox <alan@lxorguk.ukuu.org.uk> Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
* kconfig: Standardize "depends" -> "depends on" in Kconfig filesRobert P. J. Day2006-12-12
| | | | | | | | | Standardize the miniscule percentage of occurrences of "depends" in Kconfig files to "depends on", and update kconfig-language.txt to reflect that. Signed-off-by: Robert P. J. Day <rpjday@mindspring.com> Signed-off-by: Adrian Bunk <bunk@stusta.de>
* [PATCH] remove blk_queue_activity_fnBoaz Harrosh2006-12-12
| | | | | | | | | | | | | | | | | | While working on bidi support at struct request level I have found that blk_queue_activity_fn is actually never used. The only user is in ide-probe.c with this code: /* enable led activity for disk drives only */ if (drive->media == ide_disk && hwif->led_act) blk_queue_activity_fn(q, hwif->led_act, drive); And led_act is never initialized anywhere. (Looking back at older kernels it was used in the PPC arch, but was removed around 2.6.18) Unless it is all for future use off course. (this patch is against linux-2.6-block.git as off 2006/12/4) Signed-off-by: Boaz Harrosh <bharrosh@panasas.com> Signed-off-by: Jens Axboe <jens.axboe@oracle.com>
* [PATCH] ide-cd: Handle strange interrupt on the Intel ESB2Alan Cox2006-12-10
| | | | | | | | | | | | | | | | The ESB2 appears to emit spurious DMA interrupts when configured for native mode and handling ATAPI devices. Stratus were able to pin this bug down and produce a patch. This is a rework which applies the fixup only to the ESB2 (for now). We can apply it to other chips later if the same problem is found. This code has been tested and confirmed to fix the problem on the tested systems. Signed-off-by: Alan Cox <alan@redhat.com> (Most of the hard work done by Stratus however) Cc: Jens Axboe <axboe@suse.de> Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
* [PATCH] pdc202xx_new: fix PLL/timing issuesSergei Shtylyov2006-12-10
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Fix the CRC errors in the higher UltraDMA modes with the Promise PDC20268 and newer chips that always occur on non-x86 machines and when there are more than 2 adapters on x86 machines. Fix the overclocking issue for PDC20269 and newer chips that occurs when an UltraDMA/133 capable drive is connected. Here's the summary of changes: - add code to detect the PLL input clock detection and setup it output clock, remove the PowerMac hacks; - replace the macros accessing the indexed regiters with functions, switch to using them where appropriate, gather the PIO/MWDMA/UDMA timings into tables; - rewrite the speedproc() handler to set the drive's transfer mode first, and then override the timing registers set by hardware on UltraDMA/133 chips; - use better criterion for determining higher UltraDMA modes, and add comment concerning the doubtful value of the code enabling IORDY/prefetch; - replace the stupid 'pdcnew_new_' prefixes with mere 'pdcnew_'; - get rid of unneded spaces, parens and type casts, clean up some printk's, add some new lines here and there... This work is loosely based on these former patches by Albert Lee: [1] http://marc.theaimsgroup.com/?l=linux-ide&m=110992442032300 [2] http://marc.theaimsgroup.com/?l=linux-ide&m=110992457729382 [3] http://marc.theaimsgroup.com/?l=linux-ide&m=110992474205555 [4] http://marc.theaimsgroup.com/?l=linux-ide&m=111019224802939 Some PLL clock detection code was backported from his pata_pdc2027x driver... This code has been successfully tested by me on PDC2026[89] chips. I tried to keep this rework as several patches but it made no sense: [2] was largely a modification of the non-working timing override code, [3] by itself extended the overclocking issue to the case of non-UltraDMA/133 drives, and finally, the cleanup patch based on [1] ended up rejected... Signed-off-by: Sergei Shtylyov <sshtylyov@ru.mvista.com> Cc: Albert Lee <albertcc@tw.ibm.com> Acked-by: Alan Cox <alan@lxorguk.ukuu.org.uk> Cc: Bartlomiej Zolnierkiewicz <B.Zolnierkiewicz@elka.pw.edu.pl> Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
* [PATCH] ide: complete switch to pci_getAlan Cox2006-12-10
| | | | | | | | | The reverse get function allows the final piece of the switching for the old IDE layer Signed-off-by: Alan Cox <alan@redhat.com> Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
* [PATCH] sl82c105: straighten up IDE control/status register cachingSergei Shtylyov2006-12-08
| | | | | | | | | | | | | | | | | | Straighten up the IDE control/status register caching -- you *really* can't cache the shared register per-channel and hope that it won't get out ouf sync. Set the PIO fallback mode to PIO0 for the slave drive as well as master -- there was no point in having them different (most probably a resutl of typo). Do a bit of reformat and cleanup while at it... Signed-off-by: Sergei Shtylyov <sshtylyov@ru.mvista.com> Acked-by: Alan Cox <alan@lxorguk.ukuu.org.uk> Cc: Bartlomiej Zolnierkiewicz <B.Zolnierkiewicz@elka.pw.edu.pl> Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
* [PATCH] pdc202xx_new: fix PIO mode setupSergei Shtylyov2006-12-08
| | | | | | | | | | | | Fix pdcnew_tune_drive() to always set the PIO mode requested, not pick the best possible one, change pdcnew_config_drive_xfer_rate() accordingly, and get rid of the duplicate tuneproc() call in config_chipset_for_dma(). Signed-off-by: Sergei Shtylyov <sshtylyov@ru.mvista.com> Cc: Alan Cox <alan@lxorguk.ukuu.org.uk> Cc: Bartlomiej Zolnierkiewicz <B.Zolnierkiewicz@elka.pw.edu.pl> Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
* [PATCH] ide: more conversion to pci_get APIsAlan Cox2006-12-08
| | | | | | | | | This completes IDE except for one use which requires a new core PCI function and will be polished up at the end Signed-off-by: Alan Cox <alan@redhat.com> Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
* [PATCH] winbond IDE depends on IDEDMAOlaf Hering2006-12-07
| | | | | | | | | | | | | | | | | | | | | | | | winbond ide depends on idedma. Move the option into the IDEDMA section. drivers/built-in.o: In function `.sl82c105_ide_dma_timeout': sl82c105.c:(.text+0x624d0): undefined reference to `.__ide_dma_timeout' drivers/built-in.o: In function `.sl82c105_ide_dma_off_quietly': sl82c105.c:(.text+0x6274c): undefined reference to `.__ide_dma_off_quietly' drivers/built-in.o: In function `.sl82c105_ide_dma_on': sl82c105.c:(.text+0x6284c): undefined reference to `.__ide_dma_on' drivers/built-in.o: In function `.sl82c105_check_drive': sl82c105.c:(.text+0x628ec): undefined reference to `.__ide_dma_bad_drive' sl82c105.c:(.text+0x62934): undefined reference to `.__ide_dma_good_drive' drivers/built-in.o: In function `.sl82c105_ide_dma_start': sl82c105.c:(.text+0x62c24): undefined reference to `.ide_dma_start' make[1]: *** [.tmp_vmlinux1] Error 1 Signed-off-by: Olaf Hering <olaf@aepfle.de> Acked-by: "Bartlomiej Zolnierkiewicz" <bzolnier@gmail.com> Cc: Alan Cox <alan@lxorguk.ukuu.org.uk> Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
* [PATCH] lockdep: fix ide/proc interactionPeter Zijlstra2006-12-07
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | rmmod/3080 [HC0[0]:SC0[0]:HE0:SE1] is trying to acquire: (proc_subdir_lock){--..}, at: [<c04a33b0>] remove_proc_entry+0x40/0x191 and this task is already holding: (ide_lock){++..}, at: [<c05651a2>] ide_unregister_subdriver+0x39/0xc8 which would create a new lock dependency: (ide_lock){++..} -> (proc_subdir_lock){--..} but this new dependency connects a hard-irq-safe lock: (ide_lock){++..} ... which became hard-irq-safe at: [<c043c458>] lock_acquire+0x4b/0x6b [<c06129d7>] _spin_lock_irqsave+0x22/0x32 [<c0567870>] ide_intr+0x17/0x1a9 [<c044eb31>] handle_IRQ_event+0x20/0x4d [<c044ebf2>] __do_IRQ+0x94/0xef [<c0406771>] do_IRQ+0x9e/0xbd to a hard-irq-unsafe lock: (proc_subdir_lock){--..} ... which became hard-irq-unsafe at: ... [<c043c458>] lock_acquire+0x4b/0x6b [<c06126ab>] _spin_lock+0x19/0x28 [<c04a32f2>] xlate_proc_name+0x1b/0x99 [<c04a3547>] proc_create+0x46/0xdf [<c04a3642>] create_proc_entry+0x62/0xa5 [<c07c1972>] proc_misc_init+0x1c/0x1d2 [<c07c1844>] proc_root_init+0x4c/0xe9 [<c07ad703>] start_kernel+0x294/0x3b3 Move ide_remove_proc_entries() out from under ide_lock; there is nothing that indicates that this is needed. In specific, the call to ide_add_proc_entries() is unprotected, and there is nothing else in the file using the respective ->proc fields. Also the lock order around destroy_proc_ide_interface() suggests this. Alan sayeth: proc_ide_write_settings walks the setting list under ide_setting_sem, read ditto. remove_proc_entry is doing proc side housekeeping. Looks fine to me, although that old code is such a mess anything could be going on. Signed-off-by: Peter Zijlstra <a.p.zijlstra@chello.nl> Cc: Alan Cox <alan@lxorguk.ukuu.org.uk> Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
* [PATCH] via82cxxx: handle error condition properlyAlan Cox2006-12-07
| | | | | | | | | | | | Jeff noted that the via driver returned an error to an unsigned int in a a case where errors are not permitted. Move the check down earlier so we can handle it properly. Not as pretty but it works this way and avoids hacking up ugly stuff in the legacy ide core. Signed-off-by: Alan Cox <alan@redhat.com> Cc: Jeff Garzik <jeff@garzik.org> Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
* Merge master.kernel.org:/pub/scm/linux/kernel/git/brodo/pcmcia-2.6Linus Torvalds2006-12-05
|\ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * master.kernel.org:/pub/scm/linux/kernel/git/brodo/pcmcia-2.6: [PATCH] pcmcia: at91_cf update [PATCH] pcmcia: fix m32r_cfc.c compilation [PATCH] pcmcia: ds.c debug enhancements [PATCH] pcmcia: at91_cf update [PATCH] pcmcia: conf.ConfigBase and conf.Present consolidation [PATCH] pcmcia: remove prod_id indirection [PATCH] pcmcia: remove manf_id and card_id indirection [PATCH] pcmcia: IDs for Elan serial PCMCIA devcies [PATCH] pcmcia: allow for four multifunction subdevices [PATCH] pcmcia: handle __copy_from_user() return value in ioctl [PATCH] pcmcia: multifunction card handling fixes [PATCH] pcmcia: allow shared IRQs on pd6729 sockets [PATCH] pcmcia: start over after CIS override [PATCH] cm4000_cs: fix return value check [PATCH] pcmcia: yet another IDE ID [PATCH] pcmcia: Add an id to ide-cs.c
| * [PATCH] pcmcia: conf.ConfigBase and conf.Present consolidationDominik Brodowski2006-12-04
| | | | | | | | | | | | | | | | | | | | | | struct pcmcia_device *p_dev->conf.ConfigBase and .Present are set in almost all PCMICA driver right at the beginning, using the same calls but slightly different implementations. Unfiy this in the PCMCIA core. Includes a small bugfix ("drivers/net/pcmcia/xirc2ps_cs.c: remove unused label") from and Signed-off-by Adrian Bunk <bunk@stusta.de> Signed-off-by: Dominik Brodowski <linux@dominikbrodowski.net>
| * [PATCH] pcmcia: remove manf_id and card_id indirectionDominik Brodowski2006-12-04
| | | | | | | | | | | | | | | | | | As we read out the manufactor and card_id from the PCMCIA device in the PCMCIA core, and device drivers can access those reliably in struct pcmcia_device's fields manf_id and card_id, remove additional (and partly broken) manf_id and card_id detection logic from PCMCIA device drivers. Signed-off-by: Dominik Brodowski <linux@dominikbrodowski.net>
| * [PATCH] pcmcia: yet another IDE IDMarcin Juszkiewicz2006-12-04
| | | | | | | | | | | | | | | | | | | | | | | | | | Microdrive reported by one of OpenEmbedded developers. product info: "WEIDA", "TWTTI", "" manfid: 0x000a, 0x0000 function: 4 (fixed disk) (equivalent update to pata_pcmcia.c by Dominik Brodowski) Signed-off-by: Marcin Juszkiewicz <openembedded@hrw.one.pl> Signed-off-by: Dominik Brodowski <linux@dominikbrodowski.net>
| * [PATCH] pcmcia: Add an id to ide-cs.cMatt Reimer2006-12-04
| | | | | | | | | | | | | | | | | | | | | | Add an ID entry for: product info: "TRANSCEND", "TS1GCF80", "", "" manfid: 0x000a, 0x0000 function: 4 (fixed disk) Signed-off-by: Matt Reimer <mreimer@vpop.net> Signed-off-by: Dominik Brodowski <linux@dominikbrodowski.net>
* | Merge branch 'linux-2.6' into for-linusPaul Mackerras2006-12-03
|\|
| * Fix misc .c/.h comment typosMatt LaPlante2006-11-29
| | | | | | | | | | | | | | Fix various .c/.h typos in comments (no code changes). Signed-off-by: Matt LaPlante <kernel1@cyberdogtech.com> Signed-off-by: Adrian Bunk <bunk@stusta.de>
| * [PATCH] sgiioc4: Disable module unloadJeremy Higdon2006-11-25
| | | | | | | | | | | | | | | | | | | | | | | | | | | | This patch removes a module_exit function that sgiioc4 should not have had. It seems that the IDE layer doesn't support submodule unloading. sgiioc4 was the only driver in drivers/ide/pci that had an exit function. After an unload, the devices would stay around and the next attempt to reference would crash... Signed-off-by: Jeremy Higdon <jeremy@sgi.com> Acked-by: "Bartlomiej Zolnierkiewicz" <bzolnier@gmail.com> Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
| * [PATCH] drivers/ide: stray bracketNicolas Kaiser2006-11-14
| | | | | | | | | | | | | | | | | | Stray bracket in debug code. Signed-off-by: Nicolas Kaiser <nikai@nikai.net> Cc: Alan Cox <alan@lxorguk.ukuu.org.uk> Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
| * [PATCH] ide-cd: only set rq->errors SCSI style for block pc requestsJens Axboe2006-11-13
| | | | | | | | | | | | | | | | We should only set ->errors to CHECK_CONDITION and so on for requests that use this field in the SCSI manner. Signed-off-by: Jens Axboe <jens.axboe@oracle.com> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
| * [PATCH] IDE: Add the support of nvidia PATA controllers of MCP67 to amd74xx.cPeer Chen2006-11-03
| | | | | | | | | | | | | | | | | | | | Add support for PATA controllers of MCP67 to amd74xx.c. Signed-off-by: Peer Chen <pchen@nvidia.com> Cc: Jeff Garzik <jeff@garzik.org> Acked-by: Alan Cox <alan@redhat.com> Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
| * [PATCH] drivers/ide/pci/generic.c: add missing newline to the ↵Sergey Vlasov2006-10-30
| | | | | | | | | | | | | | | | | | all-generic-ide message Signed-off-by: Sergey Vlasov <vsu@altlinux.ru> Acked-by: Alan Cox <alan@redhat.com> Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
| * [PATCH] JMB 368 PATA detectionAlan Cox2006-10-28
| | | | | | | | | | | | | | | | | | | | The Jmicron JMB368 is PATA only so has the PATA on function zero. Don't therefore skip function zero on this device when probing Signed-off-by: Alan Cox <alan@redhat.com> Cc: <stable@kernel.org> Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
| * [PATCH] drivers/ide/pci/generic.c: re-add the __setup("all-generic-ide",...)Adrian Bunk2006-10-21
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The change from __setup() to module_param_named() requires users to prefix the option with "generic.". This patch re-adds the __setup() additionally to the module_param_named(). Usually it would make sense getting rid of such an obsolete __setup() at some time, but considering that drivers/ide/ is slowly approaching a RIP status it's already implicitely scheduled for removal. This patch fixes kernel Bugzilla #7353. Signed-off-by: Adrian Bunk <bunk@stusta.de> Acked-by: Alan Cox <alan@lxorguk.ukuu.org.uk> Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
| * [PATCH] ioc4: Enable build on non-SN2Brent Casavant2006-10-17
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The SGI PCI-RT card, based on the SGI IOC4 chip, will be made available on Altix XE (x86_64) platforms in the near future. As such it is now a misnomer for the IOC4 base device driver to live under drivers/sn, and would complicate builds for non-SN2. This patch moves the IOC4 base driver code from drivers/sn to drivers/misc, and updates the associated Makefiles and Kconfig files to allow building on non-SN2 configs. Due to the resulting change in link order, it is now necessary to use late_initcall() for IOC4 subdriver initialization. [akpm@osdl.org: __udivdi3 fix] [akpm@osdl.org: fix default in Kconfig] Acked-by: Pat Gefre <pfg@sgi.com> Acked-by: Jeremy Higdon <jeremy@sgi.com> Signed-off-by: Brent Casavant <bcasavan@sgi.com> Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
| * [PATCH] ide: add sanity checking to ide taskfile ioctlAlan Cox2006-10-16
| | | | | | | | | | | | | | | | | | | | | | Without this the user can feed in bogus values and get very bogus results. Security impact is minimal as this ioctl isn't available to unpriviledged processes anyway. Reported to the l/k list and found with an auditing tool. Signed-off-by: Alan Cox <alan@redhat.com> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
* | [PATCH] Remove inclusion of asm/processor.h in via82cxxx.cSascha Hauer2006-11-12
|/ | | | | | | | | There is some PPC_CHRP specific code in drivers/ide/pci/via82cxxx.c, so #ifdef on CONFIG_PPC_CHRP instead of CONFIG_PPC_MULTIPLATFORM. Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de> Acked-by: Benjamin Herrenschmidt <benh@kernel.crashing.org> Signed-off-by: Paul Mackerras <paulus@samba.org>
* [PATCH] ide-cd: one more missing REQ_TYPE_CMD_ATA checkJens Axboe2006-10-12
| | | | Signed-off-by: Jens Axboe <jens.axboe@oracle.com>
* [PATCH] ide-cd: fix breakage with internally queued commandsJens Axboe2006-10-12
| | | | | | | We still need to maintain a private PC style command, since it isn't completely unified with REQ_TYPE_BLOCK_PC yet. Signed-off-by: Jens Axboe <jens.axboe@oracle.com>
* [PATCH] ide-generic: jmicron fixAlan Cox2006-10-11
| | | | | | | | | | | | Some people find their Jmicron pata port reports its disabled even though it has devices on it and was boot probed. Fix this (Candidate for 2.6.18.*, less so for 2.6.19 as we've got a proper jmicron driver on the merge for that to replace ide-generic support) Cc: <stable@kernel.org> Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
* [PATCH] swarm: Actually initialize the IDE driverMaciej W. Rozycki2006-10-06
| | | | | | | | | | This is required for the SWARM GenBus IDE interface to be recognized. Signed-off-by: Maciej W. Rozycki <macro@linux-mips.org> Cc: Ralf Baechle <ralf@linux-mips.org> Cc: Alan Cox <alan@lxorguk.ukuu.org.uk> Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
* IRQ: Maintain regs pointer globally rather than passing to IRQ handlersDavid Howells2006-10-05
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Maintain a per-CPU global "struct pt_regs *" variable which can be used instead of passing regs around manually through all ~1800 interrupt handlers in the Linux kernel. The regs pointer is used in few places, but it potentially costs both stack space and code to pass it around. On the FRV arch, removing the regs parameter from all the genirq function results in a 20% speed up of the IRQ exit path (ie: from leaving timer_interrupt() to leaving do_IRQ()). Where appropriate, an arch may override the generic storage facility and do something different with the variable. On FRV, for instance, the address is maintained in GR28 at all times inside the kernel as part of general exception handling. Having looked over the code, it appears that the parameter may be handed down through up to twenty or so layers of functions. Consider a USB character device attached to a USB hub, attached to a USB controller that posts its interrupts through a cascaded auxiliary interrupt controller. A character device driver may want to pass regs to the sysrq handler through the input layer which adds another few layers of parameter passing. I've build this code with allyesconfig for x86_64 and i386. I've runtested the main part of the code on FRV and i386, though I can't test most of the drivers. I've also done partial conversion for powerpc and MIPS - these at least compile with minimal configurations. This will affect all archs. Mostly the changes should be relatively easy. Take do_IRQ(), store the regs pointer at the beginning, saving the old one: struct pt_regs *old_regs = set_irq_regs(regs); And put the old one back at the end: set_irq_regs(old_regs); Don't pass regs through to generic_handle_irq() or __do_IRQ(). In timer_interrupt(), this sort of change will be necessary: - update_process_times(user_mode(regs)); - profile_tick(CPU_PROFILING, regs); + update_process_times(user_mode(get_irq_regs())); + profile_tick(CPU_PROFILING); I'd like to move update_process_times()'s use of get_irq_regs() into itself, except that i386, alone of the archs, uses something other than user_mode(). Some notes on the interrupt handling in the drivers: (*) input_dev() is now gone entirely. The regs pointer is no longer stored in the input_dev struct. (*) finish_unlinks() in drivers/usb/host/ohci-q.c needs checking. It does something different depending on whether it's been supplied with a regs pointer or not. (*) Various IRQ handler function pointers have been moved to type irq_handler_t. Signed-Off-By: David Howells <dhowells@redhat.com> (cherry picked from 1b16e7ac850969f38b375e511e3fa2f474a33867 commit)
* Remove all inclusions of <linux/config.h>Dave Jones2006-10-04
| | | | | | kbuild explicitly includes this at build time. Signed-off-by: Dave Jones <davej@redhat.com>
* Merge git://git.kernel.org/pub/scm/linux/kernel/git/bunk/trivialLinus Torvalds2006-10-03
|\ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * git://git.kernel.org/pub/scm/linux/kernel/git/bunk/trivial: (39 commits) Add missing maintainer countries in CREDITS Fix bytes <-> kilobytes typo in Kconfig for ramdisk fix a typo in Documentation/pi-futex.txt BUG_ON conversion for fs/xfs/ BUG_ON() conversion in fs/nfsd/ BUG_ON conversion for fs/reiserfs BUG_ON cleanups in arch/i386 BUG_ON cleanup in drivers/net/tokenring/ BUG_ON cleanup for drivers/md/ kerneldoc-typo in led-class.c debugfs: spelling fix rcutorture: Fix incorrect description of default for nreaders parameter parport: Remove space in function calls Michal Wronski: update contact info Spelling fix: "control" instead of "cotrol" reboot parameter in Documentation/kernel-parameters.txt Fix copy&waste bug in comment in scripts/kernel-doc remove duplicate "until" from kernel/workqueue.c ite_gpio fix tabbage fix file specification in comments ... Fixed trivial path conflicts due to removed files: arch/mips/dec/boot/decstation.c, drivers/char/ite_gpio.c
| * fix file specification in commentsUwe Zeisberger2006-10-03
| | | | | | | | | | | | | | Many files include the filename at the beginning, serveral used a wrong one. Signed-off-by: Uwe Zeisberger <Uwe_Zeisberger@digi.com> Signed-off-by: Adrian Bunk <bunk@stusta.de>
* | [MIPS] Remove IT8172-based platforms, ITE 8172G and Globespan IVR support.Yoichi Yuasa2006-10-03
|/ | | | | | | | As per feature-removal-schedule.txt. Signed-off-by: Yoichi Yuasa <yoichi_yuasa@tripeaks.co.jp> Acked-by: Alan Cox <alan@redhat.com> Signed-off-by: Ralf Baechle <ralf@linux-mips.org>
* [PATCH] ide-cs (CompactFlash) driver, rm irq warningDavid Brownell2006-10-03
| | | | | | | | | | Git rid of the runtime warning about pcmcia not supporting exclusive IRQs, so "the driver needs updating". Signed-off-by: David Brownell <dbrownell@users.sourceforge.net> Acked-by: Alan Cox <alan@redhat.com> Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
* [PATCH] IDE: more pci_find cleanupAlan Cox2006-10-03
| | | | | | Signed-off-by: Alan Cox <alan@redhat.com> Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
* [PATCH] Allow ide_generic_all to be used modular and built inPatrick Jefferson2006-10-03
| | | | | | | | | | | Allow ide/pci/generic to claim chipsets as a a module or when built-in. It requires using "all_generic_ide" as a boot option. Signed-off-by: Patrick Jefferson <henj@hp.com> Acked-by: Alan Cox <alan@redhat.com> Closes-Bug: 7017 Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
* [PATCH] ide: Fix crash on repeated resetAlan Cox2006-10-03
| | | | | | | | | | | | | | | | | Michal Miroslaw reported a problem (bugzilla #7023) where a user initiated reset while the IDE layer was already resetting the channel caused a crash, and provided a rough fix. This is a slightly cleaner version of the fix which tracks the reset state and blocks further reset requests while a reset is in progress. Note this is not a security issue - random end users can't access the ioctl in question anyway. Signed-off-by: Alan Cox <alan@redhat.com> Cc: Michal Miroslaw <mirq-linux@rere.qmqm.pl> Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
* [PATCH] CONFIG_PM=n slim: drivers/ide/pci/sc1200.cAlexey Dobriyan2006-10-03
| | | | | | | | | | Remove some code which is unneeded if CONFIG_PM=n. Signed-off-by: Alexey Dobriyan <adobriyan@gmail.com> Cc: Alan Cox <alan@lxorguk.ukuu.org.uk> Cc: Bartlomiej Zolnierkiewicz <B.Zolnierkiewicz@elka.pw.edu.pl> Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
* [PATCH] PCMCIA: Add few IDs into ide-csMarcin Juszkiewicz2006-10-03
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Few cards informations submitted by OpenZaurus users. Seagate 8GB microdrive: product info: "SEAGATE", "ST1" manfid 0x0111, 0x0000 One CF card: product info: "SAMSUNG", "04/05/06", "", "" manfid : 0x0000, 0x0000 Ridata 8GB Pro 150X Compact Flash Card: product info: "SMI VENDOR", "SMI PRODUCT", "" manfid: 0x000a, 0x0000 product info: "M-Systems", "CF500", "" manfid: 0x000a, 0x0000 product info: "TRANSCEND", "TS4GCF120", "" manfid: 0x000a, 0x0000 Alan sayeth: "Same update needs to go into drivers/ata/pata_pcmcia" Signed-off-by: Marcin Juszkiewicz <openembedded@hrw.one.pl> Cc: Dominik Brodowski <linux@dominikbrodowski.net> Acked-by: Alan Cox <alan@redhat.com> Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
* [PATCH] ide: reprogram disk pio timings on resumeJason Lunz2006-10-03
| | | | | | | | | | | | | | | | | | | | | | | | | | | Add a step to the IDE PM state machine that reprograms disk PIO timings as the first step on resume. This prevents ide deadlock on resume-from-ram on my nforce3-based laptop. An earlier implementation was written entirely within the amd74xx ide driver, but Alan helpfully pointed out that this is the correct thing to do globally. Still, I'm only calling hwif->tuneproc() for disks, based on two things: - The existing state machine is already passed over for non-disk drives - Previous testing on my laptop shows that the hangs are related only to the disk - suspend/resume from a livecd showed that there's no need for this on the cdrom. Signed-off-by: Jason Lunz <lunz@falooley.org> Cc: Bartlomiej Zolnierkiewicz <B.Zolnierkiewicz@elka.pw.edu.pl> Cc: "Rafael J. Wysocki" <rjw@sisk.pl> Cc: Sergei Shtylyov <sshtylyov@ru.mvista.com> Cc: Pavel Machek <pavel@ucw.cz> Cc: Brad Campbell <brad@wasp.net.au> Cc: David Brownell <david-b@pacbell.net> Cc: Alan Cox <alan@lxorguk.ukuu.org.uk> Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
* [PATCH] ide: remove dma_base2 field from ide_hwif_tSergei Shtylyov2006-10-03
| | | | | | | | | | | | | Remove dma_base2 field from ide_hwif_t as it's used only in 2 drivers and without great need. Signed-off-by: Sergei Shtylyov <sshtylyov@ru.mvista.com> Cc: John Keller <jpk@sgi.com> Signed-off-by: Jeremy Higdon <jeremy@sgi.com> Acked-by: Alan Cox <alan@lxorguk.ukuu.org.uk> Cc: Bartlomiej Zolnierkiewicz <B.Zolnierkiewicz@elka.pw.edu.pl> Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
* [PATCH] drivers/ide/: cleanupsAdrian Bunk2006-10-03
| | | | | | | | | | | - setup-pci.c: remove the unused ide_pci_unregister_driver() - ide-dma.c: remove the unused EXPORT_SYMBOL_GPL(ide_in_drive_list) Signed-off-by: Adrian Bunk <bunk@stusta.de> Acked-by: Alan Cox <alan@lxorguk.ukuu.org.uk> Cc: Bartlomiej Zolnierkiewicz <B.Zolnierkiewicz@elka.pw.edu.pl> Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
* [PATCH] IDE core: driver layer error checkingRandy Dunlap2006-10-03
| | | | | | | | Check driver layer return values in IDE core. Signed-off-by: Randy Dunlap <rdunlap@xenotime.net> Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
* [PATCH] ide: backport piix fixes from libata into the legacy driverAlan Cox2006-10-03
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | There are three flags being set by default by the PIIX driver for speeds > PIO 1, and one not being cleared properly on fallback to PIO0. The most important one is the prefetch/post write control which only works for ATA and can do bad things with ATAPI. The patch does its best to set the flags correctly for drivers/ide. Its not 100% perfect but its closer than the original. 100% perfect requires proper IORDY handling but this isn't critical (and its not right in libata either .. yet) Sergei Shtylyov <sshtylyov@ru.mvista.com> said: > + { 0, 0 }, > + { 0, 0 }, > + { 1, 0 }, > + { 2, 1 }, > + { 2, 3 }, }; > > pio = ide_get_best_pio_mode(drive, pio, 5, NULL); BTW, there's quite obvious error here which leads to access outside of timings[] if somebody passes PIO mode 5 (or autotuning code finds out that drive supports PIO mode 5). Could have been fixed while at it... Those drives should be rare, though... > + } > master_data = master_data | (timings[pio][0] << 12) | (timings[pio][1] << 8); > } > pci_write_config_word(dev, master_port, master_data); Actually, there's one more serious issue with piix_tune_drive() -- it doesn't actually set the drive's own transfer mode. Signed-off-by: Alan Cox <alan@redhat.com> Cc: Sergei Shtylyov <sshtylyov@ru.mvista.com> Cc: Bartlomiej Zolnierkiewicz <B.Zolnierkiewicz@elka.pw.edu.pl> Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
* [PATCH] ide: fix revision comparison in ide_in_drive_listKirill Smelkov2006-10-03
| | | | | | | | | | | Fix ide_in_drive_list: drive_table->id_firmware should be searched *in* id->fw_rev, not vice versa. Signed-off-by: Kirill Smelkov <kirr@mns.spb.ru> Cc: Bartlomiej Zolnierkiewicz <B.Zolnierkiewicz@elka.pw.edu.pl> Cc: Alan Cox <alan@lxorguk.ukuu.org.uk> Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Linus Torvalds <torvalds@osdl.org>