14 Jun, 2011

1 commit


02 Jun, 2011

3 commits

  • Both were buggy: bind would happily scribble over a real graphics
    device and unbind wouldn't destroy the framebuffer. Hotplugging
    efifb makes no sense anyway, so just disable it.

    As an added benefit, we save some runtime memory.

    Signed-off-by: Andy Lutomirski
    Signed-off-by: Peter Jones
    Signed-off-by: Paul Mundt

    Andy Lutomirski
     
  • Signed-off-by: Andy Lutomirski
    Signed-off-by: Peter Jones
    Signed-off-by: Paul Mundt

    Andy Lutomirski
     
  • Running fbcon on an uncached framebuffer is remarkably slow. So try
    to enable write combining in efifb.

    Without this patch, it takes 5.8 seconds from efifb probe to i915
    probe (default options; no plymouth or quiet mode). With this patch,
    it only takes 1.7 seconds. That means we wasted over 4 seconds just
    writing to UC memory.

    Signed-off-by: Andy Lutomirski
    Signed-off-by: Peter Jones
    Signed-off-by: Paul Mundt

    Andy Lutomirski
     

24 May, 2011

1 commit


07 Apr, 2011

2 commits


31 Mar, 2011

1 commit

  • This patch enables the framebuffer for the AMD Radeon 6490 found in the new MacBook Pro 8,2 generation.
    The framebuffer's base is located at 0x90010000, the method for obtaining it was found in the same way mentioned in https://patchwork.kernel.org/patch/91704/

    Signed-off-by: Davidlohr Bueso
    Signed-off-by: Jonathan Gonzalez
    Signed-off-by: Paul Mundt

    Davidlohr Bueso
     

23 Sep, 2010

2 commits

  • Enable the EFI framebuffer on 14 more Macs, including the iMac11,1
    iMac10,1 iMac8,1 Macmini3,1 Macmini4,1 MacBook5,1 MacBook6,1 MacBook7,1
    MacBookPro2,2 MacBookPro5,2 MacBookPro5,3 MacBookPro6,1 MacBookPro6,2 and
    MacBookPro7,1

    Information gathered from various user submissions.

    https://bugzilla.redhat.com/show_bug.cgi?id=528232
    http://ubuntuforums.org/showthread.php?t=1557326

    [akpm@linux-foundation.org: coding-style fixes]
    Signed-off-by: Luke Macken
    Signed-off-by: Peter Jones
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Luke Macken
     
  • Some Apple machines have identical DMI data but different memory
    configurations for the video. Given that, check that the address in our
    table is actually within the range of a PCI BAR on a VGA device in the
    machine.

    This also fixes up the return value from set_system(), which has always
    been wrong, but never resulted in bad behavior since there's only ever
    been one matching entry in the dmi table.

    The patch

    1) stops people's machines from crashing when we get their display wrong,
    which seems to be unfortunately inevitable,

    2) allows us to support identical dmi data with differing video memory
    configurations

    This also adds me as the efifb maintainer, since I've effectively been
    acting as such for quite some time.

    Signed-off-by: Peter Jones
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Peter Jones
     

11 Aug, 2010

1 commit

  • Remove 43 section mismatches by moving the two structures efifb_defined
    and efifb_fix from .init.data to .devinit.data.

    Also the two structure arrays dmi_system_table[] and dmi_list[] have been
    moved from .data to .init.rodata and .init.data, which saves, if built-in,
    some space.

    On x86_64 'size -A' showed that these sections changed size:

    efifb.o:
    section size-old size-new
    .data 1200 688
    .init.data 7840 512
    .init.rodata 0 7568
    .devinit.data 0 256

    Total 11927 11911

    Signed-off-by: Henrik Kretzschmar
    Cc: Peter Jones
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Henrik Kretzschmar
     

19 May, 2010

1 commit

  • * anholt/drm-intel-next: (515 commits)
    drm/i915: Fix out of tree builds
    drm/i915: move fence lru to struct drm_i915_fence_reg
    drm/i915: don't allow tiling changes on pinned buffers v2
    drm/i915: Be extra careful about A/D matching for multifunction SDVO
    drm/i915: Fix DDC bus selection for multifunction SDVO
    drm/i915: cleanup mode setting before unmapping registers
    drm/i915: Make fbc control wrapper functions
    drm/i915: Wait for the GPU whilst shrinking, if truly desperate.
    drm/i915: Use spatio-temporal dithering on PCH
    [MTD] Remove zero-length files mtdbdi.c and internal.ho
    pata_pcmcia / ide-cs: Fix bad hashes for Transcend and kingston IDs
    libata: Fix several inaccuracies in developer's guide
    slub: Fix bad boundary check in init_kmem_cache_nodes()
    raid6: fix recovery performance regression
    KEYS: call_sbin_request_key() must write lock keyrings before modifying them
    KEYS: Use RCU dereference wrappers in keyring key type code
    KEYS: find_keyring_by_name() can gain access to a freed keyring
    ALSA: hda: Fix 0 dB for Packard Bell models using Conexant CX20549 (Venice)
    ALSA: hda - Add quirk for Dell Inspiron 19T using a Conexant CX20582
    ALSA: take tu->qlock with irqs disabled
    ...

    Dave Airlie
     

