drm/nouveau: add dmi quirk for gpio reset
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>
This commit is contained in:
parent
8e910d08a2
commit
6c06d608ec
|
@ -22,6 +22,7 @@
|
|||
* Authors: Ben Skeggs
|
||||
*/
|
||||
|
||||
#include <linux/dmi.h>
|
||||
#include "drmP.h"
|
||||
#include "nouveau_drv.h"
|
||||
#include "nouveau_hw.h"
|
||||
|
@ -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);
|
||||
|
|
Loading…
Reference in a new issue