1. 17 9月, 2014 1 次提交
    • B
      vgaarb: Don't default exclusively to first video device with mem+io · 86fd887b
      Bruno Prémont 提交于
      Commit 20cde694 ("x86, ia64: Move EFI_FB vga_default_device()
      initialization to pci_vga_fixup()") moved boot video device detection from
      efifb to x86 and ia64 pci/fixup.c.
      
      For dual-GPU Apple computers above change represents a regression as code
      in efifb did forcefully override vga_default_device while the merge did not
      (vgaarb happens prior to PCI fixup).
      
      To improve on initial device selection by vgaarb (it cannot know if PCI
      device not behind bridges see/decode legacy VGA I/O or not), move the
      screen_info based check from pci_video_fixup() to vgaarb's init function and
      use it to refine/override decision taken while adding the individual PCI
      VGA devices.  This way PCI fixup has no reason to adjust vga_default_device
      anymore but can depend on its value for flagging shadowed VBIOS.
      
      This has the nice benefit of removing duplicated code but does introduce a
      #if defined() block in vgaarb.  Not all architectures have screen_info and
      would cause compile to fail without it.
      
      Link: https://bugzilla.kernel.org/show_bug.cgi?id=84461Reported-and-Tested-By: NAndreas Noever <andreas.noever@gmail.com>
      Signed-off-by: NBruno Prémont <bonbons@linux-vserver.org>
      Signed-off-by: NBjorn Helgaas <bhelgaas@google.com>
      CC: Matthew Garrett <matthew.garrett@nebula.com>
      CC: stable@vger.kernel.org # v3.5+
      86fd887b
  2. 11 7月, 2014 1 次提交
    • B
      x86, ia64: Move EFI_FB vga_default_device() initialization to pci_vga_fixup() · 20cde694
      Bruno Prémont 提交于
      Commit b4aa0163 ("efifb: Implement vga_default_device() (v2)") added
      efifb vga_default_device() so EFI systems that do not load shadow VBIOS or
      setup VGA get proper value for boot_vga PCI sysfs attribute on the
      corresponding PCI device.
      
      Xorg doesn't detect devices when boot_vga=0, e.g., on some EFI systems such
      as MacBookAir2,1.  Xorg detects the GPU and finds the DRI device but then
      bails out with "no devices detected".
      
      Note: When vga_default_device() is set boot_vga PCI sysfs attribute
      reflects its state.  When unset this attribute is 1 whenever
      IORESOURCE_ROM_SHADOW flag is set.
      
      With introduction of sysfb/simplefb/simpledrm efifb is getting obsolete
      while having native drivers for the GPU also makes selecting sysfb/efifb
      optional.
      
      Remove the efifb implementation of vga_default_device() and initialize
      vgaarb's vga_default_device() with the PCI GPU that matches boot
      screen_info in pci_fixup_video().
      
      [bhelgaas: remove unused "dev" in efifb_setup()]
      Fixes: b4aa0163 ("efifb: Implement vga_default_device() (v2)")
      Tested-by: NAnibal Francisco Martinez Cortina <linuxkid.zeuz@gmail.com>
      Signed-off-by: NBruno Prémont <bonbons@linux-vserver.org>
      Signed-off-by: NBjorn Helgaas <bhelgaas@google.com>
      Acked-by: NMatthew Garrett <matthew.garrett@nebula.com>
      CC: stable@vger.kernel.org	# v3.5+
      20cde694
  3. 28 5月, 2014 1 次提交
  4. 26 4月, 2014 1 次提交
    • B
      x86/PCI: Mark ATI SBx00 HPET BAR as IORESOURCE_PCI_FIXED · 44c8bdbe
      Bjorn Helgaas 提交于
      Bodo reported that on the Asrock M3A UCC, v3.12.6 hangs during boot unless
      he uses "pci=nocrs".  This regression was caused by 7bc5e3f2 ("x86/PCI:
      use host bridge _CRS info by default on 2008 and newer machines"), which
      appeared in v2.6.34.
      
      The reason is that the HPET address appears in a PCI device BAR, and this
      address is not contained in any of the host bridge windows.  Linux moves
      the PCI BAR into a window, but the original address was published via the
      HPET table and an ACPI device, so changing the BAR is a bad idea.  Here's
      the dmesg info:
      
        ACPI: HPET id: 0x43538301 base: 0xfed00000
        pci_root PNP0A03:00: host bridge window [mem 0xd0000000-0xdfffffff]
        pci_root PNP0A03:00: host bridge window [mem 0xf0000000-0xfebfffff]
        pci 0000:00:14.0: [1002:4385] type 0 class 0x000c05
        pci 0000:00:14.0: reg 14: [mem 0xfed00000-0xfed003ff]
        hpet0: at MMIO 0xfed00000, IRQs 2, 8, 0, 0
        pnp 00:06: Plug and Play ACPI device, IDs PNP0103 (active)
        pnp 00:06: [mem 0xfed00000-0xfed003ff]
      
      When we notice the BAR is not in a host bridge window, we try to move it,
      but that causes a hang shortly thereafter:
      
        pci 0000:00:14.0: no compatible bridge window for [mem 0xfed00000-0xfed003ff]
        pci 0000:00:14.0: BAR 1: assigned [mem 0xf0000000-0xf00003ff]
      
      This patch marks the BAR as IORESOURCE_PCI_FIXED to prevent Linux from
      moving it.  This depends on a previous patch ("x86/PCI: Don't try to move
      IORESOURCE_PCI_FIXED resources") to check for this flag when
      pci_claim_resource() fails.
      
      Link: https://bugzilla.kernel.org/show_bug.cgi?id=68591Reported-and-tested-by: NBodo Eggert <7eggert@gmx.de>
      Signed-off-by: NBjorn Helgaas <bhelgaas@google.com>
      44c8bdbe
  5. 15 2月, 2014 1 次提交
  6. 04 2月, 2014 1 次提交
  7. 07 1月, 2014 1 次提交
  8. 24 9月, 2013 1 次提交
  9. 04 1月, 2013 1 次提交
    • G
      X86: drivers: remove __dev* attributes. · a18e3690
      Greg Kroah-Hartman 提交于
      CONFIG_HOTPLUG is going away as an option.  As a result, the __dev*
      markings need to be removed.
      
      This change removes the use of __devinit, __devexit_p, __devinitconst,
      and __devexit from these drivers.
      
      Based on patches originally written by Bill Pemberton, but redone by me
      in order to handle some of the coding style issues better, by hand.
      
      Cc: Bill Pemberton <wfp5p@virginia.edu>
      Cc: Thomas Gleixner <tglx@linutronix.de>
      Cc: Ingo Molnar <mingo@redhat.com>
      Cc: "H. Peter Anvin" <hpa@zytor.com>
      Cc: Peter Zijlstra <a.p.zijlstra@chello.nl>
      Cc: Daniel Drake <dsd@laptop.org>
      Signed-off-by: NGreg Kroah-Hartman <gregkh@linuxfoundation.org>
      a18e3690
  10. 18 5月, 2012 1 次提交
  11. 17 5月, 2012 1 次提交
  12. 16 5月, 2012 1 次提交
  13. 25 2月, 2012 2 次提交
  14. 21 3月, 2009 1 次提交
  15. 12 3月, 2009 1 次提交
  16. 30 12月, 2008 1 次提交
  17. 26 11月, 2008 1 次提交
  18. 15 9月, 2008 1 次提交
  19. 29 7月, 2008 1 次提交
  20. 30 4月, 2008 1 次提交
  21. 27 4月, 2008 1 次提交
  22. 11 2月, 2008 1 次提交
  23. 02 2月, 2008 1 次提交
  24. 30 1月, 2008 1 次提交
  25. 13 10月, 2007 1 次提交
  26. 11 10月, 2007 1 次提交
  27. 12 8月, 2007 1 次提交
    • M
      finish i386 and x86-64 sysdata conversion · 73c59afc
      Muli Ben-Yehuda 提交于
      This patch finishes the i386 and x86-64 ->sysdata conversion and hopefully
      also fixes Riku's and Andy's observed bugs.  It is based on Yinghai Lu's
      and Andy Whitcroft's patches (thanks!) with some changes:
      
      - introduce pci_scan_bus_with_sysdata() and use it instead of
        pci_scan_bus() where appropriate. pci_scan_bus_with_sysdata() will
        allocate the sysdata structure and then call pci_scan_bus().
      - always allocate pci_sysdata dynamically. The whole point of this
        sysdata work is to make it easy to do root-bus specific things
        (e.g., support PCI domains and IOMMU's). I dislike using a default
        struct pci_sysdata in some places and a dynamically allocated
        pci_sysdata elsewhere - the potential for someone indavertantly
        changing the default structure is too high.
      - this patch only makes the minimal changes necessary, i.e., the NUMA node is
        always initialized to -1. Patches to do the right thing with regards
        to the NUMA node can build on top of this (either add a 'node'
        parameter to pci_scan_bus_with_sysdata() or just update the node
        when it becomes known).
      
      The patch was compile tested with various configurations (e.g., NUMAQ,
      VISWS) and run-time tested on i386 and x86-64.  Unfortunately none of my
      machines exhibited the bugs so caveat emptor.
      
      Andy, could you please see if this fixes the NUMA issues you've seen?
      Riku, does this fix "pci=noacpi" on your laptop?
      Signed-off-by: NMuli Ben-Yehuda <muli@il.ibm.com>
      Cc: Yinghai Lu <yhlu.kernel@gmail.com>
      Cc: Andi Kleen <ak@suse.de>
      Cc: Chuck Ebbert <cebbert@redhat.com>
      Cc: <riku.seppala@kymp.net>
      Cc: Andy Whitcroft <apw@shadowen.org>
      Cc: Jeff Garzik <jeff@garzik.org>
      Signed-off-by: NAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: NLinus Torvalds <torvalds@linux-foundation.org>
      73c59afc
  28. 12 7月, 2007 1 次提交
    • A
      PCI: Change all drivers to use pci_device->revision · 44c10138
      Auke Kok 提交于
      Instead of all drivers reading pci config space to get the revision
      ID, they can now use the pci_device->revision member.
      
      This exposes some issues where drivers where reading a word or a dword
      for the revision number, and adding useless error-handling around the
      read. Some drivers even just read it for no purpose of all.
      
      In devices where the revision ID is being copied over and used in what
      appears to be the equivalent of hotpath, I have left the copy code
      and the cached copy as not to influence the driver's performance.
      
      Compile tested with make all{yes,mod}config on x86_64 and i386.
      Signed-off-by: NAuke Kok <auke-jan.h.kok@intel.com>
      Acked-by: NDave Jones <davej@redhat.com>
      Signed-off-by: NGreg Kroah-Hartman <gregkh@suse.de>
      44c10138
  29. 01 6月, 2007 1 次提交
    • I
      PCI: i386: fixup for Siemens Nixdorf AG FSC Multiprocessor Interrupt Controllers · 73a74ed3
      Ivan Kokshaysky 提交于
      Wolfgang gets:
      
       PCI: Cannot allocate resource region 0 of device 0000:00:04.0
       PCI: Error while updating region 0000:00:04.0/0 (a8008000 != fec08000)
      
      Note that the BAR seems to have high address bits hardwired to fec00000.
      And device 0000:00:04.0 is
      
       00:04.0 System peripheral: Siemens Nixdorf AG FSC Multiprocessor Interrupt Controller (rev 02)
      
      I'd guess that when we try to reassign this resource, PCI interrupts might
      just stop working. This could explain SCSI timeouts and other weird things.
      
      Cc: Wolfgang Erig <Wolfgang.Erig@gmx.de>
      Cc: Chuck Ebbert <cebbert@redhat.com>
      Cc: Andi Kleen <ak@suse.de>
      Signed-off-by: NAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: NGreg Kroah-Hartman <gregkh@suse.de>
      
      73a74ed3
  30. 03 5月, 2007 1 次提交
    • J
      PCI: fix sysfs rom file creation for BIOS ROM shadows · 40ee9e9f
      Jesse Barnes 提交于
      At one time, if a BIOS ROM shadow was detected for the boot video
      device (stored at offset 0xc0000), we'd set a special resource flag,
      IORESOURCE_ROM_SHADOW, so that the sysfs ROM file code could handle
      it properly.  That broke along the way somewhere though, so current
      kernels will be missing 'rom' files in sysfs if the video device
      doesn't have an explicit ROM BAR.
      
      This patch fixes the regression by moving the video fixup quirk to a
      little later in the boot cycle (to avoid having its work undone by
      PCI resource allocation) and checking in the PCI sysfs code whether
      a rom file should be created due to a shadow resource, which is also
      moved to a little later in the boot cycle so it will occur after the
      video fixup.  Tested and works on my i386 test box.
      Signed-off-by: NJesse Barnes <jbarnes@virtuousgeek.org>
      Signed-off-by: NGreg Kroah-Hartman <gregkh@suse.de>
      40ee9e9f
  31. 21 12月, 2006 1 次提交
    • A
      PCI: Fix multiple problems with VIA hardware · 1597cacb
      Alan Cox 提交于
      This patch is designed to fix:
      - Disk eating corruptor on KT7 after resume from RAM
      - VIA IRQ handling
      - VIA fixups for bus lockups after resume from RAM
      
      The core of this is to add a table of resume fixups run at resume time.
      We need to do this for a variety of boards and features, but particularly
      we need to do this to get various critical VIA fixups done on resume.
      
      The second part of the problem is to handle VIA IRQ number rules which
      are a bit odd and need special handling for PIC interrupts. Various
      patches broke various boxes and while this one may not be perfect
      (hopefully it is) it ensures the workaround is applied to the right
      devices only.
      
      From: Jean Delvare <khali@linux-fr.org>
      
      Now that PCI quirks are replayed on software resume, we can safely
      re-enable the Asus SMBus unhiding quirk even when software suspend support
      is enabled.
      
      [akpm@osdl.org: fix const warning]
      Signed-off-by: NAlan Cox <alan@redhat.com>
      Cc: Jean Delvare <khali@linux-fr.org>
      Signed-off-by: NAndrew Morton <akpm@osdl.org>
      Signed-off-by: NGreg Kroah-Hartman <gregkh@suse.de>
      1597cacb
  32. 02 12月, 2006 1 次提交
    • A
      PCI: quirks: fix the festering mess that claims to handle IDE quirks · 368c73d4
      Alan Cox 提交于
      The number of permutations of crap we do is amazing and almost all of it
      has the wrong effect in 2.6.
      
      At the heart of this is the PCI SFF magic which says that compatibility
      mode PCI IDE controllers use ISA IRQ routing and hard coded addresses
      not the BAR values. The old quirks variously clears them, sets them,
      adjusts them and then IDE ignores the result.
      
      In order to drive all this garbage out and to do it portably we need to
      handle the SFF rules directly and properly. Because we know the device
      BAR 0-3 are not used in compatibility mode we load them with the values
      that are implied (and indeed which many controllers actually
      thoughtfully put there in this mode anyway).
      
      This removes special cases in the IDE layer and libata which now knows
      that bar 0/1/2/3 always contain the correct address. It means our
      resource allocation map is accurate from boot, not "mostly accurate"
      after ide is loaded, and it shoots lots of code. There is also lots more
      code and magic constant knowledge to shoot once this is in and settled.
      
      Been in my test tree for a while both with drivers/ide and with libata.
      Wants some -mm shakedown in case I've missed something dumb or there are
      corner cases lurking.
      Signed-off-by: NAlan Cox <alan@redhat.com>
      Signed-off-by: NGreg Kroah-Hartman <gregkh@suse.de>
      368c73d4
  33. 28 10月, 2006 1 次提交
  34. 19 10月, 2006 1 次提交
  35. 04 10月, 2006 1 次提交
    • M
      Attack of "the the"s in arch · 4b3f686d
      Matt LaPlante 提交于
      The patch below corrects multiple occurances of "the the"
      typos across several files, both in source comments and KConfig files.
      There is no actual code changed, only text.  Note this only affects the /arch
      directory, and I believe I could find many more elsewhere. :)
      Signed-off-by: NAdrian Bunk <bunk@stusta.de>
      4b3f686d
  36. 15 1月, 2006 1 次提交
    • D
      [PATCH] gx1fb: (try to) play nicer with various BIOSes · a80da738
      David Vrabel 提交于
      Seems that the CS5530A chip used in Geode GX1 systems has some crazy feature
      that causes SMI traps when accessing the PCI configuration space of the video
      device.  Various GX1 BIOSes seem to use this 'feature' to hide the real BARs
      of the device.  This patch disables these traps (in an early PCI fixup) so
      that Linux sees the real, physical BARs and not the virtual ones provided by
      the BIOS.
      
      This should allow the GX1 framebuffer driver to work on more systems that have
      different BIOSes as the driver no longer guesses at what the virtual BARs
      mean.
      
      I'm not entirely sure it the correct solution as I can neither test regular
      VGA console nor the X's 'cyrix' video driver so there might be some breakage
      there -- probably best to get some more testers before applying it.
      Signed-off-by: NAntonino Daplas <adaplas@pol.net>
      Signed-off-by: NAndrew Morton <akpm@osdl.org>
      Signed-off-by: NLinus Torvalds <torvalds@osdl.org>
      a80da738
  37. 10 1月, 2006 1 次提交
  38. 11 11月, 2005 1 次提交
    • J
      [PATCH] PCI: fix for Toshiba ohci1394 quirk · 6e6ece5d
      Jesse Barnes 提交于
      After much testing and agony, I've discovered that my previous ohci1394
      quirk for Toshiba laptops is not 100% reliable.  It apparently fails to
      do the interrupt line change either correctly or in time, since in about
      2 out of 5 boots, the kernel's irqdebug code will *still* disable irq 11
      when the ohci1394 driver is loaded (at pci_enable_device time I think).
      
      This patch switches things around a little in the workaround.  First, it
      removes the mdelay.  I didn't see a need for it and my testing has shown
      that it's not necessary for the quirk to work.
      
      Secondly, instead of trying to change the interrupt line to what ACPI
      tells us it should be, this patch makes the quirk use the value in the
      PCI_INTERRUPT_LINE register.  On this laptop at least, that seems to be
      the right thing to do, though additional testing on other laptops and/or
      with actual firewire devices would be appreciated.
      Signed-off-by: NJesse Barnes <jbarnes@virtuousgeek.org>
      Signed-off-by: NGreg Kroah-Hartman <gregkh@suse.de>
      6e6ece5d
  39. 02 11月, 2005 1 次提交