Remove legacy intel display driver

The driver is superseded by the new driver located in the 'pc'
repository.

Issue #4508
This commit is contained in:
Alexander Boettcher 2022-05-18 11:56:16 +02:00 committed by Christian Helmuth
parent f146f9acb6
commit 38e5972e45
28 changed files with 2 additions and 8226 deletions

View File

@ -1,271 +0,0 @@
linux-x.x.x/arch/x86/include/asm/agp.h
linux-x.x.x/arch/x86/include/asm/iosf_mbi.h
linux-x.x.x/arch/x86/include/asm/pci-direct.h
linux-x.x.x/arch/x86/kernel/early-quirks.c
linux-x.x.x/drivers/char/agp/agp.h
linux-x.x.x/drivers/char/agp/backend.c
linux-x.x.x/drivers/char/agp/generic.c
linux-x.x.x/drivers/char/agp/intel-agp.h
linux-x.x.x/drivers/char/agp/intel-gtt.c
linux-x.x.x/drivers/dma-buf/dma-fence.c
linux-x.x.x/drivers/dma-buf/dma-fence-array.c
linux-x.x.x/drivers/gpu/drm/drm_atomic_helper.c
linux-x.x.x/drivers/gpu/drm/drm_atomic.c
linux-x.x.x/drivers/gpu/drm/drm_blend.c
linux-x.x.x/drivers/gpu/drm/drm_bridge.c
linux-x.x.x/drivers/gpu/drm/drm_cache.c
linux-x.x.x/drivers/gpu/drm/drm_connector.c
linux-x.x.x/drivers/gpu/drm/drm_color_mgmt.c
linux-x.x.x/drivers/gpu/drm/drm_crtc.c
linux-x.x.x/drivers/gpu/drm/drm_crtc_helper.c
linux-x.x.x/drivers/gpu/drm/drm_crtc_helper_internal.h
linux-x.x.x/drivers/gpu/drm/drm_crtc_internal.h
linux-x.x.x/drivers/gpu/drm/drm_dp_dual_mode_helper.c
linux-x.x.x/drivers/gpu/drm/drm_dp_helper.c
linux-x.x.x/drivers/gpu/drm/drm_dp_mst_topology.c
linux-x.x.x/drivers/gpu/drm/drm_edid.c
linux-x.x.x/drivers/gpu/drm/drm_encoder.c
linux-x.x.x/drivers/gpu/drm/drm_fourcc.c
linux-x.x.x/drivers/gpu/drm/drm_framebuffer.c
linux-x.x.x/drivers/gpu/drm/drm_gem.c
linux-x.x.x/drivers/gpu/drm/drm_internal.h
linux-x.x.x/drivers/gpu/drm/drm_irq.c
linux-x.x.x/drivers/gpu/drm/drm_mm.c
linux-x.x.x/drivers/gpu/drm/drm_mode_config.c
linux-x.x.x/drivers/gpu/drm/drm_mode_object.c
linux-x.x.x/drivers/gpu/drm/drm_modes.c
linux-x.x.x/drivers/gpu/drm/drm_modeset_helper.c
linux-x.x.x/drivers/gpu/drm/drm_modeset_lock.c
linux-x.x.x/drivers/gpu/drm/drm_plane.c
linux-x.x.x/drivers/gpu/drm/drm_plane_helper.c
linux-x.x.x/drivers/gpu/drm/drm_probe_helper.c
linux-x.x.x/drivers/gpu/drm/drm_property.c
linux-x.x.x/drivers/gpu/drm/drm_rect.c
linux-x.x.x/drivers/gpu/drm/drm_vblank.c
linux-x.x.x/drivers/gpu/drm/drm_vma_manager.c
linux-x.x.x/drivers/gpu/drm/i915/i915_drv.c
linux-x.x.x/drivers/gpu/drm/i915/i915_drv.h
linux-x.x.x/drivers/gpu/drm/i915/i915_vma.c
linux-x.x.x/drivers/gpu/drm/i915/i915_gem.c
linux-x.x.x/drivers/gpu/drm/i915/i915_gem.h
linux-x.x.x/drivers/gpu/drm/i915/i915_gemfs.h
linux-x.x.x/drivers/gpu/drm/i915/i915_gem_batch_pool.h
linux-x.x.x/drivers/gpu/drm/i915/i915_gem_context.c
linux-x.x.x/drivers/gpu/drm/i915/i915_gem_context.h
linux-x.x.x/drivers/gpu/drm/i915/i915_gem_clflush.c
linux-x.x.x/drivers/gpu/drm/i915/i915_gem_clflush.h
linux-x.x.x/drivers/gpu/drm/i915/i915_gem_fence_reg.c
linux-x.x.x/drivers/gpu/drm/i915/i915_gem_fence_reg.h
linux-x.x.x/drivers/gpu/drm/i915/i915_gem_gtt.c
linux-x.x.x/drivers/gpu/drm/i915/i915_gem_gtt.h
linux-x.x.x/drivers/gpu/drm/i915/i915_gem_internal.c
linux-x.x.x/drivers/gpu/drm/i915/i915_gem_object.h
linux-x.x.x/drivers/gpu/drm/i915/i915_gem_render_state.c
linux-x.x.x/drivers/gpu/drm/i915/i915_gem_render_state.h
linux-x.x.x/drivers/gpu/drm/i915/i915_gem_request.c
linux-x.x.x/drivers/gpu/drm/i915/i915_gem_request.h
linux-x.x.x/drivers/gpu/drm/i915/i915_gem_stolen.c
linux-x.x.x/drivers/gpu/drm/i915/i915_gem_tiling.c
linux-x.x.x/drivers/gpu/drm/i915/i915_gem_timeline.c
linux-x.x.x/drivers/gpu/drm/i915/i915_gem_timeline.h
linux-x.x.x/drivers/gpu/drm/i915/i915_irq.c
linux-x.x.x/drivers/gpu/drm/i915/i915_params.h
linux-x.x.x/drivers/gpu/drm/i915/i915_pci.c
linux-x.x.x/drivers/gpu/drm/i915/i915_pmu.h
linux-x.x.x/drivers/gpu/drm/i915/i915_pvinfo.h
linux-x.x.x/drivers/gpu/drm/i915/i915_reg.h
linux-x.x.x/drivers/gpu/drm/i915/i915_selftest.h
linux-x.x.x/drivers/gpu/drm/i915/i915_sw_fence.h
linux-x.x.x/drivers/gpu/drm/i915/i915_syncmap.h
linux-x.x.x/drivers/gpu/drm/i915/i915_utils.h
linux-x.x.x/drivers/gpu/drm/i915/i915_vma.h
linux-x.x.x/drivers/gpu/drm/i915/i915_vgpu.c
linux-x.x.x/drivers/gpu/drm/i915/i915_vgpu.h
linux-x.x.x/drivers/gpu/drm/i915/intel_atomic.c
linux-x.x.x/drivers/gpu/drm/i915/intel_atomic_plane.c
linux-x.x.x/drivers/gpu/drm/i915/intel_bios.c
linux-x.x.x/drivers/gpu/drm/i915/intel_bios.h
linux-x.x.x/drivers/gpu/drm/i915/intel_cdclk.c
linux-x.x.x/drivers/gpu/drm/i915/intel_color.c
linux-x.x.x/drivers/gpu/drm/i915/intel_crt.c
linux-x.x.x/drivers/gpu/drm/i915/intel_device_info.c
linux-x.x.x/drivers/gpu/drm/i915/intel_device_info.h
linux-x.x.x/drivers/gpu/drm/i915/intel_ddi.c
linux-x.x.x/drivers/gpu/drm/i915/intel_display.c
linux-x.x.x/drivers/gpu/drm/i915/intel_display.h
linux-x.x.x/drivers/gpu/drm/i915/intel_dp.c
linux-x.x.x/drivers/gpu/drm/i915/intel_dp_aux_backlight.c
linux-x.x.x/drivers/gpu/drm/i915/intel_dp_link_training.c
linux-x.x.x/drivers/gpu/drm/i915/intel_dp_mst.c
linux-x.x.x/drivers/gpu/drm/i915/intel_dpio_phy.c
linux-x.x.x/drivers/gpu/drm/i915/intel_dpll_mgr.c
linux-x.x.x/drivers/gpu/drm/i915/intel_dpll_mgr.h
linux-x.x.x/drivers/gpu/drm/i915/intel_drv.h
linux-x.x.x/drivers/gpu/drm/i915/intel_dsi_pll.c
linux-x.x.x/drivers/gpu/drm/i915/intel_dsi.h
linux-x.x.x/drivers/gpu/drm/i915/intel_fbc.c
linux-x.x.x/drivers/gpu/drm/i915/intel_fifo_underrun.c
linux-x.x.x/drivers/gpu/drm/i915/intel_frontbuffer.c
linux-x.x.x/drivers/gpu/drm/i915/intel_frontbuffer.h
linux-x.x.x/drivers/gpu/drm/i915/intel_guc.c
linux-x.x.x/drivers/gpu/drm/i915/intel_guc.h
linux-x.x.x/drivers/gpu/drm/i915/intel_guc_ct.h
linux-x.x.x/drivers/gpu/drm/i915/intel_guc_fw.c
linux-x.x.x/drivers/gpu/drm/i915/intel_guc_fw.h
linux-x.x.x/drivers/gpu/drm/i915/intel_guc_fwif.h
linux-x.x.x/drivers/gpu/drm/i915/intel_guc_log.h
linux-x.x.x/drivers/gpu/drm/i915/intel_guc_reg.h
linux-x.x.x/drivers/gpu/drm/i915/intel_guc_submission.h
linux-x.x.x/drivers/gpu/drm/i915/intel_gvt.h
linux-x.x.x/drivers/gpu/drm/i915/intel_hdmi.c
linux-x.x.x/drivers/gpu/drm/i915/intel_hotplug.c
linux-x.x.x/drivers/gpu/drm/i915/intel_huc.c
linux-x.x.x/drivers/gpu/drm/i915/intel_huc.h
linux-x.x.x/drivers/gpu/drm/i915/intel_i2c.c
linux-x.x.x/drivers/gpu/drm/i915/intel_lrc.h
linux-x.x.x/drivers/gpu/drm/i915/intel_lspcon.c
linux-x.x.x/drivers/gpu/drm/i915/intel_lvds.c
linux-x.x.x/drivers/gpu/drm/i915/intel_mocs.c
linux-x.x.x/drivers/gpu/drm/i915/intel_mocs.h
linux-x.x.x/drivers/gpu/drm/i915/intel_modes.c
linux-x.x.x/drivers/gpu/drm/i915/intel_opregion.c
linux-x.x.x/drivers/gpu/drm/i915/intel_opregion.h
linux-x.x.x/drivers/gpu/drm/i915/intel_overlay.c
linux-x.x.x/drivers/gpu/drm/i915/intel_panel.c
linux-x.x.x/drivers/gpu/drm/i915/intel_pm.c
linux-x.x.x/drivers/gpu/drm/i915/intel_psr.c
linux-x.x.x/drivers/gpu/drm/i915/intel_renderstate.h
linux-x.x.x/drivers/gpu/drm/i915/intel_renderstate_gen6.c
linux-x.x.x/drivers/gpu/drm/i915/intel_renderstate_gen7.c
linux-x.x.x/drivers/gpu/drm/i915/intel_renderstate_gen8.c
linux-x.x.x/drivers/gpu/drm/i915/intel_renderstate_gen9.c
linux-x.x.x/drivers/gpu/drm/i915/intel_ringbuffer.h
linux-x.x.x/drivers/gpu/drm/i915/intel_runtime_pm.c
linux-x.x.x/drivers/gpu/drm/i915/intel_sdvo.c
linux-x.x.x/drivers/gpu/drm/i915/intel_sdvo_regs.h
linux-x.x.x/drivers/gpu/drm/i915/intel_sideband.c
linux-x.x.x/drivers/gpu/drm/i915/intel_sprite.c
linux-x.x.x/drivers/gpu/drm/i915/intel_uc.c
linux-x.x.x/drivers/gpu/drm/i915/intel_uc.h
linux-x.x.x/drivers/gpu/drm/i915/intel_uc_fw.c
linux-x.x.x/drivers/gpu/drm/i915/intel_uc_fw.h
linux-x.x.x/drivers/gpu/drm/i915/intel_uncore.c
linux-x.x.x/drivers/gpu/drm/i915/intel_uncore.h
linux-x.x.x/drivers/gpu/drm/i915/intel_vbt_defs.h
linux-x.x.x/drivers/i2c/algos/i2c-algo-bit.c
linux-x.x.x/drivers/i2c/i2c-boardinfo.c
linux-x.x.x/drivers/i2c/i2c-core.h
linux-x.x.x/drivers/i2c/i2c-core-base.c
linux-x.x.x/drivers/i2c/i2c-core-smbus.c
linux-x.x.x/drivers/video/hdmi.c
linux-x.x.x/include/asm-generic/atomic64.h
linux-x.x.x/include/asm-generic/bitops/__ffs.h
linux-x.x.x/include/asm-generic/bitops/__fls.h
linux-x.x.x/include/asm-generic/bitops/ffs.h
linux-x.x.x/include/asm-generic/bitops/fls.h
linux-x.x.x/include/asm-generic/bitops/fls64.h
linux-x.x.x/include/asm-generic/bitops/non-atomic.h
linux-x.x.x/include/asm-generic/getorder.h
linux-x.x.x/include/asm-generic/ioctl.h
linux-x.x.x/include/drm/drmP.h
linux-x.x.x/include/drm/drm_agpsupport.h
linux-x.x.x/include/drm/drm_atomic.h
linux-x.x.x/include/drm/drm_atomic_helper.h
linux-x.x.x/include/drm/drm_auth.h
linux-x.x.x/include/drm/drm_blend.h
linux-x.x.x/include/drm/drm_bridge.h
linux-x.x.x/include/drm/drm_cache.h
linux-x.x.x/include/drm/drm_connector.h
linux-x.x.x/include/drm/drm_color_mgmt.h
linux-x.x.x/include/drm/drm_crtc.h
linux-x.x.x/include/drm/drm_crtc_helper.h
linux-x.x.x/include/drm/drm_debugfs_crc.h
linux-x.x.x/include/drm/drm_device.h
linux-x.x.x/include/drm/drm_displayid.h
linux-x.x.x/include/drm/drm_dp_dual_mode_helper.h
linux-x.x.x/include/drm/drm_dp_helper.h
linux-x.x.x/include/drm/drm_dp_mst_helper.h
linux-x.x.x/include/drm/drm_drv.h
linux-x.x.x/include/drm/drm_edid.h
linux-x.x.x/include/drm/drm_encoder.h
linux-x.x.x/include/drm/drm_file.h
linux-x.x.x/include/drm/drm_fixed.h
linux-x.x.x/include/drm/drm_fourcc.h
linux-x.x.x/include/drm/drm_framebuffer.h
linux-x.x.x/include/drm/drm_gem.h
linux-x.x.x/include/drm/drm_global.h
linux-x.x.x/include/drm/drm_hashtab.h
linux-x.x.x/include/drm/drm_ioctl.h
linux-x.x.x/include/drm/drm_irq.h
linux-x.x.x/include/drm/drm_legacy.h
linux-x.x.x/include/drm/drm_mm.h
linux-x.x.x/include/drm/drm_mipi_dsi.h
linux-x.x.x/include/drm/drm_mode_config.h
linux-x.x.x/include/drm/drm_mode_object.h
linux-x.x.x/include/drm/drm_modes.h
linux-x.x.x/include/drm/drm_modeset_helper.h
linux-x.x.x/include/drm/drm_modeset_helper_vtables.h
linux-x.x.x/include/drm/drm_modeset_lock.h
linux-x.x.x/include/drm/drm_pci.h
linux-x.x.x/include/drm/drm_plane.h
linux-x.x.x/include/drm/drm_plane_helper.h
linux-x.x.x/include/drm/drm_print.h
linux-x.x.x/include/drm/drm_prime.h
linux-x.x.x/include/drm/drm_property.h
linux-x.x.x/include/drm/drm_rect.h
linux-x.x.x/include/drm/drm_scdc_helper.h
linux-x.x.x/include/drm/drm_utils.h
linux-x.x.x/include/drm/drm_vma_manager.h
linux-x.x.x/include/drm/drm_vblank.h
linux-x.x.x/include/drm/i915_drm.h
linux-x.x.x/include/drm/i915_pciids.h
linux-x.x.x/include/drm/intel-gtt.h
linux-x.x.x/include/linux/agp_backend.h
linux-x.x.x/include/linux/circ_buf.h
linux-x.x.x/include/linux/dma-fence.h
linux-x.x.x/include/linux/dma-fence-array.h
linux-x.x.x/include/linux/hdmi.h
linux-x.x.x/include/linux/firmware.h
linux-x.x.x/include/linux/gpio/consumer.h
linux-x.x.x/include/linux/i2c-algo-bit.h
linux-x.x.x/include/linux/i2c.h
linux-x.x.x/include/linux/idr.h
linux-x.x.x/include/linux/interval_tree.h
linux-x.x.x/include/linux/interval_tree_generic.h
linux-x.x.x/include/linux/irqhandler.h
linux-x.x.x/include/linux/io-mapping.h
linux-x.x.x/include/linux/list.h
linux-x.x.x/include/linux/list_sort.h
linux-x.x.x/include/linux/llist.h
linux-x.x.x/include/linux/math64.h
linux-x.x.x/include/linux/log2.h
linux-x.x.x/include/linux/pagevec.h
linux-x.x.x/include/linux/pci_ids.h
linux-x.x.x/include/linux/pm_runtime.h
linux-x.x.x/include/linux/pm_wakeirq.h
linux-x.x.x/include/linux/ratelimit.h
linux-x.x.x/include/linux/radix-tree.h
linux-x.x.x/include/linux/rbtree.h
linux-x.x.x/include/linux/rbtree_augmented.h
linux-x.x.x/include/linux/scatterlist.h
linux-x.x.x/include/linux/sort.h
linux-x.x.x/include/linux/vga_switcheroo.h
linux-x.x.x/include/uapi/asm-generic/ioctl.h
linux-x.x.x/include/uapi/drm/drm.h
linux-x.x.x/include/uapi/drm/drm_fourcc.h
linux-x.x.x/include/uapi/drm/drm_mode.h
linux-x.x.x/include/uapi/drm/i915_drm.h
linux-x.x.x/include/uapi/linux/byteorder/little_endian.h
linux-x.x.x/include/uapi/linux/fb.h
linux-x.x.x/include/uapi/linux/i2c.h
linux-x.x.x/include/uapi/linux/pci_regs.h
linux-x.x.x/include/uapi/linux/swab.h
linux-x.x.x/include/video/display_timing.h
linux-x.x.x/include/video/videomode.h
linux-x.x.x/lib/div64.c
linux-x.x.x/lib/idr.c
linux-x.x.x/lib/list_sort.c
linux-x.x.x/lib/llist.c
linux-x.x.x/lib/radix-tree.c
linux-x.x.x/lib/rbtree.c
linux-x.x.x/lib/scatterlist.c

