08 May, 2019

1 commit

  • …/git/gregkh/char-misc

    Pull char/misc update part 2 from Greg KH:
    "Here is the "real" big set of char/misc driver patches for 5.2-rc1

    Loads of different driver subsystem stuff in here, all over the places:
    - thunderbolt driver updates
    - habanalabs driver updates
    - nvmem driver updates
    - extcon driver updates
    - intel_th driver updates
    - mei driver updates
    - coresight driver updates
    - soundwire driver cleanups and updates
    - fastrpc driver updates
    - other minor driver updates
    - chardev minor fixups

    Feels like this tree is getting to be a dumping ground of "small
    driver subsystems" these days. Which is fine with me, if it makes
    things easier for those subsystem maintainers.

    All of these have been in linux-next for a while with no reported
    issues"

    * tag 'char-misc-5.2-rc1-part2' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/char-misc: (255 commits)
    intel_th: msu: Add current window tracking
    intel_th: msu: Add a sysfs attribute to trigger window switch
    intel_th: msu: Correct the block wrap detection
    intel_th: Add switch triggering support
    intel_th: gth: Factor out trace start/stop
    intel_th: msu: Factor out pipeline draining
    intel_th: msu: Switch over to scatterlist
    intel_th: msu: Replace open-coded list_{first,last,next}_entry variants
    intel_th: Only report useful IRQs to subdevices
    intel_th: msu: Start handling IRQs
    intel_th: pci: Use MSI interrupt signalling
    intel_th: Communicate IRQ via resource
    intel_th: Add "rtit" source device
    intel_th: Skip subdevices if their MMIO is missing
    intel_th: Rework resource passing between glue layers and core
    intel_th: SPDX-ify the documentation
    intel_th: msu: Fix single mode with IOMMU
    coresight: funnel: Support static funnel
    dt-bindings: arm: coresight: Unify funnel DT binding
    coresight: replicator: Add new device id for static replicator
    ...

    Linus Torvalds
     

26 Apr, 2019

2 commits


08 Apr, 2019

1 commit

  • mmiowb() is now implied by spin_unlock() on architectures that require
    it, so there is no reason to call it from driver code. This patch was
    generated using coccinelle:

    @mmiowb@
    @@
    - mmiowb();

    and invoked as:

    $ for d in drivers include/linux/qed sound; do \
    spatch --include-headers --sp-file mmiowb.cocci --dir $d --in-place; done

    NOTE: mmiowb() has only ever guaranteed ordering in conjunction with
    spin_unlock(). However, pairing each mmiowb() removal in this patch with
    the corresponding call to spin_unlock() is not at all trivial, so there
    is a small chance that this change may regress any drivers incorrectly
    relying on mmiowb() to order MMIO writes between CPUs using lock-free
    synchronisation. If you've ended up bisecting to this commit, you can
    reintroduce the mmiowb() calls using wmb() instead, which should restore
    the old behaviour on all architectures other than some esoteric ia64
    systems.

    Acked-by: Linus Torvalds
    Signed-off-by: Will Deacon

    Will Deacon
     

28 Mar, 2019

4 commits


28 Feb, 2019

1 commit

  • …ntel into char-misc-next

    Daniel writes:

    mei-hdcp driver

    mei driver for the me hdcp client, for use by drm/i915.

    Including the following prep work:
    - whitelist hdcp client in mei bus
    - merge to include char-misc-next
    - drm/i915 side of the mei_hdcp/i915 component interface
    - component prep work (including one patch touching i915&snd-hda)

    * tag 'topic/mei-hdcp-2019-02-26' of git://anongit.freedesktop.org/drm/drm-intel: (23 commits)
    misc/mei/hdcp: Component framework for I915 Interface
    misc/mei/hdcp: Closing wired HDCP2.2 Tx Session
    misc/mei/hdcp: Enabling the HDCP authentication
    misc/mei/hdcp: Verify M_prime
    misc/mei/hdcp: Repeater topology verification and ack
    misc/mei/hdcp: Prepare Session Key
    misc/mei/hdcp: Verify L_prime
    misc/mei/hdcp: Initiate Locality check
    misc/mei/hdcp: Store the HDCP Pairing info
    misc/mei/hdcp: Verify H_prime
    misc/mei/hdcp: Verify Receiver Cert and prepare km
    misc/mei/hdcp: Initiate Wired HDCP2.2 Tx Session
    misc/mei/hdcp: Define ME FW interface for HDCP2.2
    misc/mei/hdcp: Client driver for HDCP application
    mei: bus: whitelist hdcp client
    drm/audio: declaration of struct device
    drm: helper functions for hdcp2 seq_num to from u32
    drm/i915: MEI interface definition
    drm/i915: header for i915 - MEI_HDCP interface
    drm/i915: enum port definition is moved into i915_drm.h
    ...

    Greg Kroah-Hartman
     

