Skip to content
Permalink
Jordan-Justen/…
Switch branches/tags

Commits on Feb 7, 2022

  1. drm/i915/guc: Verify hwconfig blob matches supported format

    Signed-off-by: Jordan Justen <jordan.l.justen@intel.com>
    jljusten2 authored and intel-lab-lkp committed Feb 7, 2022
  2. drm/i915/uapi: Add struct drm_i915_query_hwconfig_blob_item

    Also, document DRM_I915_QUERY_HWCONFIG_BLOB with this struct.
    
    Cc: Daniel Vetter <daniel.vetter@ffwll.ch>
    Signed-off-by: Jordan Justen <jordan.l.justen@intel.com>
    jljusten2 authored and intel-lab-lkp committed Feb 7, 2022
  3. drm/i915/uapi: Add query for hwconfig blob

    The DRM_I915_QUERY_HWCONFIG_BLOB query item returns a blob of data
    which it receives from the GuC software. This blob provides some
    useful data about the hardware for drivers.
    
    Although the blob is not fully documented at this time, the basic
    format is an array of u32 values. The array is a simple and flexible
    KLV (Key/Length/Value) formatted table. For example, it could be just:
    enum device_attr { ATTR_SOME_VALUE = 0, ATTR_SOME_MASK = 1, };
    
      static const u32 hwconfig[] = {
          ATTR_SOME_VALUE,
          1,             // Value Length in DWords
          8,             // Value
    
          ATTR_SOME_MASK,
          3,
          0x00FFFFFFFF, 0xFFFFFFFF, 0xFF000000,
      };
    
    The attribute ids and meaning of the values will be documented in the
    Programmer Reference Manuals when released.
    
    Cc: Tvrtko Ursulin <tvrtko.ursulin@linux.intel.com>
    Cc: Kenneth Graunke <kenneth.w.graunke@intel.com>
    Cc: Michal Wajdeczko <michal.wajdeczko@intel.com>
    Cc: Slawomir Milczarek <slawomir.milczarek@intel.com>
    Cc: Joonas Lahtinen <joonas.lahtinen@linux.intel.com>
    Signed-off-by: Rodrigo Vivi <rodrigo.vivi@intel.com>
    Signed-off-by: John Harrison <John.C.Harrison@Intel.com>
    Reviewed-by: Matthew Brost <matthew.brost@intel.com>
    Acked-by: Jordan Justen <jordan.l.justen@intel.com>
    Tested-by: Jordan Justen <jordan.l.justen@intel.com>
    rodrigovivi authored and intel-lab-lkp committed Feb 7, 2022
  4. drm/i915/guc: Add fetch of hwconfig table

    Implement support for fetching the hardware description table from the
    GuC. The call is made twice - once without a destination buffer to
    query the size and then a second time to fill in the buffer.
    
    Note that the table is only available on ADL-P and later platforms.
    
    Cc: Michal Wajdeczko <michal.wajdeczko@intel.com>
    Signed-off-by: Rodrigo Vivi <rodrigo.vivi@intel.com>
    Signed-off-by: John Harrison <John.C.Harrison@Intel.com>
    Reviewed-by: Matthew Brost <matthew.brost@intel.com>
    johnharr-intel authored and intel-lab-lkp committed Feb 7, 2022
  5. drm/i915: Workaround broken BIOS DBUF configuration on TGL/RKL

    On TGL/RKL the BIOS likes to use some kind of bogus DBUF layout
    that doesn't match what the spec recommends. With a single active
    pipe that is not going to be a problem, but with multiple pipes
    active skl_commit_modeset_enables() goes into an infinite loop
    since it can't figure out any order in which it can commit the
    pipes without causing DBUF overlaps between the planes.
    
    We'd need some kind of extra DBUF defrag stage in between to
    make the transition possible. But that is clearly way too complex
    a solution, so in the name of simplicity let's just sanitize the
    DBUF state by simply turning off all planes when we detect a
    pipe encroaching on its neighbours' DBUF slices. We only have
    to disable the primary planes as all other planes should have
    already been disabled (if they somehow were enabled) by
    earlier sanitization steps.
    
    And for good measure let's also sanitize in case the DBUF
    allocations of the pipes already seem to overlap each other.
    
    Cc: <stable@vger.kernel.org> # v5.14+
    Closes: https://gitlab.freedesktop.org/drm/intel/-/issues/4762
    Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
    Link: https://patchwork.freedesktop.org/patch/msgid/20220204141818.1900-3-ville.syrjala@linux.intel.com
    Reviewed-by: Stanislav Lisovskiy <stanislav.lisovskiy@intel.com>
    vsyrjala committed Feb 7, 2022
  6. drm/i915: Populate pipe dbuf slices more accurately during readout

    During readout we cannot assume the planes are actually using the
    slices they are supposed to use. The BIOS may have misprogrammed
    things and put the planes onto the wrong dbuf slices. So let's
    do the readout more carefully to make sure we really know which
    dbuf slices are actually in use by the pipe at the time.
    
    Cc: <stable@vger.kernel.org> # v5.14+
    Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
    Link: https://patchwork.freedesktop.org/patch/msgid/20220204141818.1900-2-ville.syrjala@linux.intel.com
    Reviewed-by: Stanislav Lisovskiy <stanislav.lisovskiy@intel.com>
    vsyrjala committed Feb 7, 2022
  7. drm/i915: Allow !join_mbus cases for adlp+ dbuf configuration

    Reintroduce the !join_mbus single pipe cases for adlp+.
    
    Due to the mbus relative dbuf offsets in PLANE_BUF_CFG we
    need to know the actual slices used by the pipe when doing
    readout, even when mbus joining isn't enabled. Accurate
    readout will be needed to properly sanitize invalid BIOS
    dbuf configurations.
    
    This will also make it much easier to play around with the
    !join_mbus configs for testin/workaround purposes.
    
    Cc: <stable@vger.kernel.org> # v5.14+
    Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
    Link: https://patchwork.freedesktop.org/patch/msgid/20220204141818.1900-1-ville.syrjala@linux.intel.com
    Reviewed-by: Stanislav Lisovskiy <stanislav.lisovskiy@intel.com>
    vsyrjala committed Feb 7, 2022