View File

@ -1,28 +0,0 @@
LX_CONTRIB_DIR := $(call select_from_ports,dde_linux)/src/drivers/framebuffer/intel
SRC_DIR := $(REP_DIR)/src/drivers/framebuffer/intel
# architecture-dependent includes
ifeq ($(filter-out $(SPECS),x86),)
ARCH_SRC_INC_DIR += $(REP_DIR)/src/include/spec/x86 \
$(LX_CONTRIB_DIR)/arch/x86/include
ifeq ($(filter-out $(SPECS),32bit),)
ARCH_SRC_INC_DIR += $(REP_DIR)/src/include/spec/x86_32
endif # 32bit
ifeq ($(filter-out $(SPECS),64bit),)
ARCH_SRC_INC_DIR += $(REP_DIR)/src/include/spec/x86_64
endif # 64bit
endif # x86
INC_DIR += $(SRC_DIR)/include \
$(REP_DIR)/src/include \
$(ARCH_SRC_INC_DIR) \
$(LX_CONTRIB_DIR)/drivers/gpu/drm \
$(LX_CONTRIB_DIR)/drivers/gpu/include/drm \
$(LX_CONTRIB_DIR)/drivers/gpu/include \
$(LX_CONTRIB_DIR)/include \
$(LX_CONTRIB_DIR)/include/uapi \
$(LIB_CACHE_DIR)/intel_fb_include/include/include/include
CC_OPT += -U__linux__ -D__KERNEL__
CC_OPT += -DCONFIG_DRM_I915_KMS -DCONFIG_I2C -DCONFIG_I2C_BOARDINFO
CC_OPT += -DCONFIG_ACPI

