mirror of
https://gitlab.freedesktop.org/mesa/drm.git
synced 2025-12-25 21:10:11 +01:00
Merge branch 'modesetting-101' into modesetting-gem
This commit is contained in:
commit
b8724ae647
5 changed files with 18 additions and 5 deletions
|
|
@ -450,6 +450,7 @@ void drm_sysfs_hotplug_event(struct drm_device *dev)
|
|||
|
||||
kobject_uevent_env(&dev->primary->kdev.kobj, KOBJ_CHANGE, envp);
|
||||
}
|
||||
EXPORT_SYMBOL(drm_sysfs_hotplug_event);
|
||||
|
||||
static struct device_attribute dri_attrs[] = {
|
||||
__ATTR(dri_library_name, S_IRUGO, show_dri, NULL),
|
||||
|
|
|
|||
|
|
@ -125,6 +125,9 @@ static int nv50_display_init(struct nv50_display *display)
|
|||
/* enable clock change interrupts. */
|
||||
NV_WRITE(NV50_PDISPLAY_SUPERVISOR_INTR, NV_READ(NV50_PDISPLAY_SUPERVISOR_INTR) | 0x70);
|
||||
|
||||
/* enable hotplug interrupts */
|
||||
NV_WRITE(NV50_PCONNECTOR_HOTPLUG_INTR, 0x7FFF7FFF);
|
||||
|
||||
display->init_done = true;
|
||||
|
||||
return 0;
|
||||
|
|
@ -171,6 +174,9 @@ static int nv50_display_disable(struct nv50_display *display)
|
|||
/* disable clock change interrupts. */
|
||||
NV_WRITE(NV50_PDISPLAY_SUPERVISOR_INTR, NV_READ(NV50_PDISPLAY_SUPERVISOR_INTR) & ~0x70);
|
||||
|
||||
/* disable hotplug interrupts */
|
||||
NV_WRITE(NV50_PCONNECTOR_HOTPLUG_INTR, 0);
|
||||
|
||||
display->init_done = false;
|
||||
|
||||
return 0;
|
||||
|
|
|
|||
|
|
@ -970,6 +970,9 @@ static enum drm_connector_status nv50_kms_connector_detect(struct drm_connector
|
|||
|
||||
/* notify fb of changes */
|
||||
dev->mode_config.funcs->fb_changed(dev);
|
||||
|
||||
/* sent a hotplug event when appropriate. */
|
||||
drm_sysfs_hotplug_event(dev);
|
||||
}
|
||||
|
||||
return drm_connector->status;
|
||||
|
|
|
|||
|
|
@ -41,6 +41,8 @@
|
|||
#include "nv50_display.h"
|
||||
#include "nv50_crtc.h"
|
||||
#include "nv50_output.h"
|
||||
/* needed for hotplug irq */
|
||||
#include "nv50_kms_wrapper.h"
|
||||
|
||||
void
|
||||
nouveau_irq_preinstall(struct drm_device *dev)
|
||||
|
|
@ -510,7 +512,7 @@ nouveau_nv50_display_irq_handler(struct drm_device *dev)
|
|||
struct drm_nouveau_private *dev_priv = dev->dev_private;
|
||||
uint32_t val = NV_READ(NV50_PDISPLAY_SUPERVISOR);
|
||||
|
||||
DRM_INFO("NV50_DISPLAY_INTR - 0x%08X\n", val);
|
||||
DRM_INFO("NV50_PDISPLAY_SUPERVISOR - 0x%08X\n", val);
|
||||
|
||||
/* vblank interrupts */
|
||||
if (val & NV50_PDISPLAY_SUPERVISOR_CRTCn) {
|
||||
|
|
@ -591,10 +593,13 @@ nouveau_nv50_i2c_irq_handler(struct drm_device *dev)
|
|||
{
|
||||
struct drm_nouveau_private *dev_priv = dev->dev_private;
|
||||
|
||||
DRM_INFO("NV50_I2C_INTR - 0x%08X\n", NV_READ(NV50_I2C_CONTROLLER));
|
||||
DRM_INFO("NV50_PCONNECTOR_HOTPLUG_CTRL - 0x%08X\n", NV_READ(NV50_PCONNECTOR_HOTPLUG_CTRL));
|
||||
|
||||
/* This seems to be the way to acknowledge an interrupt. */
|
||||
NV_WRITE(NV50_I2C_CONTROLLER, 0x7FFF7FFF);
|
||||
NV_WRITE(NV50_PCONNECTOR_HOTPLUG_CTRL, 0x7FFF7FFF);
|
||||
|
||||
/* Do a "dumb" detect all */
|
||||
nv50_kms_connector_detect_all(dev);
|
||||
}
|
||||
|
||||
irqreturn_t
|
||||
|
|
|
|||
|
|
@ -128,8 +128,6 @@
|
|||
#define NV04_PTIMER_TIME_1 0x00009410
|
||||
#define NV04_PTIMER_ALARM_0 0x00009420
|
||||
|
||||
#define NV50_I2C_CONTROLLER 0x0000E054
|
||||
|
||||
#define NV04_PFB_CFG0 0x00100200
|
||||
#define NV04_PFB_CFG1 0x00100204
|
||||
#define NV40_PFB_020C 0x0010020C
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue