1. 16 Feb, 2007 10 commits
  2. 07 Feb, 2007 2 commits
    • Greg Kroah-Hartman's avatar
      PCI: add the sysfs driver name to all modules · 725522b5
      Greg Kroah-Hartman authored
      
      
      This adds the module name to all PCI drivers, if they are built into the
      kernel or not.  It will show up in /sys/modules/MODULE_NAME/drivers/
      
      It also fixes up the IDE core, which was calling __pci_register_driver()
      directly.
      
      Cc: Kay Sievers <kay.sievers@suse.de>
      Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@suse.de>
      725522b5
    • Hannes Reinecke's avatar
      ACPI support for IDE devices · e3a59b4d
      Hannes Reinecke authored
      
      
      This patch implements ACPI integration for generic IDE devices.
      The ACPI spec mandates that some methods are called during suspend and
      resume. And consequently there most modern Laptops cannot resume
      properly without it.
      
      According to the spec, we should call '_GTM' (Get Timing) upon suspend
      to store the current IDE adapter settings.
      Upon resume we should call '_STM' (Set Timing) to initialize the
      adapter with the stored settings; afterwards '_GTF' (Get Taskfile)
      should be called which returns a buffer with some IDE initialisation
      commands. Those commands should be passed to the drive.
      
      There are two module params which control the behaviour of this patch:
      
      'ide=noacpi'
      	Do not call any ACPI methods (Disables any ACPI method calls)
      'ide=acpigtf'
      	Enable execution of _GTF methods upon resume.
      	Has no effect if 'ide=noacpi' is set.
      'ide=acpionboot'
      	Enable execution of ACPI methods during boot.
      	This might be required on some machines if 'ide=acpigtf' is
      	selected as some machines modify the _GTF information
      	depending on the drive identification passed down with _STM.
      Signed-off-by: default avatarHannes Reinecke <hare@suse.de>
      Signed-off-by: default avatarBartlomiej Zolnierkiewicz <bzolnier@gmail.com>
      e3a59b4d
  3. 12 Dec, 2006 1 commit
    • Boaz Harrosh's avatar
      [PATCH] remove blk_queue_activity_fn · 2b02a179
      Boaz Harrosh authored
      
      
      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: default avatarBoaz Harrosh <bharrosh@panasas.com>
      Signed-off-by: default avatarJens Axboe <jens.axboe@oracle.com>
      2b02a179
  4. 10 Dec, 2006 1 commit
  5. 05 Oct, 2006 1 commit
    • David Howells's avatar
      IRQ: Maintain regs pointer globally rather than passing to IRQ handlers · 7d12e780
      David Howells authored
      
      
      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: default avatarDavid Howells <dhowells@redhat.com>
      (cherry picked from 1b16e7ac850969f38b375e511e3fa2f474a33867 commit)
      7d12e780
  6. 03 Oct, 2006 5 commits
  7. 28 Jul, 2006 1 commit
  8. 03 Jul, 2006 1 commit
  9. 28 Jun, 2006 1 commit
  10. 26 Jun, 2006 1 commit
  11. 25 Jun, 2006 1 commit
    • Alan Cox's avatar
      [PATCH] IDE CD end-of media error fix · dbe217af
      Alan Cox authored
      
      
      This is a patch from Alan that fixes a real ide-cd.c regression causing
      bogus "Media Check" failures for perfectly valid Fedora install ISOs, on
      certain CD-ROM drives.
      
      This is a forward port to 2.6.16 (from RHEL) of the minimal changes for the
      end of media problem.  It may not be sufficient for some controllers
      (promise notably) and it does not touch the locking so the error path
      locking is as horked as in mainstream.
      
      From: Ingo Molnar <mingo@elte.hu>
      
      I have ported the patch to 2.6.17-rc4 and tested it by provoking
      end-of-media IO errors with an unaligned ISO image.  Unlike the vanilla
      kernel, the patched kernel interpreted the error condition correctly with
      512 byte granularity:
      
       hdc: command error: status=0x51 { DriveReady SeekComplete Error }
       hdc: command error: error=0x54 { AbortedCommand LastFailedSense=0x05 }
       ide: failed opcode was: unknown
       ATAPI device hdc:
         Error: Illegal request -- (Sense key=0x05)
         Illegal mode for this track or incompatible medium -- (asc=0x64, ascq=0x00)
         The failed "Read 10" packet command was:
         "28 00 00 04 fb 78 00 00 06 00 00 00 00 00 00 00 "
       end_request: I/O error, dev hdc, sector 1306080
       Buffer I/O error on device hdc, logical block 163260
       Buffer I/O error on device hdc, logical block 163261
       Buffer I/O error on device hdc, logical block 163262
      
      the unpatched kernel produces an incorrect error dump:
      
       hdc: command error: status=0x51 { DriveReady SeekComplete Error }
       hdc: command error: error=0x54 { AbortedCommand LastFailedSense=0x05 }
       ide: failed opcode was: unknown
       end_request: I/O error, dev hdc, sector 1306080
       Buffer I/O error on device hdc, logical block 163260
       hdc: command error: status=0x51 { DriveReady SeekComplete Error }
       hdc: command error: error=0x54 { AbortedCommand LastFailedSense=0x05 }
       ide: failed opcode was: unknown
       end_request: I/O error, dev hdc, sector 1306088
       Buffer I/O error on device hdc, logical block 163261
       hdc: command error: status=0x51 { DriveReady SeekComplete Error }
       hdc: command error: error=0x54 { AbortedCommand LastFailedSense=0x05 }
       ide: failed opcode was: unknown
       end_request: I/O error, dev hdc, sector 1306096
       Buffer I/O error on device hdc, logical block 163262
      
      I do not have the right type of CD-ROM drive to reproduce the end-of-media
      data corruption bug myself, but this same patch in RHEL solved it.
      Signed-off-by: default avatarIngo Molnar <mingo@elte.hu>
      Cc: Alan Cox <alan@lxorguk.ukuu.org.uk>
      Cc: Bartlomiej Zolnierkiewicz <B.Zolnierkiewicz@elka.pw.edu.pl>
      Cc: Jens Axboe <axboe@suse.de>
      Cc: Matt Mackall <mpm@selenic.com>
      Signed-off-by: default avatarAndrew Morton <akpm@osdl.org>
      Signed-off-by: default avatarLinus Torvalds <torvalds@osdl.org>
      dbe217af
  12. 26 Apr, 2006 1 commit
  13. 19 Apr, 2006 1 commit
  14. 24 Mar, 2006 1 commit
  15. 03 Feb, 2006 2 commits
  16. 13 Jan, 2006 1 commit
  17. 12 Jan, 2006 1 commit
  18. 09 Jan, 2006 2 commits
  19. 08 Jan, 2006 1 commit
  20. 14 Dec, 2005 3 commits
  21. 19 Nov, 2005 2 commits