Jonathan Cavitt
96e556ef5c
drm/i915/gvt: Fix intel_vgpu_gpa_to_mmio_offset kernel docs
...
intel_vgpu_gpa_to_mmio_offset states that it returns
'Zero on success, negative error code if failed'
in the kernel docs.
This is false. The function actually returns
'The MMIO offset of the given GPA'.
Correct the docs.
Signed-off-by: Jonathan Cavitt <jonathan.cavitt@intel.com >
Reviewed-by: Andi Shyti <andi.shyti@linux.intel.com >
Reviewed-by: Zhenyu Wang <zhenyuw.linux@gmail.com >
Signed-off-by: Andi Shyti <andi.shyti@linux.intel.com >
Link: https://lore.kernel.org/r/20250916174317.76521-6-jonathan.cavitt@intel.com
2025-09-18 13:07:12 +02:00
Jonathan Cavitt
f80fb92174
drm/i915/gvt: Remove unnecessary check in reg_is_mmio
...
The reg >= 0 check in reg_is_mmio is unnecessary because reg is always
greater than zero in all current use cases. This is obvious when
checking 'offset' by itself (as offset is defined as an unsigned
integer), but it's also true for the offset + bytes - 1 use case in
intel_vgpu_emulate_mmio_read because bytes > 0.
Signed-off-by: Jonathan Cavitt <jonathan.cavitt@intel.com >
Reviewed-by: Andi Shyti <andi.shyti@linux.intel.com >
Reviewed-by: Zhenyu Wang <zhenyuw.linux@gmail.com >
Signed-off-by: Andi Shyti <andi.shyti@linux.intel.com >
Link: https://lore.kernel.org/r/20250916174317.76521-5-jonathan.cavitt@intel.com
2025-09-18 13:07:05 +02:00
Jani Nikula
7a356ee5cf
drm/i915: add note on VLV/CHV hpll_freq and czclk_freq caching
...
The caching at the initial read is a bit fragile in case, say, a further
refactoring starts reading the frequencies at a time where it's not
possible. Add a note about it.
Suggested-by: Ville Syrjälä <ville.syrjala@linux.intel.com >
Reviewed-by: Ville Syrjälä <ville.syrjala@linux.intel.com >
Link: https://lore.kernel.org/r/20250917135200.1932903-1-jani.nikula@intel.com
Signed-off-by: Jani Nikula <jani.nikula@intel.com >
2025-09-18 09:28:41 +03:00
Jouni Högander
fcf2af765c
drm/i915/alpm: Remove error handling from get_lfps_cycle_min_max_time
...
Getter for LFPS cycle min/max times is unnecessarily checking faulty port
clock value. This doesn't make sense as erroneous port clock value would
have been noticed already at this point. Remove this check and use 140/800
ns always when port clock > 540000.
Signed-off-by: Jouni Högander <jouni.hogander@intel.com >
Reviewed-by: Mika Kahola <mika.kahola@intel.com >
Link: https://lore.kernel.org/r/20250912064035.335329-1-jouni.hogander@intel.com
2025-09-18 08:55:15 +03:00
Jani Nikula
5615e78e81
drm/i915: split out vlv_clock.[ch]
...
Move the VLV clock related functions to their own file.
v2: Rebase
Reviewed-by: Michał Grzelak <michal.grzelak@intel.com > # v1
Acked-by: Ville Syrjälä <ville.syrjala@linux.intel.com >
Link: https://lore.kernel.org/r/0bc4a930f3e364c4fc37479f56bf07ccee854fcc.1757688216.git.jani.nikula@intel.com
Signed-off-by: Jani Nikula <jani.nikula@intel.com >
2025-09-17 11:29:53 +03:00
Jani Nikula
869d0e9639
drm/i915: move hpll and czclk caching under display
...
Perhaps not the ideal place, but better than having to have the fields
in both struct drm_i915_private and struct xe_device.
v2: Rebase
Reviewed-by: Michał Grzelak <michal.grzelak@intel.com > # v1
Acked-by: Ville Syrjälä <ville.syrjala@linux.intel.com >
Link: https://lore.kernel.org/r/cbca9b13f2235a624a21bf7617ffe763e25c848c.1757688216.git.jani.nikula@intel.com
Signed-off-by: Jani Nikula <jani.nikula@intel.com >
2025-09-17 11:29:34 +03:00
Jani Nikula
b478f2035c
drm/i915: log HPLL frequency similar to CZCLK
...
With vlv_clock_get_czclk() logging the CZ clock rate when first cached,
do the same for HPLL VCO.
v2: Rebase
Reviewed-by: Michał Grzelak <michal.grzelak@intel.com >
Acked-by: Ville Syrjälä <ville.syrjala@linux.intel.com >
Link: https://lore.kernel.org/r/bfc3082f90cf9f74aa40308e10f20da824b1db55.1757688216.git.jani.nikula@intel.com
Signed-off-by: Jani Nikula <jani.nikula@intel.com >
2025-09-17 11:29:33 +03:00
Jani Nikula
e3aae3e401
drm/i915: remove intel_update_czclk() as unnecessary
...
With vlv_clock_get_czclk() caching the result on first use, we no longer
need a separate initializer. Remove intel_update_czclk() as
unnecessary. Log the CZCLK in vlv_clock_get_czclk() instead.
v2: Rebase
Reviewed-by: Michał Grzelak <michal.grzelak@intel.com > # v1
Acked-by: Ville Syrjälä <ville.syrjala@linux.intel.com >
Link: https://lore.kernel.org/r/3f90b5e67258f485db09b6f48381682cbd96153f.1757688216.git.jani.nikula@intel.com
Signed-off-by: Jani Nikula <jani.nikula@intel.com >
2025-09-17 11:29:27 +03:00
Jani Nikula
73383c3062
drm/i915: remove vlv_get_cck_clock_hpll()
...
The function has become so trivial it's no longer necessary. Inline it
at the call sites.
Reviewed-by: Michał Grzelak <michal.grzelak@intel.com > # v1
Acked-by: Ville Syrjälä <ville.syrjala@linux.intel.com >
Link: https://lore.kernel.org/r/1e5ef7a14cdf42048a03719cff380fee6c3016e0.1757688216.git.jani.nikula@intel.com
Signed-off-by: Jani Nikula <jani.nikula@intel.com >
2025-09-17 11:29:21 +03:00
Jani Nikula
a6e8325b86
drm/i915: cache the results in vlv_clock_get_hpll_vco() and use it more
...
Use vlv_clock_get_hpll_vco() helper more to avoid looking at
i915->hpll_freq directly. Cache and return the cached results to avoid
repeated lookups.
v2: Rebase
Reviewed-by: Michał Grzelak <michal.grzelak@intel.com > # v1
Acked-by: Ville Syrjälä <ville.syrjala@linux.intel.com >
Link: https://lore.kernel.org/r/14695618682d8d8fad1adc485de7a122c8e1494a.1757688216.git.jani.nikula@intel.com
Signed-off-by: Jani Nikula <jani.nikula@intel.com >
2025-09-17 11:29:14 +03:00
Jani Nikula
f6b784c44a
drm/i915: rename vlv_get_hpll_vco() to vlv_clock_get_hpll_vco()
...
Follow the new vlv_clock_*() naming pattern for all the related VLV
clock functions.
v2: Rebase
Reviewed-by: Michał Grzelak <michal.grzelak@intel.com >
Acked-by: Ville Syrjälä <ville.syrjala@linux.intel.com >
Link: https://lore.kernel.org/r/75ac6b1cda2cb0afe3171250c4d5ba1ff81df877.1757688216.git.jani.nikula@intel.com
Signed-off-by: Jani Nikula <jani.nikula@intel.com >
2025-09-17 11:29:13 +03:00
Jani Nikula
a6767dbba6
drm/i915: make vlv_get_cck_clock() static
...
vlv_get_cck_clock() is no longer used outside of intel_display.c, make
it static.
Reviewed-by: Michał Grzelak <michal.grzelak@intel.com >
Acked-by: Ville Syrjälä <ville.syrjala@linux.intel.com >
Link: https://lore.kernel.org/r/bac1fe98d9d458ef30e973f680342b69a6cde4d6.1757688216.git.jani.nikula@intel.com
Signed-off-by: Jani Nikula <jani.nikula@intel.com >
2025-09-17 11:29:11 +03:00
Jani Nikula
d451c5bff5
drm/i915: add vlv_clock_get_cdclk()
...
Add vlv_clock_get_cdclk() helper to hide the details from the callers.
For now, this means running vlv_get_hpll_vco() twice in vlv_get_cdclk(),
but this will be improved later.
v2: Rebase
Reviewed-by: Michał Grzelak <michal.grzelak@intel.com >
Acked-by: Ville Syrjälä <ville.syrjala@linux.intel.com >
Link: https://lore.kernel.org/r/fc93ccf998300048432d18ce7e8690bd54e1e18d.1757688216.git.jani.nikula@intel.com
Signed-off-by: Jani Nikula <jani.nikula@intel.com >
2025-09-17 11:29:09 +03:00
Jani Nikula
ffbc0de5d3
drm/i915: make vlv_get_cck_clock_hpll() static
...
vlv_get_cck_clock_hpll() is no longer used outside of intel_display.c,
make it static.
Reviewed-by: Michał Grzelak <michal.grzelak@intel.com >
Acked-by: Ville Syrjälä <ville.syrjala@linux.intel.com >
Link: https://lore.kernel.org/r/0a778d82e2be112b0cd37cd3329103a764967a1d.1757688216.git.jani.nikula@intel.com
Signed-off-by: Jani Nikula <jani.nikula@intel.com >
2025-09-17 11:29:08 +03:00
Jani Nikula
9c2f799255
drm/i915: add vlv_clock_get_hrawclk()
...
Add vlv_clock_get_hrawclk() helper to hide the details from the callers.
Reviewed-by: Michał Grzelak <michal.grzelak@intel.com >
Acked-by: Ville Syrjälä <ville.syrjala@linux.intel.com >
Link: https://lore.kernel.org/r/ad3c3d0baf16eb0ef3a0ac3edfbab327c564e743.1757688216.git.jani.nikula@intel.com
Signed-off-by: Jani Nikula <jani.nikula@intel.com >
2025-09-17 11:29:06 +03:00
Jani Nikula
8c2833ff1d
drm/i915: add vlv_clock_get_czclk()
...
Add vlv_clock_get_czclk() helper to avoid looking at i915->czclk_freq
directly.
Reviewed-by: Mika Kahola <mika.kahola@intel.com >
Reviewed-by: Michał Grzelak <michal.grzelak@intel.com >
Acked-by: Ville Syrjälä <ville.syrjala@linux.intel.com >
Link: https://lore.kernel.org/r/4885f6e486a31c773a3bfebd6936670234e57bd0.1757688216.git.jani.nikula@intel.com
Signed-off-by: Jani Nikula <jani.nikula@intel.com >
2025-09-17 11:29:05 +03:00
Jani Nikula
01c46fcef5
drm/i915: add vlv_clock_get_gpll()
...
Add a vlv_clock_get_gpll() helper to hide the details from the callers.
Reviewed-by: Mika Kahola <mika.kahola@intel.com >
Reviewed-by: Michał Grzelak <michal.grzelak@intel.com >
Acked-by: Ville Syrjälä <ville.syrjala@linux.intel.com >
Link: https://lore.kernel.org/r/2589396fa14388d7709d2b01f1d32f9f38dab11a.1757688216.git.jani.nikula@intel.com
Signed-off-by: Jani Nikula <jani.nikula@intel.com >
2025-09-17 11:29:02 +03:00
Jani Nikula
7d11281178
drm/i915: do cck get/put inside vlv_get_cck_clock()
...
Move towards VLV/CHV clock interfaces that handle sideband get/put
inside them instead of at the caller.
With this, we can switch to the simpler vlv_punit_get()/vlv_punit_put()
in vlv_get_cdclk().
We'll need to move vlv_init_gpll_ref_freq() outside of the existing
get/put in vlv_rps_init() and chv_rps_init().
Suggested-by: Ville Syrjälä <ville.syrjala@linux.intel.com >
Acked-by: Ville Syrjälä <ville.syrjala@linux.intel.com >
Link: https://lore.kernel.org/r/480b654b6c736a03343dfd17eb130c39fd82c637.1757688216.git.jani.nikula@intel.com
Signed-off-by: Jani Nikula <jani.nikula@intel.com >
2025-09-17 11:27:57 +03:00
Jani Nikula
c8cf6e3cc2
drm/i915: do cck get/put inside vlv_get_hpll_vco()
...
Move towards VLV/CHV clock interfaces that handle sideband get/put
inside them instead of at the caller.
We'll need to move the calls outside of existing get/put.
Suggested-by: Ville Syrjälä <ville.syrjala@linux.intel.com >
Acked-by: Ville Syrjälä <ville.syrjala@linux.intel.com >
Link: https://lore.kernel.org/r/1a6553f54619275aa05512421e19115a71cd3eb0.1757688216.git.jani.nikula@intel.com
Signed-off-by: Jani Nikula <jani.nikula@intel.com >
2025-09-17 11:27:37 +03:00
Matt Atwood
820e067b94
drm/i915/display: Use DISPLAY_VER over GRAPHICS_VER
...
The checks in plane_has_modifier() should check against display version
instead of graphics version.
Bspec: 67165, 70815
Signed-off-by: Matt Atwood <matthew.s.atwood@intel.com >
Reviewed-by: Juha-Pekka Heikkila <juhapekka.heikkila@gmail.com >
Link: https://lore.kernel.org/r/20250903170821.310143-1-matthew.s.atwood@intel.com
Signed-off-by: Matt Roper <matthew.d.roper@intel.com >
2025-09-16 09:14:56 -07:00
Jani Nikula
65805c2ed7
drm/i915: split out i915_wait_util.h
...
Move waiting related utilities from i915_utils.h to separate new file
i915_wait_util.h. Clean up related includes.
Note: Many of the various wait macro usages could likely be refactored
to use poll_timeout_us().
Reviewed-by: Rodrigo Vivi <rodrigo.vivi@intel.com >
Link: https://lore.kernel.org/r/431396ac8cdb3e2f4ff053a8933290289a66ce42.1757582214.git.jani.nikula@intel.com
Signed-off-by: Jani Nikula <jani.nikula@intel.com >
2025-09-12 11:08:45 +03:00
Jani Nikula
2f04432fcf
drm/i915: split out i915_list_util.h
...
Move list related utilities from i915_utils.h to separate new file
i915_list_util.h. Clean up related includes.
Note: Arguably none of this should exist in i915 in the first place. At
least isolate it better.
Reviewed-by: Rodrigo Vivi <rodrigo.vivi@intel.com >
Link: https://lore.kernel.org/r/d7526809735194137116682f37cfa126a6a87ec9.1757582214.git.jani.nikula@intel.com
Signed-off-by: Jani Nikula <jani.nikula@intel.com >
2025-09-12 11:08:45 +03:00
Jani Nikula
df7d085b58
drm/i915: split out i915_timer_util.[ch]
...
Move timer related utilities from i915_utils.[ch] to separate new files
i915_timer_util.[ch]. Clean up related includes.
Note: Arguably none of this should exist in i915 in the first place. At
least isolate it better.
Reviewed-by: Rodrigo Vivi <rodrigo.vivi@intel.com >
Link: https://lore.kernel.org/r/0a83d9489626121dcefcd4c1a05317399b5708f3.1757582214.git.jani.nikula@intel.com
Signed-off-by: Jani Nikula <jani.nikula@intel.com >
2025-09-12 11:08:45 +03:00
Jani Nikula
a394f12a4d
drm/i915: split out i915_ptr_util.h
...
Move pointer related utilities from i915_utils.h to a separate new
i915_ptr_util.h header. Clean up related includes.
Reviewed-by: Rodrigo Vivi <rodrigo.vivi@intel.com >
Link: https://lore.kernel.org/r/3cd06aa2483e68f19401292e9d4c28bf2977fce5.1757582214.git.jani.nikula@intel.com
Signed-off-by: Jani Nikula <jani.nikula@intel.com >
2025-09-12 11:08:45 +03:00
Aaron Ma
72136efb87
drm/i915/backlight: Honor VESA eDP backlight luminance control capability
...
The VESA AUX backlight fails to be enable luminance based backlight
mainpulation becaused luminance_set is false by default.
Fix it by using luminance support control capabitliy.
Fixes: e13af5166a ("drm/i915/backlight: Use drm helper to initialize edp backlight")
Signed-off-by: Aaron Ma <aaron.ma@canonical.com >
Reviewed-by: Suraj Kandpal <suraj.kandpal@intel.com >
Signed-off-by: Suraj Kandpal <suraj.kandpal@intel.com >
Link: https://lore.kernel.org/r/20250823121647.275834-1-aaron.ma@canonical.com
2025-09-11 14:43:54 +05:30
Rodrigo Vivi
702fdf3513
Merge drm/drm-next into drm-intel-next
...
Catching up with some display dependencies.
Signed-off-by: Rodrigo Vivi <rodrigo.vivi@intel.com >
2025-09-10 08:01:42 -04:00
Luiz Otavio Mello
34ac58ded8
drm/i915: Drop unused struct_mutex from drm_i915_private
...
The struct_mutex field in drm_i915_private is no longer used anywhere in
the driver. This patch removes it completely to clean up unused code and
avoid confusion.
Signed-off-by: Luiz Otavio Mello <luiz.mello@estudante.ufscar.br >
Reviewed-by: Rodrigo Vivi <rodrigo.vivi@intel.com >
Link: https://lore.kernel.org/r/20250908131518.36625-9-luiz.mello@estudante.ufscar.br
Signed-off-by: Rodrigo Vivi <rodrigo.vivi@intel.com >
2025-09-09 10:39:35 -04:00
Luiz Otavio Mello
9e6651659b
drm/i915: Clean-up outdated struct_mutex comments
...
The struct_mutex will be removed from the DRM subsystem, as it was a
legacy BKL that was only used by i915 driver. After review, it was
concluded that its usage was no longer necessary
This patch updates various comments in the i915 codebase to
either remove or clarify references to struct_mutex, in order to
prevent future misunderstandings.
* i915_drv.h: Removed the statement that stolen_lock is the inner lock
when overlaps with struct_mutex, since struct_mutex is no longer used
in the driver.
* i915_gem.c: Removed parentheses suggesting usage of struct_mutex, which
which is no longer used.
Signed-off-by: Luiz Otavio Mello <luiz.mello@estudante.ufscar.br >
Reviewed-by: Rodrigo Vivi <rodrigo.vivi@intel.com >
Link: https://lore.kernel.org/r/20250908131518.36625-8-luiz.mello@estudante.ufscar.br
Signed-off-by: Rodrigo Vivi <rodrigo.vivi@intel.com >
2025-09-09 10:39:21 -04:00
Luiz Otavio Mello
5be4fa95ec
drm/i915/display: Remove outdated struct_mutex comments
...
The struct_mutex will be removed from the DRM subsystem, as it was a
legacy BKL that was only used by i915 driver. After review, it was
concluded that its usage was no longer necessary
This patch update a comment about struct_mutex in i915/display, in order
to prevent future misunderstandings.
* intel_fbc.c: Removed the statement that intel_fbc->lock is the inner
lock when overlapping with struct_mutex, since struct_mutex is no
longer used anywhere in the driver.
Signed-off-by: Luiz Otavio Mello <luiz.mello@estudante.ufscar.br >
Reviewed-by: Rodrigo Vivi <rodrigo.vivi@intel.com >
Link: https://lore.kernel.org/r/20250908131518.36625-7-luiz.mello@estudante.ufscar.br
Signed-off-by: Rodrigo Vivi <rodrigo.vivi@intel.com >
2025-09-09 10:39:13 -04:00
Luiz Otavio Mello
24af523936
drm/i915/gem: Clean-up outdated struct_mutex comments
...
The struct_mutex will be removed from the DRM subsystem, as it was a
legacy BKL that was only used by i915 driver. After review, it was
concluded that its usage was no longer necessary
This patch updates various comments in the i915/gem and i915/gt
codebase to either remove or clarify references to struct_mutex, in
order to prevent future misunderstandings.
* i915_gem_execbuffer.c: Replace reference to struct_mutex with
vm->mutex, as noted in the eb_reserve() function, which states that
vm->mutex handles deadlocks.
* i915_gem_object.c: Change struct_mutex by
drm_i915_gem_object->vma.lock. i915_gem_object_unbind() in i915_gem.c
states that this lock is who actually protects the unbind.
* i915_gem_shrinker.c: The correct lock is actually i915->mm.obj, as
already documented in its declaration.
* i915_gem_wait.c: The existing comment already mentioned that
struct_mutex was no longer necessary. Updated to refer to a generic
global lock instead.
* intel_reset_types.h: Cleaned up the comment text. Updated to refer to
a generic global lock instead.
Signed-off-by: Luiz Otavio Mello <luiz.mello@estudante.ufscar.br >
Reviewed-by: Rodrigo Vivi <rodrigo.vivi@intel.com >
Link: https://lore.kernel.org/r/20250908131518.36625-6-luiz.mello@estudante.ufscar.br
Acked-by: Tvrtko Ursulin <tursulin@ursulin.net >
Signed-off-by: Rodrigo Vivi <rodrigo.vivi@intel.com >
2025-09-09 10:36:27 -04:00
Luiz Otavio Mello
1bd3db82e9
drm/i915: Replace struct_mutex in intel_guc_log
...
Remove the use of struct_mutex from intel_guc_log.c and replace it with
a dedicated lock, guc_lock, defined within the intel_guc_log struct.
The struct_mutex was previously used to protect concurrent access and
modification of intel_guc_log->level in intel_guc_log_set_level().
However, it was suggested that the lock should reside within the
intel_guc_log struct itself.
Initialize the new guc_lock in intel_guc_log_init_early(), alongside the
existing relay.lock. The lock is initialized using drmm_mutex_init(),
which also ensures it is properly destroyed when the driver is unloaded.
Signed-off-by: Luiz Otavio Mello <luiz.mello@estudante.ufscar.br >
Suggested-by: Rodrigo Vivi <rodrigo.vivi@intel.com >
Reviewed-by: Rodrigo Vivi <rodrigo.vivi@intel.com >
Link: https://lore.kernel.org/r/20250908131518.36625-5-luiz.mello@estudante.ufscar.br
Acked-by: Tvrtko Ursulin <tursulin@ursulin.net >
Signed-off-by: Rodrigo Vivi <rodrigo.vivi@intel.com >
2025-09-09 10:36:10 -04:00
Luiz Otavio Mello
1bafff0252
drm/i915: Change mutex initialization in intel_guc_log
...
The intel_guc_log->relay.lock is currently initialized in
intel_guc_log_init_early(), but it lacks a corresponding destructor,
which can lead to a memory leak.
This patch replaces the use of mutex_init() with drmm_mutex_init(),
which ensures the lock is properly destroyed when the driver is
unloaded.
Signed-off-by: Luiz Otavio Mello <luiz.mello@estudante.ufscar.br >
Reviewed-by: Rodrigo Vivi <rodrigo.vivi@intel.com >
Link: https://lore.kernel.org/r/20250908131518.36625-4-luiz.mello@estudante.ufscar.br
Acked-by: Tvrtko Ursulin <tursulin@ursulin.net >
Signed-off-by: Rodrigo Vivi <rodrigo.vivi@intel.com >
2025-09-09 10:35:53 -04:00
Luiz Otavio Mello
793d31671b
drm/i915: Remove struct_mutex in i915_irq.c
...
Remove struct_mutex from ivb_parity_work() function.
The ivb_parity_work runs in a workqueue so it cannot race with itself.
Also, it is not protecting anything with the other remaining usage of
struct_mutex.
Signed-off-by: Luiz Otavio Mello <luiz.mello@estudante.ufscar.br >
Suggested-by: Rodrigo Vivi <rodrigo.vivi@intel.com >
Reviewed-by: Rodrigo Vivi <rodrigo.vivi@intel.com >
Link: https://lore.kernel.org/r/20250908131518.36625-3-luiz.mello@estudante.ufscar.br
Signed-off-by: Rodrigo Vivi <rodrigo.vivi@intel.com >
2025-09-09 10:34:25 -04:00
Luiz Otavio Mello
86a9fe82e9
drm/i915: Move struct_mutex to drm_i915_private
...
Move legacy BKL struct_mutex from drm_device to drm_i915_private, which
is the last remaining user.
Signed-off-by: Luiz Otavio Mello <luiz.mello@estudante.ufscar.br >
Reviewed-by: Rodrigo Vivi <rodrigo.vivi@intel.com >
Link: https://lore.kernel.org/r/20250908131518.36625-2-luiz.mello@estudante.ufscar.br
Acked-by: Thomas Zimmermann <tzimmermann@suse.de >
Signed-off-by: Rodrigo Vivi <rodrigo.vivi@intel.com >
2025-09-09 10:34:08 -04:00
Jani Nikula
f985e105ce
drm/i915/display: add intel_display_device_present()
...
Add a proper function for display && HAS_DISPLAY(display) to hide
indirect struct intel_display access via the macro from a number of
places outside of display. This makes struct intel_display * an opaque
pointer in these places. All HAS_DISPLAY() usage is now constrained
within display.
Reviewed-by: Ville Syrjälä <ville.syrjala@linux.intel.com >
Link: https://lore.kernel.org/r/20250903090408.3492875-1-jani.nikula@intel.com
Signed-off-by: Jani Nikula <jani.nikula@intel.com >
2025-09-09 09:32:01 +03:00
Suraj Kandpal
854c0dc80e
drm/i915/backlight: Disable backlight when using luminance control
...
We just return when using luminance control instead we should be
calling the disable helper to get everything cleaned up properly
by default.
Signed-off-by: Suraj Kandpal <suraj.kandpal@intel.com >
Reviewed-by: Arun R Murthy <arun.r.murthy@intel.com >
Link: https://lore.kernel.org/r/20250904044804.948391-1-suraj.kandpal@intel.com
2025-09-09 08:25:25 +05:30
Jani Nikula
5f3cec21f6
overflow: add range_overflows() and range_end_overflows()
...
Move the range_overflows() and range_end_overflows() along with the _t
variants over from drm/i915 and drm/buddy to overflow.h.
Cc: Kees Cook <kees@kernel.org >
Cc: "Gustavo A. R. Silva" <gustavoars@kernel.org >
Cc: linux-hardening@vger.kernel.org
Reviewed-by: Kees Cook <kees@kernel.org >
Reviewed-by: Jouni Högander <jouni.hogander@intel.com >
Acked-by: Thomas Zimmermann <tzimmermann@suse.de >
Link: https://lore.kernel.org/r/20250829174601.2163064-3-jani.nikula@intel.com
Signed-off-by: Jani Nikula <jani.nikula@intel.com >
2025-09-08 15:36:19 +03:00
Jani Nikula
59bf37add1
drm/i915: document range_overflows() and range_end_overflows() macros
...
Document the macros in preparation for making them more generally
available.
Cc: Kees Cook <kees@kernel.org >
Cc: "Gustavo A. R. Silva" <gustavoars@kernel.org >
Cc: linux-hardening@vger.kernel.org
Reviewed-by: Jouni Högander <jouni.hogander@intel.com >
Link: https://lore.kernel.org/r/20250829174601.2163064-2-jani.nikula@intel.com
Signed-off-by: Jani Nikula <jani.nikula@intel.com >
2025-09-08 15:35:52 +03:00
Jani Nikula
1e4c85167c
drm/i915: rename range_overflows_end() to range_end_overflows()
...
Rename range_overflows_end() to range_end_overflows(), along with the _t
variant.
It's all rather subjective, but I think range_end_overflows() reads
better.
Cc: Kees Cook <kees@kernel.org >
Cc: "Gustavo A. R. Silva" <gustavoars@kernel.org >
Cc: linux-hardening@vger.kernel.org
Reviewed-by: Jouni Högander <jouni.hogander@intel.com >
Link: https://lore.kernel.org/r/20250829174601.2163064-1-jani.nikula@intel.com
Signed-off-by: Jani Nikula <jani.nikula@intel.com >
2025-09-08 15:35:33 +03:00
Jani Nikula
0b470321e9
drm/{i915,xe}/panic: pass struct intel_panic to intel_panic_setup()
...
Reduce the struct intel_framebuffer usage within the panic
implementation.
Cc: Jocelyn Falempe <jfalempe@redhat.com >
Cc: Maarten Lankhorst <dev@lankhorst.se >
Signed-off-by: Jani Nikula <jani.nikula@intel.com >
Reviewed-by: Jocelyn Falempe <jfalempe@redhat.com >
Link: https://lore.kernel.org/r/2a016167b1f6f0b432aed0a630f9dbcd07fadb7b.1756835342.git.jani.nikula@intel.com
2025-09-08 14:23:46 +03:00
Jani Nikula
427a3f939a
drm/{i915,xe}/panic: convert intel_panic_finish() to struct intel_panic
...
The intel_panic_finish() function really needs the struct intel_panic
pointer, not struct intel_framebuffer. Make it so.
Cc: Jocelyn Falempe <jfalempe@redhat.com >
Cc: Maarten Lankhorst <dev@lankhorst.se >
Signed-off-by: Jani Nikula <jani.nikula@intel.com >
Reviewed-by: Jocelyn Falempe <jfalempe@redhat.com >
Link: https://lore.kernel.org/r/3fdbcbe17e0e90c4a590f2a2486a9ec79a90cf62.1756835342.git.jani.nikula@intel.com
2025-09-08 14:23:46 +03:00
Jani Nikula
729c5f7ffa
drm/{i915,xe}/panic: move framebuffer allocation where it belongs
...
The struct intel_framebuffer allocation naturally belongs in intel_fb.c,
not hidden inside panic implementation. Separate the panic
allocation. Drop the unnecessary struct i915_framebuffer and struct
xe_framebuffer types.
Cc: Jocelyn Falempe <jfalempe@redhat.com >
Cc: Maarten Lankhorst <dev@lankhorst.se >
Signed-off-by: Jani Nikula <jani.nikula@intel.com >
Reviewed-by: Jocelyn Falempe <jfalempe@redhat.com >
Link: https://lore.kernel.org/r/d29f63e0118d002fc8edd368caea7e8185418e17.1756835342.git.jani.nikula@intel.com
2025-09-08 14:23:46 +03:00
Jani Nikula
fa48f6335a
drm/{i915,xe}/panic: rename struct {i915,xe}_panic_data to struct intel_panic
...
Prepare for better shared interfaces between panic implementations. The
struct intel_panic remains an opaque data type, with unique
implementations in i915 and xe.
This allows us to change the panic data pointer from void * to struct
intel_panic *, helping type safety.
Cc: Jocelyn Falempe <jfalempe@redhat.com >
Cc: Maarten Lankhorst <dev@lankhorst.se >
Signed-off-by: Jani Nikula <jani.nikula@intel.com >
Reviewed-by: Jocelyn Falempe <jfalempe@redhat.com >
Link: https://lore.kernel.org/r/884ffc80c8b5fef1b92956e644a4e559560cc2ba.1756835342.git.jani.nikula@intel.com
2025-09-08 14:23:46 +03:00
Jani Nikula
4e839f2c7b
drm/{i915,xe}/fb: add panic pointer member to struct intel_framebuffer
...
Add a panic data pointer member in struct intel_framebuffer in
preparation for breaking the artificial subclassing between
intel_framebuffer and panic structures.
Cc: Jocelyn Falempe <jfalempe@redhat.com >
Cc: Maarten Lankhorst <dev@lankhorst.se >
Signed-off-by: Jani Nikula <jani.nikula@intel.com >
Reviewed-by: Jocelyn Falempe <jfalempe@redhat.com >
Link: https://lore.kernel.org/r/41f42e1de8545409274d54854aa12e0fb390e394.1756835342.git.jani.nikula@intel.com
2025-09-08 14:23:46 +03:00
Jani Nikula
05a85e781f
drm/{i915,xe}/panic: rename intel_bo_panic_*() to intel_panic_*()
...
Rename the intel_bo_panic_*() functions according to the functionality,
dropping the misleading intel_bo reference.
Keep intel_bo_alloc_framebuffer() for now; it'll be refactored later.
Cc: Jocelyn Falempe <jfalempe@redhat.com >
Cc: Maarten Lankhorst <dev@lankhorst.se >
Signed-off-by: Jani Nikula <jani.nikula@intel.com >
Reviewed-by: Jocelyn Falempe <jfalempe@redhat.com >
Link: https://lore.kernel.org/r/a3be8f8b5e7dd208027a1131e89452d9a214054f.1756835342.git.jani.nikula@intel.com
2025-09-08 14:23:46 +03:00
Jani Nikula
5f54b2196c
drm/{i915,xe}/panic: split out intel_panic.[ch]
...
intel_bo.[ch] is not the appropriate location for the panic
functionality. Split out intel_panic.[ch] and xe_panic.c in i915 and
xe. Keep the function names for now.
Cc: Jocelyn Falempe <jfalempe@redhat.com >
Cc: Maarten Lankhorst <dev@lankhorst.se >
Signed-off-by: Jani Nikula <jani.nikula@intel.com >
Reviewed-by: Jocelyn Falempe <jfalempe@redhat.com >
Link: https://lore.kernel.org/r/d98b831a011a028ffd33ce99b0ba62be061ee235.1756835342.git.jani.nikula@intel.com
2025-09-08 14:23:46 +03:00
Jani Nikula
cef2c7266f
drm/i915/fb: add intel_framebuffer_alloc()
...
Add intel_framebuffer_alloc() to hide intel_bo_alloc_framebuffer(), as
that doesn't feel like the correct abstraction.
Cc: Jocelyn Falempe <jfalempe@redhat.com >
Cc: Maarten Lankhorst <dev@lankhorst.se >
Signed-off-by: Jani Nikula <jani.nikula@intel.com >
Reviewed-by: Jocelyn Falempe <jfalempe@redhat.com >
Link: https://lore.kernel.org/r/379c306c692c50f6af3b6f2488c213f12627954f.1756835342.git.jani.nikula@intel.com
2025-09-08 14:23:46 +03:00
Uma Shankar
45b9545980
drm/i915/display: Remove FBC modulo 4 restriction for ADL-P+
...
WA:22010751166 does not apply past display version 12. Or, in
other words, the FBC restriction where FBC is disabled for
non-modulo 4 plane sizes (including plane size + yoffset) is fixed
from display version 13 and onwards. Relax the restriction for the same.
v4: Dropped redundant commit message
v3: Update comments for clarity (Jonathan Cavitt)
v2: Update the macro for display version check (Vinod)
Suggested-by: Vidya Srinivas <vidya.srinivas@intel.com >
Signed-off-by: Uma Shankar <uma.shankar@intel.com >
Reviewed-by: Vinod Govindapillai <vinod.govindapillai@intel.com >
Reviewed-by: Jonathan Cavitt <jonathan.cavitt@intel.com >
Link: https://lore.kernel.org/r/20250904095338.300813-2-uma.shankar@intel.com
2025-09-08 17:02:41 +05:30
Liao Yuanhong
30c3ffb880
drm/i915/gvt: Remove redundant ternary operators
...
For ternary operators in the form of "a ? false : true", if 'a' itself
returns a boolean result, the ternary operator can be omitted. Remove
redundant ternary operators to clean up the code.
Signed-off-by: Liao Yuanhong <liaoyuanhong@vivo.com >
Link: https://lore.kernel.org/r/20250904112644.350512-1-liaoyuanhong@vivo.com
Signed-off-by: Jani Nikula <jani.nikula@intel.com >
2025-09-08 13:45:49 +03:00
Jani Nikula
55c771b0d8
drm/i915/ddi: abstract figuring out encoder name
...
The encoder name deduction has become a bit cumbersome within
intel_ddi_init(). Split it out to a separate function to declutter
intel_ddi_init(), even if that means having to use a temp seq buffer for
the name.
Cc: Ankit Nautiyal <ankit.k.nautiyal@intel.com >
Reviewed-by: Ankit Nautiyal <ankit.k.nautiyal@intel.com >
Link: https://lore.kernel.org/r/20250903101050.3671305-1-jani.nikula@intel.com
Signed-off-by: Jani Nikula <jani.nikula@intel.com >
2025-09-08 13:14:49 +03:00