13 Mar, 2018

1 commit


12 Mar, 2018

5 commits

  • Condition ION unmapped heap implementation to architectures that
    currently support it. ARM is one of these.

    Signed-off-by: Etienne Carriere
    Reviewed-by: Joakim Bech
    (cherry picked from commit 7c7d9c446252829aa138c87c47a937e2a3b4fd26
    linaro repo https://github.com/linaro-swg/linux.git
    tag optee-v4.9-20171005)

    (cherry picked from commit a3fd09542ff46c16c409a7ae76698326264ad9f4)

    Etienne Carriere
     
  • If one enables ION_DUMMY_UNMAPPED_HEAP without providing the target
    unmapped heap configuration settings (physical base address and size),
    the kernel cannot build. This situation occurs in Linux test build
    cases, i.e running the allmodconfig configuration.

    This change overcomes the issue by providing default null settings for
    both ION_DUMMY_UNMAPPED_BASE and ION_DUMMY_UNMAPPED_SIZE.

    Signed-off-by: Etienne Carriere
    Acked-by: Jens Wiklander
    (cherry picked from commit ac0c2c26b9819c5e95d56cb2d8937de0357eecaa
    linaro repo https://github.com/linaro-swg/linux.git
    tag optee-v4.9-20171005)

    (cherry picked from commit 533987a37a218309a49f0ad292402f91b6abf76a)

    Etienne Carriere
     
  • Add configuration ION_DUMMY_UNMAPPED_HEAP to enable optional definition
    of a statically defined "unmapped" heap for test purpose: kernel config
    must provide the memory pool base address and byte size.

    Signed-off-by: Etienne Carriere
    Reviewed-by: Joakim Bech
    (cherry picked from commit 961993fde60ebd06715d1433f8eb265471a0f38c
    linaro repo https://github.com/linaro-swg/linux.git
    tag optee-v4.9-20171005)

    (cherry picked from commit 7289344f7a6b4ee1c863930110c18744b7e3a3cc)

    Etienne Carriere
     
  • OP-TEE/SDP (Secure Data Path) memory pools are created through ION
    secure type heap" from Allwinner. This change renames "secure" into
    "unmapped" as, from Linux point of view, the heap constraint is
    manipulating unmapped memory pools/buffers.

    "Unmapped" heap support is integrated in ION UAPI (actually this was
    the Allwinner initial proposal) and ION DT parsing support.

    Based in work from Sunny for Allwinner.

    Signed-off-by: Etienne Carriere
    Reviewed-by: Joakim Bech
    (cherry picked from commit 4a95713514ddc3d55d5df213513aeec5a3717243
    linaro repo https://github.com/linaro-swg/linux.git
    tag optee-v4.9-20171005)

    (cherry picked from commit 4cb0f7b04d70d3c475185a98094b556abfc4d68a)

    Etienne Carriere
     
  • Dumped from:
    https://github.com/loboris/OrangePI-Kernel/tree/master/linux-3.4
    0cc8d855adb
    Author: Sunny for Allwinner.

    Changes made on original "secure heap" implementation:
    - minor coding style: fix includes, empty lines and overlong lines,
    indentation, comment layout.
    - Original path modified the ion uapi. We do not attempt to modify
    uapi/ion.h. "secure" (or "domain") heaps are under ID
    ION_HEAP_TYPE_CUSTOM + 1 (legacy 'secure heap type' value).

    Signed-off-by: Etienne Carriere
    Reviewed-by: Joakim Bech
    (cherry picked from commit e31dd54997b050b6a6965d7cfbc795492256847c
    linaro repo https://github.com/linaro-swg/linux.git
    tag optee-v4.9-20171005)

    (cherry picked from commit 63160a1b0ac4e482ba9369614f225956cfd96af7)

    Etienne Carriere
     

10 Mar, 2018

1 commit


09 Mar, 2018

