mirror of
https://github.com/genodelabs/genode.git
synced 2024-12-21 14:37:50 +00:00
intel_fb_drv: Aperture exhaustion and display IRQ patch
* display an error in case the aperture is too small for all framebuffers * handle display engine IRQs only issue #4233
This commit is contained in:
parent
1727de30b7
commit
2fe70f111b
26
repos/dde_linux/patches/intel_fb_aperture_de_irq.patch
Normal file
26
repos/dde_linux/patches/intel_fb_aperture_de_irq.patch
Normal file
@ -0,0 +1,26 @@
|
||||
Exit upon exhaustion of aperature and handle display engine IRQs only.
|
||||
|
||||
--- a/drivers/gpu/drm/i915/i915_gem_gtt.c
|
||||
+++ b/drivers/gpu/drm/i915/i915_gem_gtt.c
|
||||
@@ -4007,6 +4007,8 @@
|
||||
if (flags & PIN_NOEVICT)
|
||||
return -ENOSPC;
|
||||
|
||||
+ aperture_exit();
|
||||
+
|
||||
/* No free space, pick a slot at random.
|
||||
*
|
||||
* There is a pathological case here using a GTT shared between
|
||||
--- a/drivers/gpu/drm/i915/i915_irq.c
|
||||
+++ b/drivers/gpu/drm/i915/i915_irq.c
|
||||
@@ -2699,8 +2699,8 @@
|
||||
disable_rpm_wakeref_asserts(dev_priv);
|
||||
|
||||
/* Find, clear, then process each source of interrupt */
|
||||
- ret = gen8_gt_irq_ack(dev_priv, master_ctl, gt_iir);
|
||||
- gen8_gt_irq_handler(dev_priv, gt_iir);
|
||||
+ //ret = gen8_gt_irq_ack(dev_priv, master_ctl, gt_iir);
|
||||
+ //gen8_gt_irq_handler(dev_priv, gt_iir);
|
||||
ret |= gen8_de_irq_handler(dev_priv, master_ctl);
|
||||
|
||||
I915_WRITE_FW(GEN8_MASTER_IRQ, GEN8_MASTER_IRQ_CONTROL);
|
@ -1 +1 @@
|
||||
8a88c22df242631ae38c2bf58d6d7b24a6fa18d1
|
||||
017ed559d35da47f9df49d5ac1c3c7ef26b0491e
|
||||
|
@ -207,6 +207,7 @@ PATCH_OPT(patches/intel_fb_drm.patch) := -p1 -d$(SRC_DIR_INTEL_FB)
|
||||
PATCH_OPT(patches/intel_fb_early.patch) := -p1 -d$(SRC_DIR_INTEL_FB)
|
||||
# drop it when https://bugs.freedesktop.org/show_bug.cgi?id=107125 gets fixed
|
||||
PATCH_OPT(patches/intel_fb_hotplug.patch) := -p1 -d$(SRC_DIR_INTEL_FB)
|
||||
PATCH_OPT(patches/intel_fb_aperture_de_irq.patch):= -p1 -d$(SRC_DIR_INTEL_FB)
|
||||
|
||||
# Freescale NIC
|
||||
PATCH_OPT(patches/fec_skbuff_cast.patch) := -p1 -d$(SRC_DIR_FEC)
|
||||
|
@ -2725,6 +2725,8 @@ void tasklet_disable(struct tasklet_struct *);
|
||||
void enable_irq(unsigned int);
|
||||
void disable_irq(unsigned int);
|
||||
|
||||
void aperture_exit(void);
|
||||
|
||||
#include <linux/math64.h>
|
||||
|
||||
#include <legacy/lx_emul/extern_c_end.h>
|
||||
|
@ -1994,4 +1994,11 @@ int acpi_reconfig_notifier_register(struct notifier_block *nb)
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
||||
void aperture_exit()
|
||||
{
|
||||
Genode::error("Error: no space in aperture left");
|
||||
Lx_kit::env().env().parent().exit(1);
|
||||
}
|
||||
|
||||
} /* extern "C" */
|
||||
|
Loading…
Reference in New Issue
Block a user