26 Feb, 2019

16 commits

  • Fix unbalanced module reference counting during internal reset, which
    prevents the drivers unloading.
    Tracking mei_me/txe modules on mei client bus via
    mei_cldev_enable/disable is error prone due to possible internal
    reset flow, where clients are disconnected underneath.
    Moving reference counting to probe and release of mei bus client
    driver solves this issue in simplest way, as each client provides only
    a single connection to a client bus driver.

    Cc:
    Signed-off-by: Alexander Usyskin
    Signed-off-by: Tomas Winkler
    Signed-off-by: Greg Kroah-Hartman

    Alexander Usyskin
     
  • Mei hdcp driver is designed as component slave for the I915 component
    master.

    v2: Rebased.
    v3:
    Notifier chain is adopted for cldev state update [Tomas]
    v4:
    Made static dummy functions as inline in mei_hdcp.h
    API for polling client device status
    IS_ENABLED used in header, for config status for mei_hdcp.
    v5:
    Replacing the notifier with component framework. [Daniel]
    v6:
    Rebased on the I915 comp master redesign.
    v7:
    mei_hdcp_component_registered is made static [Uma]
    Need for global static variable mei_cldev is removed.
    v8:
    master comp is added to be matched with i915 subcomponent [daniel]
    v9:
    only comp_master is set and retrieved as driver_data [Daniel]
    Reviewed-by Daniel.
    v10:
    small corrections at probe [Tomas]
    v11:
    bind and unbind logs are made as debug logs [Tomas]
    cldev_enable failure is handled [Tomas]

    Signed-off-by: Ramalingam C
    Reviewed-by: Daniel Vetter
    Signed-off-by: Daniel Vetter
    Link: https://patchwork.freedesktop.org/patch/msgid/1550772730-23280-16-git-send-email-ramalingam.c@intel.com

    Ramalingam C
     
  • Request the ME to terminate the HDCP2.2 session for a port.

    On Success, ME FW will mark the intel port as Deauthenticated and
    terminate the wired HDCP2.2 Tx session started due to the cmd
    WIRED_INITIATE_HDCP2_SESSION.

    v2: Rebased.
    v3:
    cldev is passed as first parameter [Tomas]
    Redundant comments and cast are removed [Tomas]
    v4:
    %zd for ssize_t [Alexander]
    %s/return -1/return -EIO [Alexander]
    Style and typos fixed [Uma]
    v5:
    Extra line is removed.
    v6:
    Collected the Rb-ed by.
    Rebased.
    v7:
    Adjust to the new mei interface.
    Fix for Kdoc.
    v8:
    K-Doc addition.[Tomas]
    v9:
    renamed func as mei_hdcp_* [Tomas]
    Inline function is defined for DDI index [Tomas]
    v10:
    K-Doc fix. [Tomas]
    v11:
    Rebased.

    Signed-off-by: Ramalingam C
    Reviewed-by: Uma Shankar
    Acked-by: Tomas Winkler
    Signed-off-by: Daniel Vetter
    Link: https://patchwork.freedesktop.org/patch/msgid/1550772730-23280-15-git-send-email-ramalingam.c@intel.com

    Ramalingam C
     
  • Request to ME to configure a port as authenticated.

    On Success, ME FW will mark the port as authenticated and provides
    HDCP cipher with the encryption keys.

    Enabling the Authentication can be requested once all stages of
    HDCP2.2 authentication is completed by interacting with ME FW.

    Only after this stage, driver can enable the HDCP encryption for
    the port, through HW registers.

    v2: Rebased.
    v3:
    cldev is passed as first parameter [Tomas]
    Redundant comments and cast are removed [Tomas]
    v4:
    %zd for ssize_t [Alexander]
    %s/return -1/return -EIO [Alexander]
    Style and typos fixed [Uma]
    v5: Rebased.
    v6:
    Collected the Rb-ed by.
    Rebased.
    v7:
    Adjust to the new mei interface.
    Fix for Kdoc.
    v8:
    K-Doc addition. [Tomas]
    v9:
    renamed func as mei_hdcp_* [Tomas]
    Inline function is defined for DDI index [Tomas]
    v10:
    K-Doc fix. [Tomas]
    v11:
    Rebased.

    Signed-off-by: Ramalingam C
    Reviewed-by: Uma Shankar
    Acked-by: Tomas Winkler
    Signed-off-by: Daniel Vetter
    Link: https://patchwork.freedesktop.org/patch/msgid/1550772730-23280-14-git-send-email-ramalingam.c@intel.com

    Ramalingam C
     
  • Request to ME to verify the M_Prime received from the HDCP sink.

    ME FW will calculate the M and compare with M_prime received
    as part of RepeaterAuth_Stream_Ready, which is HDCP2.2 protocol msg.

    On successful completion of this stage, downstream propagation of
    the stream management info is completed.

    v2: Rebased.
    v3:
    cldev is passed as first parameter [Tomas]
    Redundant comments and cast are removed [Tomas]
    v4:
    %zd for ssize_t [Alexander]
    %s/return -1/return -EIO [Alexander]
    endianness conversion func is moved to drm_hdcp.h [Uma]
    v5: Rebased.
    v6:
    Collected the Rb-ed by.
    Rebasing.
    v7:
    Adjust to the new mei interface.
    Fix for Kdoc.
    v8:
    K-Doc addition. [Tomas]
    drm_hdcp2_u32_to_seq_num() is used for u32 to seq_num.
    v9:
    renamed func as mei_hdcp_* [Tomas]
    Inline function is defined for DDI index [Tomas]
    v10:
    K-Doc fix. [Tomas]
    v11:
    %s/__swab16/cpu_to_be16 [Tomas]

    Signed-off-by: Ramalingam C
    Reviewed-by: Uma Shankar
    Acked-by: Tomas Winkler
    Signed-off-by: Daniel Vetter
    Link: https://patchwork.freedesktop.org/patch/msgid/1550772730-23280-13-git-send-email-ramalingam.c@intel.com

    Ramalingam C
     
  • Request ME to verify the downstream topology information received.

    ME FW will validate the Repeaters receiver id list and
    downstream topology.

    On Success ME FW will provide the Least Significant
    128bits of VPrime, which forms the repeater ack.

    v2: Rebased.
    v3:
    cldev is passed as first parameter [Tomas]
    Redundant comments and cast are removed [Tomas]
    v4:
    %zd for ssize_t [Alexander]
    %s/return -1/return -EIO [Alexander]
    Style and typos fixed [Uma]
    v5: Rebased.
    v6: Rebasing.
    v7:
    Adjust to the new mei interface.
    Fix for Kdoc.
    v8:
    K-Doc addition. [Tomas]
    v9:
    renamed func as mei_hdcp_* [Tomas]
    Inline function is defined for DDI index [Tomas]
    v10:
    K-Doc fix. [Tomas]
    v11:
    Rebased.

    Signed-off-by: Ramalingam C
    Reviewed-by: Uma Shankar
    Acked-by: Tomas Winkler
    Signed-off-by: Daniel Vetter
    Link: https://patchwork.freedesktop.org/patch/msgid/1550772730-23280-12-git-send-email-ramalingam.c@intel.com

    Ramalingam C
     
  • Request to ME to prepare the encrypted session key.

    On Success, ME provides Encrypted session key. Function populates
    the HDCP2.2 authentication msg SKE_Send_Eks.

    v2: Rebased.
    v3:
    cldev is passed as first parameter [Tomas]
    Redundant comments and cast are removed [Tomas]
    v4:
    %zd for ssize_t [Alexander]
    %s/return -1/return -EIO [Alexander]
    Style fixed [Uma]
    v5: Rebased.
    v6:
    Collected the Rb-ed by.
    Rebasing.
    v7:
    Adjust to the new mei interface.
    Fix for Kdoc.
    v8:
    K-Doc addition. [Tomas]
    v9:
    renamed func as mei_hdcp_* [Tomas]
    Inline function is defined for DDI index [Tomas]
    v10:
    K-Doc fix. [Tomas]
    v11:
    Rebased.

    Signed-off-by: Ramalingam C
    Reviewed-by: Uma Shankar
    Acked-by: Tomas Winkler
    Signed-off-by: Daniel Vetter
    Link: https://patchwork.freedesktop.org/patch/msgid/1550772730-23280-11-git-send-email-ramalingam.c@intel.com

    Ramalingam C
     
  • Request to ME to verify the LPrime received from HDCP sink.

    On Success, ME FW will verify the received Lprime by calculating and
    comparing with L.

    This represents the completion of Locality Check.

    v2: Rebased.
    v3:
    cldev is passed as first parameter [Tomas]
    Redundant comments and cast are removed [Tomas]
    v4:
    %zd for ssize_t [Alexander]
    %s/return -1/return -EIO [Alexander]
    Style fixed [Uma]
    v5: Rebased.
    v6:
    Collected the Rb-ed by.
    Rebasing.
    v7:
    Adjust to the new mei interface.
    Fix for Kdoc.
    v8:
    K-Doc addition. [Tomas]
    memcpy for const length.
    v9:
    renamed func as mei_hdcp_* [Tomas]
    Inline function is defined for DDI index [Tomas]
    v10:
    K-Doc fix. [Tomas]
    v11:
    Rebased.

    Signed-off-by: Ramalingam C
    Reviewed-by: Uma Shankar
    Acked-by: Tomas Winkler
    Signed-off-by: Daniel Vetter
    Link: https://patchwork.freedesktop.org/patch/msgid/1550772730-23280-10-git-send-email-ramalingam.c@intel.com

    Ramalingam C
     
  • Requests ME to start the second stage of HDCP2.2 authentication,
    called Locality Check.

    On Success, ME FW will provide LC_Init message to send to hdcp sink.

    v2: Rebased.
    v3:
    cldev is passed as first parameter [Tomas]
    Redundant comments and cast are removed [Tomas]
    v4:
    %zd used for ssize_t [Alexander]
    %s/return -1/return -EIO [Alexander]
    Style fixed [Uma]
    v5: Rebased.
    v6:
    Collected the Rb-ed by.
    Rebasing.
    v7:
    Adjust to the new mei interface.
    Fix for Kdoc.
    v8:
    K-Doc addition. [Tomas]
    v9:
    renamed func as mei_hdcp_* [Tomas]
    Inline function is defined for DDI index [Tomas]
    v10:
    K-Doc fix. [Tomas]
    v11:
    Rebased.

    Signed-off-by: Ramalingam C
    Reviewed-by: Uma Shankar
    Acked-by: Tomas Winkler
    Signed-off-by: Daniel Vetter
    Link: https://patchwork.freedesktop.org/patch/msgid/1550772730-23280-9-git-send-email-ramalingam.c@intel.com

    Ramalingam C
     
  • Provides Pairing info to ME to store.

    Pairing is a process to fast track the subsequent authentication
    with the same HDCP sink.

    On Success, received HDCP pairing info is stored in non-volatile
    memory of ME.

    v2: Rebased.
    v3:
    cldev is passed as first parameter [Tomas]
    Redundant comments and cast are removed [Tomas]
    v4:
    %zd for ssize_t [Alexander]
    %s/return -1/return -EIO [Alexander]
    Style fixed [Uma]
    v5: Rebased.
    v6:
    Collected the Rb-ed by.
    Rebasing.
    v7:
    Adjust to the new mei interface.
    Fix for Kdoc.
    v8:
    K-Doc addition. [Tomas]
    memcpy for const length.
    v9:
    renamed func as mei_hdcp_* [Tomas]
    Inline function is defined for DDI index [Tomas]
    v10:
    K-Doc fix. [Tomas]
    v11:
    Rebased.

    Signed-off-by: Ramalingam C
    Reviewed-by: Uma Shankar
    Acked-by: Tomas Winkler
    Signed-off-by: Daniel Vetter
    Link: https://patchwork.freedesktop.org/patch/msgid/1550772730-23280-8-git-send-email-ramalingam.c@intel.com

    Ramalingam C
     
  • Requests for the verification of AKE_Send_H_prime.

    ME will calculate the H and comparing it with received H_Prime.
    The result will be returned as status.

    Here AKE_Send_H_prime is a HDCP2.2 Authentication msg.

    v2: Rebased.
    v3:
    cldev is passed as first parameter [Tomas]
    Redundant comments and cast are removed [Tomas]
    v4:
    %zd for ssize_t [Alexander]
    %s/return -1/return -EIO [Alexander]
    Styles and typos fixed [Uma]
    v5: Rebased.
    v6:
    Collected the Rb-ed by.
    Rebasing.
    v7:
    Adjust to the new mei interface.
    Fix for Kdoc.
    v8:
    K-Doc Addition [Tomas]
    memcpy for const length.
    v9:
    renamed func as mei_hdcp_* [Tomas]
    Inline function is defined for DDI index [Tomas]
    v10:
    K-Doc fix. [Tomas]
    v11:
    Rebased.

    Signed-off-by: Ramalingam C
    Reviewed-by: Uma Shankar
    Acked-by: Tomas Winkler
    Signed-off-by: Daniel Vetter
    Link: https://patchwork.freedesktop.org/patch/msgid/1550772730-23280-7-git-send-email-ramalingam.c@intel.com

    Ramalingam C
     
  • Requests for verification for receiver certification and also the
    preparation for next AKE auth message with km.

    On Success ME FW validate the HDCP2.2 receivers certificate and do the
    revocation check on the receiver ID. AKE_Stored_Km will be prepared if
    the receiver is already paired, else AKE_No_Stored_Km will be prepared.

    Here AKE_Stored_Km and AKE_No_Stored_Km are HDCP2.2 protocol msgs.

    v2: Rebased.
    v3:
    cldev is passed as first parameter [Tomas]
    Redundant comments and cast are removed [Tomas]
    v4:
    %zd is used for ssize_t [Alexander]
    %s/return -1/return -EIO [Alexander]
    v5: Rebased.
    v6:
    Collected the Rb-ed by.
    Rebasing.
    v7:
    Adjust to the new mei interface.
    Fix for Kdoc.
    v8:
    K-Doc Addition. [Tomas]
    memcpy for const length.
    v9:
    renamed func as mei_hdcp_* [Tomas]
    Inline function is defined for DDI index [Tomas]
    v10:
    Fixed the conversion of u8 to bool [Tomas]
    K-Doc fix [Tomas]
    v11:
    Rebased.

    Signed-off-by: Ramalingam C
    Reviewed-by: Uma Shankar
    Acked-by: Tomas Winkler
    Signed-off-by: Daniel Vetter
    Link: https://patchwork.freedesktop.org/patch/msgid/1550772730-23280-6-git-send-email-ramalingam.c@intel.com

    Ramalingam C
     
  • Request ME FW to start the HDCP2.2 session for an intel port.
    Prepares payloads for command WIRED_INITIATE_HDCP2_SESSION and sends
    to ME FW.

    On Success, ME FW will start a HDCP2.2 session for the port and
    provides the content for HDCP2.2 AKE_Init message.

    v2: Rebased.
    v3:
    cldev is add as a separate parameter [Tomas]
    Redundant comment and typecast are removed [Tomas]
    v4:
    %zd is used for size [Alexander]
    %s/return -1/return -EIO [Alexander]
    Spellings in commit msg is fixed [Uma]
    v5: Rebased.
    v6:
    Collected the rb-ed by.
    Realigning the patches in the series.
    v7:
    Adjust to the new mei interface.
    Fix for kdoc.
    v8:
    K-Doc Addition.
    memcpy for const length.
    v9:
    s/mei_hdcp_ddi/mei_fw_ddi
    s/i915_port/mei_i915_port [Tomas]
    renamed func as mei_hdcp_* [Tomas]
    Instead of macro, inline func for ddi index is used. [Tomas]
    v10:
    Switch case for the coversion between i915_port to mei_ddi [Tomas]
    Kernel doc fix.
    v11:
    mei_hdcp_ops is defined as const. [Tomas]

    Signed-off-by: Ramalingam C
    Signed-off-by: Tomas Winkler
    Reviewed-by: Uma Shankar
    Signed-off-by: Daniel Vetter
    Link: https://patchwork.freedesktop.org/patch/msgid/1550772730-23280-5-git-send-email-ramalingam.c@intel.com

    Ramalingam C
     
  • Defines the HDCP specific ME FW interfaces such as Request CMDs,
    payload structure for CMDs and their response status codes.

    This patch defines payload size(Excluding the Header)for each WIRED
    HDCP2.2 CMDs.

    v2: Rebased.
    v3:
    Extra comments are removed.
    v4:
    %s/\/\*\*/\/\*
    v5:
    Extra lines are removed.
    v6:
    Remove redundant text from the License header
    %s/LPRIME_HALF/V_PRIME_HALF
    %s/uintxx_t/uxx
    v7:
    Extra taps removed.
    v8:
    k is defined as __be16 [Tomas]

    Signed-off-by: Ramalingam C
    Acked-by Tomas Winkler
    Signed-off-by: Daniel Vetter
    Link: https://patchwork.freedesktop.org/patch/msgid/1550772730-23280-4-git-send-email-ramalingam.c@intel.com

    Ramalingam C
     
  • ME FW contributes a vital role in HDCP2.2 authentication.
    HDCP2.2 driver needs to communicate to ME FW for each step of the
    HDCP2.2 authentication.

    ME FW prepare and HDCP2.2 authentication parameters and encrypt them
    as per spec. With such parameter Driver prepares HDCP2.2 auth messages
    and communicate with HDCP2.2 sink.

    Similarly HDCP2.2 sink's response is shared with ME FW for decrypt and
    verification.

    Once All the steps of HDCP2.2 authentications are complete on driver's
    request ME FW will configure the port as authenticated and supply the
    HDCP keys to the Gen HW for encryption.

    Only after this stage HDCP2.2 driver can start the HDCP2.2 encryption
    for a port.

    ME FW is interfaced to kernel through MEI Bus Driver. To obtain the
    HDCP2.2 services from the ME FW through MEI Bus driver MEI Client
    Driver is developed.

    v2:
    hdcp files are moved to drivers/misc/mei/hdcp/ [Tomas]
    v3:
    Squashed the Kbuild support [Tomas]
    UUID renamed and Module License is modified [Tomas]
    drv_data is set to null at remove [Tomas]
    v4:
    Module name is changed to "MEI HDCP"
    I915 Selects the MEI_HDCP
    v5:
    Remove redundant text from the License header
    Fix malformed licence
    Removed the drv_data resetting.
    v6:
    K-Doc addition. [Tomas]
    v7:
    %s/UUID_LE/GUID_INIT [Tomas]
    GPL Ver is 2.0 than 2.0+ [Tomas]
    v8:
    Added more info into Kconfig addition [Tomas]

    Signed-off-by: Ramalingam C
    Signed-off-by: Tomas Winkler
    Acked-by: Tomas Winkler
    Signed-off-by: Daniel Vetter
    Link: https://patchwork.freedesktop.org/patch/msgid/1550772730-23280-3-git-send-email-ramalingam.c@intel.com

    Ramalingam C
     
  • Whitelist HDCP client for in kernel drm use

    v2:
    Rebased.

    Signed-off-by: Tomas Winkler
    Signed-off-by: Ramalingam C
    Signed-off-by: Daniel Vetter
    Link: https://patchwork.freedesktop.org/patch/msgid/1550772730-23280-2-git-send-email-ramalingam.c@intel.com

    Tomas Winkler
     

21 Feb, 2019

1 commit


12 Feb, 2019

1 commit


11 Feb, 2019

1 commit


30 Jan, 2019

2 commits


28 Jan, 2019

1 commit


13 Jan, 2019

4 commits


26 Nov, 2018

5 commits