1. 16 Jul, 2016 40 commits
    • Rob Clark's avatar
      drm/msm: add madvise ioctl · 4cd33c48
      Rob Clark authored
      Doesn't do anything too interesting until we wire up shrinker.  Pretty
      much lifted from i915.
      Signed-off-by: default avatarRob Clark <robdclark@gmail.com>
      4cd33c48
    • Rob Clark's avatar
      drm/msm: use mutex_lock_interruptible for submit ioctl · b5b4c264
      Rob Clark authored
      Be kinder to things that do lots of signal handling (ie. Xorg)
      Signed-off-by: default avatarRob Clark <robdclark@gmail.com>
      b5b4c264
    • Archit Taneja's avatar
      dt-bindings: msm/mdp: Provide details on MDP interface ports · b137bb4b
      Archit Taneja authored
      The MDP4/5 DT node now contains a list of ports that describe how it
      connects to external encoder interfaces like DSI and HDMI. These follow
      the standard of_graph bindings, and allow us to get rid of the 'connectors'
      phandle that contained a list of all the external encoders connected to
      MDP.
      Acked-by: default avatarRob Herring <robh@kernel.org>
      Signed-off-by: default avatarArchit Taneja <architt@codeaurora.org>
      Signed-off-by: default avatarRob Clark <robdclark@gmail.com>
      b137bb4b
    • Archit Taneja's avatar
      dt-bindings: msm/mdp5: Add MDP5 display bindings · fd7ef706
      Archit Taneja authored
      Add a new doc for DT bindings for platforms that contain MDP5 display
      controller hardware. The doc describes bindings for the top level
      MDSS wrapper hardware and MDP5 itself.
      
      Add an example for the bindings as found in MSM8916.
      Acked-by: default avatarRob Herring <robh@kernel.org>
      Signed-off-by: default avatarArchit Taneja <architt@codeaurora.org>
      Signed-off-by: default avatarRob Clark <robdclark@gmail.com>
      fd7ef706
    • Archit Taneja's avatar
      dt-bindings: msm/mdp4: Create a separate binding doc for MDP4 · acc58caa
      Archit Taneja authored
      MDP4 and MDP5 vary a bit in terms of device hierarchy and the properties
      they require. Rename the binding doc to mdp4.txt and remove MDP5 specific
      pieces. A separate document will be created for MDP5
      Acked-by: default avatarRob Herring <robh@kernel.org>
      Signed-off-by: default avatarArchit Taneja <architt@codeaurora.org>
      Signed-off-by: default avatarRob Clark <robdclark@gmail.com>
      acc58caa
    • Archit Taneja's avatar
      drm/msm/dsi: Don't get DSI index from DT · 32280d66
      Archit Taneja authored
      The DSI host and PHY driver currently expects the DT bindings to provide
      custom properties "qcom,dsi-host-index" and "qcom,dsi-phy-index" so that
      the driver can identify which DSI instance it is.
      
      The binding isn't acceptable, but the driver still needs to figure out
      what its instance id. This is now done by storing the mmio starting
      addresses for each DSI instance in every SoC version in the driver. The
      driver then identifies the index number by trying to match the stored
      address with comparing the resource start address we get from DT.
      
      We don't have compatible strings for DSI PHY on each SoC, but only the
      DSI PHY type. We only support one SoC version for each PHY type, so we
      get away doing the same thing above for the PHY driver. We can revisit
      this when we support two SoCs with the same DSI PHY.
      Signed-off-by: default avatarArchit Taneja <architt@codeaurora.org>
      Signed-off-by: default avatarRob Clark <robdclark@gmail.com>
      32280d66
    • Archit Taneja's avatar
      drm/msm/mdp5: Update compatible strings for MDSS/MDP5 · 96a611b5
      Archit Taneja authored
      Introduce new compatible strings for the top level MDSS wrapper device,
      and the MDP5 device.
      
      Previously, the "qcom,mdp5" and "qcom,mdss_mdp" compatible strings
      were used to match the top level platform_device (which was also tied
      to the top level drm_device struct). Now, these strings are used
      to match the MDP5 platform device.
      
      Use "qcom,mdss" as the compatible string for top level MDSS device.
      This is now used to match the top level platform_device (which is
      tied to the drm_device struct).
      Signed-off-by: default avatarArchit Taneja <architt@codeaurora.org>
      Signed-off-by: default avatarRob Clark <robdclark@gmail.com>
      96a611b5
    • Archit Taneja's avatar
      drm/msm: Drop the gpu binding · dc3ea265
      Archit Taneja authored
      The driver currently identifies the GPU components it needs by parsing
      a phandle list from the 'gpus' DT property.
      
      This isn't the right binding to go with. So, for now, just search all
      device nodes and find the gpu node we need by parsing a list of
      compatible strings.
      
      Once we know how to link the kms and gpu drivers, we'll drop this method
      and use the correct binding.
      Signed-off-by: default avatarArchit Taneja <architt@codeaurora.org>
      Signed-off-by: default avatarRob Clark <robdclark@gmail.com>
      dc3ea265
    • Archit Taneja's avatar
      drm/msm: Add components for MDP5 · 54011e26
      Archit Taneja authored
      For MDP5 based platforms, the master device isn't the MDP5 platform
      device, but the top level MDSS device, which is a parent to MDP5 and
      interface (DSI, HDMI, eDP etc) devices.
      
      In order to add components on MDP5 platforms, we first need to populate
      the MDSS children, locate the MDP5 child, and then parse its ports to
      get the display interfaces.
      Signed-off-by: default avatarArchit Taneja <architt@codeaurora.org>
      Signed-off-by: default avatarRob Clark <robdclark@gmail.com>
      54011e26
    • Archit Taneja's avatar
      drm/msm: Add display components by parsing MDP ports · 812070eb
      Archit Taneja authored
      The kms driver currently identifies all the mdss components it needs by
      parsing a phandle list from the 'connectors' DT property.
      
      Instead of this, describe a list of ports that the MDP hardware provides
      to the external world. These ports are linked to external encoder
      interfaces such as DSI, HDMI. These are also the subcomponent devices
      that we need add. This description of ports complies with the generic
      graph bindings.
      
      The LVDS port is a special case since it is a part of MDP4 itself, and
      its output connects directly to the LVDS panel. In this case, we don't
      try to add it as a component.
      Signed-off-by: default avatarArchit Taneja <architt@codeaurora.org>
      Signed-off-by: default avatarRob Clark <robdclark@gmail.com>
      812070eb
    • Archit Taneja's avatar
      drm/msm: Create separate funcs for adding display/gpu components · 7d526fcf
      Archit Taneja authored
      Simplifies some of the code that we'll add later.
      Signed-off-by: default avatarArchit Taneja <architt@codeaurora.org>
      Signed-off-by: default avatarRob Clark <robdclark@gmail.com>
      7d526fcf
    • Archit Taneja's avatar
      drm/msm/mdp5: Add missing mdp5_enable/disable calls · 7c8f0235
      Archit Taneja authored
      Since runtime PM isn't implemented yet, we need to call
      mdp5_enable/disable in a few more places. These would later be
      replaced by runtime PM get/put calls.
      Signed-off-by: default avatarArchit Taneja <architt@codeaurora.org>
      Signed-off-by: default avatarRob Clark <robdclark@gmail.com>
      7c8f0235
    • Archit Taneja's avatar
      drm/msm: Call pm_runtime_enable/disable for newly created devices · cd792726
      Archit Taneja authored
      With the new device hierarchy for MDP5, we need to enable runtime PM
      for both the toplevel MDSS device and the MDP5 device itself. Enable
      runtime PM for the new devices.
      
      Since MDP4 and MDP5 now have different places where runtime PM is
      enabled, remove the previous pm_runtime_enable/disable calls, and
      squash them in the respective kms drivers.
      
      The new device hierarchy (as expressed in the DT bindings) has the GDSC
      tied only to the MDSS wrapper device. This GDSC needs to be enabled for
      accessing any register in the MDSS sub-blocks. Once every driver is
      runtime adapted, the GDSC will be enabled when any sub-block device
      calls runtime_get because of the parent-child relationship with MDSS.
      
      Until then, we call pm_runtime_get_sync() once for the MDSS device to
      ensure the GDSC is never disabled. This will be removed once all the
      drivers are runtime PM adapted.
      
      The error handling paths become a bit tricky when we call these runtime
      PM funcs. There doesn't seem to be any helper that checks if runtime PM
      is enabled already. Add bool variables in mdp4_kms/mdp5_kms structs to
      check if the driver had managed to call pm_runtime_enable before bailing
      out.
      Signed-off-by: default avatarArchit Taneja <architt@codeaurora.org>
      Signed-off-by: default avatarRob Clark <robdclark@gmail.com>
      cd792726
    • Archit Taneja's avatar
      drm/msm/mdp5: Update the register offsets of MDP5 sub-blocks · 031d63dd
      Archit Taneja authored
      The MDP5 sub-block register offsets are relative to the top level
      MDSS register address.
      
      Now that we have the start of MDP5 register address space, provide
      the offsets relative to that. This involves subtracting the offsets
      with 0x1000 or 0x100 depending on the MDP5 version.
      Signed-off-by: default avatarArchit Taneja <architt@codeaurora.org>
      Signed-off-by: default avatarRob Clark <robdclark@gmail.com>
      031d63dd
    • Archit Taneja's avatar
      drm/msm/mdp5: Use updated MDP5 register names · 7b59c7e4
      Archit Taneja authored
      Since MDSS registers were stuffed within the the MDP5 register
      space, we had an __offset_MDP() macro to identify the offset
      between the start of MDSS and MDP5 address spaces. This offset
      macro expected a MDP index argument, which didn't make much
      sense since we don't have multiple MDPs.
      
      The offset is no longer needed now that we have devices for the 2
      different register address spaces. Also, remove the "REG_MDP5_MDP_"
      prefix to "REG_MDP5_".
      
      Update the generated headers in mdp5.xml.h
      
      We generally update headers as a separate patch, but we need to
      do these together to prevent breaking build.
      Signed-off-by: default avatarArchit Taneja <architt@codeaurora.org>
      Signed-off-by: default avatarRob Clark <robdclark@gmail.com>
      7b59c7e4
    • Archit Taneja's avatar
      drm/msm/mdp5: Remove old kms init/destroy funcs · 392ae6e0
      Archit Taneja authored
      With the new kms_init/destroy funcs in place for MDP5, we can get rid of
      the old kms funcs. Some members of the mdp5_kms struct also become
      redundant, so we remove those too.
      Signed-off-by: default avatarArchit Taneja <architt@codeaurora.org>
      Signed-off-by: default avatarRob Clark <robdclark@gmail.com>
      392ae6e0
    • Archit Taneja's avatar
      drm/msm/mdp5: Use the new hierarchy and drop old irq management · 0a6030d2
      Archit Taneja authored
      Call msm_mdss_init in msm_drv to set up top level registers/irq line.
      Start using the new kms_init2/destroy2 funcs to inititalize MDP5 KMS.
      
      With the MDSS interrupt and irqdomain set up, the old MDP5 irq code
      can be dropped.
      
      The mdp5_hw_init kms func now uses the platform device tied to MDP5
      instead of the one tied to the drm_device/MDSS.
      Signed-off-by: default avatarArchit Taneja <architt@codeaurora.org>
      Signed-off-by: default avatarRob Clark <robdclark@gmail.com>
      0a6030d2
    • Archit Taneja's avatar
      drm/msm/mdp5: Prepare new kms_init funcs · aec095ec
      Archit Taneja authored
      With MDP5 as a new device, we need to do less for MDP when initializing
      modeset after all the components are bound.
      
      Create mdp5_kms_init2/destroy2 funcs that inits modeset. These will
      eventually replace the older kms_init/destroy funcs.
      
      In the new kms_init2, the platform_device used is the one corresponding
      to the new MDP5 platform_device. The new change here is that the irq is
      now retrieved using irq_of_parse_and_map(), since MDP5 is a child interrupt
      of the MDSS interrupt controller.
      Signed-off-by: default avatarArchit Taneja <architt@codeaurora.org>
      Signed-off-by: default avatarRob Clark <robdclark@gmail.com>
      aec095ec
    • Archit Taneja's avatar
      drm/msm/mdp5: Create a separate MDP5 device · 1dd0a0b1
      Archit Taneja authored
      In order to have a tree-like device hierarchy between MDSS and its
      sub-blocks (MDP5, DSI, HDMI, eDP etc), we need to create a separate
      device/driver for MDP5. Currently, MDP5 and MDSS are squashed
      together are are tied to the top level platform_device, which is
      also the one used to create drm_device.
      
      The mdp5_kms_init code is split into two parts. The part where device
      resources are allocated are associated with the MDP5 driver's probe,
      the rest is executed later when we initialize modeset.
      
      With this change, unlike MDP4, the MDP5 platform_device isn't tied to
      the top level drm_device anymore. The top level drm_device is now
      associated with a platform device that corresponds to MDSS wrapper
      hardware.
      
      Create mdp5_init/destroy funcs that will be used by the MDP5 driver
      probe/remove. Use the HW_VERSION register in the MDP5 register address
      space. Both the MDSS and MDP VERSION registers give out identical
      version info.
      
      The older mdp5_kms_init code is left as is for now, this would be removed
      later when we have all the pieces to support the new device hierarchy.
      Signed-off-by: default avatarArchit Taneja <architt@codeaurora.org>
      Signed-off-by: default avatarRob Clark <robdclark@gmail.com>
      1dd0a0b1
    • Archit Taneja's avatar
      drm/msm/mdp5: Add MDSS top level driver · 990a4007
      Archit Taneja authored
      SoCs that contain MDP5 have a top level wrapper called MDSS that manages
      clocks, power and irq for the sub-blocks within it.
      
      Currently, the MDSS portions are stuffed into the MDP5 driver. This makes
      it hard to represent the DT bindings in the correct way. We create a top
      level MDSS helper that handles these parts. This is essentially moving out
      some of the mdp5_kms irq code and MDSS register space and keeping it as a
      separate entity. We haven't given any clocks to the top level MDSS yet,
      but a AHB clock would be added in the future to access registers.
      
      One thing to note is that the resources allocated by this helper are
      tied to the top level platform_device (the one that allocates the
      drm_device struct too). This device would be the parent to MDSS
      sub-blocks like MDP5, DSI, eDP etc.
      Signed-off-by: default avatarArchit Taneja <architt@codeaurora.org>
      Signed-off-by: default avatarRob Clark <robdclark@gmail.com>
      990a4007
    • Archit Taneja's avatar
      drm/msm: Get irq number within kms driver itself · a2b3a557
      Archit Taneja authored
      The driver gets the irq number using platform_get_irq on the main kms
      platform device. This works fine since both MDP4 and MDP5 currently
      have a flat device hierarchy. The platform device tied with the
      drm_device points to the MDP DT node in both cases.
      
      This won't work when MDP5 supports a tree-like hierarchy. In this
      case, the platform device tied to the top level drm_device is the
      MDSS DT node, and the irq we need for KMS is the one generated by
      MDP5, not MDSS.
      
      Get the irq number from the MDP4/5 kms driver itself. Each driver
      can later provide the irq number based on what device hierarchy it
      uses.
      
      While we're at it, call drm_irq_install only when we have a valid KMS
      driver.
      Signed-off-by: default avatarArchit Taneja <architt@codeaurora.org>
      Signed-off-by: default avatarRob Clark <robdclark@gmail.com>
      a2b3a557
    • Archit Taneja's avatar
      drm/msm: Remove unused fields · 7429d860
      Archit Taneja authored
      These aren't used. Probably left overs when driver was refactored to
      support both MDP4 and MDP5.
      Signed-off-by: default avatarArchit Taneja <architt@codeaurora.org>
      Signed-off-by: default avatarRob Clark <robdclark@gmail.com>
      7429d860
    • Archit Taneja's avatar
      drm/msm: Drop the id_table in platform_driver · 6a5625d8
      Archit Taneja authored
      This isn't needed as we only support OF.
      Signed-off-by: default avatarArchit Taneja <architt@codeaurora.org>
      Signed-off-by: default avatarRob Clark <robdclark@gmail.com>
      6a5625d8
    • Archit Taneja's avatar
      dt-bindings: msm/dsi: Some binding doc cleanups · a3c463e0
      Archit Taneja authored
      Some cleanups:
      
      - Use simpler names for DT nodes in the example
      - Use references instead of dumping Document links everywhere
      Acked-by: default avatarRob Herring <robh@kernel.org>
      Signed-off-by: default avatarArchit Taneja <architt@codeaurora.org>
      Signed-off-by: default avatarRob Clark <robdclark@gmail.com>
      a3c463e0
    • Archit Taneja's avatar
      dt-bindings: msm/dsi: Add assigned clocks bindings · 9097209d
      Archit Taneja authored
      The PLL in the DSI PHY block generates 2 clock outputs (Byte and Pixel
      clocks) that are fed into the Multimedia Clock Controller (MMCC). The MMCC
      uses these as source clocks for some of its RCGs to generate clocks that
      finally feed to the DSI host controller.
      
      Use the assigned clocks DT bindings to set up the MMCC RCGs that feed to
      the DSI host. Use the DSI PHY provided clocks to set up the parents
      of these assigned clocks.
      Acked-by: default avatarRob Herring <robh@kernel.org>
      Signed-off-by: default avatarArchit Taneja <architt@codeaurora.org>
      Signed-off-by: default avatarRob Clark <robdclark@gmail.com>
      9097209d
    • Archit Taneja's avatar
      dt-bindings: msm/dsi: Modify port and PHY bindings · 8042b778
      Archit Taneja authored
      The DSI node now has two ports that describe the connection between the
      MDP interface output and the DSI input, and the connection between the DSI
      output and the connected panel/bridge. Update the properties and the
      example.
      
      Also, use generic PHY bindings instead of the custom one.
      Acked-by: default avatarRob Herring <robh@kernel.org>
      Signed-off-by: default avatarArchit Taneja <architt@codeaurora.org>
      Signed-off-by: default avatarRob Clark <robdclark@gmail.com>
      8042b778
    • Archit Taneja's avatar
      dt-bindings: msm/dsi: Use standard data lanes binding · cb9b08e9
      Archit Taneja authored
      The "qcom,data-lane-map" binding mentioned in the document is changed to
      the more generic "data-lanes" property specified in:
      
      Documentation/devicetree/bindings/media/video-interfaces.txt
      
      The previous binding expressed physical to logical data lane mappings,
      the standard "data-lanes" binding uses logical to physical data lane
      mappings. Update the docs to reflect this change. The example had the
      property incorrectly named as "lanes", update this too.
      
      The MSM DSI DT bindings aren't used anywhere at the moment, so
      it's okay to update this property.
      Acked-by: default avatarRob Herring <robh@kernel.org>
      Signed-off-by: default avatarArchit Taneja <architt@codeaurora.org>
      Signed-off-by: default avatarRob Clark <robdclark@gmail.com>
      cb9b08e9
    • Archit Taneja's avatar
      drm/msm/dsi: Use a standard DT binding for data lanes · 60282cea
      Archit Taneja authored
      A more standard DT binding describing data lanes already exists here:
      Documentation/devicetree/bindings/media/video-interfaces.txt
      
      Use this binding instead of "qcom,data-lane-map". One difference
      in the standard binding w.r.t to the existing binding is that it
      provides a logical to physical mapping instead of the other way
      round. Tweak the code to translate the data the way we want it.
      
      The MSM DSI DT bindings aren't used anywhere at the moment, so
      it's okay to update this property.
      Signed-off-by: default avatarArchit Taneja <architt@codeaurora.org>
      Signed-off-by: default avatarRob Clark <robdclark@gmail.com>
      60282cea
    • Archit Taneja's avatar
      drm/msm/dsi: Use generic PHY bindings · 69696ea0
      Archit Taneja authored
      The DSI host links to the DSI PHY device using a custom binding. Switch to
      the generic PHY bindings. The DSI PHY driver itself doesn't use the common
      PHY framework for now.
      Signed-off-by: default avatarArchit Taneja <architt@codeaurora.org>
      Signed-off-by: default avatarRob Clark <robdclark@gmail.com>
      69696ea0
    • Archit Taneja's avatar
      drm/msm/dsi: Modify port parsing · b9ac76f6
      Archit Taneja authored
      The DSI interface is going to have two ports defined in its device node.
      The first port is always going to be the link between the MDP output
      and the input to DSI, the second port is going to be the link between
      the DSI output and the connected panel/bridge:
      
       -----           -----           -------
      | MDP | ------> | DSI | ------> | Panel |
       -----           -----           -------
              (Port 0)       (Port 1)
      
      Until now, there was only one Port representing the output. Update the
      DSI host driver such that it parses Port #1 for a connected device.
      Signed-off-by: default avatarArchit Taneja <architt@codeaurora.org>
      Signed-off-by: default avatarRob Clark <robdclark@gmail.com>
      b9ac76f6
    • Archit Taneja's avatar
      dt-bindings: msm/mdp: Fix up clock related bindings · 1f238536
      Archit Taneja authored
      Address some issues wiht clock related bindings. It's okay to change these
      since these bindings aren't used in any dtsi files until now.
      
      MDP5:
      - Don't ask for source clock
      
      MDP4:
      - Give a better name for MDP_TV_CLK
      - Remove TV_SRC
      - Add MDP_AXI_CLK
      Acked-by: default avatarRob Herring <robh@kernel.org>
      Signed-off-by: default avatarArchit Taneja <architt@codeaurora.org>
      Signed-off-by: default avatarRob Clark <robdclark@gmail.com>
      1f238536
    • Archit Taneja's avatar
      drm/msm/mdp4: Clean up some MDP4 clocks · db9e44fb
      Archit Taneja authored
      Fix some issues with MDP4 clocks:
      
      - mdp4_dtv_encoder tries to get "src_clk", which is a RCG(TV_SRC) in
        MSM8960 and APQ8064. This isn't something the driver should access or
        configure. Instead of this, configure the "mdp_clk" (MDP_TV_CLK), a
        branch clock in MMCC that has the TV_SRC as its parent. Setting
        rate/enabling the "mdp_clk" will eventually configure "src_clk", which
        is what we want.
      - Rename "mdp_clk" to "tv_clk" because that's slightly less confusing.
      - Rename "mdp_axi_clk" to "bus_clk" because that's what we do elsewhere
        too.
      Signed-off-by: default avatarArchit Taneja <architt@codeaurora.org>
      Signed-off-by: default avatarRob Clark <robdclark@gmail.com>
      db9e44fb
    • Archit Taneja's avatar
      drm/msm/mdp5: Don't get source of MDP core clock · 0e0d9dfe
      Archit Taneja authored
      The driver expects DT to provide the parent to MDP core clock. The only
      operation done to the parent clock is to set a rate. This can be
      achieved by setting the rate on the core clock itsef. Don't try to
      get the parent clock anymore.
      Signed-off-by: default avatarArchit Taneja <architt@codeaurora.org>
      Signed-off-by: default avatarRob Clark <robdclark@gmail.com>
      0e0d9dfe
    • Archit Taneja's avatar
      drm/msm: Print the correct virtual addresses in map/unmap funcs · cbe4295a
      Archit Taneja authored
      The msm_iommu_map/unmap funcs have debug prints to show the list of
      VA:PA mappings. Use the correct variable to print the VAs.
      Signed-off-by: default avatarArchit Taneja <architt@codeaurora.org>
      Signed-off-by: default avatarRob Clark <robdclark@gmail.com>
      cbe4295a
    • Archit Taneja's avatar
      drm/msm: Use correct type for physical addresses · 69be1f4e
      Archit Taneja authored
      The u32 type used to pass the physical addresses to iommu_map can't
      accommodate 64 bit addresses. Move to dma_addr_t to ensure wrong
      addresses aren't provided to the IOMMU driver.
      Signed-off-by: default avatarArchit Taneja <architt@codeaurora.org>
      Signed-off-by: default avatarRob Clark <robdclark@gmail.com>
      69be1f4e
    • Dave Airlie's avatar
      Merge tag 'drm-vc4-next-2016-07-15' of https://github.com/anholt/linux into drm-next · 2d635fde
      Dave Airlie authored
      This pull request brings in vc4 shader validation for branching,
      allowing GLSL shaders with non-unrolled loops.
      
      * tag 'drm-vc4-next-2016-07-15' of https://github.com/anholt/linux:
        drm/vc4: Fix a "the the" typo in a comment.
        drm/vc4: Fix definition of QPU_R_MS_REV_FLAGS
        drm/vc4: Add a getparam to signal support for branches.
        drm/vc4: Add support for branching in shader validation.
        drm/vc4: Add a bitmap of branch targets during shader validation.
        drm/vc4: Move validation's current/max ip into the validation struct.
        drm/vc4: Add a getparam ioctl for getting the V3D identity regs.
      2d635fde
    • Dave Airlie's avatar
      Merge tag 'drm/panel/for-4.8-rc1' of git://anongit.freedesktop.org/tegra/linux into drm-next · ec2174fe
      Dave Airlie authored
      drm/panel: Changes for v4.8-rc1
      
      This set of changes contains a few cleanups for existing panels as well
      as improved handling of certain backlights. In addition there's support
      for a few new simple panels.
      
      * tag 'drm/panel/for-4.8-rc1' of git://anongit.freedesktop.org/tegra/linux:
        drm/panel: simple: Add support for Starry KR122EA0SRA panel
        dt-bindings: Add Starry KR122EA0SRA panel binding
        dt-bindings: Add vendor prefix for Starry
        dt-bindings: display: Add Sharp LQ101K1LY04 panel binding
        drm/panel: simple: Add support for Sharp LQ101K1LY04
        drm/panel: simple: Add support for LG LP079QX1-SP0V panel
        dt-bindings: Add support for LG LP079QX1-SP0V panel
        drm/panel: simple: Add support for Sharp LQ123P1JX31 panel
        dt-bindings: Add Sharp LQ123P1JX31 panel binding
        drm/panel: simple: Add support for Samsung LSN122DL01-C01 panel
        dt-bindings: Add Samsung LSN122DL01-C01 panel binding
        drm/panel: simple: Add support for LG LP097QX1-SPA1 panel
        dt-bindings: Add LG LP097QX1-SPA1 panel binding
        drm/panel: simple: Update backlight state property
        drm/panel: simple: Remove gratuitous blank line
        drm/panel: simple: Fix a couple of physical sizes
      ec2174fe
    • Dave Airlie's avatar
      Merge tag 'drm/tegra/for-4.8-rc1' of git://anongit.freedesktop.org/tegra/linux into drm-next · 877fa9a4
      Dave Airlie authored
      drm/tegra: Changes for v4.8-rc1
      
      This set of changes contains a bunch of cleanups to the host1x driver as
      well as the addition of a pin controller for DPAUX, which is required by
      boards to configure the DPAUX pads in AUX mode (for DisplayPort) or I2C
      mode (for HDMI and DDC).
      
      Included is also a bit of rework of the SOR driver in preparation to add
      DisplayPort support as well as some refactoring and cleanup.
      
      Finally, all output drivers are converted to runtime PM, which greatly
      simplifies the handling of clocks and resets.
      
      * tag 'drm/tegra/for-4.8-rc1' of git://anongit.freedesktop.org/tegra/linux: (35 commits)
        drm/tegra: sor: Reject HDMI 2.0 modes
        drm/tegra: sor: Prepare for generic PM domain support
        drm/tegra: dsi: Prepare for generic PM domain support
        drm/tegra: sor: Make XBAR configurable per SoC
        drm/tegra: sor: Use sor1_src clock to set parent for HDMI
        dt-bindings: display: tegra: Add source clock for SOR
        drm/tegra: sor: Implement sor1_brick clock
        drm/tegra: sor: Implement runtime PM
        drm/tegra: hdmi: Implement runtime PM
        drm/tegra: dsi: Implement runtime PM
        drm/tegra: dc: Implement runtime PM
        drm/tegra: hdmi: Enable audio over HDMI
        drm/tegra: sor: Do not support deep color modes
        drm/tegra: sor: Extract tegra_sor_mode_set()
        drm/tegra: sor: Split out tegra_sor_apply_config()
        drm/tegra: sor: Rename tegra_sor_calc_config()
        drm/tegra: sor: Factor out tegra_sor_set_parent_clock()
        drm/tegra: dpaux: Add pinctrl support
        dt-bindings: Add bindings for Tegra DPAUX pinctrl driver
        drm/tegra: Prepare DPAUX for supporting generic PM domains
        ...
      877fa9a4
    • Dave Airlie's avatar
      Merge branch 'upstream/analogix-dp-20160705' of git://github.com/yakir-Yang/linux into drm-next · e2b80bac
      Dave Airlie authored
      Please consider merging this tag, which contains the v4 misc fixes and add RK3399 eDP support patches[0] I sent on 2016-06-29, rebased onto v4.7-rc5.
      
      * 'upstream/analogix-dp-20160705' of git://github.com/yakir-Yang/linux:
        dt-bindings: analogix_dp: rockchip: correct the wrong compatible name
        drm/rockchip: analogix_dp: introduce the pclk for grf
        drm/bridge: analogix_dp: fix no drm hpd event when panel plug in
        drm/rockchip: analogix_dp: update the comments about why need to hardcode VOP output mode
        drm/rockchip: analogix_dp: correct the connector display color format and bpc
        drm/bridge: analogix_dp: passing the connector as an argument in .get_modes()
        drm/rockchip: analogix_dp: make panel detect to an optional action
        drm/rockchip: analogix_dp: add rk3399 eDP support
        drm/bridge: analogix_dp: some rockchip chips need to flip REF_CLK bit setting
        drm/bridge: analogix_dp: correct the register bit define error in ANALOGIX_DP_PLL_REG_1
        drm/rockchip: analogix_dp: split the lcdc select setting into device data
      e2b80bac
    • Dave Airlie's avatar
      Merge tag 'imx-drm-next-2016-07-14' of git://git.pengutronix.de/git/pza/linux into drm-next · d3c35337
      Dave Airlie authored
      imx-drm updates
      
      - atomic mode setting conversion
      - replace DMFC FIFO allocation mechanism with a fixed allocation
        that is good enough for all cases
      - support for external bridges connected to parallel-display
      - improved error handling in imx-ldb, imx-tve, and parallel-display
      - some code cleanup in imx-tve
      
      * tag 'imx-drm-next-2016-07-14' of git://git.pengutronix.de/git/pza/linux:
        drm/imx: parallel-display: add bridge support
        drm/imx: parallel-display: check return code from of_get_drm_display_mode()
        gpu: ipu-v3: ipu-dc: don't bug out on invalid bus_format
        drm/imx: imx-tve: fix the error message
        drm/imx: imx-tve: remove unneeded 'or' operation
        drm/imx: imx-tve: check the value returned by regulator_set_voltage()
        drm/imx: imx-ldb: check return code on panel attach
        drm/imx: turn remaining container_of macros into inline functions
        drm/imx: store internal bus configuration in crtc state
        drm/imx: remove empty mode_set encoder callbacks
        drm/imx: atomic phase 3 step 3: Advertise DRIVER_ATOMIC
        drm/imx: atomic phase 3 step 2: Legacy callback fixups
        drm/bridge: dw-hdmi: Remove the legacy drm_connector_funcs structure
        drm/imx: atomic phase 3 step 1: Use atomic configuration
        drm/imx: Remove encoders' ->prepare callbacks
        drm/imx: atomic phase 2 step 2: Track plane_state->fb correctly in ->page_flip
        drm/imx: atomic phase 2 step 1: Wire up state ->reset, ->duplicate and ->destroy
        drm/imx: atomic phase 1: Use transitional atomic CRTC and plane helpers
        gpu: ipu-v3: ipu-dmfc: Use static DMFC FIFO allocation mechanism
        drm/imx: ipuv3 plane: Check different types of plane separately
      d3c35337