mirror of
https://github.com/torvalds/linux.git
synced 2026-10-30 14:06:03 +01:00
The platforms that support the interrupt from the I2C adapter can not handle the amount of interrupts the adapter generates because of the way the IRQ is routed in the hardware. The I2C controller driver has to be kept in polling mode because of that. The AMC MCU can still generate critical alerts that have to be handled. The interrupt from SMBus Alert is left enabled and handled separately in the Xe. The alerts from the AMC will cause the device to be declared wedged for now. Fixes:f0e53aadd7("drm/xe: Support for I2C attached MCUs") Cc: stable@vger.kernel.org Reviewed-by: Raag Jadav <raag.jadav@intel.com> Co-developed-by: Ramesh Babu B <ramesh.babu.b@intel.com> Signed-off-by: Ramesh Babu B <ramesh.babu.b@intel.com> Signed-off-by: Heikki Krogerus <heikki.krogerus@linux.intel.com> Link: https://patch.msgid.link/20260811121008.1493015-3-heikki.krogerus@linux.intel.com Signed-off-by: Rodrigo Vivi <rodrigo.vivi@intel.com> (cherry picked from commita55b76b8bc) Signed-off-by: Rodrigo Vivi <rodrigo.vivi@intel.com>
401 lines
10 KiB
Makefile
401 lines
10 KiB
Makefile
# SPDX-License-Identifier: GPL-2.0
|
|
#
|
|
# Makefile for the drm device driver. This driver provides support for the
|
|
# Direct Rendering Infrastructure (DRI) in XFree86 4.1.0 and higher.
|
|
|
|
# Enable W=1 warnings not enabled in drm subsystem Makefile
|
|
subdir-ccflags-y += $(call cc-option, -Wformat-truncation)
|
|
|
|
# Enable -Werror in CI and development
|
|
subdir-ccflags-$(CONFIG_DRM_XE_WERROR) += -Werror
|
|
|
|
subdir-ccflags-y += -I$(obj) -I$(src)
|
|
|
|
# generated sources
|
|
|
|
hostprogs := xe_gen_wa_oob
|
|
generated_oob := $(obj)/generated/xe_wa_oob.c $(obj)/generated/xe_wa_oob.h
|
|
quiet_cmd_wa_oob = GEN $(notdir $(generated_oob))
|
|
cmd_wa_oob = mkdir -p $(@D); $(obj)/xe_gen_wa_oob $(src)/xe_wa_oob.rules $(generated_oob)
|
|
$(obj)/generated/%_wa_oob.c $(obj)/generated/%_wa_oob.h: $(obj)/xe_gen_wa_oob \
|
|
$(src)/xe_wa_oob.rules
|
|
$(call cmd,wa_oob)
|
|
|
|
generated_device_oob := $(obj)/generated/xe_device_wa_oob.c $(obj)/generated/xe_device_wa_oob.h
|
|
quiet_cmd_device_wa_oob = GEN $(notdir $(generated_device_oob))
|
|
cmd_device_wa_oob = mkdir -p $(@D); $(obj)/xe_gen_wa_oob $(src)/xe_device_wa_oob.rules $(generated_device_oob)
|
|
$(obj)/generated/%_device_wa_oob.c $(obj)/generated/%_device_wa_oob.h: $(obj)/xe_gen_wa_oob \
|
|
$(src)/xe_device_wa_oob.rules
|
|
$(call cmd,device_wa_oob)
|
|
|
|
# Please keep these build lists sorted!
|
|
|
|
# core driver code
|
|
|
|
xe-y += xe_bb.o \
|
|
xe_bo.o \
|
|
xe_bo_evict.o \
|
|
xe_dep_scheduler.o \
|
|
xe_devcoredump.o \
|
|
xe_device.o \
|
|
xe_device_sysfs.o \
|
|
xe_dma_buf.o \
|
|
xe_drm_client.o \
|
|
xe_drm_ras.o \
|
|
xe_eu_stall.o \
|
|
xe_exec.o \
|
|
xe_exec_queue.o \
|
|
xe_execlist.o \
|
|
xe_force_wake.o \
|
|
xe_ggtt.o \
|
|
xe_gpu_scheduler.o \
|
|
xe_gsc.o \
|
|
xe_gsc_debugfs.o \
|
|
xe_gsc_proxy.o \
|
|
xe_gsc_submit.o \
|
|
xe_gt.o \
|
|
xe_gt_ccs_mode.o \
|
|
xe_gt_clock.o \
|
|
xe_gt_freq.o \
|
|
xe_gt_idle.o \
|
|
xe_gt_mcr.o \
|
|
xe_gt_sysfs.o \
|
|
xe_gt_throttle.o \
|
|
xe_gt_topology.o \
|
|
xe_guc.o \
|
|
xe_guc_ads.o \
|
|
xe_guc_buf.o \
|
|
xe_guc_capture.o \
|
|
xe_guc_ct.o \
|
|
xe_guc_db_mgr.o \
|
|
xe_guc_engine_activity.o \
|
|
xe_guc_hwconfig.o \
|
|
xe_guc_id_mgr.o \
|
|
xe_guc_klv_helpers.o \
|
|
xe_guc_log.o \
|
|
xe_guc_pagefault.o \
|
|
xe_guc_pc.o \
|
|
xe_guc_rc.o \
|
|
xe_guc_submit.o \
|
|
xe_guc_tlb_inval.o \
|
|
xe_heci_gsc.o \
|
|
xe_huc.o \
|
|
xe_hw_engine.o \
|
|
xe_hw_engine_class_sysfs.o \
|
|
xe_hw_engine_group.o \
|
|
xe_hw_error.o \
|
|
xe_hw_fence.o \
|
|
xe_irq.o \
|
|
xe_late_bind_fw.o \
|
|
xe_lrc.o \
|
|
xe_mem_pool.o \
|
|
xe_migrate.o \
|
|
xe_mmio.o \
|
|
xe_mmio_gem.o \
|
|
xe_mocs.o \
|
|
xe_module.o \
|
|
xe_nvm.o \
|
|
xe_oa.o \
|
|
xe_observation.o \
|
|
xe_pagefault.o \
|
|
xe_page_reclaim.o \
|
|
xe_pat.o \
|
|
xe_pci.o \
|
|
xe_pci_error.o \
|
|
xe_pci_rebar.o \
|
|
xe_pcode.o \
|
|
xe_pm.o \
|
|
xe_preempt_fence.o \
|
|
xe_psmi.o \
|
|
xe_pt.o \
|
|
xe_pt_walk.o \
|
|
xe_pxp.o \
|
|
xe_pxp_debugfs.o \
|
|
xe_pxp_submit.o \
|
|
xe_query.o \
|
|
xe_range_fence.o \
|
|
xe_ras.o \
|
|
xe_reg_sr.o \
|
|
xe_reg_whitelist.o \
|
|
xe_ring_ops.o \
|
|
xe_rtp.o \
|
|
xe_sa.o \
|
|
xe_sched_job.o \
|
|
xe_shrinker.o \
|
|
xe_soc_remapper.o \
|
|
xe_step.o \
|
|
xe_survivability_mode.o \
|
|
xe_sync.o \
|
|
xe_sysctrl.o \
|
|
xe_sysctrl_event.o \
|
|
xe_sysctrl_mailbox.o \
|
|
xe_tile.o \
|
|
xe_tile_sysfs.o \
|
|
xe_tlb_inval.o \
|
|
xe_tlb_inval_job.o \
|
|
xe_trace.o \
|
|
xe_trace_bo.o \
|
|
xe_trace_guc.o \
|
|
xe_trace_lrc.o \
|
|
xe_ttm_stolen_mgr.o \
|
|
xe_ttm_sys_mgr.o \
|
|
xe_ttm_vram_mgr.o \
|
|
xe_tuning.o \
|
|
xe_uc.o \
|
|
xe_uc_fw.o \
|
|
xe_validation.o \
|
|
xe_vm.o \
|
|
xe_vm_madvise.o \
|
|
xe_vram.o \
|
|
xe_vram_freq.o \
|
|
xe_vsec.o \
|
|
xe_wa.o \
|
|
xe_wait_user_fence.o \
|
|
xe_wopcm.o
|
|
|
|
xe-$(CONFIG_I2C) += xe_i2c.o \
|
|
xe_amc.o
|
|
|
|
xe-$(CONFIG_DRM_XE_GPUSVM) += xe_svm.o
|
|
xe-$(CONFIG_DRM_GPUSVM) += xe_userptr.o
|
|
|
|
# graphics hardware monitoring (HWMON) support
|
|
xe-$(CONFIG_HWMON) += xe_hwmon.o
|
|
|
|
xe-$(CONFIG_PERF_EVENTS) += xe_pmu.o
|
|
xe-$(CONFIG_CONFIGFS_FS) += xe_configfs.o
|
|
|
|
# graphics virtualization (SR-IOV) support
|
|
xe-y += \
|
|
xe_gt_sriov_vf.o \
|
|
xe_guc_relay.o \
|
|
xe_memirq.o \
|
|
xe_sriov.o \
|
|
xe_sriov_vf.o \
|
|
xe_sriov_vf_ccs.o \
|
|
xe_tile_sriov_vf.o
|
|
|
|
xe-$(CONFIG_PCI_IOV) += \
|
|
xe_gt_sriov_pf.o \
|
|
xe_gt_sriov_pf_config.o \
|
|
xe_gt_sriov_pf_control.o \
|
|
xe_gt_sriov_pf_migration.o \
|
|
xe_gt_sriov_pf_monitor.o \
|
|
xe_gt_sriov_pf_policy.o \
|
|
xe_gt_sriov_pf_service.o \
|
|
xe_lmtt.o \
|
|
xe_lmtt_2l.o \
|
|
xe_lmtt_ml.o \
|
|
xe_mert.o \
|
|
xe_pci_sriov.o \
|
|
xe_sriov_packet.o \
|
|
xe_sriov_pf.o \
|
|
xe_sriov_pf_control.o \
|
|
xe_sriov_pf_debugfs.o \
|
|
xe_sriov_pf_migration.o \
|
|
xe_sriov_pf_provision.o \
|
|
xe_sriov_pf_service.o \
|
|
xe_sriov_pf_sysfs.o \
|
|
xe_tile_sriov_pf_debugfs.o
|
|
|
|
ifdef CONFIG_XE_VFIO_PCI
|
|
xe-$(CONFIG_PCI_IOV) += xe_sriov_vfio.o
|
|
endif
|
|
|
|
# include helpers for tests even when XE is built-in
|
|
ifdef CONFIG_DRM_XE_KUNIT_TEST
|
|
xe-y += tests/xe_kunit_helpers.o
|
|
endif
|
|
|
|
# i915 Display compat #defines and #includes
|
|
subdir-ccflags-$(CONFIG_DRM_XE_DISPLAY) += \
|
|
-I$(src)/compat-i915-headers \
|
|
-I$(srctree)/drivers/gpu/drm/i915/display/
|
|
|
|
# Rule to build display code shared with i915
|
|
$(obj)/i915-display/%.o: $(srctree)/drivers/gpu/drm/i915/display/%.c FORCE
|
|
$(call cmd,force_checksrc)
|
|
$(call if_changed_rule,cc_o_c)
|
|
|
|
# Display code specific to xe
|
|
xe-$(CONFIG_DRM_XE_DISPLAY) += \
|
|
display/xe_display.o \
|
|
display/xe_display_bo.o \
|
|
display/xe_display_pcode.o \
|
|
display/xe_display_rpm.o \
|
|
display/xe_display_wa.o \
|
|
display/xe_dsb_buffer.o \
|
|
display/xe_fb_pin.o \
|
|
display/xe_frontbuffer.o \
|
|
display/xe_hdcp_gsc.o \
|
|
display/xe_initial_plane.o \
|
|
display/xe_panic.o \
|
|
display/xe_stolen.o \
|
|
display/xe_tdf.o
|
|
|
|
# Display code shared with i915
|
|
xe-$(CONFIG_DRM_XE_DISPLAY) += \
|
|
i915-display/icl_dsi.o \
|
|
i915-display/intel_alpm.o \
|
|
i915-display/intel_atomic.o \
|
|
i915-display/intel_audio.o \
|
|
i915-display/intel_backlight.o \
|
|
i915-display/intel_bios.o \
|
|
i915-display/intel_bo.o \
|
|
i915-display/intel_bw.o \
|
|
i915-display/intel_casf.o \
|
|
i915-display/intel_cdclk.o \
|
|
i915-display/intel_cmtg.o \
|
|
i915-display/intel_color.o \
|
|
i915-display/intel_colorop.o \
|
|
i915-display/intel_color_pipeline.o \
|
|
i915-display/intel_combo_phy.o \
|
|
i915-display/intel_connector.o \
|
|
i915-display/intel_crtc.o \
|
|
i915-display/intel_crtc_state_dump.o \
|
|
i915-display/intel_cursor.o \
|
|
i915-display/intel_cx0_phy.o \
|
|
i915-display/intel_dbuf_bw.o \
|
|
i915-display/intel_ddi.o \
|
|
i915-display/intel_ddi_buf_trans.o \
|
|
i915-display/intel_de.o \
|
|
i915-display/intel_display.o \
|
|
i915-display/intel_display_conversion.o \
|
|
i915-display/intel_display_device.o \
|
|
i915-display/intel_display_driver.o \
|
|
i915-display/intel_display_irq.o \
|
|
i915-display/intel_display_params.o \
|
|
i915-display/intel_display_power.o \
|
|
i915-display/intel_display_power_map.o \
|
|
i915-display/intel_display_power_well.o \
|
|
i915-display/intel_display_reset.o \
|
|
i915-display/intel_display_rpm.o \
|
|
i915-display/intel_display_rps.o \
|
|
i915-display/intel_display_trace.o \
|
|
i915-display/intel_display_utils.o \
|
|
i915-display/intel_display_wa.o \
|
|
i915-display/intel_dkl_phy.o \
|
|
i915-display/intel_dmc.o \
|
|
i915-display/intel_dmc_wl.o \
|
|
i915-display/intel_dp.o \
|
|
i915-display/intel_dp_aux.o \
|
|
i915-display/intel_dp_aux_backlight.o \
|
|
i915-display/intel_dp_hdcp.o \
|
|
i915-display/intel_dp_link_caps.o \
|
|
i915-display/intel_dp_link_training.o \
|
|
i915-display/intel_dp_mst.o \
|
|
i915-display/intel_dp_test.o \
|
|
i915-display/intel_dpll.o \
|
|
i915-display/intel_dpll_mgr.o \
|
|
i915-display/intel_dpt.o \
|
|
i915-display/intel_dram.o \
|
|
i915-display/intel_drrs.o \
|
|
i915-display/intel_dsb.o \
|
|
i915-display/intel_dsi.o \
|
|
i915-display/intel_dsi_dcs_backlight.o \
|
|
i915-display/intel_dsi_vbt.o \
|
|
i915-display/intel_encoder.o \
|
|
i915-display/intel_fb.o \
|
|
i915-display/intel_fbc.o \
|
|
i915-display/intel_fdi.o \
|
|
i915-display/intel_fifo_underrun.o \
|
|
i915-display/intel_flipq.o \
|
|
i915-display/intel_frontbuffer.o \
|
|
i915-display/intel_global_state.o \
|
|
i915-display/intel_gmbus.o \
|
|
i915-display/intel_hdcp.o \
|
|
i915-display/intel_hdcp_gsc_message.o \
|
|
i915-display/intel_hdmi.o \
|
|
i915-display/intel_hotplug.o \
|
|
i915-display/intel_hotplug_irq.o \
|
|
i915-display/intel_hti.o \
|
|
i915-display/intel_initial_plane.o \
|
|
i915-display/intel_link_bw.o \
|
|
i915-display/intel_lspcon.o \
|
|
i915-display/intel_lt_phy.o \
|
|
i915-display/intel_mchbar.o \
|
|
i915-display/intel_modeset_lock.o \
|
|
i915-display/intel_modeset_setup.o \
|
|
i915-display/intel_modeset_verify.o \
|
|
i915-display/intel_overlay.o \
|
|
i915-display/intel_panel.o \
|
|
i915-display/intel_parent.o \
|
|
i915-display/intel_pch.o \
|
|
i915-display/intel_pfit.o \
|
|
i915-display/intel_plane.o \
|
|
i915-display/intel_pmdemand.o \
|
|
i915-display/intel_pps.o \
|
|
i915-display/intel_psr.o \
|
|
i915-display/intel_qp_tables.o \
|
|
i915-display/intel_quirks.o \
|
|
i915-display/intel_rom.o \
|
|
i915-display/intel_snps_hdmi_pll.o \
|
|
i915-display/intel_snps_phy.o \
|
|
i915-display/intel_tc.o \
|
|
i915-display/intel_vblank.o \
|
|
i915-display/intel_vdsc.o \
|
|
i915-display/intel_vga.o \
|
|
i915-display/intel_vrr.o \
|
|
i915-display/intel_wm.o \
|
|
i915-display/skl_prefill.o \
|
|
i915-display/skl_scaler.o \
|
|
i915-display/skl_universal_plane.o \
|
|
i915-display/skl_watermark.o \
|
|
i915-display/vlv_sideband.o
|
|
|
|
ifeq ($(CONFIG_ACPI),y)
|
|
xe-$(CONFIG_DRM_XE_DISPLAY) += \
|
|
i915-display/intel_acpi.o \
|
|
i915-display/intel_opregion.o
|
|
endif
|
|
|
|
ifeq ($(CONFIG_DRM_FBDEV_EMULATION),y)
|
|
xe-$(CONFIG_DRM_XE_DISPLAY) += i915-display/intel_fbdev.o
|
|
endif
|
|
|
|
ifeq ($(CONFIG_DEBUG_FS),y)
|
|
xe-y += xe_debugfs.o \
|
|
xe_gt_debugfs.o \
|
|
xe_gt_sriov_vf_debugfs.o \
|
|
xe_gt_stats.o \
|
|
xe_guc_debugfs.o \
|
|
xe_huc_debugfs.o \
|
|
xe_tile_debugfs.o \
|
|
xe_uc_debugfs.o
|
|
|
|
xe-$(CONFIG_PCI_IOV) += xe_gt_sriov_pf_debugfs.o
|
|
|
|
xe-$(CONFIG_DRM_XE_DISPLAY) += \
|
|
i915-display/intel_display_debugfs.o \
|
|
i915-display/intel_display_debugfs_params.o \
|
|
i915-display/intel_pipe_crc.o
|
|
endif
|
|
|
|
xe-$(CONFIG_DRM_XE_DP_TUNNEL) += \
|
|
i915-display/intel_dp_tunnel.o
|
|
|
|
obj-$(CONFIG_DRM_XE) += xe.o
|
|
obj-$(CONFIG_DRM_XE_KUNIT_TEST) += tests/
|
|
ifeq ($(CONFIG_DRM_XE_DISPLAY),y)
|
|
obj-$(CONFIG_DRM_XE_KUNIT_TEST) += display/tests/
|
|
endif
|
|
|
|
# header test
|
|
hdrtest_find_args := -not -path xe_rtp_helpers.h
|
|
ifneq ($(CONFIG_DRM_XE_DISPLAY),y)
|
|
hdrtest_find_args += -not -path display/\* -not -path compat-i915-headers/\* -not -path xe_display.h
|
|
endif
|
|
|
|
always-$(CONFIG_DRM_XE_WERROR) += \
|
|
$(patsubst %.h,%.hdrtest, $(shell cd $(src) && find * -name '*.h' $(hdrtest_find_args)))
|
|
|
|
quiet_cmd_hdrtest = HDRTEST $(patsubst %.hdrtest,%.h,$@)
|
|
cmd_hdrtest = $(CC) $(filter-out $(CFLAGS_GCOV), $(c_flags)) -S -o /dev/null -x c /dev/null -include $< -include $<; \
|
|
$(srctree)/scripts/kernel-doc -none -Werror $<; touch $@
|
|
|
|
$(obj)/%.hdrtest: $(src)/%.h FORCE
|
|
$(call if_changed_dep,hdrtest)
|
|
|
|
uses_generated_oob := $(addprefix $(obj)/, $(xe-y))
|
|
$(uses_generated_oob): $(obj)/generated/xe_wa_oob.h $(obj)/generated/xe_device_wa_oob.h
|