View File

@ -1,43 +0,0 @@
LX_CONTRIB_DIR := $(call select_from_ports,dde_linux)/src/drivers/framebuffer/intel
SRC_DIR := $(REP_DIR)/src/drivers/framebuffer/intel
LIBS += intel_fb_include
SRC_C :=
SRC_C += $(notdir $(wildcard $(LX_CONTRIB_DIR)/drivers/char/agp/*.c))
SRC_C += $(notdir $(wildcard $(LX_CONTRIB_DIR)/drivers/dma-buf/*.c))
SRC_C += $(notdir $(wildcard $(LX_CONTRIB_DIR)/drivers/i2c/*.c))
SRC_C += $(notdir $(wildcard $(LX_CONTRIB_DIR)/drivers/i2c/algos/*.c))
SRC_C += $(notdir $(wildcard $(LX_CONTRIB_DIR)/drivers/gpu/drm/*.c))
SRC_C += $(notdir $(wildcard $(LX_CONTRIB_DIR)/drivers/gpu/drm/i915/*.c))
SRC_C += $(notdir $(wildcard $(LX_CONTRIB_DIR)/drivers/video/*.c))
SRC_C += $(notdir $(wildcard $(LX_CONTRIB_DIR)/drivers/video/fbdev/core/*.c))
SRC_C += $(notdir $(wildcard $(LX_CONTRIB_DIR)/lib/*.c))
SRC_C += $(notdir $(wildcard $(LX_CONTRIB_DIR)/arch/x86/kernel/*.c))
#
# Linux sources are C89 with GNU extensions
#
CC_C_OPT += -std=gnu89
#
# Reduce build noise of compiling contrib code
#
CC_WARN = -Wall -Wno-uninitialized -Wno-unused-but-set-variable \
-Wno-unused-variable -Wno-unused-function \
-Wno-pointer-arith -Wno-pointer-sign \
-Wno-int-to-pointer-cast
vpath %.c $(LX_CONTRIB_DIR)/drivers/char/agp
vpath %.c $(LX_CONTRIB_DIR)/drivers/dma-buf
vpath %.c $(LX_CONTRIB_DIR)/drivers/i2c
vpath %.c $(LX_CONTRIB_DIR)/drivers/i2c/algos
vpath %.c $(LX_CONTRIB_DIR)/drivers/gpu/drm/i915
vpath %.c $(LX_CONTRIB_DIR)/drivers/gpu/drm
vpath %.c $(LX_CONTRIB_DIR)/drivers/video
vpath %.c $(LX_CONTRIB_DIR)/drivers/video/fbdev/core
vpath %.c $(LX_CONTRIB_DIR)/lib
vpath %.c $(LX_CONTRIB_DIR)/arch/x86/kernel
CC_CXX_WARN_STRICT =

View File

@ -1,37 +0,0 @@
#
# Pseudo library to generate a symlink for each header file included by the
# contrib code. Each symlink points to the same 'lx_emul.h' file, which
# provides our emulation of the Linux kernel API.
#
ifeq ($(called_from_lib_mk),yes)
LX_CONTRIB_DIR := $(call select_from_ports,dde_linux)/src/drivers/framebuffer/intel
LX_EMUL_H := $(REP_DIR)/src/drivers/framebuffer/intel/include/lx_emul.h
#
# Determine the header files included by the contrib code. For each
# of these header files we create a symlink to 'lx_emul.h'.
#
SCAN_DIRS := $(addprefix $(LX_CONTRIB_DIR)/include/, drm uapi asm-generic video linux) \
$(addprefix $(LX_CONTRIB_DIR)/, drivers lib arch/x86)
GEN_INCLUDES := $(shell grep -rIh "^\#include .*" $(SCAN_DIRS) |\
sed "s/^\#include [^<\"]*[<\"]\([^>\"]*\)[>\"].*/\1/" |\
sort | uniq)
#
# Put Linux headers in 'GEN_INC' dir, since some include use "../../" paths use
# three level include hierarchy
#
GEN_INC := $(shell pwd)/include/include/include
GEN_INCLUDES := $(addprefix $(GEN_INC)/,$(GEN_INCLUDES))
all: $(GEN_INCLUDES)
$(GEN_INCLUDES):
$(VERBOSE)mkdir -p $(dir $@)
$(VERBOSE)ln -sf $(LX_EMUL_H) $@
endif
CC_CXX_WARN_STRICT =

View File

@ -1,26 +0,0 @@
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);

View File

@ -1,10 +0,0 @@
--- a/drivers/gpu/drm/i915/intel_panel.c
+++ a/drivers/gpu/drm/i915/intel_panel.c
@@ -1715,6 +1715,7 @@
panel->backlight.present = true;
+ intel_panel_set_backlight(connector->state, panel->backlight.max*75/100, panel->backlight.max);
DRM_DEBUG_KMS("Connector %s backlight initialized, %s, brightness %u/%u\n",
connector->name,
panel->backlight.enabled ? "enabled" : "disabled",

View File

@ -1,244 +0,0 @@
--- a/drivers/gpu/drm/i915/i915_gem_object.h
--- b/drivers/gpu/drm/i915/i915_gem_object.h
@@ -26,6 +26,7 @@
#define __I915_GEM_OBJECT_H__
#include <linux/reservation.h>
+#include <linux/radix-tree.h>
#include <drm/drm_vma_manager.h>
#include <drm/drm_gem.h>
--- a/drivers/gpu/drm/drm_connector.c
+++ b/drivers/gpu/drm/drm_connector.c
@@ -544,7 +544,9 @@
{
iter->dev = dev;
iter->conn = NULL;
+#ifdef CONFIG_LOCKDEP
lock_acquire_shared_recursive(&connector_list_iter_dep_map, 0, 1, NULL, _RET_IP_);
+#endif
}
EXPORT_SYMBOL(drm_connector_list_iter_begin);
@@ -625,7 +627,9 @@
__drm_connector_put_safe(iter->conn);
spin_unlock_irqrestore(&config->connector_list_lock, flags);
}
+#ifdef CONFIG_LOCKDEP
lock_release(&connector_list_iter_dep_map, 0, _RET_IP_);
+#endif
}
EXPORT_SYMBOL(drm_connector_list_iter_end);
--- a/include/drm/drm_mm.h
+++ b/include/drm/drm_mm.h
@@ -423,7 +423,7 @@
struct drm_mm_node *node,
u64 size)
{
- return drm_mm_insert_node_generic(mm, node, size, 0, 0, 0);
+ return drm_mm_insert_node_generic(mm, node, size, 0, 0, DRM_MM_INSERT_BEST);
}
void drm_mm_remove_node(struct drm_mm_node *node);
--- a/include/drm/drm_print.h
+++ b/include/drm/drm_print.h
@@ -122,10 +122,9 @@
*/
static inline struct drm_printer drm_debug_printer(const char *prefix)
{
- struct drm_printer p = {
- .printfn = __drm_printfn_debug,
- .prefix = prefix
- };
+ struct drm_printer p;
+ p.printfn = __drm_printfn_debug;
+ p.prefix = prefix;
return p;
}
#endif /* DRM_PRINT_H_ */
--- a/drivers/gpu/drm/i915/intel_guc.c
+++ b/drivers/gpu/drm/i915/intel_guc.c
@@ -24,6 +24,7 @@
#include "intel_guc.h"
#include "i915_drv.h"
+#include "intel_drv.h"
static void gen8_guc_raise_irq(struct intel_guc *guc)
{
--- a/drivers/gpu/drm/i915/intel_uc.c
+++ b/drivers/gpu/drm/i915/intel_uc.c
@@ -26,6 +26,7 @@
#include "intel_guc_submission.h"
#include "intel_guc.h"
#include "i915_drv.h"
+#include "intel_drv.h"
/* Reset GuC providing us with fresh state for both GuC and HuC.
*/
--- a/drivers/gpu/drm/i915/intel_guc_fw.c
+++ b/drivers/gpu/drm/i915/intel_guc_fw.c
@@ -29,6 +29,7 @@
#include "intel_guc_fw.h"
#include "i915_drv.h"
+#include "intel_drv.h"
#define SKL_FW_MAJOR 6
#define SKL_FW_MINOR 1
--- a/drivers/gpu/drm/i915/i915_gem_fence_reg.c
+++ b/drivers/gpu/drm/i915/i915_gem_fence_reg.c
@@ -24,6 +24,7 @@
#include <drm/drmP.h>
#include <drm/i915_drm.h>
#include "i915_drv.h"
+#include "intel_drv.h"
/**
* DOC: fence register handling
--- a/drivers/gpu/drm/i915/intel_huc.c
+++ b/drivers/gpu/drm/i915/intel_huc.c
@@ -26,6 +26,7 @@
#include "intel_huc.h"
#include "i915_drv.h"
+#include "intel_drv.h"
/**
* DOC: HuC Firmware
--- a/drivers/gpu/drm/i915/i915_gem_request.c
+++ b/drivers/gpu/drm/i915/i915_gem_request.c
@@ -29,6 +29,7 @@
#include <linux/sched/signal.h>
#include "i915_drv.h"
+#include "intel_drv.h"
static const char *i915_fence_get_driver_name(struct dma_fence *fence)
{
--- a/drivers/gpu/drm/i915/i915_vma.c
+++ b/drivers/gpu/drm/i915/i915_vma.c
@@ -27,6 +27,7 @@
#include "i915_drv.h"
#include "intel_ringbuffer.h"
#include "intel_frontbuffer.h"
+#include "intel_drv.h"
#include <drm/drm_gem.h>
--- a/drivers/i2c/i2c-core-base.c
+++ b/drivers/i2c/i2c-core-base.c
@@ -1276,9 +1276,11 @@
goto out_list;
}
+#if IS_ENABLED(CONFIG_I2C_SMBUS) && IS_ENABLED(CONFIG_OF)
res = of_i2c_setup_smbus_alert(adap);
if (res)
goto out_reg;
+#endif
dev_dbg(&adap->dev, "adapter [%s] registered\n", adap->name);
@@ -1311,7 +1313,9 @@
return 0;
+#if IS_ENABLED(CONFIG_I2C_SMBUS) && IS_ENABLED(CONFIG_OF)
out_reg:
+#endif
init_completion(&adap->dev_released);
device_unregister(&adap->dev);
wait_for_completion(&adap->dev_released);
--- a/include/drm/intel-gtt.h
+++ b/include/drm/intel-gtt.h
@@ -4,6 +4,8 @@
#ifndef _DRM_INTEL_GTT_H
#define _DRM_INTEL_GTT_H
+#include <linux/scatterlist.h>
+
void intel_gtt_get(u64 *gtt_total,
u32 *stolen_size,
phys_addr_t *mappable_base,
--- a/drivers/gpu/drm/i915/i915_drv.c
+++ b/drivers/gpu/drm/i915/i915_drv.c
@@ -1022,11 +1022,11 @@
intel_uc_init_mmio(dev_priv);
- ret = intel_engines_init_mmio(dev_priv);
+// ret = intel_engines_init_mmio(dev_priv);
if (ret)
goto err_uncore;
- i915_gem_init_mmio(dev_priv);
+// i915_gem_init_mmio(dev_priv);
return 0;
--- a/drivers/gpu/drm/i915/i915_gem_context.c
+++ b/drivers/gpu/drm/i915/i915_gem_context.c
@@ -487,9 +487,11 @@
}
dev_priv->preempt_context = ctx;
+/*
DRM_DEBUG_DRIVER("%s context support initialized\n",
dev_priv->engine[RCS]->context_size ? "logical" :
"fake");
+*/
return 0;
err_kernel_context:
--- a/drivers/gpu/drm/drm_framebuffer.c
--- b/drivers/gpu/drm/drm_framebuffer.c
@@ -675,7 +675,8 @@
INIT_LIST_HEAD(&fb->filp_head);
fb->funcs = funcs;
- strcpy(fb->comm, current->comm);
+ if (current) /* used for debugging */
+ strcpy(fb->comm, current->comm);
ret = __drm_mode_object_add(dev, &fb->base, DRM_MODE_OBJECT_FB,
false, drm_framebuffer_free);
--- a/drivers/gpu/drm/i915/intel_display.c
--- b/drivers/gpu/drm/i915/intel_display.c
@@ -12199,7 +12199,7 @@
u64 put_domains[I915_MAX_PIPES] = {};
int i;
- intel_atomic_commit_fence_wait(intel_state);
+// intel_atomic_commit_fence_wait(intel_state);
drm_atomic_helper_wait_for_dependencies(state);
@@ -12479,13 +12479,14 @@
dev_priv->cdclk.actual = intel_state->cdclk.actual;
}
- drm_atomic_state_get(state);
INIT_WORK(&state->commit_work, intel_atomic_commit_work);
i915_sw_fence_commit(&intel_state->commit_ready);
if (nonblock && intel_state->modeset) {
+ drm_atomic_state_get(state);
queue_work(dev_priv->modeset_wq, &state->commit_work);
} else if (nonblock) {
+ drm_atomic_state_get(state);
queue_work(system_unbound_wq, &state->commit_work);
} else {
if (intel_state->modeset)
--- a/drivers/gpu/drm/i915/i915_gem_gtt.c
+++ b/drivers/gpu/drm/i915/i915_gem_gtt.c
@@ -154,7 +158,7 @@
* We don't allow disabling PPGTT for gen9+ as it's a requirement for
* execlists, the sole mechanism available to submit work.
*/
- if (enable_ppgtt == 0 && INTEL_GEN(dev_priv) < 9)
+ if (enable_ppgtt == 0) // && INTEL_GEN(dev_priv) < 9)
return 0;
if (enable_ppgtt == 1)

View File

@ -1,52 +0,0 @@
--- a/arch/x86/kernel/early-quirks.c
+++ b/arch/x86/kernel/early-quirks.c
@@ -28,6 +28,11 @@
#include <asm/irq_remapping.h>
#include <asm/early_ioremap.h>
+#define __initconst
+#define __ro_after_init
+
+#if 0
+
#define dev_err(msg) pr_err("pci 0000:%02x:%02x.%d: %s", bus, slot, func, msg)
static void __init fix_hypertransport_config(int num, int slot, int func)
@@ -230,6 +235,8 @@
set_irq_remapping_broken();
}
+#endif /*#if 0*/
+
/*
* Systems with Intel graphics controllers set aside memory exclusively
* for gfx driver use. This memory is not marked in the E820 as reserved
@@ -558,11 +565,13 @@
&intel_graphics_stolen_res);
/* Mark this space as reserved */
+#if 0
e820__range_add(base, size, E820_TYPE_RESERVED);
e820__update_table(e820_table);
+#endif
}
-static void __init intel_graphics_quirks(int num, int slot, int func)
+void __init intel_graphics_quirks(int num, int slot, int func)
{
const struct intel_early_ops *early_ops;
u16 device;
@@ -584,6 +593,8 @@
}
}
+#if 0
+
static void __init force_disable_hpet(int num, int slot, int func)
{
#ifdef CONFIG_HPET_TIMER
@@ -774,3 +785,4 @@
early_pci_scan_bus(0);
}
+#endif /*#if 0*/

