new drivers: - panthor: ARM Mali/Immortalis CSF-based GPU driver core: - add a CONFIG_DRM_WERROR option - make more headers self-contained - grab resv lock in pin/unpin - fix vmap resv locking - EDID/eDP panel matching - Kconfig cleanups - DT sound bindings - Add SIZE_HINTS property for cursor planes - Add struct drm_edid_product_id and helpers. - Use drm device based logging in more drm functions. - drop seq_file.h from a bunch of places - use drm_edid driver conversions dp: - DP Tunnel documentation - MST read sideband cap - Adaptive sync SDP prep work ttm: - improve placement for TTM BOs in idle/busy handling panic: - Fixes for drm-panic, and option to test it. - Add drm panic to simpledrm, mgag200, imx, ast bridge: - improve init ordering - adv7511: allow GPIO pin sharing - tc358775: add tc358675 support panel: - AUO B120XAN01.0 - Samsung s6e3fa7 - BOE NT116WHM-N44 - CMN N116BCA-EA1, - CrystalClear CMT430B19N00 - Startek KD050HDFIA020-C020A - powertip PH128800T006-ZHC01 - Innolux G121X1-L03 - LG sw43408 - Khadas TS050 V2 - EDO RM69380 OLED - CSOT MNB601LS1-1 amdgpu: - HDCP/ODM/RAS fixes - Devcoredump improvements - Expose VCN activity via sysfs - SMY 13.0.x updates - Enable fast updates on DCN 3.1.4 - Add dclk and vclk reporting on additional devices - Add ACA RAS infrastructure - Implement TLB flush fence - EEPROM handling fixes - SMUIO 14.0.2 support - SMU 14.0.1 Updates - SMU 14.0.2 support - Sync page table freeing with TLB flushes - DML2 refactor - DC debug improvements - DCN 3.5.x Updates - GPU reset fixes - HDP fix for second GFX pipe on GC 10.x - Enable secondary GFX pipe on GC 10.3 - Refactor and clean up BACO/BOCO/BAMACO handling - Remove invalid TTM resource start check - UAF fix in VA IOCTL - GPUVM page fault redirection to secondary IH rings for IH 6.x - Initial support for mapping kernel queues via MES - Fix VRAM memory accounting amdkfd: - MQD handling cleanup - Preemption handling fixes for XCDs - TLB flush fix for GC 9.4.2 - Properly clean up workqueue during module unload - Fix memory leak process create failure - Range check CP bad op exception targets to avoid reporting invalid exceptions to userspace - Fix eviction fence handling - Fix leak in GPU memory allocation failure case - DMABuf import handling fix - Enable SQ watchpoint for gfx10 i915: - Adding new DG2 PCI ID - add context hints for GT frequency - enable only one CCS for compute workloads - new workarounds - Fix UAF on destroy against retire race and remove two earlier partial fixes - Limit the reserved VM space to only the platforms that need it - Fix gt reset with GuC submission is disable - Add and use gt_to_guc() wrapper i915/xe display: - Lunar Lake display enabling, including cdclk and other refactors - BIOS/VBT/opregion related refactor - Digital port related refactor/clean-up - Fix 2s boot time regression on DP panel replay init - Remove duplication on audio enable/disable on SDVO and g4x+ DP - Disable AuxCCS framebuffers if built for Xe - Make crtc disable more atomic - Increase DP idle pattern wait timeout to 2ms - Start using container_of_const() for some extra const safety - Fix Jasper Lake boot freeze - Enable MST mode for 128b/132b single-stream sideband - Enable Adaptive Sync SDP Support for DP - Fix MTL supported DP rates - removal of UHBR13.5 - PLL refactoring - Limit eDP MSO pipe only for display version 20 - More display refactor towards independence from i915 dev_priv - Convert i915/xe fbdev to DRM client - More initial work to make display code more independent from i915 xe: - improved error capture - clean up some uAPI leftovers - devcoredump update - Add BMG mocs table - Handle GSCCS ER interrupt - Implement xe2- and GuC workarounds - struct xe_device cleanup - Hwmon updates - Add LRC parsing for more GPU instruction - Increase VM_BIND number of per-ioctl Ops - drm/xe: Add XE_BO_GGTT_INVALIDATE flag - Initial development for SR-IOV support - Add new PCI IDs to DG2 platform - Move userptr over to start using hmm_range_fault msm: - Switched to generating register header files during build process instead of shipping pre-generated headers - Merged DPU and MDP4 format databases. - DP: - Stop using compat string to distinguish DP and eDP cases - Added support for X Elite platform (X1E80100) - Reworked DP aux/audio support - Added SM6350 DP to the bindings - GPU: - a7xx perfcntr reg fixes - MAINTAINERS updates - a750 devcoredump support radeon: - Silence UBSAN warnings related to flexible arrays nouveau: - move some uAPI objects to uapi headers omapdrm: - console fix ast: - add i2c polling qaic: - add debugfs entries exynos: - fix platform_driver .owner - drop cleanup code mediatek: - Use devm_platform_get_and_ioremap_resource() in mtk_hdmi_ddc_probe() - Add GAMMA 12-bit LUT support for MT8188 - Rename mtk_drm_* to mtk_* - Drop driver owner initialization - Correct calculation formula of PHY Timing -----BEGIN PGP SIGNATURE----- iQIzBAABCAAdFiEEEKbZHaGwW9KfbeusDHTzWXnEhr4FAmZEUU0ACgkQDHTzWXnE hr5qMBAAjUFF0w3YOQMsn0LEAm628kMRHpoVeSXmIfO9z9lTyad30EtiS4ggFgj7 Q/oQ6hHCd5jdsvGSJDgtTTAsTQX+aCkXrgf/18ENbqR5mM3MdefUAPR/zawZ7HR4 8+b2h6p7gHBw8wDjuIvQ5e9InHcnIkKWJc82qnJG5Urgxa05SDh3mu3cosPTJiBw a851vlWaYcxC0yAUwJlWaXDdN8yzdFaSQNboZBS/CMLXF/WE6Ht257uxJmaouc0Y Z0kBybok5x0TPQEXF9IV+kuSW3EYpYcwRi0BFFM9sJjkEBdH3rYRZwuYP1LR+7VZ HKsmIkie8YzCm2VwTquYzUvHgF+swZX4RRch9XJlGz7UvBLc0eBO/2n4X6fNd8Kl QGNNqEfsnUQrAHKvGsOUgoGjSCmEo8voGcMZ3JPIAdJ/GcnJwpMvNxtF6XB08hEu rDxuU6o7WkM4dJbtiaFEHNh0Fmjj6aXdBL23UD9pcqPT1fc9cT3xnUd5RJIRuRwV /tpb2WfkFAoxCkKFiunaC4rE8oG6ME6wr/trYjvoYuhCI5hCVaXRBGzJEtC30IP6 lG2YZ8r0jHjktbgjZ0Cz/hY424H4sxSN9SJAnXXFDzcfjBJ/nOgo5nMD1jKajAD5 SYfqWaD5Y+YygtyLJPMfZQI2XMOpCzteXD8uaNXXFJfpV7Apeyg= =ocVM -----END PGP SIGNATURE----- Merge tag 'drm-next-2024-05-15' of https://gitlab.freedesktop.org/drm/kernel Pull drm updates from Dave Airlie: "This is the main pull request for the drm subsystems for 6.10. In drivers the main thing is a new driver for ARM Mali firmware based GPUs, otherwise there are a lot of changes to amdgpu/xe/i915/msm and scattered changes to everything else. In the core a bunch of headers and Kconfig was refactored, along with the addition of a new panic handler which is meant to provide a user friendly message when a panic happens and graphical display is enabled. New drivers: - panthor: ARM Mali/Immortalis CSF-based GPU driver Core: - add a CONFIG_DRM_WERROR option - make more headers self-contained - grab resv lock in pin/unpin - fix vmap resv locking - EDID/eDP panel matching - Kconfig cleanups - DT sound bindings - Add SIZE_HINTS property for cursor planes - Add struct drm_edid_product_id and helpers. - Use drm device based logging in more drm functions. - drop seq_file.h from a bunch of places - use drm_edid driver conversions dp: - DP Tunnel documentation - MST read sideband cap - Adaptive sync SDP prep work ttm: - improve placement for TTM BOs in idle/busy handling panic: - Fixes for drm-panic, and option to test it. - Add drm panic to simpledrm, mgag200, imx, ast bridge: - improve init ordering - adv7511: allow GPIO pin sharing - tc358775: add tc358675 support panel: - AUO B120XAN01.0 - Samsung s6e3fa7 - BOE NT116WHM-N44 - CMN N116BCA-EA1, - CrystalClear CMT430B19N00 - Startek KD050HDFIA020-C020A - powertip PH128800T006-ZHC01 - Innolux G121X1-L03 - LG sw43408 - Khadas TS050 V2 - EDO RM69380 OLED - CSOT MNB601LS1-1 amdgpu: - HDCP/ODM/RAS fixes - Devcoredump improvements - Expose VCN activity via sysfs - SMY 13.0.x updates - Enable fast updates on DCN 3.1.4 - Add dclk and vclk reporting on additional devices - Add ACA RAS infrastructure - Implement TLB flush fence - EEPROM handling fixes - SMUIO 14.0.2 support - SMU 14.0.1 Updates - SMU 14.0.2 support - Sync page table freeing with TLB flushes - DML2 refactor - DC debug improvements - DCN 3.5.x Updates - GPU reset fixes - HDP fix for second GFX pipe on GC 10.x - Enable secondary GFX pipe on GC 10.3 - Refactor and clean up BACO/BOCO/BAMACO handling - Remove invalid TTM resource start check - UAF fix in VA IOCTL - GPUVM page fault redirection to secondary IH rings for IH 6.x - Initial support for mapping kernel queues via MES - Fix VRAM memory accounting amdkfd: - MQD handling cleanup - Preemption handling fixes for XCDs - TLB flush fix for GC 9.4.2 - Properly clean up workqueue during module unload - Fix memory leak process create failure - Range check CP bad op exception targets to avoid reporting invalid exceptions to userspace - Fix eviction fence handling - Fix leak in GPU memory allocation failure case - DMABuf import handling fix - Enable SQ watchpoint for gfx10 i915: - Adding new DG2 PCI ID - add context hints for GT frequency - enable only one CCS for compute workloads - new workarounds - Fix UAF on destroy against retire race and remove two earlier partial fixes - Limit the reserved VM space to only the platforms that need it - Fix gt reset with GuC submission is disable - Add and use gt_to_guc() wrapper i915/xe display: - Lunar Lake display enabling, including cdclk and other refactors - BIOS/VBT/opregion related refactor - Digital port related refactor/clean-up - Fix 2s boot time regression on DP panel replay init - Remove duplication on audio enable/disable on SDVO and g4x+ DP - Disable AuxCCS framebuffers if built for Xe - Make crtc disable more atomic - Increase DP idle pattern wait timeout to 2ms - Start using container_of_const() for some extra const safety - Fix Jasper Lake boot freeze - Enable MST mode for 128b/132b single-stream sideband - Enable Adaptive Sync SDP Support for DP - Fix MTL supported DP rates - removal of UHBR13.5 - PLL refactoring - Limit eDP MSO pipe only for display version 20 - More display refactor towards independence from i915 dev_priv - Convert i915/xe fbdev to DRM client - More initial work to make display code more independent from i915 xe: - improved error capture - clean up some uAPI leftovers - devcoredump update - Add BMG mocs table - Handle GSCCS ER interrupt - Implement xe2- and GuC workarounds - struct xe_device cleanup - Hwmon updates - Add LRC parsing for more GPU instruction - Increase VM_BIND number of per-ioctl Ops - drm/xe: Add XE_BO_GGTT_INVALIDATE flag - Initial development for SR-IOV support - Add new PCI IDs to DG2 platform - Move userptr over to start using hmm_range_fault msm: - Switched to generating register header files during build process instead of shipping pre-generated headers - Merged DPU and MDP4 format databases. - DP: - Stop using compat string to distinguish DP and eDP cases - Added support for X Elite platform (X1E80100) - Reworked DP aux/audio support - Added SM6350 DP to the bindings - GPU: - a7xx perfcntr reg fixes - MAINTAINERS updates - a750 devcoredump support radeon: - Silence UBSAN warnings related to flexible arrays nouveau: - move some uAPI objects to uapi headers omapdrm: - console fix ast: - add i2c polling qaic: - add debugfs entries exynos: - fix platform_driver .owner - drop cleanup code mediatek: - Use devm_platform_get_and_ioremap_resource() in mtk_hdmi_ddc_probe() - Add GAMMA 12-bit LUT support for MT8188 - Rename mtk_drm_* to mtk_* - Drop driver owner initialization - Correct calculation formula of PHY Timing" * tag 'drm-next-2024-05-15' of https://gitlab.freedesktop.org/drm/kernel: (1477 commits) drm/xe/ads: Use flexible-array drm/xe: Use ordered WQ for G2H handler drm/msm/gen_header: allow skipping the validation drm/msm/a6xx: Cleanup indexed regs const'ness drm/msm: Add devcoredump support for a750 drm/msm: Adjust a7xx GBIF debugbus dumping drm/msm: Update a6xx registers XML drm/msm: Fix imported a750 snapshot header for upstream drm/msm: Import a750 snapshot registers from kgsl MAINTAINERS: Add Konrad Dybcio as a reviewer for the Adreno driver MAINTAINERS: Add a separate entry for Qualcomm Adreno GPU drivers drm/msm/a6xx: Avoid a nullptr dereference when speedbin setting fails drm/msm/adreno: fix CP cycles stat retrieval on a7xx drm/msm/a7xx: allow writing to CP_BV counter selection registers drm: zynqmp_dpsub: Always register bridge Revert "drm/bridge: ti-sn65dsi83: Fix enable error path" drm/fb_dma: Add checks in drm_fb_dma_get_scanout_buffer() drm/fbdev-generic: Do not set physical framebuffer address drm/panthor: Fix the FW reset logic drm/panthor: Make sure we handle 'unknown group state' case properly ...
199 lines
6.4 KiB
C
199 lines
6.4 KiB
C
/* SPDX-License-Identifier: MIT */
|
|
/*
|
|
* Copyright © 2023 Intel Corporation
|
|
*/
|
|
#ifndef _XE_I915_DRV_H_
|
|
#define _XE_I915_DRV_H_
|
|
|
|
/*
|
|
* "Adaptation header" to allow i915 display to also build for xe driver.
|
|
* TODO: refactor i915 and xe so this can cease to exist
|
|
*/
|
|
|
|
#include <drm/drm_drv.h>
|
|
|
|
#include "gem/i915_gem_object.h"
|
|
|
|
#include "soc/intel_pch.h"
|
|
#include "xe_device.h"
|
|
#include "xe_bo.h"
|
|
#include "xe_pm.h"
|
|
#include "xe_step.h"
|
|
#include "i915_gem_stolen.h"
|
|
#include "i915_gpu_error.h"
|
|
#include "i915_reg_defs.h"
|
|
#include "i915_utils.h"
|
|
#include "intel_gt_types.h"
|
|
#include "intel_step.h"
|
|
#include "intel_uncore.h"
|
|
#include "intel_runtime_pm.h"
|
|
#include <linux/pm_runtime.h>
|
|
|
|
static inline struct drm_i915_private *to_i915(const struct drm_device *dev)
|
|
{
|
|
return container_of(dev, struct drm_i915_private, drm);
|
|
}
|
|
|
|
static inline struct drm_i915_private *kdev_to_i915(struct device *kdev)
|
|
{
|
|
return dev_get_drvdata(kdev);
|
|
}
|
|
|
|
#define IS_PLATFORM(xe, x) ((xe)->info.platform == x)
|
|
#define INTEL_INFO(dev_priv) (&((dev_priv)->info))
|
|
#define IS_I830(dev_priv) (dev_priv && 0)
|
|
#define IS_I845G(dev_priv) (dev_priv && 0)
|
|
#define IS_I85X(dev_priv) (dev_priv && 0)
|
|
#define IS_I865G(dev_priv) (dev_priv && 0)
|
|
#define IS_I915G(dev_priv) (dev_priv && 0)
|
|
#define IS_I915GM(dev_priv) (dev_priv && 0)
|
|
#define IS_I945G(dev_priv) (dev_priv && 0)
|
|
#define IS_I945GM(dev_priv) (dev_priv && 0)
|
|
#define IS_I965G(dev_priv) (dev_priv && 0)
|
|
#define IS_I965GM(dev_priv) (dev_priv && 0)
|
|
#define IS_G45(dev_priv) (dev_priv && 0)
|
|
#define IS_GM45(dev_priv) (dev_priv && 0)
|
|
#define IS_G4X(dev_priv) (dev_priv && 0)
|
|
#define IS_PINEVIEW(dev_priv) (dev_priv && 0)
|
|
#define IS_G33(dev_priv) (dev_priv && 0)
|
|
#define IS_IRONLAKE(dev_priv) (dev_priv && 0)
|
|
#define IS_IRONLAKE_M(dev_priv) (dev_priv && 0)
|
|
#define IS_SANDYBRIDGE(dev_priv) (dev_priv && 0)
|
|
#define IS_IVYBRIDGE(dev_priv) (dev_priv && 0)
|
|
#define IS_IVB_GT1(dev_priv) (dev_priv && 0)
|
|
#define IS_VALLEYVIEW(dev_priv) (dev_priv && 0)
|
|
#define IS_CHERRYVIEW(dev_priv) (dev_priv && 0)
|
|
#define IS_HASWELL(dev_priv) (dev_priv && 0)
|
|
#define IS_BROADWELL(dev_priv) (dev_priv && 0)
|
|
#define IS_SKYLAKE(dev_priv) (dev_priv && 0)
|
|
#define IS_BROXTON(dev_priv) (dev_priv && 0)
|
|
#define IS_KABYLAKE(dev_priv) (dev_priv && 0)
|
|
#define IS_GEMINILAKE(dev_priv) (dev_priv && 0)
|
|
#define IS_COFFEELAKE(dev_priv) (dev_priv && 0)
|
|
#define IS_COMETLAKE(dev_priv) (dev_priv && 0)
|
|
#define IS_ICELAKE(dev_priv) (dev_priv && 0)
|
|
#define IS_JASPERLAKE(dev_priv) (dev_priv && 0)
|
|
#define IS_ELKHARTLAKE(dev_priv) (dev_priv && 0)
|
|
#define IS_TIGERLAKE(dev_priv) IS_PLATFORM(dev_priv, XE_TIGERLAKE)
|
|
#define IS_ROCKETLAKE(dev_priv) IS_PLATFORM(dev_priv, XE_ROCKETLAKE)
|
|
#define IS_DG1(dev_priv) IS_PLATFORM(dev_priv, XE_DG1)
|
|
#define IS_ALDERLAKE_S(dev_priv) IS_PLATFORM(dev_priv, XE_ALDERLAKE_S)
|
|
#define IS_ALDERLAKE_P(dev_priv) (IS_PLATFORM(dev_priv, XE_ALDERLAKE_P) || \
|
|
IS_PLATFORM(dev_priv, XE_ALDERLAKE_N))
|
|
#define IS_DG2(dev_priv) IS_PLATFORM(dev_priv, XE_DG2)
|
|
#define IS_METEORLAKE(dev_priv) IS_PLATFORM(dev_priv, XE_METEORLAKE)
|
|
#define IS_LUNARLAKE(dev_priv) IS_PLATFORM(dev_priv, XE_LUNARLAKE)
|
|
#define IS_BATTLEMAGE(dev_priv) IS_PLATFORM(dev_priv, XE_BATTLEMAGE)
|
|
|
|
#define IS_HASWELL_ULT(dev_priv) (dev_priv && 0)
|
|
#define IS_BROADWELL_ULT(dev_priv) (dev_priv && 0)
|
|
#define IS_BROADWELL_ULX(dev_priv) (dev_priv && 0)
|
|
|
|
#define IP_VER(ver, rel) ((ver) << 8 | (rel))
|
|
|
|
#define IS_MOBILE(xe) (xe && 0)
|
|
|
|
#define HAS_GMD_ID(xe) GRAPHICS_VERx100(xe) >= 1270
|
|
|
|
/* Workarounds not handled yet */
|
|
#define IS_DISPLAY_STEP(xe, first, last) ({u8 __step = (xe)->info.step.display; first <= __step && __step <= last; })
|
|
|
|
#define IS_LP(xe) (0)
|
|
#define IS_GEN9_LP(xe) (0)
|
|
#define IS_GEN9_BC(xe) (0)
|
|
|
|
#define IS_TIGERLAKE_UY(xe) (xe && 0)
|
|
#define IS_COMETLAKE_ULX(xe) (xe && 0)
|
|
#define IS_COFFEELAKE_ULX(xe) (xe && 0)
|
|
#define IS_KABYLAKE_ULX(xe) (xe && 0)
|
|
#define IS_SKYLAKE_ULX(xe) (xe && 0)
|
|
#define IS_HASWELL_ULX(xe) (xe && 0)
|
|
#define IS_COMETLAKE_ULT(xe) (xe && 0)
|
|
#define IS_COFFEELAKE_ULT(xe) (xe && 0)
|
|
#define IS_KABYLAKE_ULT(xe) (xe && 0)
|
|
#define IS_SKYLAKE_ULT(xe) (xe && 0)
|
|
|
|
#define IS_DG2_G10(xe) ((xe)->info.subplatform == XE_SUBPLATFORM_DG2_G10)
|
|
#define IS_DG2_G11(xe) ((xe)->info.subplatform == XE_SUBPLATFORM_DG2_G11)
|
|
#define IS_DG2_G12(xe) ((xe)->info.subplatform == XE_SUBPLATFORM_DG2_G12)
|
|
#define IS_RAPTORLAKE_U(xe) ((xe)->info.subplatform == XE_SUBPLATFORM_ALDERLAKE_P_RPLU)
|
|
#define IS_ICL_WITH_PORT_F(xe) (xe && 0)
|
|
#define HAS_FLAT_CCS(xe) (xe_device_has_flat_ccs(xe))
|
|
#define to_intel_bo(x) gem_to_xe_bo((x))
|
|
|
|
#define HAS_128_BYTE_Y_TILING(xe) (xe || 1)
|
|
|
|
#include "intel_wakeref.h"
|
|
|
|
static inline intel_wakeref_t intel_runtime_pm_get(struct xe_runtime_pm *pm)
|
|
{
|
|
struct xe_device *xe = container_of(pm, struct xe_device, runtime_pm);
|
|
|
|
return xe_pm_runtime_resume_and_get(xe);
|
|
}
|
|
|
|
static inline intel_wakeref_t intel_runtime_pm_get_if_in_use(struct xe_runtime_pm *pm)
|
|
{
|
|
struct xe_device *xe = container_of(pm, struct xe_device, runtime_pm);
|
|
|
|
return xe_pm_runtime_get_if_in_use(xe);
|
|
}
|
|
|
|
static inline intel_wakeref_t intel_runtime_pm_get_noresume(struct xe_runtime_pm *pm)
|
|
{
|
|
struct xe_device *xe = container_of(pm, struct xe_device, runtime_pm);
|
|
|
|
xe_pm_runtime_get_noresume(xe);
|
|
return true;
|
|
}
|
|
|
|
static inline void intel_runtime_pm_put_unchecked(struct xe_runtime_pm *pm)
|
|
{
|
|
struct xe_device *xe = container_of(pm, struct xe_device, runtime_pm);
|
|
|
|
xe_pm_runtime_put(xe);
|
|
}
|
|
|
|
static inline void intel_runtime_pm_put(struct xe_runtime_pm *pm, intel_wakeref_t wakeref)
|
|
{
|
|
if (wakeref)
|
|
intel_runtime_pm_put_unchecked(pm);
|
|
}
|
|
|
|
#define intel_runtime_pm_get_raw intel_runtime_pm_get
|
|
#define intel_runtime_pm_put_raw intel_runtime_pm_put
|
|
#define assert_rpm_wakelock_held(x) do { } while (0)
|
|
#define assert_rpm_raw_wakeref_held(x) do { } while (0)
|
|
|
|
#define intel_uncore_forcewake_get(x, y) do { } while (0)
|
|
#define intel_uncore_forcewake_put(x, y) do { } while (0)
|
|
|
|
#define intel_uncore_arm_unclaimed_mmio_detection(x) do { } while (0)
|
|
|
|
#define I915_PRIORITY_DISPLAY 0
|
|
struct i915_sched_attr {
|
|
int priority;
|
|
};
|
|
#define i915_gem_fence_wait_priority(fence, attr) do { (void) attr; } while (0)
|
|
|
|
#define with_intel_runtime_pm(rpm, wf) \
|
|
for ((wf) = intel_runtime_pm_get(rpm); (wf); \
|
|
intel_runtime_pm_put((rpm), (wf)), (wf) = 0)
|
|
|
|
#define pdev_to_i915 pdev_to_xe_device
|
|
#define RUNTIME_INFO(xe) (&(xe)->info.i915_runtime)
|
|
|
|
#define FORCEWAKE_ALL XE_FORCEWAKE_ALL
|
|
|
|
#ifdef CONFIG_ARM64
|
|
/*
|
|
* arm64 indirectly includes linux/rtc.h,
|
|
* which defines a irq_lock, so include it
|
|
* here before #define-ing it
|
|
*/
|
|
#include <linux/rtc.h>
|
|
#endif
|
|
|
|
#define irq_lock irq.lock
|
|
|
|
#endif
|