1. 27 Jun, 2008 4 commits
    • Wang Chen's avatar
      PCI: Fix comment of pci_dynids · 9433f6dd
      Wang Chen authored
      struct pci_driver has no field of driver_data.
      It's in pci_device_id.
      Signed-off-by: default avatarWang Chen <wangchen@cn.fujitsu.com>
      Signed-off-by: default avatarJesse Barnes <jbarnes@virtuousgeek.org>
      9433f6dd
    • Kenji Kaneshige's avatar
      pciehp: use get_service_data · b9708940
      Kenji Kaneshige authored
      Current pciehp driver saves its private data pointer into pci_dev
      structure using pci_set_drvdata()/pci_get_drvdata(). But because
      pciehp is not a pci device driver but a PCI Express service driver, it
      should save its private data pointer into pcie_device structure using
      set_service_data()/get_service_data().
      Signed-off-by: default avatarKenji Kaneshige <kaneshige.kenji@jp.fujitsu.com>
      Signed-off-by: default avatarJesse Barnes <jbarnes@virtuousgeek.org>
      b9708940
    • Kenji Kaneshige's avatar
      pciehp: remove needless command completed interrupt setting · 3aa50c44
      Kenji Kaneshige authored
      Currently, pciehp driver enables command completed interrupt as follows.
      
      (1) Don't enable at initialization.
      (2) Enable command completed interrupt whenever pciehp issues a
          command, if the command doesn't attempt to disable the interrupt.
      (3) Disable command completed interrupt at driver unloading.
      
      Once we enable command completed interrupt, we don't need to re-enable
      it for every command. So we can simplify above steps as follows:
      
      (1) Enable command completed interrupt at initialization.
      (2) No special sequence for command completed interrupt.
      (3) Disable command completed interrupt at driver unloading.
      Signed-off-by: default avatarKenji Kaneshige <kaneshige.kenji@jp.fujitsu.com>
      Signed-off-by: default avatarJesse Barnes <jbarnes@virtuousgeek.org>
      3aa50c44
    • Kenji Kaneshige's avatar
      pciehp: fix interrupt initialization · c4635eb0
      Kenji Kaneshige authored
      Current pciehp driver's intialization sequence is as follows:
      
      (1) initialize controller data structure
      (2) install interrupt handler
      (3) enable software notification
      (4) initialize controller specific slot data structure
      (5) initialize generic slot data structure and register it to pci hotplug core
      
      The interrupt handler of pciehp assumes that controller specific slot
      data structure is already initialized. However, it is installed at (2)
      before initializing controller specific slot data structure at
      (4). Because of this, pciehp driver cannot handle the following cases
      properly.
      
      - If devices that shares IRQ with pciehp raise interrupts between (2) and (4).
      - If hotplug events (e.g. MRL open) happen between (3) and (4).
      
      We already have a workaround for this problem ("pciehp: fix NULL
      dereference in interrupt handler: dbd79aed).
      But we still need fundamental fix.
      
      This patch fix the problem by changing the initilization sequence as follows:
      
      (1) initialize controller data structure
      (2) initialize controller specific slot data structure
      (3) install interrupt handler
      (4) enable software notification
      (5) initialize generic slot data structure and register it to pci hotplug core
      Signed-off-by: default avatarKenji Kaneshige <kaneshige.kenji@jp.fujitsu.com>
      Acked-by: default avatarAlex Chiang <achiang@hp.com>
      Signed-off-by: default avatarJesse Barnes <jbarnes@virtuousgeek.org>
      c4635eb0
  2. 25 Jun, 2008 10 commits
  3. 16 Jun, 2008 1 commit
  4. 12 Jun, 2008 2 commits
    • Rafael J. Wysocki's avatar
      Suspend-related patches for 2.6.27 · d8f3de0d
      Rafael J. Wysocki authored
      ACPI PM: Add possibility to change suspend sequence
      
      There are some systems out there that don't work correctly with
      our current suspend/hibernation code ordering.  Provide a workaround
      for these systems allowing them to pass 'acpi_sleep=old_ordering' in
      the kernel command line so that it will use the pre-ACPI 2.0 ("old")
      suspend code ordering.
      
      Unfortunately, this requires us to add a platform hook to the
      resuming of devices for recovering the platform in case one of the
      device drivers' .suspend() routines returns error code.  Namely,
      ACPI 1.0 specifies that _PTS should be called before suspending
      devices, but _WAK still should be called before resuming them in
      order to undo the changes made by _PTS.  However, if there is an
      error during suspending devices, they are automatically resumed
      without returning control to the PM core, so the _WAK has to be
      called from within device_resume() in that cases.
      
      The patch also reorders and refactors the ACPI suspend/hibernation
      code to avoid duplication as far as reasonably possible.
      Signed-off-by: default avatarRafael J. Wysocki <rjw@sisk.pl>
      Acked-by: default avatarPavel Machek <pavel@suse.cz>
      Signed-off-by: default avatarJesse Barnes <jbarnes@virtuousgeek.org>
      d8f3de0d
    • Jesse Barnes's avatar
      Merge branch 'suspend' of... · 53eb2fbe
      Jesse Barnes authored
      Merge branch 'suspend' of git://git.kernel.org/pub/scm/linux/kernel/git/lenb/linux-acpi-2.6 into linux-next
      53eb2fbe
  5. 11 Jun, 2008 3 commits
  6. 10 Jun, 2008 20 commits