View File

@ -1,97 +0,0 @@
--- a/drivers/gpu/drm/i915/intel_hotplug.c
+++ b/drivers/gpu/drm/i915/intel_hotplug.c
@@ -336,11 +336,10 @@
/*
* Handle hotplug events outside the interrupt handler proper.
*/
-static void i915_hotplug_work_func(struct work_struct *work)
+static void i915_hotplug_work_func_x(struct work_struct *work,
+ struct drm_i915_private *dev_priv,
+ struct drm_device *dev)
{
- struct drm_i915_private *dev_priv =
- container_of(work, struct drm_i915_private, hotplug.hotplug_work);
- struct drm_device *dev = &dev_priv->drm;
struct intel_connector *intel_connector;
struct intel_encoder *intel_encoder;
struct drm_connector *connector;
@@ -353,7 +352,7 @@
spin_lock_irq(&dev_priv->irq_lock);
- hpd_event_bits = dev_priv->hotplug.event_bits;
+ hpd_event_bits = dev_priv->hotplug.event_bits | dev_priv->hotplug.recheck_event_bits;
dev_priv->hotplug.event_bits = 0;
/* Disable hotplug on connectors that hit an irq storm. */
@@ -379,8 +378,40 @@
drm_connector_list_iter_end(&conn_iter);
mutex_unlock(&dev->mode_config.mutex);
- if (changed)
+ if (changed) {
+ dev_priv->hotplug.recheck_event_bits = 0;
drm_kms_helper_hotplug_event(dev);
+ } else {
+ if (hpd_event_bits && !dev_priv->hotplug.recheck_event_bits) {
+ unsigned long delay = msecs_to_jiffies(2000);
+ schedule_delayed_work(&dev_priv->hotplug.recheck_hotplug, delay);
+ }
+
+ if (hpd_event_bits != dev_priv->hotplug.recheck_event_bits)
+ dev_priv->hotplug.recheck_event_bits |= hpd_event_bits;
+ }
+}
+
+static void i915_hotplug_work_func(struct work_struct *work)
+{
+ struct drm_i915_private *dev_priv =
+ container_of(work, struct drm_i915_private, hotplug.hotplug_work);
+ struct drm_device *dev = &dev_priv->drm;
+
+ i915_hotplug_work_func_x(work, dev_priv, dev);
+}
+
+static void i915_hotplug_recheck_func(struct work_struct *work)
+{
+ struct drm_i915_private *dev_priv =
+ container_of(work, typeof(*dev_priv),
+ hotplug.recheck_hotplug.work);
+ struct drm_device *dev = &dev_priv->drm;
+
+ i915_hotplug_work_func_x(work, dev_priv, dev);
+
+ /* re-try just once */
+ dev_priv->hotplug.recheck_event_bits = 0;
}
@@ -604,6 +635,8 @@
INIT_WORK(&dev_priv->hotplug.poll_init_work, i915_hpd_poll_init_work);
INIT_DELAYED_WORK(&dev_priv->hotplug.reenable_work,
intel_hpd_irq_storm_reenable_work);
+ INIT_DELAYED_WORK(&dev_priv->hotplug.recheck_hotplug,
+ i915_hotplug_recheck_func);
}
void intel_hpd_cancel_work(struct drm_i915_private *dev_priv)
@@ -620,6 +653,7 @@
cancel_work_sync(&dev_priv->hotplug.hotplug_work);
cancel_work_sync(&dev_priv->hotplug.poll_init_work);
cancel_delayed_work_sync(&dev_priv->hotplug.reenable_work);
+ cancel_delayed_work_sync(&dev_priv->hotplug.recheck_hotplug);
}
bool intel_hpd_disable(struct drm_i915_private *dev_priv, enum hpd_pin pin)
--- a/drivers/gpu/drm/i915/i915_drv.h
+++ b/drivers/gpu/drm/i915/i915_drv.h
@@ -278,7 +278,9 @@
} state;
} stats[HPD_NUM_PINS];
u32 event_bits;
+ u32 recheck_event_bits;
struct delayed_work reenable_work;
+ struct delayed_work recheck_hotplug;
struct intel_digital_port *irq_port[I915_MAX_PORTS];
u32 long_port_mask;

