Skip to content

Commit

Permalink
drm/nouveau: add dmi quirk for gpio reset
Browse files Browse the repository at this point in the history
This fixes the gpio reset problem so the Retina MBP works, but avoids
breaking the Dell systems. Ben will work on a better solution for 3.7.

Tested by me on retina MBP.

Signed-off-by: Dave Airlie <airlied@redhat.com>
  • Loading branch information
airlied committed Sep 21, 2012
1 parent 8e910d0 commit 6c06d60
Showing 1 changed file with 16 additions and 0 deletions.
16 changes: 16 additions & 0 deletions drivers/gpu/drm/nouveau/nv50_gpio.c
Expand Up @@ -22,6 +22,7 @@
* Authors: Ben Skeggs
*/

#include <linux/dmi.h>
#include "drmP.h"
#include "nouveau_drv.h"
#include "nouveau_hw.h"
Expand Down Expand Up @@ -110,11 +111,26 @@ nv50_gpio_isr(struct drm_device *dev)
nv_wr32(dev, 0xe074, intr1);
}

static struct dmi_system_id gpio_reset_ids[] = {
{
.ident = "Apple Macbook 10,1",
.matches = {
DMI_MATCH(DMI_SYS_VENDOR, "Apple Inc."),
DMI_MATCH(DMI_PRODUCT_NAME, "MacBookPro10,1"),
}
},
{ }
};

int
nv50_gpio_init(struct drm_device *dev)
{
struct drm_nouveau_private *dev_priv = dev->dev_private;

/* initialise gpios and routing to vbios defaults */
if (dmi_check_system(gpio_reset_ids))
nouveau_gpio_reset(dev);

/* disable, and ack any pending gpio interrupts */
nv_wr32(dev, 0xe050, 0x00000000);
nv_wr32(dev, 0xe054, 0xffffffff);
Expand Down

0 comments on commit 6c06d60

Please sign in to comment.