Jani Nikula
7e1ca09667
drm/i915: add a note about fec_enable with 128b/132b
...
Add a note that fec_enable actually means FEC is to be enabled
explicitly. 128b/132b always has FEC enabled, the driver doesn't need to
enable it separately, and fec_enable will be false.
Cc: Ville Syrjälä <ville.syrjala@linux.intel.com >
Signed-off-by: Jani Nikula <jani.nikula@intel.com >
Reviewed-by: Ville Syrjälä <ville.syrjala@linux.intel.com >
Link: https://patchwork.freedesktop.org/patch/msgid/20230920112901.3315876-1-jani.nikula@intel.com
2023-09-21 11:04:11 +03:00
Ville Syrjälä
16a9359401
drm/i915: Implement transcoder LRR for TGL+
...
Implement low refresh rate (LRR) where we change the vblank
length by hand as requested, but otherwise keep the timing
generator running in non-VRR mode (ie. fixed refresh rate).
The panel itself must support VRR for this to work, and
only TGL+ has the double buffred TRANS_VTOTAL.VTOTAL that
we need to make the switch properly. The double buffer
latching happens at the start of transcoders undelayed
vblank. The other thing that we change is
TRANS_VBLANK.VBLANK_END but the hardware entirely ignores
that in DP mode. But I decided to keep writing it anyway
just to avoid more special cases in readout/state check.
v2: Document that TRANS_VBLANK.VBLANK_END is ignored by
the hardware
v3: Reconcile with VRR fastset
Adjust update_lrr flag behaviour
Make sure timings stay within VRR range
v4: Fix up update_m_n vs. update_lrr rebase fail (Manasi)
Drop DOUBLE_BUFFER_VACTIVE define as it's not needed (Manasi)
TODO: Hook LRR into the automatic DRRS downclocking stuff?
Cc: Manasi Navare <navaremanasi@chromium.org >
Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com >
Link: https://patchwork.freedesktop.org/patch/msgid/20230915103800.14218-1-ville.syrjala@linux.intel.com
Reviewed-by: Manasi Navare <navaremanasi@chromium.org >
2023-09-20 22:32:55 +03:00
Ville Syrjälä
26f03ef816
drm/i915: Assert that VRR is off during vblank evasion if necessary
...
Whenever we change the actual transcoder timings (clock via
seamless M/N, full modeset, (or soon) vtotal via LRR) we
want the timing generator to be in non-VRR during the commit.
Warn if we forgot to turn VRR off prior to vblank evasion.
Cc: Manasi Navare <navaremanasi@chromium.org >
Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com >
Link: https://patchwork.freedesktop.org/patch/msgid/20230901130440.2085-12-ville.syrjala@linux.intel.com
Reviewed-by: Manasi Navare <navaremanasi@chromium.org >
Reviewed-by: Mitul Golani <mitulkumar.ajitkumar.golani@intel.com >
2023-09-20 22:32:22 +03:00
Ville Syrjälä
0ce013a4e8
drm/i915: Update VRR parameters in fastset
...
We should be able to change any of the VRR parameters
during fastsets as long as we toggle VRR off at the start
and then back on at the end. The transcoder will be running
in non-VRR mode during the transition.
Co-developed-by: Manasi Navare <navaremanasi@chromium.org >
Signed-off-by: Manasi Navare <navaremanasi@chromium.org >
Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com >
Link: https://patchwork.freedesktop.org/patch/msgid/20230901130440.2085-11-ville.syrjala@linux.intel.com
Reviewed-by: Sean Paul <seanpaul@chromium.org >
2023-09-20 22:31:39 +03:00
Ville Syrjälä
8f782270cc
drm/i915: Disable VRR during seamless M/N changes
...
Make life less confusing by making sure VRR is disabled whenever
we do any drastic changes to the display timings, such as seamless
M/N changes.
Cc: Manasi Navare <navaremanasi@chromium.org >
Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com >
Link: https://patchwork.freedesktop.org/patch/msgid/20230901130440.2085-10-ville.syrjala@linux.intel.com
Reviewed-by: Manasi Navare <navaremanasi@chromium.org >
Reviewed-by: Mitul Golani <mitulkumar.ajitkumar.golani@intel.com >
2023-09-20 22:31:21 +03:00
Ville Syrjälä
6a38b36c27
drm/i915: Validate that the timings are within the VRR range
...
Let's assume there are some crazy displays where the high
end of the VRR range ends up being lower than the refresh
rate as determined by the actual timings. In that case
when we toggle VRR on/off we would step outside the VRR
range when toggling VRR on/off. Let's just make sure that
never happens by not using VRR in such cases. If the user
really wants VRR they should then select the timings to
land within the VRR range.
Cc: Manasi Navare <navaremanasi@chromium.org >
Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com >
Link: https://patchwork.freedesktop.org/patch/msgid/20230901130440.2085-9-ville.syrjala@linux.intel.com
Reviewed-by: Manasi Navare <navaremanasi@chromium.org >
Reviewed-by: Mitul Golani <mitulkumar.ajitkumar.golani@intel.com >
2023-09-20 22:30:55 +03:00
Ville Syrjälä
f0f7ec743d
drm/i915: Relocate is_in_vrr_range()
...
Move is_in_vrr_range() into intel_vrr.c in anticipation of
more users, and rename it accordingly.
Cc: Manasi Navare <navaremanasi@chromium.org >
Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com >
Link: https://patchwork.freedesktop.org/patch/msgid/20230901130440.2085-8-ville.syrjala@linux.intel.com
Reviewed-by: Manasi Navare <navaremanasi@chromium.org >
Reviewed-by: Mitul Golani <mitulkumar.ajitkumar.golani@intel.com >
2023-09-20 22:30:08 +03:00
Ville Syrjälä
b4ac591b8e
drm/i915: Optimize out redundant M/N updates
...
Don't perform a seamless M/N update if the values aren't actually
changing. This avoids doing extra shenanigans during vblank evasion
needlessly.
Cc: Manasi Navare <navaremanasi@chromium.org >
Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com >
Link: https://patchwork.freedesktop.org/patch/msgid/20230901130440.2085-7-ville.syrjala@linux.intel.com
Reviewed-by: Manasi Navare <navaremanasi@chromium.org >
2023-09-20 22:29:43 +03:00
Ville Syrjälä
825edc8bc7
drm/i915: Adjust seamless_m_n flag behaviour
...
Make the seamless_m_n flag more like the update_pipe fastset
flag, ie. the flag will only be set if we need to do the seamless
M/N update, and in all other cases the flag is cleared. Also
rename the flag to update_m_n to make it more clear it's similar
to update_pipe.
I believe special casing seamless_m_n like this makes sense
as it also affects eg. vblank evasion. We can potentially avoid
some vblank evasion tricks, simplify some checks, and hopefully
will help with the VRR vs. M/N mess.
Cc: Manasi Navare <navaremanasi@chromium.org >
Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com >
Link: https://patchwork.freedesktop.org/patch/msgid/20230901130440.2085-6-ville.syrjala@linux.intel.com
Reviewed-by: Manasi Navare <navaremanasi@chromium.org >
2023-09-20 22:29:23 +03:00
Ville Syrjälä
691dec86ac
drm/i915: Enable VRR later during fastsets
...
In order to reconcile seamless M/N updates with VRR we'll
need to defer the fastset VRR enable to happen after the
seamless M/N update (which happens during the vblank evade
critical section). So just push the VRR enable to be the last
thing during the update.
This will also affect the vblank evasion as the transcoder
will now still be running with the old VRR state during
the vblank evasion. So just grab the timings always from the
old crtc state during any non-modeset commit, and also grab
the current state of VRR from the active timings (as we disable
VRR before vblank evasion during fastsets).
This also fixes vblank evasion for seamless M/N updates as
we now properly account for the fact that the M/N update
happens after vblank evasion.
Cc: Manasi Navare <navaremanasi@chromium.org >
Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com >
Link: https://patchwork.freedesktop.org/patch/msgid/20230901130440.2085-5-ville.syrjala@linux.intel.com
Reviewed-by: Manasi Navare <navaremanasi@chromium.org >
Reviewed-by: Mitul Golani <mitulkumar.ajitkumar.golani@intel.com >
2023-09-20 22:28:14 +03:00
Ville Syrjälä
f4b0cece71
drm/i915: Extract intel_crtc_vblank_evade_scanlines()
...
Pull the vblank evasion scanline calculations into their own helper
to declutter intel_pipe_update_start() a bit.
Reviewed-by: Manasi Navare <navaremanasi@chromium.org >
Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com >
Link: https://patchwork.freedesktop.org/patch/msgid/20230901130440.2085-4-ville.syrjala@linux.intel.com
Reviewed-by: Mitul Golani <mitulkumar.ajitkumar.golani@intel.com >
2023-09-20 22:27:46 +03:00
Ville Syrjälä
09f390d4e2
drm/i915: Change intel_pipe_update_{start,end}() calling convention
...
We'll need to also look at the old crtc state in
intel_pipe_update_start() so change the calling convention to
just plumb in the full atomic state instead.
Cc: Manasi Navare <navaremanasi@chromium.org >
Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com >
Link: https://patchwork.freedesktop.org/patch/msgid/20230901130440.2085-3-ville.syrjala@linux.intel.com
Reviewed-by: Manasi Navare <navaremanasi@chromium.org >
Reviewed-by: Mitul Golani <mitulkumar.ajitkumar.golani@intel.com >
2023-09-20 22:27:31 +03:00
Ville Syrjälä
f895e3db65
drm/i915: Move psr unlock out from the pipe update critical section
...
Do the PSR unlock after the vblank evade critcal section is
fully over, not before.
Cc: Manasi Navare <navaremanasi@chromium.org >
Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com >
Link: https://patchwork.freedesktop.org/patch/msgid/20230901130440.2085-2-ville.syrjala@linux.intel.com
Reviewed-by: Manasi Navare <navaremanasi@chromium.org >
Reviewed-by: Mitul Golani <mitulkumar.ajitkumar.golani@intel.com >
2023-09-20 22:27:08 +03:00
William Tseng
fc3bbd5760
drm/i915/dsi: let HW maintain CLK_POST
...
This change is to adjust TCLK-POST timing so DSI signaling can
meet CTS specification.
For clock lane, the TCLK-POST timing may be changed from
133.44 ns to 178.72 ns, which is greater than (60 ns+52*UI)
and is conformed to the CTS standard.
The computed UI is around 1.47 ns.
v2: remove the change of HS-TRAIL.
Cc: Ville Syrjala <ville.syrjala@linux.intel.com >
Cc: Jani Nikula <jani.nikula@linux.intel.com >
Cc: Vandita Kulkarni <vandita.kulkarni@intel.com >
Cc: Suraj Kandpal <suraj.kandpal@intel.com >
Cc: Lee Shawn C <shawn.c.lee@intel.com >
Signed-off-by: William Tseng <william.tseng@intel.com >
Signed-off-by: Jani Nikula <jani.nikula@intel.com >
Link: https://patchwork.freedesktop.org/patch/msgid/20230914095137.4132029-1-william.tseng@intel.com
2023-09-20 20:16:09 +03:00
Gustavo Sousa
e356289680
drm/i915/cx0: Add step for programming msgbus timer
...
There was a recent update in the BSpec adding an extra step to the PLL
enable sequence, which is for programming the msgbus timer. Since we
also touch PHY registers during hw readout, let's do the programming
when starting a transaction rather than only when doing the PLL enable
sequence.
This might be the missing step that was causing the timeouts
that we have recently seen during C20 SRAM register programming
sequences. With this in place, we shouldn't need the logic to bump the
timer thresholds, since now we have a documented value that should be
set peform programming the registers. As such, let's also remove
intel_cx0_bus_check_and_bump_timer(), but keep the part that checks if
hardware really detected a timeout, which might be useful debugging
information.
v2:
- Use debug level instead of warning for the message notifying that
the hardware did not detect the timeout. (Mika)
- Got a new BSpec update clarifying that we need to program the msgbus
timer of both PHY lanes. Update the changes to reflect that.
(Gustavo)
BSpec: 64568
Cc: Mika Kahola <mika.kahola@intel.com >
Signed-off-by: Gustavo Sousa <gustavo.sousa@intel.com >
Reviewed-by: Mika Kahola <mika.kahola@intel.com >
Signed-off-by: Matt Roper <matthew.d.roper@intel.com >
Link: https://patchwork.freedesktop.org/patch/msgid/20230912155923.39494-1-gustavo.sousa@intel.com
2023-09-18 10:04:43 -07:00
Imre Deak
4ed2b53b46
drm/i915/dp_mst: Tune down error message during payload addition
...
If a sink is removed in the middle of payload addition
drm_dp_add_payload_part1() will fail as expected, either not finding the
payload's MST port or failing the payload-add AUX transaction.
Based on the above tune the error message down to a debug messge.
Cc: Lyude Paul <lyude@redhat.com >
Reviewed-by: Lyude Paul <lyude@redhat.com >
Signed-off-by: Imre Deak <imre.deak@intel.com >
Link: https://patchwork.freedesktop.org/patch/msgid/20230913223218.540365-4-imre.deak@intel.com
2023-09-18 16:43:16 +03:00
Jouni Högander
8874288c80
drm/i915: Remove runtime suspended boolean from intel_runtime_pm struct
...
It's not necessary to carry separate suspended status information in
intel_runtime_pm struct as this information is already in underlying device
structure. Remove it and use pm_runtime_suspended() to obtain suspended
status information when needed.
Cc: Jani Nikula <jani.nikula@intel.com >
Cc: Imre Deak <imre.deak@intel.com >
Signed-off-by: Jouni Högander <jouni.hogander@intel.com >
Acked-by: Jani Nikula <jani.nikula@intel.com >
Reviewed-by: Imre Deak <imre.deak@intel.com >
Link: https://patchwork.freedesktop.org/patch/msgid/20230913100430.3433969-1-jouni.hogander@intel.com
2023-09-18 08:42:58 +03:00
Jani Nikula
93caca6a04
drm/i915: move intel_display_device_probe() one level higher
...
Don't hide display probe in device info code.
Cc: Matt Roper <matthew.d.roper@intel.com >
Signed-off-by: Jani Nikula <jani.nikula@intel.com >
Reviewed-by: Rodrigo Vivi <rodrigo.vivi@intel.com >
Link: https://patchwork.freedesktop.org/patch/msgid/20230912120537.2158209-3-jani.nikula@intel.com
2023-09-15 18:29:19 +03:00
Jani Nikula
a2c57575b9
drm/i915/display: call gmdid display probe at a higher level
...
Move gmdid selection one abstraction level higher.
Cc: Matt Roper <matthew.d.roper@intel.com >
Signed-off-by: Jani Nikula <jani.nikula@intel.com >
Reviewed-by: Rodrigo Vivi <rodrigo.vivi@intel.com >
Link: https://patchwork.freedesktop.org/patch/msgid/20230912120537.2158209-2-jani.nikula@intel.com
2023-09-15 18:29:15 +03:00
Jani Nikula
6686c30e45
drm/i915: move more of the display probe to display code
...
Initializing i915->display.info.__device_info and DISPLAY_RUNTIME_INFO()
really belongs in display code. Move them there.
Cc: Matt Roper <matthew.d.roper@intel.com >
Signed-off-by: Jani Nikula <jani.nikula@intel.com >
Reviewed-by: Rodrigo Vivi <rodrigo.vivi@intel.com >
Link: https://patchwork.freedesktop.org/patch/msgid/20230912120537.2158209-1-jani.nikula@intel.com
2023-09-15 18:29:05 +03:00
Jani Nikula
2fad9e44bc
drm/i915/dpt: replace GEM_BUG_ON() with drm_WARN_ON()
...
Avoid using GEM_BUG_ON() in display code.
Signed-off-by: Jani Nikula <jani.nikula@intel.com >
Reviewed-by: Rodrigo Vivi <rodrigo.vivi@intel.com >
Link: https://patchwork.freedesktop.org/patch/msgid/17e70eaf967bdfe99111cdbb3bcf6aa2f0b0e837.1694684044.git.jani.nikula@intel.com
2023-09-15 16:36:54 +03:00
Jani Nikula
02cc0ebc41
drm/i915/fb: replace GEM_WARN_ON() with drm_WARN_ON()
...
Avoid using GEM_WARN_ON() in display code.
Signed-off-by: Jani Nikula <jani.nikula@intel.com >
Reviewed-by: Rodrigo Vivi <rodrigo.vivi@intel.com >
Link: https://patchwork.freedesktop.org/patch/msgid/593285450602c259b6985972d68511190c754bf5.1694684044.git.jani.nikula@intel.com
2023-09-15 16:36:54 +03:00
Jani Nikula
e7b3928242
drm/i915/fbc: replace GEM_BUG_ON() to drm_WARN_ON()
...
Avoid using GEM_BUG_ON() in display code.
Signed-off-by: Jani Nikula <jani.nikula@intel.com >
Reviewed-by: Rodrigo Vivi <rodrigo.vivi@intel.com >
Link: https://patchwork.freedesktop.org/patch/msgid/a7d53a403822b43c7d78689a10480b47ccc0534d.1694684044.git.jani.nikula@intel.com
2023-09-15 16:36:54 +03:00
Ville Syrjälä
32c32155ca
drm/i915/sdvo: Constify mapping structs
...
We aren't intending to mutate the SDVO device mapping structs,
so make them const.
Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com >
Link: https://patchwork.freedesktop.org/patch/msgid/20230829113920.13713-13-ville.syrjala@linux.intel.com
Reviewed-by: Jani Nikula <jani.nikula@intel.com >
2023-09-15 14:50:23 +03:00
Ville Syrjälä
31a6575289
drm/i915/hdmi: Remove old i2c symlink
...
Remove the i915 specific i2c-N symlink from HDMI connectors.
This was added to sort of mirror the DP connectors that alreayd
had their aux ch based i2c adapter sitting beneath them in the
sysfs hierarchy. But now that we have the standard "ddc" symlink
approach provided by the core let's switch to that fully.
I don't think anything beyond igt depends on this.
Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com >
Link: https://patchwork.freedesktop.org/patch/msgid/20230829113920.13713-12-ville.syrjala@linux.intel.com
Reviewed-by: Jani Nikula <jani.nikula@intel.com >
2023-09-15 14:50:04 +03:00
Ville Syrjälä
ac6dcb63f2
drm/i915/hdmi: Nuke hdmi->ddc_bus
...
Remove the mostly redundant hdmi->ddc_bus. The only thing that needs
it anymore is get_encoder_by_ddc_bus(), but that can be replaced with
a slight detour through attached_connector+intel_gmbus_get_adapter().
Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com >
Link: https://patchwork.freedesktop.org/patch/msgid/20230829113920.13713-11-ville.syrjala@linux.intel.com
Reviewed-by: Jani Nikula <jani.nikula@intel.com >
2023-09-15 14:49:10 +03:00
Ville Syrjälä
e046d15624
drm/i915/hdmi: Use connector->ddc everwhere
...
We already populate connector->ddc for HDMI ports, but
so far we've not taken full advantage of it. Do that by
eliminating a bunch of intel_gmbus_get_adapter() lookups.
Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com >
Link: https://patchwork.freedesktop.org/patch/msgid/20230829113920.13713-10-ville.syrjala@linux.intel.com
Reviewed-by: Jani Nikula <jani.nikula@intel.com >
2023-09-15 14:48:49 +03:00
Ville Syrjälä
959fb1a686
drm/i915/mst: Populate connector->ddc
...
Populate connector->ddc, and thus create the "ddc" symlink
in sysfs for DP MST connectors.
TODO: test that this actually works
References: https://gitlab.freedesktop.org/drm/intel/-/issues/3605
Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com >
Link: https://patchwork.freedesktop.org/patch/msgid/20230829113920.13713-9-ville.syrjala@linux.intel.com
Reviewed-by: Jani Nikula <jani.nikula@intel.com >
2023-09-15 14:48:09 +03:00
Ville Syrjälä
84fd19644a
drm/i915/dp: Populate connector->ddc
...
Populate connector->ddc, and thus create the "ddc" symlink
in sysfs for analog DP SST connectors.
Let's also reorder intel_dp_aux_init() vs. drm_connector_init_with_ddc()
a bit to make sure the i2c aux ch is at least somewhat populated
before we pass it on, though drm_connector_init_with_ddc() does
not actually do anything with it.
Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com >
Link: https://patchwork.freedesktop.org/patch/msgid/20230829113920.13713-8-ville.syrjala@linux.intel.com
Reviewed-by: Jani Nikula <jani.nikula@intel.com >
2023-09-15 14:47:59 +03:00
Ville Syrjälä
4aad8b9d0e
drm/i915/dvo: Populate connector->ddc
...
Populate connector->ddc, and thus create the "ddc" symlink
in sysfs for DVO connectors.
Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com >
Link: https://patchwork.freedesktop.org/patch/msgid/20230829113920.13713-7-ville.syrjala@linux.intel.com
Reviewed-by: Jani Nikula <jani.nikula@intel.com >
2023-09-15 14:47:47 +03:00
Ville Syrjälä
96f0ef50bf
drm/i915/crt: Populate connector->ddc
...
Populate connector->ddc, and thus create the "ddc" symlink
in sysfs for analog VGA connectors.
As a bonus we can replace a bunch of intel_gmbus_get_adapter()
lookups with just the connector->ddc pointer. Sadly one extra
lookup still remains due to the g4x DVI-I shenanigans. We could
perhaps consider borrowing the ddc proxy idea from SDVO to deal
with that in a perhaps nicer way, but can't really be bothered
right now at least. Also not sure exposing such a dual ddc bus
to userspace would be quite wise.
Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com >
Link: https://patchwork.freedesktop.org/patch/msgid/20230829113920.13713-6-ville.syrjala@linux.intel.com
Reviewed-by: Jani Nikula <jani.nikula@intel.com >
2023-09-15 14:47:39 +03:00
Ville Syrjälä
08a629fff8
drm/i915/lvds: Populate connector->ddc
...
Populate connector->ddc, and thus create the "ddc" symlink
in sysfs for the LVDS port.
Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com >
Link: https://patchwork.freedesktop.org/patch/msgid/20230829113920.13713-5-ville.syrjala@linux.intel.com
Reviewed-by: Jani Nikula <jani.nikula@intel.com >
2023-09-15 14:47:29 +03:00
Ville Syrjälä
30b98ecbfb
drm/i915: Call the DDC bus i2c adapter "ddc"
...
Rename the various names we've used for the DDC bus
i2c adapter ("i2c", "adapter", etc.) to just "ddc".
This differentiates it from the various other i2c
busses we might have (DSI panel stuff, DVO control bus, etc.).
v2: Don't add a bogus drm_get_edid() call (Jani)
Reviewed-by: Jani Nikula <jani.nikula@intel.com >
Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com >
Link: https://patchwork.freedesktop.org/patch/msgid/20230831104300.29688-1-ville.syrjala@linux.intel.com
2023-09-15 14:47:09 +03:00
Ville Syrjälä
21b6c2812f
drm/sysfs: Register "ddc" symlink later
...
Currently drm_sysfs_connector_add() attempts to register
the "ddc" symlink (based one connector->ddc) before the
driver's .early_register() hook has been called. That is
too early for i915 which only fully registers the aux ch
and associated i2c bus from said hook (to prevent half
initialized stuff getting exposed to userspace). This
causes my attempt at using drm_connector_init_with_ddc()
to fail, and the entire connector disappears from sysfs
on account of sysfs_create_link() failing.
To fix that split the sysfs symlink stuff into separate
functions (drm_sysfs_connector_add_late() and
drm_sysfs_connector_remove_early()) which are called
on the opposite side of the .later_register() and
.early_unregister() hooks.
Cc: Andrzej Pietrasiewicz <andrzej.p@collabora.com >
Cc: Daniel Vetter <daniel.vetter@ffwll.ch >
Cc: Andrzej Hajda <a.hajda@samsung.com >
Cc: Emil Velikov <emil.velikov@collabora.com >
Cc: Sam Ravnborg <sam@ravnborg.org >
Cc: Neil Armstrong <narmstrong@baylibre.com >
Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com >
Link: https://patchwork.freedesktop.org/patch/msgid/20230829113920.13713-3-ville.syrjala@linux.intel.com
Reviewed-by: Jani Nikula <jani.nikula@intel.com >
Acked-by: Thomas Zimmermann <tzimmermann@suse.de > #irc
2023-09-15 14:46:42 +03:00
Ville Syrjälä
83a3073997
drm: Reorder drm_sysfs_connector_remove() vs. drm_debugfs_connector_remove()
...
Use the standard onion peeling approach and call
drm_debugfs_connector_remove() and
drm_sysfs_connector_remove() in the reverse order in
drm_connector_unregister() than what we called their
add counterpartse in drm_connector_register().
The error unwiding in drm_connector_register() is
already doing this the correct way around.
Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com >
Link: https://patchwork.freedesktop.org/patch/msgid/20230829113920.13713-2-ville.syrjala@linux.intel.com
Reviewed-by: Jani Nikula <jani.nikula@intel.com >
Acked-by: Thomas Zimmermann <tzimmermann@suse.de > #irc
2023-09-15 14:45:00 +03:00
Jani Nikula
a3f9e4bc1e
Merge drm/drm-next into drm-intel-next
...
Sync to v6.6-rc1.
Signed-off-by: Jani Nikula <jani.nikula@intel.com >
2023-09-15 11:23:38 +03:00
Suraj Kandpal
3106c34df6
drm/i915/dsc: Fix pic_width readout
...
pic_width when written into the PPS register is divided by the no.
of vdsc instances first but the actual variable that we compare it
to does not change i.e vdsc_cfg->pic_width hence when reading the
register back for pic_width it needs to be multiplied by
num_vdsc_instances rather than being divided.
Fixes: 8b70b56917 ("drm/i915/vdsc: Fill the intel_dsc_get_pps_config function")
Signed-off-by: Suraj Kandpal <suraj.kandpal@intel.com >
Reviewed-by: Chaitanya Kumar Borah <chaitanya.kumar.borah@intel.com >
Signed-off-by: Animesh Manna <animesh.manna@intel.com >
Link: https://patchwork.freedesktop.org/patch/msgid/20230911193742.836063-1-suraj.kandpal@intel.com
2023-09-14 15:00:19 +05:30
Ville Syrjälä
3072a24c77
drm/i915: Introduce crtc_state->enhanced_framing
...
Track DP enhanced framing properly in the crtc state instead
of relying just on the cached DPCD everywhere, and hook it
up into the state check and dump.
v2: Actually set enhanced_framing in .compute_config()
Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com >
Link: https://patchwork.freedesktop.org/patch/msgid/20230503113659.16305-1-ville.syrjala@linux.intel.com
Reviewed-by: Luca Coelho <luciano.coelho@intel.com >
2023-09-13 17:55:11 +03:00
Ville Syrjälä
a7891a0aa5
drm/i915: Reduce combo PHY log spam
...
We always check whether combo PHYs need to be re-initialized
after disabling DC states, which leads to log spam. Switch things
around so that we only log something when we actually have to
re-initialized a PHY.
The log spam was exacerbated by commit 41b4c7fe72 ("drm/i915:
Disable DC states for all commits") since we now disable DC
states far more often.
Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com >
Link: https://patchwork.freedesktop.org/patch/msgid/20230502143906.2401-12-ville.syrjala@linux.intel.com
Reviewed-by: Luca Coelho <luciano.coelho@intel.com >
2023-09-13 17:10:34 +03:00
Ville Syrjälä
d0a309a90f
drm/i915: Stop spamming the logs with PLL state
...
encoder->get_config() is not the place where the state
should be dumped. Get rid of the spam.
Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com >
Link: https://patchwork.freedesktop.org/patch/msgid/20230502143906.2401-10-ville.syrjala@linux.intel.com
Reviewed-by: Luca Coelho <luciano.coelho@intel.com >
2023-09-13 17:10:34 +03:00
Ville Syrjälä
edc876631b
drm/i915: Split some long lines in hsw_fdi_link_train()
...
Split some overly long lines in hsw_fdi_link_train().
Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com >
Link: https://patchwork.freedesktop.org/patch/msgid/20230502143906.2401-8-ville.syrjala@linux.intel.com
Reviewed-by: Luca Coelho <luciano.coelho@intel.com >
2023-09-13 17:10:29 +03:00
Ville Syrjälä
3dfeb80b30
drm/i915: Fix FEC state dump
...
Stop dumping state while reading it out. We have a proper
place for that stuff.
Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com >
Link: https://patchwork.freedesktop.org/patch/msgid/20230502143906.2401-7-ville.syrjala@linux.intel.com
Reviewed-by: Luca Coelho <luciano.coelho@intel.com >
2023-09-13 16:44:16 +03:00
Ville Syrjälä
126f94e87e
drm/i915: Fix FEC pipe A vs. DDI A mixup
...
On pre-TGL FEC is a port level feature, not a transcoder
level feature, and it's DDI A which doesn't have it, not
trancoder A. Check for the correct thing when determining
whether FEC is supported or not.
Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com >
Link: https://patchwork.freedesktop.org/patch/msgid/20230502143906.2401-5-ville.syrjala@linux.intel.com
Reviewed-by: Luca Coelho <luciano.coelho@intel.com >
2023-09-13 16:37:40 +03:00
Ville Syrjälä
cbbfe91508
drm/i915/mst: Read out FEC state
...
The MST codepath is missing FEC readout. Add it.
Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com >
Link: https://patchwork.freedesktop.org/patch/msgid/20230502143906.2401-4-ville.syrjala@linux.intel.com
Reviewed-by: Luca Coelho <luciano.coelho@intel.com >
2023-09-13 16:37:28 +03:00
Jani Nikula
6b711386d1
drm/i915/gt: rename DBG() to GTT_TRACE()
...
intel_gtt.h is indirectly included absolutely everywhere in the
driver. DBG() is too short a name. Rename it GTT_TRACE() after
GEM_TRACE().
Signed-off-by: Jani Nikula <jani.nikula@intel.com >
Reviewed-by: Lucas De Marchi <lucas.demarchi@intel.com >
Link: https://patchwork.freedesktop.org/patch/msgid/20230911123305.1682554-1-jani.nikula@intel.com
2023-09-12 10:49:06 +03:00
Jani Nikula
30c220a6fd
drm/i915/dsc: use REG_BIT, REG_GENMASK, and friends for PPS0 and PPS1
...
Use the register helper macros for PPS0 and PPS1 register contents.
Cc: Suraj Kandpal <suraj.kandpal@intel.com >
Cc: Ankit Nautiyal <ankit.k.nautiyal@intel.com >
Signed-off-by: Jani Nikula <jani.nikula@intel.com >
Reviewed-by: Suraj Kandpal <suraj.kandpal@intel.com >
Link: https://patchwork.freedesktop.org/patch/msgid/0dfebe37a391a5ceb8bfae8e16383f1e5aef815d.1693933849.git.jani.nikula@intel.com
2023-09-11 18:35:16 +03:00
Jani Nikula
051da77ed5
drm/i915/dsc: add the PPS number to the register content macros
...
Improve clarity by specifying the PPS number in the register content
macros. It's easier to notice if macros are being used for the wrong
register.
Cc: Suraj Kandpal <suraj.kandpal@intel.com >
Cc: Ankit Nautiyal <ankit.k.nautiyal@intel.com >
Signed-off-by: Jani Nikula <jani.nikula@intel.com >
Reviewed-by: Suraj Kandpal <suraj.kandpal@intel.com >
Link: https://patchwork.freedesktop.org/patch/msgid/58de57b04ad2da5207f52c56c9e40663aaf16173.1693933849.git.jani.nikula@intel.com
2023-09-11 18:35:16 +03:00
Jani Nikula
5828681e25
drm/i915/dsc: clean up pps comments
...
Unify comments to be the simple "PPS n" instead of all sorts of
variants.
Cc: Suraj Kandpal <suraj.kandpal@intel.com >
Cc: Ankit Nautiyal <ankit.k.nautiyal@intel.com >
Signed-off-by: Jani Nikula <jani.nikula@intel.com >
Reviewed-by: Suraj Kandpal <suraj.kandpal@intel.com >
Link: https://patchwork.freedesktop.org/patch/msgid/915970973ef117fc8d47fbc57e8fa296235ad3e3.1693933849.git.jani.nikula@intel.com
2023-09-11 18:35:16 +03:00
Jani Nikula
973daa9fe6
drm/i915/dsc: drop redundant = 0 assignments
...
Directly assign the values instead of first assigning 0 and then |= the
values.
Cc: Suraj Kandpal <suraj.kandpal@intel.com >
Cc: Ankit Nautiyal <ankit.k.nautiyal@intel.com >
Signed-off-by: Jani Nikula <jani.nikula@intel.com >
Reviewed-by: Suraj Kandpal <suraj.kandpal@intel.com >
Link: https://patchwork.freedesktop.org/patch/msgid/d752a148cc84558b76c8c3dacd9c0b2e0a4efd91.1693933849.git.jani.nikula@intel.com
2023-09-11 18:35:16 +03:00
Jani Nikula
fb1400f744
drm/i915/dsc: rename pps write to intel_dsc_pps_write()
...
Make the function name conform to existing style better.
Cc: Suraj Kandpal <suraj.kandpal@intel.com >
Cc: Ankit Nautiyal <ankit.k.nautiyal@intel.com >
Signed-off-by: Jani Nikula <jani.nikula@intel.com >
Reviewed-by: Suraj Kandpal <suraj.kandpal@intel.com >
Link: https://patchwork.freedesktop.org/patch/msgid/e793056e610ee8cfe2a8d69605402cd2445a517a.1693933849.git.jani.nikula@intel.com
2023-09-11 18:35:16 +03:00