Commits on Feb 3, 2022

  1. drm/i915: Disable unused power wells left enabled by BIOS

    Make sure all unused power wells left enabled by BIOS get disabled
    during driver loading and system resume.
    
    Closes: https://gitlab.freedesktop.org/drm/intel/-/issues/5028
    Signed-off-by: Imre Deak <imre.deak@intel.com>
    Reviewed-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
    Link: https://patchwork.freedesktop.org/patch/msgid/20220202104249.2680843-1-imre.deak@intel.com
    ideak committed Feb 3, 2022
  2. drm/i915: Fix header test for !CONFIG_X86

    Architectures others than x86 have a stub implementation calling
    WARN_ON_ONCE(). The appropriate headers need to be included, otherwise
    the header-test target will fail with:
    
      HDRTEST drivers/gpu/drm/i915/i915_mm.h
    In file included from <command-line>:
    ./drivers/gpu/drm/i915/i915_mm.h: In function ‘remap_io_mapping’:
    ./drivers/gpu/drm/i915/i915_mm.h:26:2: error: implicit declaration of function ‘WARN_ON_ONCE’ [-Werror=implicit-function-declaration]
       26 |  WARN_ON_ONCE(1);
          |  ^~~~~~~~~~~~
    
    v2: Do not include <linux/printk.h> since call to pr_err() has been
    removed
    
    Fixes: 67c430b ("drm/i915: Skip remap_io_mapping() for non-x86 platforms")
    Cc: Siva Mullati <siva.mullati@intel.com>
    Signed-off-by: Lucas De Marchi <lucas.demarchi@intel.com>
    Reviewed-by: Siva Mullati <siva.mullati@intel.com>
    Reviewed-by: José Roberto de Souza <jose.souza@intel.com>
    Link: https://patchwork.freedesktop.org/patch/msgid/20220131165926.3230642-3-lucas.demarchi@intel.com
    lucasdemarchi committed Feb 3, 2022
  3. drm/i915: Do not spam log with missing arch support

    Following what was done in drm_cache.c, when the stub for
    remap_io_mapping() was added in commit 67c430b ("drm/i915: Skip
    remap_io_mapping() for non-x86 platforms"), it included a log message
    with pr_err().  However just the warning is already enough and switching
    to WARN_ONCE() allows us to keep the log message while avoiding log
    spam.
    
    Signed-off-by: Lucas De Marchi <lucas.demarchi@intel.com>
    Reviewed-by: José Roberto de Souza <jose.souza@intel.com>
    Link: https://patchwork.freedesktop.org/patch/msgid/20220131165926.3230642-4-lucas.demarchi@intel.com
    lucasdemarchi committed Feb 3, 2022

Commits on Feb 2, 2022

  1. drm/i915: Move [more] GT registers to their own header file

    A couple hunks didn't get applied while resolving the conflicts on
    commit 0d6419e ("drm/i915: Move GT registers to their own header
    file").  Add the second half of the patch as a follow-up commit.
    
    Fixes: 0d6419e ("drm/i915: Move GT registers to their own header file")
    Cc: Jani Nikula <jani.nikula@intel.com>
    Signed-off-by: Matt Roper <matthew.d.roper@intel.com>
    Reviewed-by: Lucas De Marchi <lucas.demarchi@intel.com>
    Link: https://patchwork.freedesktop.org/patch/msgid/20220127234334.4016964-6-matthew.d.roper@intel.com
    mattrope committed Feb 2, 2022
  2. drm/i915: Only include i915_reg.h from .c files

    Several of our i915 header files, have been including i915_reg.h.  This
    means that any change to i915_reg.h will trigger a full rebuild of
    pretty much every file of the driver, even those that don't have any
    kind of register access.  Let's delete the i915_reg.h include from all
    headers and add an explicit include from the .c files that truly
    need the register definitions; those that need a definition of
    i915_reg_t for a function definition can get it from i915_reg_defs.h
    instead.
    
    We also remove two non-register #define's (VLV_DISPLAY_BASE and
    GEN12_SFC_DONE_MAX) into i915_reg_defs.h to allow us to drop the
    i915_reg.h include from a couple of headers.
    
    There's probably a lot more header dependency optimization possible, but
    the changes here roughly cut the number of files compiled after 'touch
    i915_reg.h' in half --- a good first step.
    
    Cc: Jani Nikula <jani.nikula@intel.com>
    Signed-off-by: Matt Roper <matthew.d.roper@intel.com>
    Reviewed-by: Lucas De Marchi <lucas.demarchi@intel.com>
    Link: https://patchwork.freedesktop.org/patch/msgid/20220127234334.4016964-7-matthew.d.roper@intel.com
    mattrope committed Feb 2, 2022
  3. drm/i915: Move GT registers to their own header file

    This is a huge, chaotic mass of registers copied over as-is without any
    real cleanup.  We'll come back and organize these better, align on
    consistent coding style, remove dead code, etc. in separate patches
    later that will be easier to review.
    
    v2:
     - Add missing include in intel_pxp_irq.c
    v3:
     - Correct a few indentation errors (Lucas)
     - Minor conflict resolution
    
    Cc: Jani Nikula <jani.nikula@intel.com>
    Signed-off-by: Matt Roper <matthew.d.roper@intel.com>
    Reviewed-by: Lucas De Marchi <lucas.demarchi@intel.com>
    Link: https://patchwork.freedesktop.org/patch/msgid/20220127234334.4016964-6-matthew.d.roper@intel.com
    mattrope committed Feb 2, 2022
  4. drm/i915: Parameterize MI_PREDICATE registers

    The various MI_PREDICATE registers have per-engine instances.  Today we
    only utilize the RCS0 instance of each, but that will likely change in
    the future; switch to parameterized register definitions to make these
    easier to work with going forward.
    
    Of special note is MI_PREDICATE_RESULT_2; we only use it in one place in
    the driver today in HSW-specific code.  It turns out that the bspec
    (page 94) lists two different offsets for this register on HSW; one is
    in the standard location shared by all other platforms (base + 0x3bc)
    and the other is an unusual location (0x2214).  We're using the second,
    non-standard offset in i915 today; that offset doesn't exist on any
    other platforms (and it's not even 100% clear that it's correct for HSW)
    so I've renamed the current non-standard definition to
    HSW_MI_PREDICATE_RESULT_2; the new cross-platform parameterized macro
    (which is still unused at the moment) uses the standard offset.
    
    Cc: Jani Nikula <jani.nikula@intel.com>
    Signed-off-by: Matt Roper <matthew.d.roper@intel.com>
    Reviewed-by: Lucas De Marchi <lucas.demarchi@intel.com>
    Link: https://patchwork.freedesktop.org/patch/msgid/20220127234334.4016964-5-matthew.d.roper@intel.com
    mattrope committed Feb 2, 2022
  5. drm/i915: Parameterize R_PWR_CLK_STATE register definition

    At the moment we only use R_PWR_CLK_STATE in the context of the RCS
    engine, but upcoming support for compute engines will start using
    instances relative to the CCS engine base offsets.  Let's parameterize
    the register and move it to the engine reg header.
    
    Cc: Jani Nikula <jani.nikula@intel.com>
    Signed-off-by: Matt Roper <matthew.d.roper@intel.com>
    Reviewed-by: Lucas De Marchi <lucas.demarchi@intel.com>
    Link: https://patchwork.freedesktop.org/patch/msgid/20220127234334.4016964-4-matthew.d.roper@intel.com
    mattrope committed Feb 2, 2022
  6. drm/i915/perf: Express OA register ranges with i915_range

    Let's use 'struct i915_range' to express sets of b-counter and mux
    registers in the perf code.  This makes the code more similar to how we
    handle things like multicast register ranges, forcewake tables, shadow
    tables, etc. and also lets us avoid needing symbolic register name
    definitions for the various range end points.  With this change, many of
    the OA register definitions are no longer used in the code, so we can
    drop their #define's for simplicity.
    
    v2:  Drop 'inline' from reg_in_range_table().  (Jani)
    
    v3:  Split the first range in gen12_oa_mux_regs[] so that 0xd08 isn't
         whitelisted.  (Umesh)
    
    Cc: Jani Nikula <jani.nikula@intel.com>
    Cc: Umesh Nerlige Ramappa <umesh.nerlige.ramappa@intel.com>
    Cc: Lionel Landwerlin <lionel.g.landwerlin@intel.com>
    Signed-off-by: Matt Roper <matthew.d.roper@intel.com>
    Acked-by: Lucas De Marchi <lucas.demarchi@intel.com>
    Reviewed-by: Umesh Nerlige Ramappa <umesh.nerlige.ramappa@intel.com>
    Link: https://patchwork.freedesktop.org/patch/msgid/20220127234334.4016964-3-matthew.d.roper@intel.com
    mattrope committed Feb 2, 2022
  7. drm/i915/perf: Move OA regs to their own header

    The OA unit registers are only used by the perf code; move them to their
    own header file.
    
    Cc: Jani Nikula <jani.nikula@intel.com>
    Cc: Umesh Nerlige Ramappa <umesh.nerlige.ramappa@intel.com>
    Cc: Lionel Landwerlin <lionel.g.landwerlin@intel.com>
    Signed-off-by: Matt Roper <matthew.d.roper@intel.com>
    Reviewed-by: Lucas De Marchi <lucas.demarchi@intel.com>
    Link: https://patchwork.freedesktop.org/patch/msgid/20220127234334.4016964-2-matthew.d.roper@intel.com
    mattrope committed Feb 2, 2022
  8. drm/i915: remove VGA register definitions

    The only user of the VGA registers has switched to using the definitions
    in linux/vga.h, so these have become redundant. Remove them.
    
    Suggested-by: Matt Roper <matthew.d.roper@intel.com>
    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/20220202112509.1886660-2-jani.nikula@intel.com
    jnikula committed Feb 2, 2022
  9. drm/i915/vga: switch to use VGA definitions from video/vga.h

    The video/vga.h has macros for the VGA registers. Switch to use them.
    
    v2: Use direct 0x01 instead of the confusing VGA_SEQ_CLOCK_MODE (Ville)
    
    Suggested-by: Matt Roper <matthew.d.roper@intel.com>
    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/20220202112509.1886660-1-jani.nikula@intel.com
    jnikula committed Feb 2, 2022

Commits on Feb 1, 2022

  1. drm/i915: s/GRAPHICS_VER/DISPLAY_VER/ where appropriate

    Use DISPLAY_VER rather than GRAPHICS_VER to determine
    availability of display hardware features.
    
    Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
    Link: https://patchwork.freedesktop.org/patch/msgid/20220124193136.2397-1-ville.syrjala@linux.intel.com
    Reviewed-by: Jani Nikula <jani.nikula@intel.com>
    vsyrjala committed Feb 1, 2022
  2. drm/i915: Document BDW+ DRRS M/N programming requirements

    When reprogramming M/N live on BDW+ we must write the LINK_N
    register last as it's the one that arms the double buffered
    register update for all the M/N registers. Document this so
    that we don't accidentally break things.
    
    Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
    Link: https://patchwork.freedesktop.org/patch/msgid/20220128103757.22461-18-ville.syrjala@linux.intel.com
    Reviewed-by: Jani Nikula <jani.nikula@intel.com>
    vsyrjala committed Feb 1, 2022
  3. drm/i915: Always check dp_m2_n2 on pre-bdw

    No point in special casing the check of dp_m2_n2 on pre-bdw platforms.
    Either the transcoder has M2/N2 in which case the values should be
    set to something sensible, or it doesn't in which case dp_m2_n2 is
    always zeroed.
    
    Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
    Link: https://patchwork.freedesktop.org/patch/msgid/20220128103757.22461-17-ville.syrjala@linux.intel.com
    Reviewed-by: Jani Nikula <jani.nikula@intel.com>
    vsyrjala committed Feb 1, 2022
  4. drm/i915: Dump dp_m2_n2 always

    No point in special casing the dp_m2_n2 dumping. Just do it always.
    
    Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
    Link: https://patchwork.freedesktop.org/patch/msgid/20220128103757.22461-16-ville.syrjala@linux.intel.com
    Reviewed-by: Jani Nikula <jani.nikula@intel.com>
    vsyrjala committed Feb 1, 2022
  5. drm/i915: Program pch transcoder m2/n2

    Program the PCH transcoder M2/N2 values appropriately. We're
    still missing a few things for PCH port DRRS but at least this
    means we can do readout/state check for dp_m2_n2 unconditionally.
    
    Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
    Link: https://patchwork.freedesktop.org/patch/msgid/20220128103757.22461-15-ville.syrjala@linux.intel.com
    Reviewed-by: Jani Nikula <jani.nikula@intel.com>
    vsyrjala committed Feb 1, 2022
  6. drm/i915: Clear DP M2/N2 when not doing DRRS

    Make life simpler by always programming DP M2/N2 with a consistent
    value. This will lets use do state readout+chec unconditionally.
    
    I was first going to just set M2/N2=M1/N1 but then it occurred
    to me that it might interfere with fastboot on account of BIOS
    likely leaving the registers zeroed. So let's zero out the values
    instead (except TU where a zero register value actually means '1').
    Still not sure that's the best approach but lets go with it for
    now.
    
    Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
    Link: https://patchwork.freedesktop.org/patch/msgid/20220128103757.22461-14-ville.syrjala@linux.intel.com
    Reviewed-by: Jani Nikula <jani.nikula@intel.com>
    vsyrjala committed Feb 1, 2022
  7. drm/i915: Fix transcoder_has_m2_n2()

    M2/N2 values are present for all ilk-ivb,vlv,chv (and hsw edp).
    Make the code reflect that.
    
    Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
    Link: https://patchwork.freedesktop.org/patch/msgid/20220128103757.22461-13-ville.syrjala@linux.intel.com
    Reviewed-by: Jani Nikula <jani.nikula@intel.com>
    vsyrjala committed Feb 1, 2022
  8. drm/i915: Extract can_enable_drrs()

    Pull the "can we do DRRS?" check into helper in order
    to reduce the clutter in intel_drrs_compute_config().
    
    Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
    Link: https://patchwork.freedesktop.org/patch/msgid/20220128103757.22461-12-ville.syrjala@linux.intel.com
    Reviewed-by: Jani Nikula <jani.nikula@intel.com>
    vsyrjala committed Feb 1, 2022
  9. drm/i915: Disable DRRS on IVB/HSW port != A

    Currently we allow DRRS on IVB PCH ports, but we're missing a
    few programming steps meaning it is guaranteed to not work.
    And on HSW DRRS is not supported on anything but port A ever
    as only transcoder EDP has the M2/N2 registers (though I'm
    not sure if HSW ever has eDP on any other port).
    
    Starting from BDW all transcoders have the dynamically
    reprogrammable M/N registers so DRRS could work on any
    port.
    
    Stop initializing DRRS on ports where it cannot possibly work.
    
    Cc: stable@vger.kernel.org
    Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
    Link: https://patchwork.freedesktop.org/patch/msgid/20220128103757.22461-11-ville.syrjala@linux.intel.com
    Reviewed-by: Jani Nikula <jani.nikula@intel.com>
    vsyrjala committed Feb 1, 2022
  10. drm/i915: Extract {i9xx,ilk}_configure_cpu_transcoder()

    Follow the path laid out by hsw+ and extract helpers to configure
    the cpu transcoder for earlier platforms as well.
    
    Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
    Link: https://patchwork.freedesktop.org/patch/msgid/20220128103757.22461-10-ville.syrjala@linux.intel.com
    Reviewed-by: Jani Nikula <jani.nikula@intel.com>
    vsyrjala committed Feb 1, 2022
  11. drm/i915: Move M/N setup to a more logical place on ddi platforms

    Let's do the cpu transcoder M/N setup next to where we program
    most other cpu transcoder timings/etc.
    
    Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
    Link: https://patchwork.freedesktop.org/patch/msgid/20220128103757.22461-9-ville.syrjala@linux.intel.com
    Reviewed-by: Jani Nikula <jani.nikula@intel.com>
    vsyrjala committed Feb 1, 2022
  12. drm/i915: Move PCH transcoder M/N setup into the PCH code

    Do the PCH transcoder M/N setup next to where all the other
    PCH transcoder stuff is programmed. Matches the spec modeset
    sequence better.
    
    Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
    Link: https://patchwork.freedesktop.org/patch/msgid/20220128103757.22461-8-ville.syrjala@linux.intel.com
    Reviewed-by: Jani Nikula <jani.nikula@intel.com>
    vsyrjala committed Feb 1, 2022
  13. drm/i915: Pass crtc+cpu_transcoder to intel_cpu_transcoder_set_m_n()

    Instead of passing in the whole crtc state let's pass in just
    the bits of state we need. This will help with the DRRS code
    which shouldn't really be accessing the atomic state stuff directly
    as it gets called outside the normal atomic flows.
    
    v2: Fix set_m1_n1 vs. set_m2_n2 fumble for i9xx (Jani)
    
    Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
    Link: https://patchwork.freedesktop.org/patch/msgid/20220128103757.22461-7-ville.syrjala@linux.intel.com
    Reviewed-by: Jani Nikula <jani.nikula@intel.com>
    vsyrjala committed Feb 1, 2022
  14. drm/i915: Split intel_cpu_transcoder_get_m_n() into M1/N1 vs. M2/N2 v…

    …ariants
    
    As with intel_cpu_transcoder_set_m_n() let's split the readout
    counterpart into explicit M1/N1 vs. M2/N2 variants as well.
    
    Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
    Link: https://patchwork.freedesktop.org/patch/msgid/20220128103757.22461-6-ville.syrjala@linux.intel.com
    Reviewed-by: Jani Nikula <jani.nikula@intel.com>
    vsyrjala committed Feb 1, 2022
  15. drm/i915: Split intel_cpu_transcoder_set_m_n() into M1/N1 vs. M2/N2 v…

    …ariants
    
    Make things a bit more explicit by splitting
    intel_cpu_transcoder_set_m_n() into separate variants for M1/N1 vs.
    M2/N2. Makes the DRRS M/N programming at least more obvious.
    
    Note that for the MST and DRRS cases we don't need to call the
    M2/N2 variant at all since the transcoders that support those
    do not have the M2/N2 registers.
    
    Same could be said for i9xx_crtc_enable() but I want to do a
    higher level code sharing between that valleyview_crtc_enable()
    later in which case we do need the M2/N2 variant. This is also
    why I keep the transcoder_has_m2_n2() in intel_cpu_transcoder_set_m2_n2()
    so the caller doesn't have necessarily care what the chosen
    transcoder supports.
    
    Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
    Link: https://patchwork.freedesktop.org/patch/msgid/20220128103757.22461-5-ville.syrjala@linux.intel.com
    Reviewed-by: Jani Nikula <jani.nikula@intel.com>
    vsyrjala committed Feb 1, 2022
  16. drm/i915: Nuke ilk_get_fdi_m_n_config()

    Get rid of the entirely pointless ilk_get_fdi_m_n_config() wrapper
    and just call the CPU transcoder function directly.
    
    Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
    Link: https://patchwork.freedesktop.org/patch/msgid/20220128103757.22461-4-ville.syrjala@linux.intel.com
    Reviewed-by: Jani Nikula <jani.nikula@intel.com>
    vsyrjala committed Feb 1, 2022
Older