5 commits

  • This commit allows one to select if a firmware file is used, for loading
    the HDR10 tables, or a header. By default, this will be header file.
    This is until a proper way of passing the file from bootloader is found.

    Also, fix a minor bug which made parsing the tables over the actual data
    limit.

    Signed-off-by: Laurentiu Palcu
    (cherry picked from commit 825755bb599fba99e8ed16caa3738b8f66c3448d)

    Laurentiu Palcu
     
  • This commit adds HDR10 tables as a header. Using a FW file is
    problematic since the tables need to be available immediately after
    boot. After the rootfs is mounted, as is the case for loading a FW file,
    it's already too late if some conversion tables are needed.

    This usually happens if the output pipe is configured as YUV420.

    Signed-off-by: Laurentiu Palcu
    (cherry picked from commit dfb6fa2943119c2b371809f3b3b0463dc4ada3de)

    Laurentiu Palcu
     
  • It is better to clear wakeup flag in status register before enable
    wakeup interrupt bits, which can avoid system suspend fail during
    devices no irq suspend stage.

    Reviewed-by: Gao Pan
    Signed-off-by: Fugang Duan
    (cherry picked from commit e8e3a042847f7ca3b24103fdc7647f231a0b3cbf)

    Fugang Duan
     
  • Fix the cherry pick and merge issue by below commit on kernel 4.9:
    Fixes: 19b76fd012ce ("net: fec: add stop mode support for dts register set")

    Reviewed-by: Gao Pan
    Signed-off-by: Fugang Duan
    (cherry picked from commit f8e7532ae5c120c1ff8b827595c72fffcd447c2e)

    Fugang Duan
     
  • The commit:

    44c45128 - MLK-17634-1: drm: imx: dcss: send vblank event from ISR

    made some changes related to vblank handling. However, it looks like
    they were not robust enough and, sometimes, the flip events are not
    sent. This happens only when playing videos over Weston.

    This patch, effectively, reverts those changes.

    Signed-off-by: Laurentiu Palcu
    (cherry picked from commit 1319160b42390947864eb01e8385ea8e80087288)

    Laurentiu Palcu
     

08 Mar, 2018

3 commits


07 Mar, 2018

4 commits

  • The following commit:

    af01350 - MLK-17634-18: drm: imx: dcss: optimize context loading and DDR
    bus load

    introduced a regression. During my attempts to fix various green screen
    issues, I modified the DTRC start routine by enabling the other register
    bank, not the current one.

    Unfortunately, this was committed by mistake...

    Signed-off-by: Laurentiu Palcu
    (cherry picked from commit 2a6b73acb9c6f3a307d9a2d286991f16e4358514)

    Laurentiu Palcu
     
  • HDR metadata infoframe was sent only when doing a mode set. However,
    kmssink is using the same device as Weston and mode setting messes up
    with Weston's plane state.

    This patch allows for the HDR metadata to be sent out to the sink when
    the property is set. Hence, no need for a mode set.

    Also, the older functionality allowed only for 4K@60 to be used for HDR.
    However, HDR is not about resolution. This patch will also allow to go
    to HDR mode in other resolutions as well.

    Signed-off-by: Laurentiu Palcu
    (cherry picked from commit f9d81db38258f09d2abe2b8d092c17b444179d08)

    Laurentiu Palcu
     
  • Since DCSS was moved to use VIDEO2_PLL clock, HDMI phy clock is not used
    anymore. Hence, this delay here is not necessary. It's been added inside
    DCSS driver.

    Signed-off-by: Laurentiu Palcu
    (cherry picked from commit aeff3bf78ced6e27a262c9022e658f57f5239c23)

    Laurentiu Palcu
     
  • DCSS needs some time to stabilize after switching to a new pixel clock.
    All interrupts will delayed till the clock stabilizes and we'll end up
    getting warnings about VBLANK interrupt taking more than 50ms to arrive.

    This patch adds a 500ms delay after switching to a new clock. This will
    allow DCSS to stabilize before enabling CRTC and DTG channels.

    Signed-off-by: Laurentiu Palcu
    (cherry picked from commit 86764e4056be96583e1acebe0d31f5090dfb3822)

    Laurentiu Palcu
     

01 Mar, 2018