View File

@ -1 +1 @@
9cb34790ab695fee44e6d559d7a0d8f919e22f6e
447158aa8aa24d4e2925a0479d8710a2d7d738e9

View File

@ -1,6 +1,6 @@
LICENSE := GPLv2
VERSION := 2
DOWNLOADS := intel_fb.archive lxip.archive \
DOWNLOADS := lxip.archive \
fec.archive \
usb_host.archive dwc_otg_host.git usb_hid.archive \
usb_modem.archive usb_net.archive
@ -64,17 +64,6 @@ REV(dwc_otg_host) := r5
DIR(dwc_otg_host) := $(SRC_DIR_USB_HOST)/drivers/usb/host
#
# Intel framebuffer driver
#
SRC_DIR_INTEL_FB := src/drivers/framebuffer/intel
VERSION_INTEL_FB := 4.16.3
URL(intel_fb) := https://www.kernel.org/pub/linux/kernel/v4.x/linux-$(VERSION_INTEL_FB).tar.xz
SHA(intel_fb) := 0d6971a81da97e38b974c5eba31a74803bfe41aabc46d406c3acda56306c81a3
DIR(intel_fb) := $(SRC_DIR_INTEL_FB)
TAR_OPT(intel_fb) := --strip-components=1 --files-from - < <(sed 's/-x.x.x/-$(VERSION_INTEL_FB)/g' $(REP_DIR)/intel_fb.list)
HASH_INPUT += $(REP_DIR)/intel_fb.list
#
# IP stack sources
#
@ -101,11 +90,9 @@ HASH_INPUT += $(REP_DIR)/fec.list
# Patches
#
PATCHES += $(addprefix patches/,$(notdir $(wildcard $(REP_DIR)/patches/lxip*.patch)))
PATCHES += $(addprefix patches/,$(notdir $(wildcard $(REP_DIR)/patches/intel*.patch)))
PATCHES += $(addprefix patches/,$(notdir $(wildcard $(REP_DIR)/patches/usb_host*.patch)))
PATCHES += $(addprefix patches/,$(notdir $(wildcard $(REP_DIR)/patches/usb*.patch)))
PATCHES += $(addprefix patches/,$(notdir $(wildcard $(REP_DIR)/patches/usb_modem*.patch)))
PATCHES += $(addprefix patches/,$(notdir $(wildcard $(REP_DIR)/patches/intel*.patch)))
PATCHES += $(addprefix patches/,$(notdir $(wildcard $(REP_DIR)/patches/fec_*.patch)))
PATCHES += $(addprefix patches/,$(notdir $(wildcard $(REP_DIR)/patches/usb_hid*.patch)))
@ -143,14 +130,6 @@ PATCH_OPT(patches/usb_net_skbuff_cast.patch) := $(USB_NET_OPT)
USB_MODEM_OPT = -p1 -d$(SRC_DIR_USB_MODEM)
PATCH_OPT(patches/usb_modem_skbuff_cast.patch) := $(USB_MODEM_OPT)
# INTEL FB
PATCH_OPT(patches/intel_fb_backlight.patch) := -p1 -d$(SRC_DIR_INTEL_FB)
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)
PATCH_OPT(patches/fec_tx_bounce_dma.patch) := -p1 -d$(SRC_DIR_FEC)