18 May, 2010

1 commit


25 Apr, 2010

1 commit

  • Description of patch:
    ---------------------

    This is a patch for the EFI framebuffer driver to enable the framebuffer
    of the NVIDIA 9400M as found in MacBook Pro (MBP) 5,1 and up. The
    framebuffer of the NVIDIA graphic cards are located at the following
    addresses in memory:

    9400M: 0xC0010000
    9600M GT: 0xB0030000

    The patch delivered right here only provides the memory location of the
    framebuffer of the 9400M device. The 9600M GT is not covered. It is
    assumed that the 9400M is used when powered up the MBP.

    The information which device is currently powered and in use is stored in
    the 64 bytes large EFI variable "gpu-power-prefs". More specifically,
    byte 0x3B indicates whether 9600M GT (0x00) or 9400M (0x01) is online.

    The PCI bus IDs are the following:
    9400M: PCI 03:00:00
    9600M GT: PCI 02:00:00

    The EFI variables can be easily read-out and manipulated with "rEFIt", an
    MBP specific bootloader tool. For more information on how handle rEFIt
    and EFI variables please consult "http://refit.sourceforge.net" and
    "http://ubuntuforums.org/archive/index.php/t-1076879.html".

    IMPORTANT NOTE: The information on how to activate the 9400M device given
    at "ubuntuforums.org" is not correct, since it states

    gpu-power-prefs[0x3B] = 0x00 -> 9400M (PCI 02:00:00)
    gpu-power-prefs[0x3B] = 0x01 -> 9600M GT (PCI 03:00:00)

    Actually, the assignment of the values and the PCI bus IDs are swapped.

    Suggestions:
    ------------

    To cover framebuffers of both 9400M and 9600M GT, I would suggest to
    implement a conditional on "gpu-power-prefs". Depending on the value of
    byte 0x3B, the according framebuffer is selected. However, this requires
    kernel access to the EFI variables.

    [akpm@linux-foundation.org: rename optname, per Peter Jones]
    Signed-off-by: Thomas Gerlach
    Acked-by: Peter Jones
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Thomas Gerlach
     

08 Mar, 2010

1 commit

  • A pointer to a probe callback is passed to the core via
    platform_driver_register and so the function must not disappear when the
    .init sections are discarded. Otherwise (if also having HOTPLUG=y)
    unbinding and binding a device to the driver via sysfs will result in an
    oops as does a device being registered late.

    An alternative to this patch is using platform_driver_probe instead of
    platform_driver_register plus removing the pointer to the probe function
    from the struct platform_driver.

    Signed-off-by: Uwe Kleine-König
    Cc: Adrian Bunk
    Cc: Alberto Mardegan
    Cc: Andrew Morton
    Cc: Andriy Skulysh
    Cc: Antonino Daplas
    Cc: Anton Vorontsov
    Cc: Ben Dooks
    Cc: Chandramouli Narayanan
    Cc: Christoph Hellwig
    Cc: Frans Pop
    Cc: Geert Uytterhoeven
    Cc: Greg Kroah-Hartman
    Cc: Helge Deller
    Cc: Huang Ying
    Cc: Ian Molton
    Cc: Joshua Kinard
    Cc: Kaj-Michael Lang
    Cc: Krzysztof Helt
    Cc: linux-fbdev-devel@lists.sourceforge.net
    Cc: Maciej W. Rozycki
    Cc: Magnus Damm
    Cc: Martin Michlmayr
    Cc: Matthias Kaehlcke
    Cc: Paul Mundt
    Cc: Pavel Machek
    Cc: Philipp Zabel
    Cc: Richard Purdie
    Cc: Roel Kluin
    Cc: Roland Stigge
    Cc: Russell King
    Cc: Thomas Bogendoerfer
    Cc: Vincent Sanders
    Cc: Yoichi Yuasa
    Acked-by: Ralf Baechle
    Acked-by: Arnaud Patard
    Acked-by: James Simmons
    Acked-by: Peter Jones
    Acked-by: Jaya Kumar
    Signed-off-by: Greg Kroah-Hartman

    Uwe Kleine-König
     

23 Feb, 2010

