mirror of
https://github.com/genodelabs/genode.git
synced 2025-01-30 16:14:13 +00:00
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:
parent
f146f9acb6
commit
38e5972e45
@ -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
|
@ -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
|
@ -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 =
|
@ -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 =
|
@ -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);
|
@ -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",
|
@ -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)
|
@ -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*/
|
@ -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;
|
@ -1 +1 @@
|
||||
9cb34790ab695fee44e6d559d7a0d8f919e22f6e
|
||||
447158aa8aa24d4e2925a0479d8710a2d7d738e9
|
||||
|
@ -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)
|
||||
|
@ -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" ) > $@
|
@ -1 +0,0 @@
|
||||
2022-04-27 e2dae7c47cf8faa31b490c2c9663520988fbac1e
|
@ -1,7 +0,0 @@
|
||||
base
|
||||
os
|
||||
platform_session
|
||||
timer_session
|
||||
report_session
|
||||
capture_session
|
||||
blit
|
@ -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
@ -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"
|
@ -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
|
||||
};
|
@ -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
@ -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
@ -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;
|
||||
}
|
@ -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);
|
||||
}
|
@ -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
|
Loading…
x
Reference in New Issue
Block a user