View File

@ -1,29 +0,0 @@
LIB_MK := lib/mk/spec/x86/intel_fb_drv.mk \
lib/mk/spec/x86/intel_fb_include.mk \
$(foreach SPEC,x86_32 x86_64,lib/mk/spec/$(SPEC)/lx_kit_setjmp.mk)
PORT_DIR := $(call port_dir,$(REP_DIR)/ports/dde_linux)
MIRROR_FROM_REP_DIR := $(LIB_MK) \
lib/import/import-intel_fb_include.mk \
src/include src/lib/legacy/lx_kit \
src/lib/lx_kit/spec \
$(foreach SPEC,x86 x86_32 x86_64,src/include/spec/$(SPEC)) \
$(shell cd $(REP_DIR); find src/drivers/framebuffer/intel -type f)
MIRROR_FROM_PORT_DIR := $(shell cd $(PORT_DIR); find src/drivers/framebuffer/intel -type f | grep -v ".git")
MIRROR_FROM_PORT_DIR := $(filter-out $(MIRROR_FROM_REP_DIR),$(MIRROR_FROM_PORT_DIR))
content: $(MIRROR_FROM_REP_DIR) $(MIRROR_FROM_PORT_DIR)
$(MIRROR_FROM_REP_DIR):
$(mirror_from_rep_dir)
$(MIRROR_FROM_PORT_DIR):
mkdir -p $(dir $@)
cp $(PORT_DIR)/$@ $@
content: LICENSE
LICENSE:
( echo "GNU General Public License version 2, see:"; \
echo "https://www.kernel.org/pub/linux/kernel/COPYING" ) > $@

View File

@ -1 +0,0 @@
2022-04-27 e2dae7c47cf8faa31b490c2c9663520988fbac1e

View File

@ -1,7 +0,0 @@
base
os
platform_session
timer_session
report_session
capture_session
blit

View File

@ -1,61 +0,0 @@
This driver is for Intel i915 compatible graphic cards.
Default behaviour
~~~~~~~~~~~~~~~~~
When no configuration is provided to the driver, it will switch on all devices
the graphic card is initially connected to. It will use the best resolution as
provided by the BIOS or EDID information from the display devices for each
connector. The virtual resolution delivered to the client is the maximum in
width and height of the different connectors. The framebuffer memory is
directly exported to the client of the driver. When newly connected devices are
detected by the hardware, the new connectors are enabled, probed, and again the
'best' resolution will be chosen for the device. Nevertheless, it won't have an
effect on the virtual resolution.
Configuration
~~~~~~~~~~~~~
Each of the connector can be configured explicitly in terms of resolution and
whether it should be enabled or not. This looks like the following:
! <config>
! <connector name="LVDS-11" width="1280" height="800" hz="60" brightness="75" enabled="true"/>
! </config>
When the configuration changes during run-time, the driver will adapt to it. In
this case it will also change the current virtual resolution to the maximum of
the configured resolutions in width and height, and it will inform its client
about the change in resolution.
The brightness value is in percentage and takes effect only if supported by
the hardware.
If you experience problems like hotplugging of connectors does not work, you
can force the driver to poll frequently for hotplug events by defining a period
in milliseconds like this:
! <config poll="1000"/>
If you define a period of zero, the driver won't poll at all, which is the
default value.
To present all available connectors and their possible resolutions to the user
the driver is able to export a corresponding report ROM. This has to be
configured too, like in the following:
! <config>
! <report connectors="yes"/>
! </config>
The exported report has the following format:
! <connectors>
! <connector name="LVDS-11" connected="1" brightness="50">
! <mode width="1280" height="800" hz="60"/>
! ...
! </connector>
! <connector name="HDMI-A-1" connected="false"/>
! <connector name="DP-1" connected="false"/>
! </connectors>
The brightness attribute is soley reported if the hardware supports it.

File diff suppressed because it is too large Load Diff

View File