1 commit

  • Commit 4410f3910947dcea8672280b3adecd53cec4e85e ("fbdev: add support for
    handoff from firmware to hw framebuffers") didn't add fb_destroy
    operation to efifb. Fix it and change aperture_size to match size
    passed to request_mem_region.

    Addresses http://bugzilla.kernel.org/show_bug.cgi?id=15151

    Signed-off-by: Marcin Slusarz
    Reported-by: Alex Zhavnerchik
    Tested-by: Alex Zhavnerchik
    Acked-by: Peter Jones
    Cc: Huang Ying
    Cc: Dave Airlie
    Cc: "Rafael J. Wysocki"
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Marcin Slusarz
     

17 Jun, 2009

1 commit

  • With KMS we have ran into an issue where we really want the KMS fb driver
    to be the one running the console, so panics etc can be shown by switching
    out of X etc.

    However with vesafb/efifb built-in, we end up with those on fb0 and the
    KMS fb driver on fb1, driving the same piece of hw, so this adds an fb
    info flag to denote a firmware fbdev, and adds a new aperture base/size
    range which can be compared when the hw drivers are installed to see if
    there is a conflict with a firmware driver, and if there is the firmware
    driver is unregistered and the hw driver takes over.

    It uses new aperture_base/size members instead of comparing on the fix
    smem_start/length, as smem_start/length might for example only cover the
    first 1MB of the PCI aperture, and we could allocate the kms fb from 8MB
    into the aperture, thus they would never overlap.

    [akpm@linux-foundation.org: coding-style fixes]
    Signed-off-by: Dave Airlie
    Acked-by: Peter Jones
    Cc: Geert Uytterhoeven
    Cc: Krzysztof Helt
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Dave Airlie
     

14 Apr, 2009

1 commit

  • efifb will attempt to ioremap a framebuffer even if its starting address
    is 0, failing and causing an ugly backtrace in the process. Exit before
    probing if this is the case.

    Signed-off-by: Matthew Garrett
    Acked-by: Peter Jones
    Cc: Krzysztof Helt
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Matthew Garrett
     

01 Apr, 2009

1 commit

  • The current logic for dmi matching in efifb does not allow efifb to load
    on all hardware that we can dmi match for.

    For a real world example, boot with elilo (3.7 or 3.8 vanilla) and on a
    Apple (MacBook) and EFI framebuffer driver will not load (you will have no
    video). This specific hardware is efi v1.10, so we have UGA and not GOP.
    Without special bootloader magic (i.e. extra elilo patches for UGA
    graphics detection) no screen info will be passed to the kernel and as a
    result efifb will not load.

    This patch allows the dmi match to happen by moving it to earlier in
    efifb_init, and sets the video type (in set_system) so that efifb can load
    when we have a valid dmi match and already know the specifics of the
    hardware.

    Without this patch the efifb driver will fail to load in the event screen
    info is not found and passed in by the bootloader, being that we will
    never get to look for a dmi match. A primary reason for matching with dmi
    is because not all bootloaders detect the video info properly. The
    solution is that in the event of a dmi match, we should set
    screen_info.orig_video_isVGA. Most bootloaders fail to set screen info on
    Apple hardware, and this is a big problem for people who use Apple
    hardware.

    Tested on a MacBook SantaRosa with elilo-3.8 (vanilla) and resolves the
    issue, the dmi match now works, EFI framebuffer now loads and video works.

    Signed-off-by: Brian Maly
    Acked-by: Huang Ying
    Cc: Krzysztof Helt
    Cc: Chandramouli Narayanan
    Acked-by: Peter Jones
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Brian Maly
     

17 Oct, 2008

1 commit

  • Remove imacfb entirely, merging its DMI table into the (otherwise very
    similar) efifb driver. This also adds hardware support for many of the
    newer Intel Apple hardware. This has been fairly well tested; we've been
    shipping it in Fedora for some time.

    Signed-off-by: Peter Jones
    Cc: Krzysztof Helt
    Cc: Geert Uytterhoeven
    Cc: Jaya Kumar
    Cc: Ralf Baechle
    Cc: Maciej W. Rozycki
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Peter Jones
     

30 Nov, 2007

1 commit

  • This patch adds Graphics Output Protocol support to the kernel. UEFI2.0 spec
    deprecates Universal Graphics Adapter (UGA) protocol and only Graphics Output
    Protocol (GOP) is produced. Therefore, the boot loader needs to query the
    UEFI firmware with appropriate Output Protocol and pass the video information
    to the kernel. As a result of GOP protocol, an EFI framebuffer driver is
    needed for displaying console messages. The patch adds a EFI framebuffer
    driver. The EFI frame buffer driver in this patch is based on the Intel Mac
    framebuffer driver.

    The ELILO bootloader takes care of passing the video information as
    appropriate for EFI firmware.

    The framebuffer driver has been tested in i386 kernel and x86_64 kernel on EFI
    platform.

    Signed-off-by: Chandramouli Narayanan
    Signed-off-by: Huang Ying
    Cc: "H. Peter Anvin"
    Cc: Thomas Gleixner
    Cc: Ingo Molnar
    Cc: Andi Kleen
    Cc: "Antonino A. Daplas"
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Huang, Ying