diff -u a/drivers/gpu/drm/nouveau/nouveau_bios.h b/drivers/gpu/drm/nouveau/nouveau_bios.h --- a/drivers/gpu/drm/nouveau/nouveau_bios.h 2012-01-27 09:16:00.000000000 +0300 +++ b/drivers/gpu/drm/nouveau/nouveau_bios.h 2012-01-28 22:41:16.000000000 +0300 @@ -54,6 +54,7 @@ int bit_table(struct drm_device *, u8 id, struct bit_entry *); enum dcb_gpio_tag { + DCB_GPIO_PANEL_POWER = 0x1, DCB_GPIO_TVDAC0 = 0xc, DCB_GPIO_TVDAC1 = 0x2d, DCB_GPIO_PWM_FAN = 0x9, diff -u a/drivers/gpu/drm/nouveau/nouveau_display.c b/drivers/gpu/drm/nouveau/nouveau_display.c --- a/drivers/gpu/drm/nouveau/nouveau_display.c 2012-01-27 09:16:00.000000000 +0300 +++ b/drivers/gpu/drm/nouveau/nouveau_display.c 2012-01-28 22:41:10.000000000 +0300 @@ -221,6 +221,9 @@ drm_kms_helper_poll_enable(dev); + if (!nouveau_gpio_func_set(dev, DCB_GPIO_PANEL_POWER, true)) + msleep(300); + /* enable hotplug interrupts */ list_for_each_entry(connector, &dev->mode_config.connector_list, head) { struct nouveau_connector *conn = nouveau_connector(connector);