19 Oct, 2016

1 commit

  • Fix warnings on building htmldocs.

    v2: whitespace around '/' (Ville)

    Fixes: 056996b95686 ("drm: Helper for lspcon in drm_dp_dual_mode")
    Cc: Rodrigo Vivi
    Cc: Shashank Sharma
    Cc:
    Reviewed-by: Ville Syrjälä
    Signed-off-by: Jani Nikula
    Link: http://patchwork.freedesktop.org/patch/msgid/1476878884-2370-1-git-send-email-jani.nikula@intel.com

    Jani Nikula
     

18 Oct, 2016

1 commit

  • This patch adds lspcon support in dp_dual_mode helper.
    lspcon is essentially a dp->hdmi dongle with dual personality.

    LS mode: It works as a passive dongle, by level shifting DP++
    signals to HDMI signals, in LS mode.
    PCON mode: It works as a protocol converter active dongle
    in pcon mode, by converting DP++ outputs to HDMI 2.0 outputs.

    This patch adds support for lspcon detection and mode set
    switch operations, as a dp dual mode dongle.

    v2: Addressed review comments from Ville
    - add adaptor id for lspcon devices (0x08), use it to identify lspcon
    - change function names
    old: drm_lspcon_get_current_mode/drm_lspcon_change_mode
    new: drm_lspcon_get_mode/drm_lspcon_set_mode
    - change drm_lspcon_get_mode type to int, to match
    drm_dp_dual_mode_get_tmds_output
    - change 'err' to 'ret' to match the rest of the functions
    - remove pointless typecasting during call to dual_mode_read
    - fix the but while setting value of data, while writing lspcon mode
    - fix indentation
    - change mdelay(10) -> msleep(10)
    - return ETIMEDOUT instead of EFAULT, when lspcon mode change times out
    - Add an empty line to separate std regs macros and lspcon regs macros
    Indent bit definition

    v3: Addressed review comments from Rodrigo
    - change macro name from DP_DUAL_MODE_TYPE_LSPCON to
    DP_DUAL_MODE_TYPE_HAS_DPCD for better readability
    - change macro name from DP_DUAL_MODE_LSPCON_MODE_PCON to
    DP_DUAL_MODE_LSPCON_MODE_PCON for better readability
    - add comment for MCA specific offsets like 0x40 and 0x41
    - remove DP_DUAL_MODE_REV_TYPE2 check while checking lspcon adapter id

    v4: Addressed review comments from Ville
    - Fixed indentation at few places
    - s/current_mode/mode
    - s/reqd_mode/mode
    - remove unnecessary void* cast
    - remove drm_edid.h from includes
    - Add a comment for _HAS_DPCD
    - Fix enum description, for lspcon_mode.

    v5: Rebase
    v6: Rebase

    Signed-off-by: Shashank Sharma
    Reviewed-by: Rodrigo Vivi
    Acked-by: Dave Airlie
    Acked-by: Ville Syrjälä
    Signed-off-by: Jani Nikula
    Link: http://patchwork.freedesktop.org/patch/msgid/1476720277-16298-1-git-send-email-shashank.sharma@intel.com

    Shashank Sharma
     

09 May, 2016

1 commit

  • Add a helper which aids in the identification of DP dual mode
    (aka. DP++) adaptors. There are several types of adaptors
    specified: type 1 DVI, type 1 HDMI, type 2 DVI, type 2 HDMI

    Type 1 adaptors have a max TMDS clock limit of 165MHz, type 2 adaptors
    may go as high as 300MHz and they provide a register informing the
    source device what the actual limit is. Supposedly also type 1 adaptors
    may optionally implement this register. This TMDS clock limit is the
    main reason why we need to identify these adaptors.

    Type 1 adaptors provide access to their internal registers and the sink
    DDC bus through I2C. Type 2 adaptors provide this access both via I2C
    and I2C-over-AUX. A type 2 source device may choose to implement either
    of these methods. If a source device implements the I2C-over-AUX
    method, then the driver will obviously need specific support for such
    adaptors since the port is driven like an HDMI port, but DDC
    communication happes over the AUX channel.

    This helper should be enough to identify the adaptor type (some
    type 1 DVI adaptors may be a slight exception) and the maximum TMDS
    clock limit. Another feature that may be available is control over
    the TMDS output buffers on the adaptor, possibly allowing for some
    power saving when the TMDS link is down.

    Other user controllable features that may be available in the adaptors
    are downstream i2c bus speed control when using i2c-over-aux, and
    some control over the CEC pin. I chose not to provide any helper
    functions for those since I have no use for them in i915 at this time.
    The rest of the registers in the adaptor are mostly just information,
    eg. IEEE OUI, hardware and firmware revision, etc.

    v2: Pass adaptor type to helper functions to ease driver implementation
    Fix a bunch of typoes (Paulo)
    Add DRM_DP_DUAL_MODE_UNKNOWN for the case where we don't (yet) know
    the type (Paulo)
    Reject 0x00 and 0xff DP_DUAL_MODE_MAX_TMDS_CLOCK values (Paulo)
    Adjust drm_dp_dual_mode_detect() type2 vs. type1 detection to
    ease future LSPCON enabling
    Remove the unused DP_DUAL_MODE_LAST_RESERVED define
    v3: Fix kernel doc function argument descriptions (Jani)
    s/NONE/UNKNOWN/ in drm_dp_dual_mode_detect() docs
    Add kernel doc for enum drm_dp_dual_mode_type
    Actually build the docs
    Fix more typoes
    v4: Adjust code indentation of type2 adaptor detection (Shashank)
    Add debug messages for failurs cases (Shashank)
    v5: EXPORT_SYMBOL(drm_dp_dual_mode_read) (Paulo)

    Cc: stable@vger.kernel.org
    Cc: Tore Anderson
    Cc: Paulo Zanoni
    Cc: Shashank Sharma
    Cc: Daniel Vetter
    Cc: Shashank Sharma
    Signed-off-by: Ville Syrjälä
    Reviewed-by: Shashank Sharma (v4)
    Link: http://patchwork.freedesktop.org/patch/msgid/1462542412-25533-1-git-send-email-ville.syrjala@linux.intel.com

    Ville Syrjälä