Skip to content
Permalink
Matt-Roper/Sec…
Switch branches/tags

Commits on Jan 20, 2022

  1. 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 include 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>
    mattrope authored and intel-lab-lkp committed Jan 20, 2022
  2. 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.
    
    Cc: Jani Nikula <jani.nikula@intel.com>
    Signed-off-by: Matt Roper <matthew.d.roper@intel.com>
    mattrope authored and intel-lab-lkp committed Jan 20, 2022
  3. 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>
    mattrope authored and intel-lab-lkp committed Jan 20, 2022
  4. 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>
    mattrope authored and intel-lab-lkp committed Jan 20, 2022
  5. 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.
    
    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>
    mattrope authored and intel-lab-lkp committed Jan 20, 2022
  6. 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>
    mattrope authored and intel-lab-lkp committed Jan 20, 2022

Commits on Jan 19, 2022

  1. Merge remote-tracking branch 'drm_intel_push/drm-intel-gt-next' into …

    …drm-tip
    
    # Conflicts:
    #	drivers/gpu/drm/i915/i915_drv.h
    vsyrjala committed Jan 19, 2022
  2. Merge remote-tracking branch 'drm_intel_push/drm-intel-next' into drm…

    …-tip
    
    # Conflicts:
    #	drivers/gpu/drm/i915/i915_reg.h
    #	drivers/gpu/drm/i915/intel_pm.c
    vsyrjala committed Jan 19, 2022
  3. Merge remote-tracking branch 'drm_misc_push/drm-misc-next' into drm-tip

    # Conflicts:
    #	drivers/gpu/drm/i915/display/intel_display_types.h
    #	drivers/gpu/drm/msm/edp/edp.h
    #	drivers/gpu/drm/msm/edp/edp_ctrl.c
    vsyrjala committed Jan 19, 2022
  4. Merge remote-tracking branch 'drm/drm-next' into drm-tip

    # Conflicts:
    #	drivers/gpu/drm/amd/amdgpu/amdgpu_drv.c
    #	drivers/gpu/drm/amd/display/dc/core/dc_link.c
    #	drivers/gpu/drm/amd/pm/swsmu/smu13/aldebaran_ppt.c
    vsyrjala committed Jan 19, 2022
  5. drm/i915/hdmi: Ignore DP++ TMDS clock limit for native HDMI ports

    Lots of machines these days seem to have a crappy type1 DP dual
    mode adaptor chip slapped onto the motherboard. Based on the
    DP dual mode spec we currently limit those to 165MHz max TMDS
    clock.
    
    Windows OTOH ignores DP dual mode adaptors when the VBT
    indicates that the port is not actually DP++, so we can
    perhaps assume that the vendors did intend that the 165MHz
    clock limit doesn't apply here. Though it would be much
    nicer if they actually declared an explicit limit through
    VBT, but that doesn't seem to be happening either.
    
    So in order to match Windows behaviour let's ignore the
    DP dual mode adaptor's TMDS clock limit for ports that
    don't look like DP++ in VBT.
    
    Unfortunately many older VBTs misdelcare their DP++ ports
    as just HDMI (eg. ILK Dell Latitude E5410) or DP (eg. SNB
    Lenovo ThinkPad X220). So we can't really do this universally
    without risking black screens. I suppose a sensible cutoff
    is HSW+ since that's when 4k became a thing and one might
    assume that the machines have been tested to work with higher
    TMDS clock rates.
    
    v2: s/IS_BROADWELL/IS_HASWELL/
    
    Acked-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/20211222161738.12478-1-ville.syrjala@linux.intel.com
    vsyrjala committed Jan 19, 2022
  6. drm/i915/bios: Nuke DEVICE_TYPE_DP_DUAL_MODE_BITS

    Replace the DEVICE_TYPE_DP_DUAL_MODE_BITS stuff with just
    a DP+HDMI check. The rest of the bits shouldn't really
    matter anyway.
    
    The slight change in behaviour here is that now we do look at
    the DEVICE_TYPE_NOT_HDMI_OUTPUT bit (via
    intel_bios_encoder_supports_hdmi()) when we previously ignored it.
    The one platform we know that has problems with that bit is VLV.
    But IIRC the problem was always that buggy VBTs basically never
    set that bit. So that should be OK since all it would do is make
    all DVI ports look like HDMI ports instead. Also can't imagine
    there are many VLV machines with actual DVI ports in existence.
    
    We still keep the rest of the dvo_port/aux_ch checks as we
    can't trust that DP+HDMI device type equals DP++ due to
    buggy VBTs.
    
    Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
    Link: https://patchwork.freedesktop.org/patch/msgid/20211217155403.31477-6-ville.syrjala@linux.intel.com
    Reviewed-by: Jani Nikula <jani.nikula@intel.com>
    vsyrjala committed Jan 19, 2022
  7. drm/i915/bios: Throw out the !has_ddi_port_info() codepaths

    Now that we parse the DDI port info from the VBT on all g4x+ platforms
    we can throw out all the old codepaths in intel_bios_is_port_present(),
    intel_bios_is_port_edp() and intel_bios_is_port_dp_dual_mode(). None
    of these should be called on pre-g4x platforms.
    
    For good measure throw in a WARN into intel_bios_is_port_present()
    should someone get the urge to call it on older platforms. The
    other two functions are specific to HDMI and DP so should not need
    any protection as those encoder types don't even exist on older
    platforms.
    
    Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
    Link: https://patchwork.freedesktop.org/patch/msgid/20211217155403.31477-5-ville.syrjala@linux.intel.com
    Reviewed-by: Jani Nikula <jani.nikula@intel.com>
    vsyrjala committed Jan 19, 2022
  8. drm/i915/bios: Use i915->vbt.ports[] for all g4x+

    Extend the vbt.ports[] stuff for all g4x+ platforms. We do need
    to drop the version check as some elk/ctg machines may have VBTs
    older than that. The oldest I know is an elk with version 142.
    But the child device stuff has had the correct size since at
    least version 125 (observed on my sdg), so from that angle this
    should be totally safe.
    
    This does couple of things:
    - Start using the aux_ch/ddc_pin from VBT instead of just the
      hardcoded defaults. Hopefully there are no VBTs with entirely
      bogus information here.
    - Start using i915->vbt.ports[] for intel_bios_is_port_dp_dual_mode().
      Should be fine as the logic doesn't actually change.
    - Start using i915->vbt.ports[] for intel_bios_is_port_edp().
      The old codepath only looks at the DP DVO ports, the new codepath
      looks at both DP and HDMI DVO ports. In principle that should not
      matter. We also stop looking at some of the other device type bits
      (eg. LVDS,MIPI,ANALOG,etc.). Hopefully no VBT is broken enough that
      it sets up totally conflicting device type bits (eg. LVDS+eDP at the
      same time). We also lose the "g4x->no eDP ever" hardcoding (shouldn't
      be hard to re-introduce that into eg. sanitize_device_type() if needed).
    
    Lightly smoke tested on a set of machines (one of ctg,ilk,snb,ivb each)
    with both DP and HDMI (DP++). Everything still worked as it should.
    
    Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
    Link: https://patchwork.freedesktop.org/patch/msgid/20211217155403.31477-4-ville.syrjala@linux.intel.com
    Reviewed-by: Jani Nikula <jani.nikula@intel.com>
    vsyrjala committed Jan 19, 2022
  9. drm/i915/bios: Use i915->vbt.ports[] on CHV

    CHV is currently straddling the divide by using parse_ddi_ports() stuff
    for aux_ch/ddc_pin but going through all old codepaths for the rest
    (intel_bios_is_port_present(), intel_bios_is_port_edp(),
    intel_bios_is_port_dp_dual_mode()). Let's switch over full and use
    i915->vbt.ports[] for the rest of the stuff.
    
    dvo_port_to_port() doesn't know about DSI so we won't get into
    any kind of "is port B HDMI or DSI or both?" conundrum, which
    could otherwise happen on VLV/CHV due to DSI ports living in a
    separate world from the other digital ports.
    
    Including Jani's detailed analysis here for posterity:
    "We stop checking for port A for CHV in intel_bios_is_port_present(), but
     it's a warn and I don't recall any bug reports, so probably fine. We
     could add a check in parse_ddi_port(), but meh.
    
     Ditto for intel_bios_is_port_dp_dual_mode(), except it doesn't have a
     warn.
    
     The eDP check in intel_bios_is_port_edp() becomes slightly more
     relaxed. Both the old and new check require these to be set:
    
     - DEVICE_TYPE_DISPLAYPORT_OUTPUT
     - DEVICE_TYPE_INTERNAL_CONNECTOR.
    
     The old code also required these to be unset:
    
     - DEVICE_TYPE_MIPI_OUTPUT
     - DEVICE_TYPE_COMPOSITE_OUTPUT
     - DEVICE_TYPE_DUAL_CHANNEL
     - DEVICE_TYPE_LVDS_SIGNALING
     - DEVICE_TYPE_TMDS_DVI_SIGNALING
     - DEVICE_TYPE_VIDEO_SIGNALING
     - DEVICE_TYPE_ANALOG_OUTPUT
    
     It's possible we've added these just as a sanity check for broken VBTs
     more than anything. I guess I'd see if actual problems arise.
    
     Bottom line, I think the functional changes matter only for VBTs with
     bogus data."
    
    I agree that it should work assuming the VBT isn't totally insane.
    Modern windows drivers also don't seem to check any of those
    additional device type bits, which may or may not matter for older
    devices (no idea what some old driver versions are checking).
    
    Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
    Link: https://patchwork.freedesktop.org/patch/msgid/20211217155403.31477-3-ville.syrjala@linux.intel.com
    Reviewed-by: Jani Nikula <jani.nikula@intel.com>
    vsyrjala committed Jan 19, 2022
  10. drm/i915/bios: Introduce has_ddi_port_info()

    Pull the "do we want to use i915->vbt.ports[]?" check into
    a central place.
    
    Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
    Link: https://patchwork.freedesktop.org/patch/msgid/20211217155403.31477-2-ville.syrjala@linux.intel.com
    Reviewed-by: Jani Nikula <jani.nikula@intel.com>
    vsyrjala committed Jan 19, 2022
  11. drm/malidp: Replace module initialization with DRM helpers

    Replace module_platform_driver() with drm_module_platform_driver(). The
    DRM macro respects drm_firmware_drivers_only() and fails if the flag has
    been set.
    
    Signed-off-by: Javier Martinez Canillas <javierm@redhat.com>
    Acked-by: Thomas Zimmermann <tzimmermann@suse.de>
    Link: https://patchwork.freedesktop.org/patch/msgid/20211222082831.196562-11-javierm@redhat.com
    martinezjavier committed Jan 19, 2022
  12. drm/arm/hdlcd: Replace module initialization with DRM helpers

    Replace module_platform_driver() with drm_module_platform_driver(). The
    DRM macro respects drm_firmware_drivers_only() and fails if the flag has
    been set.
    
    Signed-off-by: Javier Martinez Canillas <javierm@redhat.com>
    Acked-by: Thomas Zimmermann <tzimmermann@suse.de>
    Link: https://patchwork.freedesktop.org/patch/msgid/20211222082831.196562-10-javierm@redhat.com
    martinezjavier committed Jan 19, 2022
  13. drm/komeda: Replace module initialization with DRM helpers

    Replace module_platform_driver() with drm_module_platform_driver(). The
    DRM macro respects drm_firmware_drivers_only() and fails if the flag has
    been set.
    
    Signed-off-by: Javier Martinez Canillas <javierm@redhat.com>
    Acked-by: Thomas Zimmermann <tzimmermann@suse.de>
    Link: https://patchwork.freedesktop.org/patch/msgid/20211222082831.196562-9-javierm@redhat.com
    martinezjavier committed Jan 19, 2022
  14. drm/imx/dcss: Replace module initialization with DRM helpers

    Replace module_platform_driver() with drm_module_platform_driver(). The
    DRM macro respects drm_firmware_drivers_only() and fails if the flag has
    been set.
    
    Signed-off-by: Javier Martinez Canillas <javierm@redhat.com>
    Reviewed-by: Lucas Stach <l.stach@pengutronix.de>
    Acked-by: Thomas Zimmermann <tzimmermann@suse.de>
    Link: https://patchwork.freedesktop.org/patch/msgid/20211222082831.196562-8-javierm@redhat.com
    martinezjavier committed Jan 19, 2022
  15. drm: Provide platform module-init macro

    Provide a helper macro to register platform DRM drivers. The new
    macro behaves like module_platform_driver() with an additional
    test if DRM modesetting has been enabled.
    
    Signed-off-by: Javier Martinez Canillas <javierm@redhat.com>
    Acked-by: Thomas Zimmermann <tzimmermann@suse.de>
    Link: https://patchwork.freedesktop.org/patch/msgid/20211222082831.196562-7-javierm@redhat.com
    martinezjavier committed Jan 19, 2022
  16. drm/hisilicon/hibmc: Replace module initialization with DRM helpers

    Replace module_pci_driver() with drm_module_pci_driver(). The DRM macro
    respects drm_firmware_drivers_only() and fails if the flag has been set.
    
    Signed-off-by: Thomas Zimmermann <tzimmermann@suse.de>
    Reviewed-by: Javier Martinez Canillas <javierm@redhat.com>
    Signed-off-by: Javier Martinez Canillas <javierm@redhat.com>
    Link: https://patchwork.freedesktop.org/patch/msgid/20211222082831.196562-6-javierm@redhat.com
    Thomas Zimmermann authored and martinezjavier committed Jan 19, 2022
  17. drm/cirrus: Replace module-init boiler-plate code with DRM helpers

    Remove custom cirrus_init() and cirrus_exit() functions and initialize
    the module with DRM module helpers.
    
    Signed-off-by: Thomas Zimmermann <tzimmermann@suse.de>
    Reviewed-by: Javier Martinez Canillas <javierm@redhat.com>
    Signed-off-by: Javier Martinez Canillas <javierm@redhat.com>
    Link: https://patchwork.freedesktop.org/patch/msgid/20211222082831.196562-5-javierm@redhat.com
    Thomas Zimmermann authored and martinezjavier committed Jan 19, 2022
  18. drm/bochs: Replace module-init boiler-plate code with DRM helpers

    Remove custom bochs_init() and bochs_exit() functions and initialize
    the module with DRM module helpers.
    
    Signed-off-by: Thomas Zimmermann <tzimmermann@suse.de>
    Reviewed-by: Javier Martinez Canillas <javierm@redhat.com>
    Signed-off-by: Javier Martinez Canillas <javierm@redhat.com>
    Link: https://patchwork.freedesktop.org/patch/msgid/20211222082831.196562-4-javierm@redhat.com
    Thomas Zimmermann authored and martinezjavier committed Jan 19, 2022
  19. drm/ast: Replace module-init boiler-plate code with DRM helpers

    Remove custom ast_init() and ast_exit() functions and initialize the
    module with DRM module helpers.
    
    Signed-off-by: Thomas Zimmermann <tzimmermann@suse.de>
    Reviewed-by: Javier Martinez Canillas <javierm@redhat.com>
    Signed-off-by: Javier Martinez Canillas <javierm@redhat.com>
    Link: https://patchwork.freedesktop.org/patch/msgid/20211222082831.196562-3-javierm@redhat.com
    Thomas Zimmermann authored and martinezjavier committed Jan 19, 2022
  20. drm: Provide PCI module-init macros

    Provide helper macros to register PCI-based DRM drivers. The new
    macros behave like module_pci_driver() with an additional test if
    DRM modesetting has been enabled.
    
    Signed-off-by: Thomas Zimmermann <tzimmermann@suse.de>
    Reviewed-by: Javier Martinez Canillas <javierm@redhat.com>
    Signed-off-by: Javier Martinez Canillas <javierm@redhat.com>
    Link: https://patchwork.freedesktop.org/patch/msgid/20211222082831.196562-2-javierm@redhat.com
    Thomas Zimmermann authored and martinezjavier committed Jan 19, 2022
  21. drm/i915: Remove zombie async flip vt-d w/a

    This async flip vt-d w/a was moved to a different place in
    commit 7d396ca ("drm/i195: Make the async flip VT-d workaround
    dynamic") but the drm-intel-fixes cherry-pick commit b2d73de
    ("drm/i915: Extend the async flip VT-d w/a to skl/bxt") resurrected
    the original code as well. So now we have this w/a in two places.
    Remove the resurrected zombie code.
    
    Not done as a revert to hopefully prevent any kind of
    automagic stable backport.
    
    Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
    Link: https://patchwork.freedesktop.org/patch/msgid/20211208150050.17230-1-ville.syrjala@linux.intel.com
    Reviewed-by: Jani Nikula <jani.nikula@intel.com>
    vsyrjala committed Jan 19, 2022
  22. drm: panel-orientation-quirks: Add quirk for the 1Netbook OneXPlayer

    The 1Netbook OneXPlayer uses a panel which has been mounted
    90 degrees rotated. Add a quirk for this.
    
    Signed-off-by: Raymond Jay Golo <rjgolo@gmail.com>
    Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
    Link: https://patchwork.freedesktop.org/patch/msgid/20220113000619.90988-1-rjgolo@gmail.com
    intersectRaven authored and danvet committed Jan 19, 2022
  23. drm/selftests/test-drm_dp_mst_helper: Fix memory leak in sideband_msg…

    …_req_encode_decode
    
    Avoid leaking the "out" variable if it is not possible to allocate
    the "txmsg" variable.
    
    Fixes: 09234b8 ("drm/selftests/test-drm_dp_mst_helper: Move 'sideband_msg_req_encode_decode' onto the heap")
    Addresses-Coverity-ID: 1475685 ("Resource leak")
    Signed-off-by: José Expósito <jose.exposito89@gmail.com>
    Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
    Link: https://patchwork.freedesktop.org/patch/msgid/20220108165812.46797-1-jose.exposito89@gmail.com
    JoseExposito authored and danvet committed Jan 19, 2022
Older