1. 14 6月, 2012 4 次提交
  2. 12 6月, 2012 6 次提交
  3. 21 5月, 2012 1 次提交
  4. 01 5月, 2012 2 次提交
  5. 20 3月, 2012 1 次提交
  6. 09 3月, 2012 1 次提交
    • G
      powerpc/eeh: Introduce EEH device · eb740b5f
      Gavin Shan 提交于
      Original EEH implementation depends on struct pci_dn heavily. However,
      EEH shouldn't depend on that actually because EEH needn't share much
      information with other PCI components. That's to say, EEH should have
      worked independently.
      
      The patch introduces struct eeh_dev so that EEH core components needn't
      be working based on struct pci_dn in future. Also, struct pci_dn, struct
      eeh_dev instances are created in dynamic fasion and the binding with EEH
      device, OF node, PCI device is implemented as well.
      
      The EEH devices are created after PHBs are detected and initialized, but
      PCI emunation hasn't started yet. Apart from that, PHB might be created
      dynamically through DLPAR component and the EEH devices should be creatd
      as well. Another case might be OF node is created dynamically by DR
      (Dynamic Reconfiguration), which has been defined by PAPR. For those OF
      nodes created by DR, EEH devices should be also created accordingly. The
      binding between EEH device and OF node is done while the EEH device is
      initially created.
      
      The binding between EEH device and PCI device should be done after PCI
      emunation is done. Besides, PCI hotplug also needs the binding so that
      the EEH devices could be traced from the newly coming PCI buses or PCI
      devices.
      Signed-off-by: NGavin Shan <shangw@linux.vnet.ibm.com>
      Signed-off-by: NBenjamin Herrenschmidt <benh@kernel.crashing.org>
      eb740b5f
  7. 28 2月, 2012 3 次提交
  8. 25 2月, 2012 1 次提交
    • Y
      PCI: Add class support in quirk handling · f4ca5c6a
      Yinghai Lu 提交于
      Recently added support to allow quirks to report duration also make the
      boot log very crowded when initcall_debug is specified.
      
      One thing we can to do mitigate this is to not call quirks unnecessarily
      by adding a new quirk declaration macro that takes a class argument.
      
      The new macro takes a class value and a class shift value (since it can
      vary) so that quirks will be limited to certain device classes, greatly
      reducing the number we call on every PCI device addition.
      
      -v2: fix v1 that left over of sparated patch.
      -v3: according to Jesse, change cls to class, cls_shift, to class_shift.
      Signed-off-by: NYinghai Lu <yinghai@kernel.org>
      Signed-off-by: NJesse Barnes <jbarnes@virtuousgeek.org>
      f4ca5c6a
  9. 24 2月, 2012 4 次提交
  10. 15 2月, 2012 5 次提交
  11. 10 2月, 2012 1 次提交
  12. 13 1月, 2012 1 次提交
    • K
      pci: Introduce __pci_reset_function_locked to be used when holding device_lock. · a96d627a
      Konrad Rzeszutek Wilk 提交于
      The use case of this is when a driver wants to call FLR when a device
      is attached to it using the SysFS "bind" or "unbind" functionality.
      
      The call chain when a user does "bind" looks as so:
      
       echo "0000:01.07.0" > /sys/bus/pci/drivers/XXXX/bind
      
      and ends up calling:
        driver_bind:
          device_lock(dev);  <=== TAKES LOCK
          XXXX_probe:
               .. pci_enable_device()
               ...__pci_reset_function(), which calls
                       pci_dev_reset(dev, 0):
                              if (!0) {
                                      device_lock(dev) <==== DEADLOCK
      
      The __pci_reset_function_locked function allows the the drivers
      'probe' function to call the "pci_reset_function" while still holding
      the driver mutex lock.
      Signed-off-by: NKonrad Rzeszutek Wilk <konrad.wilk@oracle.com>
      a96d627a
  13. 07 1月, 2012 10 次提交