mirror of
https://github.com/genodelabs/genode.git
synced 2024-12-26 00:41:08 +00:00
d65beb970d
* enable i915 driver from Linux 3.14.5 * tested for generation 5 till 8 GPUs The driver can be configured at run-time via the config ROM. Every connector of the graphic card can be configured separately using the following syntax <config> <connector name="LVDS-11" width="1280" height="800" enabled="true"/> </config> Also, when enabled within the intel framebuffer driver configuration like the following <config buffered="yes"/> a simple ram dataspace is propagated to the client and the driver itselfs copies from that buffer to the framebuffer triggered via refresh calls. This option is useful to alleviate tearing effects. The driver distributes all available connectors of the graphic card and their supported resolutions via a report. It looks like follows <connectors> <connector name="LVDS-11" connected="1"> <mode width="1280" height="800" hz="60"/> ... </connector> ... </connectors> The driver distributes the report only if this is stated within its configuration, like the following <config> <report connectors="yes"/> </config> Fix #1764
30 lines
1.1 KiB
Diff
30 lines
1.1 KiB
Diff
diff --git a/drivers/gpu/drm/i915/intel_display.c b/drivers/gpu/drm/i915/intel_display.c
|
|
index 963639d..f926f21 100644
|
|
--- a/drivers/gpu/drm/i915/intel_display.c
|
|
+++ b/drivers/gpu/drm/i915/intel_display.c
|
|
@@ -9867,6 +9867,11 @@ intel_set_config_compute_mode_changes(struct drm_mode_set *set,
|
|
config->mode_changed = true;
|
|
}
|
|
|
|
+ /**
|
|
+ * Adaption made for Genode context: ensure connector always uses a new fb
|
|
+ */
|
|
+ config->fb_changed = true;
|
|
+
|
|
DRM_DEBUG_KMS("computed changes for [CRTC:%d], mode_changed=%d, fb_changed=%d\n",
|
|
set->crtc->base.id, config->mode_changed, config->fb_changed);
|
|
}
|
|
diff --git a/drivers/gpu/drm/drm_crtc.c b/drivers/gpu/drm/drm_crtc.c
|
|
index 3b7d32d..637f713 100644
|
|
--- a/drivers/gpu/drm/drm_crtc.c
|
|
+++ b/drivers/gpu/drm/drm_crtc.c
|
|
@@ -487,7 +487,7 @@ static void drm_framebuffer_free_bug(struct kref *kref)
|
|
static void __drm_framebuffer_unreference(struct drm_framebuffer *fb)
|
|
{
|
|
DRM_DEBUG("FB ID: %d\n", fb->base.id);
|
|
- kref_put(&fb->refcount, drm_framebuffer_free_bug);
|
|
+ /*kref_put(&fb->refcount, drm_framebuffer_free_bug);*/
|
|
}
|
|
|
|
/* dev->mode_config.fb_lock must be held! */
|