1 commit

  • The problem arised because of a combination of 2 commits:

    Commit 1:

    "2a70f32 - MLK-17232-2: drm: imx: dcss: ignore SB_PEND_DISP_ACTIVE
    interrupt"

    disabled the SB_PEND_DISP_ACTIVE interrupt because of a problem in SOC.
    However, it did not remove the flag from CTXLD_IRQ_ERROR macro.

    Commit 2:

    "f0e3911 - MLK-17459-1: drm: imx: dcss: change ctxld irq handling"

    moved the bottom half interrupt handling to top half. By doing that, the
    top half did not exit immediately if IRQ_COMPLETION condition was met
    and continued evaluating if any interrupts in CTXLD_IRQ_ERROR flags
    were triggered.

    This patch removes SB_PEND_DISP_ACTIVE interrupt flag from
    CTXLD_IRQ_ERROR macro.

    Signed-off-by: Laurentiu Palcu

    Laurentiu Palcu
     

28 Feb, 2018

20 commits

  • Signed-off-by: Laurentiu Palcu

    Laurentiu Palcu
     
  • This will lower the amount of ctxld entries sent, if configuration has
    not changed much. Also, disable channel 0 if alpha is 0 and global alpha
    is used. This will lower the DDR load, depending on graphics channel
    resolution.

    Signed-off-by: Laurentiu Palcu

    Laurentiu Palcu
     
  • Signed-off-by: Laurentiu Palcu

    Laurentiu Palcu
     
  • Signed-off-by: Laurentiu Palcu

    Laurentiu Palcu
     
  • Signed-off-by: Laurentiu Palcu

    Laurentiu Palcu
     
  • This patch adds basic HDR10 support. However, full support depends on
    subsequent patches.

    Signed-off-by: Laurentiu Palcu

    Laurentiu Palcu
     
  • The tables header is no longer necessary as dcss.fw file will be used
    from now on to store LUT and CSC tables.

    Signed-off-by: Laurentiu Palcu

    Laurentiu Palcu
     
  • If the HDR metadata proprety is set, then the metadata will be sent
    to the sink at the next mode set.

    Signed-off-by: Laurentiu Palcu

    Laurentiu Palcu
     
  • This clock is needed by HDR10 so this patch makes DCSS use VIDEO2_PLL2
    for the rest of the resolutions as well.

    Signed-off-by: Laurentiu Palcu

    Laurentiu Palcu
     
  • The SSCG PLL2 is identical to PLL1, hence make the rounding/setting
    functions reflect that.

    Signed-off-by: Laurentiu Palcu

    Laurentiu Palcu
     
  • Signed-off-by: Laurentiu Palcu

    Laurentiu Palcu
     
  • Signed-off-by: Laurentiu Palcu

    Laurentiu Palcu
     
  • Signed-off-by: Laurentiu Palcu

    Laurentiu Palcu
     
  • Signed-off-by: Laurentiu Palcu

    Laurentiu Palcu
     
  • This patch adds helper functions for YCBCR 420 handling.
    These functions do:
    - check if a given video mode is YCBCR 420 only mode.
    - check if a given video mode is YCBCR 420 also mode.

    V2: Added YCBCR functions as helpers in DRM layer, instead of
    keeping it in I915 layer.
    V3: Added handling for YCBCR-420 only modes too.
    V4: EXPORT_SYMBOL(drm_find_hdmi_output_type)
    V5: Addressed review comments from Danvet:
    - %s/drm_find_hdmi_output_type/drm_display_info_hdmi_output_type
    - %s/drm_can_support_ycbcr_output/drm_display_supports_ycbcr_output
    - %s/drm_can_support_this_ycbcr_output/
    drm_display_supports_this_ycbcr_output
    - pass drm_display_info instead of drm_connector for consistency
    - For drm_get_highest_quality_ycbcr_supported doc, move the variable
    description above, and then the function description.
    V6: Add only YCBCR420 helpers (Ville)
    V7: Addressed review comments from Ville
    - Remove cea_vic_valid() check.
    - Fix indentation.
    - Make input parameters to helpers, const.

    Cc: Ville Syrjala
    Cc: Jose Abreu
    Cc: Daniel Vetter
    Signed-off-by: Shashank Sharma
    Link: http://patchwork.freedesktop.org/patch/msgid/1499960000-9232-9-git-send-email-shashank.sharma@intel.com
    [vsyrjala: Fix sparse indentation warn]
    Signed-off-by: Ville Syrjälä

    Shashank Sharma
     
  • CEA-861-F spec adds ycbcr420 deep color support information
    in hf-vsdb block. This patch extends the existing hf-vsdb parsing
    function by adding parsing of ycbcr420 deep color support from the
    EDID and adding it into display information stored.

    V2: Rebase
    V3: Rebase
    V4: Moved definition of y420_dc_modes into this patch, where its used
    (Ville)
    V5: Optimize function, if(conditions) not reqd (Ville)
    V6: Rebase
    V7: Rebase

    Cc: Ville Syrjälä
    Cc: Jose Abreu
    Signed-off-by: Shashank Sharma
    Link: http://patchwork.freedesktop.org/patch/msgid/1499960000-9232-8-git-send-email-shashank.sharma@intel.com
    [vsyrjala: Fix sparse indentation warn]
    Signed-off-by: Ville Syrjälä

    Shashank Sharma
     
  • CEA-861-F adds ycbcr capability map block, for HDMI 2.0 sinks.
    This block contains a map of indexes of CEA modes, which can
    support YCBCR 420 output also. To avoid multiple parsing of same
    CEA block, let's parse the sink information and get this map, before
    parsing CEA modes.

    This patch moves the call to drm_add_display_info function, before the
    mode parsing block.

    V4: Introduced new patch in the series
    V5: Move this patch before 4:2:0 parsing patch (ville)
    Added r-b from Ville
    V6: Rebase
    V7: Rebase

    Reviewed-by: Ville Syrjälä
    Signed-off-by: Shashank Sharma
    Link: http://patchwork.freedesktop.org/patch/msgid/1499960000-9232-4-git-send-email-shashank.sharma@intel.com
    Signed-off-by: Ville Syrjälä

    Shashank Sharma
     
  • HDMI 2.0 spec adds support for YCBCR420 sub-sampled output.
    CEA-861-F adds two new blocks in EDID's CEA extension blocks,
    to provide information about sink's YCBCR420 output capabilities.

    These blocks are:

    - YCBCR420vdb(YCBCR 420 video data block):
    This block contains VICs of video modes, which can be sopported only
    in YCBCR420 output mode (Not in RGB/YCBCR444/422. Its like a normal
    SVD block, valid for YCBCR420 modes only.

    - YCBCR420cmdb(YCBCR 420 capability map data block):
    This block gives information about video modes which can support
    YCBCR420 output mode also (along with RGB,YCBCR444/422 etc) This
    block contains a bitmap index of normal svd videomodes, which can
    support YCBCR420 output too.
    So if bit 0 from first vcb byte is set, first video mode in the svd
    list can support YCBCR420 output too. Bit 1 means second video mode
    from svd list can support YCBCR420 output too, and so on.

    This patch adds two bitmaps in display's hdmi_info structure, one each
    for VCB and VDB modes. If the source is HDMI 2.0 capable, this patch
    adds:
    - VDB modes (YCBCR 420 only modes) in connector's mode list, also makes
    an entry in the vdb_bitmap per vic.
    - VCB modes (YCBCR 420 also modes) only entry in the vcb_bitmap.

    Cc: Ville Syrjala
    Cc: Jose Abreu
    Cc: Emil Velikov

    V2: Addressed
    Review comments from Emil:
    - Use 1ULL<< 64 modes in capability map block.
    - Use y420cmdb in function names and macros while dealing with vcb
    to be aligned with spec.
    - Move the display information parsing block ahead of mode parsing
    blocks.

    V3: Addressed design/review comments from Ville
    - Do not add flags in video modes, else we have to expose them to user
    - There should not be a UABI change, and kernel should detect the
    choice of the output based on type of mode, and the bitmaps.
    - Use standard bitops from kernel bitmap header, instead of calculating
    bit positions manually.

    V4: Addressed review comments from Ville:
    - s/ycbcr_420_vdb/y420vdb
    - s/ycbcr_420_vcb/y420cmdb
    - Be less verbose on description of do_y420vdb_modes
    - Move newmode variable in the loop scope.
    - Use svd_to_vic() to get a VIC, instead of 0x7f
    - Remove bitmap description for CMDB modes & VDB modes
    - Dont add connector->ycbcr_420_allowed check for cmdb modes
    - Remove 'len' variable, in is_y420cmdb function, which is used
    only once
    - Add length check in is_y420vdb function
    - Remove unnecessary if (!db) check in function parse_y420cmdb_bitmap
    - Do not add print about YCBCR 420 modes
    - Fix indentation in few places
    - Move ycbcr420_dc_modes in next patch, where its used
    - Add a separate patch for movement of drm_add_display_info()

    V5: Addressed review comments from Ville:
    - Add the patch which cleans up the current EXTENDED_TAG usage
    - Make y420_cmdb_map u64
    - Do not block ycbcr420 modes while parsing the EDID, rather
    add a separate helper function to prune ycbcr420-only modes from
    connector's probed modes.

    V6: Rebase
    V7: Move this patch after the 420_only validation patch (Ville)
    V8: Addressed review comments from Ville
    - use cea_vic_valid check before adding cmdb/vdb modes
    - add check for i < 64 while adding cmdb modes
    - use 1ULL while checking bitmap

    Signed-off-by: Shashank Sharma
    Link: http://patchwork.freedesktop.org/patch/msgid/1500028426-14883-1-git-send-email-shashank.sharma@intel.com
    [vsyrjala: Fix checkpatch complaints and indentation]
    Signed-off-by: Ville Syrjälä

    Shashank Sharma
     
  • CEA-861-F introduces extended tag codes for EDID extension blocks,
    which indicates the actual type of the data block. The code for
    using exteded tag is 0x7, whereas in the existing code, the
    corresponding macro is named as "VIDEO_CAPABILITY_BLOCK"

    This patch renames the macro and usages from "VIDEO_CAPABILITY_BLOCK"
    to "USE_EXTENDED_TAG"

    V2: Add extended tag code check for video capabilitiy block (ville)
    V3: Ville:
    - Use suggested names for macros
    - Check the block length first, before checking the extended tag
    V4: Fix commit message (David)
    V5: Introduced this patch into HDMI-YCBCR-output series
    V6: Rebase
    V7: Rebase

    Cc: Ville Syrjala
    Signed-off-by: Shashank Sharma
    Link: http://patchwork.freedesktop.org/patch/msgid/1499960000-9232-5-git-send-email-shashank.sharma@intel.com
    Signed-off-by: Ville Syrjälä

    Shashank Sharma
     
  • YCBCR420 modes are supported only on HDMI 2.0 capable sources.
    This patch adds:
    - A drm helper to validate YCBCR420-only mode on a particular
    connector. This function will help pruning the YCBCR420-only
    modes from the connector's modelist.
    - A bool variable (ycbcr_420_allowed) in the drm connector structure.
    While handling the EDID from HDMI 2.0 sinks, its important to know
    if the source is capable of handling YCBCR420 output, so that no
    YCBCR 420 modes will be listed for sources which can't handle it.
    A driver should set this variable if it wants to see YCBCR420 modes
    in the modedb.

    V5: Introduced the patch in series.
    V6: Squashed two patches (validate YCBCR420 and add YCBCR420
    identifier)
    V7: Addressed review comments from Vile:
    - Move this patch before we add 420 modes from EDID.
    - No need for drm_valid_cea_vic() check, function back to non-static.
    - Update MODE_STATUS with NO_420 condition.
    - Introduce y420_vdb_modes variable in this patch

    Cc: Ville Syrjala
    Signed-off-by: Shashank Sharma
    Link: http://patchwork.freedesktop.org/patch/msgid/1499960000-9232-6-git-send-email-shashank.sharma@intel.com
    [vsyrjala: Drop the now bogus EXPORT_SYMBOL(drm_valid_cea_vic)]
    Signed-off-by: Ville Syrjälä

    Shashank Sharma