@ -1,99 +0,0 @@
#!/usr/bin/tclsh
#
# \brief Private utility to generate a dummy function from a symbol name
# \date 2015-08-21
# \author Norman Feske
#
# The script must be executed in its directory and takes a symbol name as last
# argument. It searches the following places for a declaration that corresponds
# to the specified symbol:
#
# - the local include/ directory
# - the dde_linux/src/include/lx_emul/ directory
# - the contrib/dde_linux-<hash>/src/drivers/framebuffer/intel directory
#
# If a declaration could be found, the script generates a dummy implementation
# with the signature of the declarated function.
#
set symbol [lindex $argv 0]
# determine contrib directory of dde_linux
set lx_drv_path [exec ../../../../../../tool/ports/current dde_linux]
append lx_drv_path "/src/drivers/framebuffer/intel"
# grep for lines that contain the symbol and have with no leading whitespace
if {[catch {
set header [exec grep -rl "^\\w.*$symbol\\>" include ../../../include/lx_emul $lx_drv_path | grep -v "~"]
}]} {
puts stderr "failed to lookup symbol $symbol"
exit 1
}
if {[llength $header] != 1} {
puts stderr "cannot generate dummy for symbol $symbol"
exit 1
}
puts stderr "found declaration of $symbol in $header"
set statements [split [exec cat $header] ";{}"]
foreach statement $statements {
# strip off comments and preprocessor commands
regsub -all {/\*.*?\*/} $statement "" statement
regsub -all {//.*?\n} $statement "" statement
regsub -all {#.*?\n} $statement "\n" statement
# delete consecutive newlines
while {[regexp {\n\n} $statement dummy]} {
regsub -all {\n\n} $statement "\n" statement
}
# function declarations have no leading tabs
if {[regexp {^\t} $statement dummy]} continue
# skip statements where the symbol does not occur
if {![regexp "$symbol\\(" $statement dummy]} continue
# strip leading whitespace (linefeed)
regsub {^\s*} $statement "" statement
# strip leading extern keyword
regsub {^extern\s*} $statement "" statement
# strip leading inline keyword
regsub {^inline\s*} $statement "" statement
# merge multi-line parameter list into a single line
regsub -all {\s*\n\s*} $statement " " statement
# strip function attributes starting with '__'
regsub -all {\)\s*__.*} $statement ")" statement
# determine return type 'ret' of the function
regexp {^[^\(]*} $statement func_ret
regsub {\s[^\s\*]*$} $func_ret "" ret
# output function definition
puts "$statement"
puts "{"
puts "\tTRACE_AND_STOP;"
if {[regexp {\*} $ret]} {
# function returns a pointer
puts "\treturn NULL;"
} elseif {[regexp {void} $ret dummy]} {
# void function
} else {
# function with return value
puts "\treturn -1;"
}
puts "}\n"
# success
exit 0
}
puts stderr "failed to match declaration of $symbol in $header"

View File

@ -1,51 +0,0 @@
/*
* \brief Linux emulation Intel i915 parameter struct definition
* \author Stefan Kalkowski
* \date 2016-03-22
*/
/*
* Copyright (C) 2016-2017 Genode Labs GmbH
*
* This file is distributed under the terms of the GNU General Public License
* version 2.
*/
#include <../drivers/gpu/drm/i915/i915_drv.h>
struct i915_params i915_modparams = {
.vbt_firmware = NULL,
.modeset = -1,
.panel_ignore_lid = 1,
.lvds_channel_mode = 0,
.panel_use_ssc = -1,
.vbt_sdvo_panel_type = -1,
.enable_dc = -1,
.enable_fbc = -1,
.enable_ppgtt = 0,
.enable_psr = 0,
.disable_power_well = -1,
.enable_ips = true,
.invert_brightness = 0,
.guc_log_level = -1,
.guc_firmware_path = NULL,
.huc_firmware_path = NULL,
.mmio_debug = 0,
.edp_vswing = 0,
.enable_guc = 0,
.reset = 0,
.inject_load_failure = 0,
.alpha_support = IS_ENABLED(CONFIG_DRM_I915_ALPHA_SUPPORT),
.enable_cmd_parser = true,
.enable_hangcheck = false,
.fastboot = false,
.prefault_disable = false,
.load_detect_test = false,
.force_reset_modeset_test = false,
.error_capture = true,
.disable_display = false,
.verbose_state_checks = true,
.nuclear_pageflip = false,
.enable_dp_mst = false,
.enable_dpcd_backlight = false,
.enable_gvt = false
};

View File

@ -1,175 +0,0 @@
/*
* \brief Intel framebuffer driver
* \author Stefan Kalkowski
* \author Norman Feske
* \date 2015-10-16
*/
/*
* Copyright (C) 2015-2020 Genode Labs GmbH
*
* This file is distributed under the terms of the GNU General Public License
* version 2.
*/
#ifndef __DRIVER_H__
#define __DRIVER_H__
/* Genode includes */
#include <base/component.h>
#include <dataspace/capability.h>
#include <capture_session/connection.h>
#include <timer_session/connection.h>
#include <util/reconstructible.h>
#include <base/attached_dataspace.h>
#include <base/attached_ram_dataspace.h>
#include <base/attached_rom_dataspace.h>
#include <os/reporter.h>
#include <lx_emul_c.h>
namespace Framebuffer {
using namespace Genode;
class Driver;
}
class Framebuffer::Driver
{
private:
using Area = Capture::Area;
using Pixel = Capture::Pixel;
struct Configuration
{
struct lx_c_fb_config _lx = { .height = 16,
.width = 64,
.pitch = 64,
.bpp = 4,
.addr = nullptr,
.size = 0,
.lx_fb = nullptr };
} _lx_config;
Env &_env;
Attached_rom_dataspace &_config;
Timer::Connection _timer { _env };
Reporter _reporter { _env, "connectors" };
Signal_handler<Driver> _poll_handler { _env.ep(), *this, &Driver::_poll };
uint64_t _poll_ms = 0;
Signal_context_capability _config_sigh;
drm_display_mode * _preferred_mode(drm_connector *connector,
unsigned &brightness);
void _poll();
uint64_t _polling_from_config() {
return _config.xml().attribute_value<uint64_t>("poll", 0); }
/*
* Capture
*/
Constructible<Capture::Connection> _capture { };
Constructible<Capture::Connection::Screen> _captured_screen { };
Timer::Connection _capture_timer { _env };
Signal_handler<Driver> _capture_timer_handler {
_env.ep(), *this, &Driver::_handle_capture_timer };
void _handle_capture_timer()
{
if (!_captured_screen.constructed())
return;
Area const phys_size { _lx_config._lx.pitch/sizeof(Pixel),
_lx_config._lx.height };
Capture::Surface<Pixel> surface((Pixel *)_lx_config._lx.addr, phys_size);
_captured_screen->apply_to_surface(surface);
}
int _force_width_from_config()
{
return _config.xml().attribute_value<unsigned>("force_width", 0);
}
int _force_height_from_config()
{
return _config.xml().attribute_value<unsigned>("force_height", 0);
}
public:
Driver(Env &env, Attached_rom_dataspace &config)
:
_env(env), _config(config)
{
_capture_timer.sigh(_capture_timer_handler);
}
void finish_initialization();
void set_polling(uint64_t poll);
void update_mode();
void generate_report();
/**
* Register signal handler used for config updates
*
* The signal handler is artificially triggered as a side effect
* of connector changes.
*/
void config_sigh(Signal_context_capability sigh)
{
_config_sigh = sigh;
}
void trigger_reconfiguration()
{
/*
* Trigger the reprocessing of the configuration following the
* same ontrol flow as used for external config changes.
*/
if (_config_sigh.valid())
Signal_transmitter(_config_sigh).submit();
else
warning("config signal handler unexpectedly undefined");
}
void config_changed()
{
_config.update();
set_polling(_polling_from_config());
update_mode();
Area const size { _lx_config._lx.width, _lx_config._lx.height };
if (_captured_screen.constructed()) {
_capture.destruct();
_captured_screen.destruct();
}
_capture.construct(_env);
_captured_screen.construct(*_capture, _env.rm(), size);
_capture_timer.trigger_periodic(10*1000);
}
};
#endif /* __DRIVER_H__ */

File diff suppressed because it is too large Load Diff

View File

@ -1,62 +0,0 @@
/*
* \brief C-declarations needed for device driver environment
* \author Stefan Kalkowski
* \author Norman Feske
* \date 2016-06-17
*/
#ifndef _LX_EMUL_C_H_
#define _LX_EMUL_C_H_
#if 0
#define TRACE \
do { \
lx_printf("%s not implemented\n", __func__); \
} while (0)
#else
#define TRACE do { ; } while (0)
#endif
#define TRACE_AND_STOP \
do { \
lx_printf("%s not implemented\n", __func__); \
BUG(); \
} while (0)
#define ASSERT(x) \
do { \
if (!(x)) { \
lx_printf("%s:%u assertion failed\n", __func__, __LINE__); \
BUG(); \
} \
} while (0)
#include <legacy/lx_emul/extern_c_begin.h>
struct drm_device;
struct drm_framebuffer;
struct drm_display_mode;
struct drm_connector;
struct lx_c_fb_config {
int height;
int width;
unsigned pitch;
unsigned bpp;
void * addr;
unsigned long size;
struct drm_framebuffer * lx_fb;
};
void lx_c_allocate_framebuffer(struct drm_device *,
struct lx_c_fb_config *);
void lx_c_set_mode(struct drm_device *, struct drm_connector *,
struct drm_framebuffer *, struct drm_display_mode *);
void lx_c_set_driver(struct drm_device *, void *);
void * lx_c_get_driver(struct drm_device *);
void lx_c_set_brightness(struct drm_connector *, unsigned, unsigned);
unsigned lx_c_get_brightness(struct drm_connector * const, unsigned);
#include <legacy/lx_emul/extern_c_end.h>
#endif /* _LX_EMUL_C_H_ */

File diff suppressed because it is too large Load Diff

View File

@ -1,198 +0,0 @@
/*
* \brief Linux emulation C helper functions
* \author Stefan Kalkowski
* \date 2016-03-22
*/
/*
* Copyright (C) 2016-2017 Genode Labs GmbH
*
* This file is distributed under the terms of the GNU General Public License
* version 2.
*/
/* Genode includes */
#include <lx_emul_c.h>
#include <../drivers/gpu/drm/i915/i915_drv.h>
#include <../drivers/gpu/drm/i915/intel_drv.h>
#include <drm/drm_atomic_helper.h>
extern struct drm_framebuffer *
lx_c_intel_framebuffer_create(struct drm_device *dev,
struct drm_mode_fb_cmd2 *mode_cmd,
struct drm_i915_gem_object *obj);
void lx_c_allocate_framebuffer(struct drm_device * dev,
struct lx_c_fb_config *c)
{
struct drm_i915_private *dev_priv = dev->dev_private;
struct drm_mode_fb_cmd2 * r;
struct drm_i915_gem_object * obj = NULL;
mutex_lock(&dev->struct_mutex);
/* for linear buffers the pitch needs to be 64 byte aligned */
c->pitch = roundup(c->width * c->bpp, 64);
c->size = roundup(c->pitch * c->height, PAGE_SIZE);
obj = i915_gem_object_create_stolen(dev_priv, c->size);
if (obj == NULL)
obj = i915_gem_object_create(dev_priv, c->size);
if (obj == NULL) goto out2;
r = (struct drm_mode_fb_cmd2*) kzalloc(sizeof(struct drm_mode_fb_cmd2), 0);
if (!r) goto err2;
r->width = c->width;
r->height = c->height;
r->pixel_format = DRM_FORMAT_XRGB8888;
r->pitches[0] = c->pitch;
c->lx_fb = intel_framebuffer_create(obj, r);
if (IS_ERR(c->lx_fb)) goto err2;
/* XXX rotation info missing */
struct i915_vma * vma = intel_pin_and_fence_fb_obj(c->lx_fb, DRM_MODE_ROTATE_0);
if (IS_ERR(vma))
goto err1;
c->addr = ioremap_wc(dev_priv->ggtt.gmadr.start + i915_ggtt_offset(vma),
c->size);
memset_io(c->addr, 0, c->size);
/* intel_framebuffer_create inc ref, so dec since obj ptr is dropped now */
i915_gem_object_put(obj);
goto out1;
err1:
DRM_ERROR("could not allocate framebuffer %ld", (long)vma);
drm_framebuffer_remove(c->lx_fb);
err2:
c->lx_fb = NULL;
i915_gem_object_put(obj);
out1:
kfree(r);
out2:
mutex_unlock(&dev->struct_mutex);
}
void lx_c_set_mode(struct drm_device * dev, struct drm_connector * connector,
struct drm_framebuffer *fb, struct drm_display_mode *mode)
{
struct drm_crtc * crtc = NULL;
struct drm_encoder * encoder = connector->encoder;
if (!encoder) {
struct drm_encoder *enc;
list_for_each_entry(enc, &dev->mode_config.encoder_list, head) {
unsigned i;
for (i = 0; i < DRM_CONNECTOR_MAX_ENCODER; i++)
if (connector->encoder_ids[i] == enc->base.id) break;
if (i == DRM_CONNECTOR_MAX_ENCODER) continue;
bool used = false;
struct drm_connector *c;
list_for_each_entry(c, &dev->mode_config.connector_list, head) {
if (c->encoder == enc) used = true;
}
if (used) continue;
encoder = enc;
break;
}
}
if (!encoder) {
lx_printf("Found no encoder for the connector %s\n", connector->name);
return;
}
unsigned used_crtc = 0;
crtc = encoder->crtc;
if (!crtc) {
unsigned i = 0;
struct drm_crtc *c;
list_for_each_entry(c, &dev->mode_config.crtc_list, head) {
if (!(encoder->possible_crtcs & (1 << i))) continue;
if (c->state->enable) {
used_crtc ++;
continue;
}
crtc = c;
break;
}
}
if (!crtc) {
if (mode)
lx_printf("Found no crtc for the connector %s used/max %u+1/%u\n",
connector->name, used_crtc, dev->mode_config.num_crtc);
return;
}
DRM_DEBUG("%s%s for connector %s\n", mode ? "set mode " : "no mode",
mode ? mode->name : "", connector->name);
struct drm_mode_set set;
set.crtc = crtc;
set.x = 0;
set.y = 0;
set.mode = mode;
set.connectors = &connector;
set.num_connectors = mode ? 1 : 0;
set.fb = mode ? fb : 0;
uint32_t const ref_cnt_before = drm_framebuffer_read_refcount(fb);
int ret = drm_atomic_helper_set_config(&set, dev->mode_config.acquire_ctx);
if (ret)
lx_printf("Error: set config failed ret=%d refcnt before=%u after=%u\n",
ret, ref_cnt_before, drm_framebuffer_read_refcount(fb));
}
void lx_c_set_driver(struct drm_device * dev, void * driver)
{
struct drm_i915_private *dev_priv = dev->dev_private;
ASSERT(!dev_priv->audio_component);
dev_priv->audio_component = (struct i915_audio_component *) driver;
}
void* lx_c_get_driver(struct drm_device * dev)
{
struct drm_i915_private *dev_priv = dev->dev_private;
return (void*) dev_priv->audio_component;
}
void lx_c_set_brightness(struct drm_connector * const connector,
unsigned const bn_set, unsigned const bn_max)
{
struct intel_connector * const c = to_intel_connector(connector);
intel_panel_set_backlight_acpi(c->base.state, bn_set, bn_max);
}
unsigned lx_c_get_brightness(struct drm_connector * const connector, unsigned error)
{
if (!connector)
return error;
struct intel_connector * const intel_c = to_intel_connector(connector);
if (!intel_c)
return error;
struct intel_panel *panel = &intel_c->panel;
if (!panel || !panel->backlight.device || !panel->backlight.device->ops ||
!panel->backlight.device->ops->get_brightness)
return error;
panel->backlight.device->connector = intel_c;
unsigned ret = panel->backlight.device->ops->get_brightness(panel->backlight.device);
panel->backlight.device->connector = NULL;
return ret;
}

View File

@ -1,142 +0,0 @@
/*
* \brief Intel framebuffer driver
* \author Norman Feske
* \author Stefan Kalkowski
* \date 2015-08-19
*/
/*
* Copyright (C) 2015-2020 Genode Labs GmbH
*
* This file is distributed under the terms of the GNU General Public License
* version 2.
*/
/* Genode includes */
#include <base/log.h>
#include <base/component.h>
#include <base/heap.h>
#include <base/attached_rom_dataspace.h>
/* local includes */
#include <driver.h>
/* Linux emulation environment includes */
#include <lx_emul.h>
#include <legacy/lx_kit/env.h>
#include <legacy/lx_kit/malloc.h>
#include <legacy/lx_kit/scheduler.h>
#include <legacy/lx_kit/timer.h>
#include <legacy/lx_kit/irq.h>
#include <legacy/lx_kit/pci_dev_registry.h>
#include <legacy/lx_kit/backend_alloc.h>
#include <legacy/lx_kit/work.h>
/* Linux module functions */
extern "C" void postcore_i2c_init(void); /* i2c-core-base.c */
extern "C" int module_i915_init(); /* i915_drv.c */
extern "C" void radix_tree_init(); /* called by start_kernel(void) normally */
extern "C" void drm_connector_ida_init(); /* called by drm_core_init(void) normally */
unsigned long jiffies;
namespace Framebuffer { struct Main; }
struct Framebuffer::Main
{
void _run_linux();
/**
* Entry for executing code in the Linux kernel context
*/
static void _run_linux_entry(void *m)
{
reinterpret_cast<Main*>(m)->_run_linux();
}
Env &_env;
Entrypoint &_ep { _env.ep() };
Attached_rom_dataspace _config { _env, "config" };
Heap _heap { _env.ram(), _env.rm() };
Driver _driver { _env, _config };
/* Linux task that handles the initialization */
Constructible<Lx::Task> _linux;
Signal_handler<Main> _policy_change_handler {
_env.ep(), *this, &Main::_handle_policy_change };
bool _policy_change_pending = false;
void _handle_policy_change()
{
_policy_change_pending = true;
_linux->unblock();
Lx::scheduler().schedule();
}
Main(Env &env) : _env(env)
{
log("--- intel framebuffer driver ---");
Lx_kit::construct_env(_env);
LX_MUTEX_INIT(bridge_lock);
LX_MUTEX_INIT(core_lock);
/* init singleton Lx::Scheduler */
Lx::scheduler(&_env);
Lx::pci_init(_env, _env.ram(), _heap);
Lx::malloc_init(_env, _heap);
/* init singleton Lx::Timer */
Lx::timer(&_env, &_ep, &_heap, &jiffies);
/* init singleton Lx::Irq */
Lx::Irq::irq(&_ep, &_heap);
/* init singleton Lx::Work */
Lx::Work::work_queue(&_heap);
_linux.construct(_run_linux_entry, reinterpret_cast<void*>(this),
"linux", Lx::Task::PRIORITY_0, Lx::scheduler());
/* give all task a first kick before returning */
Lx::scheduler().schedule();
}
};
void Framebuffer::Main::_run_linux()
{
system_wq = alloc_workqueue("system_wq", 0, 0);
radix_tree_init();
drm_connector_ida_init();
postcore_i2c_init();
module_i915_init();
_driver.finish_initialization();
_driver.config_sigh(_policy_change_handler);
_config.sigh(_policy_change_handler);
while (1) {
Lx::scheduler().current()->block_and_schedule();
while (_policy_change_pending) {
_policy_change_pending = false;
_driver.config_changed();
}
}
}
void Component::construct(Genode::Env &env)
{
/* XXX execute constructors of global statics */
env.exec_static_constructors();
static Framebuffer::Main main(env);
}

View File

@ -1,26 +0,0 @@
REQUIRES = x86
TARGET = legacy_intel_fb_drv
LIBS = base intel_fb_drv intel_fb_include lx_kit_setjmp blit
SRC_CC = main.cc lx_emul.cc
SRC_C = dummies.c i915_params.c lx_emul_c.c
# lx_kit
SRC_CC += irq.cc \
malloc.cc \
mapped_io_mem_range.cc \
pci.cc \
printf.cc \
bug.cc \
scheduler.cc \
timer.cc \
work.cc \
env.cc
INC_DIR += $(REP_DIR)/src/include
vpath %.cc $(PRG_DIR)
vpath %.cc $(REP_DIR)/src/lib/legacy/lx_kit
CC_CXX_WARN_STRICT =
CC_OPT += -Wno-narrowing