1. 27 1月, 2015 4 次提交
    • J
      drm/i915/dsi: call dpi_send_cmd() for each dsi port at a higher level · f03e4179
      Jani Nikula 提交于
      Instead of having the for each dsi port loop within dpi_send_cmd(), add
      a port parameter to the function and call it for each port instead.
      
      This is a rewrite of
      
      commit 4510cd77
      Author: Gaurav K Singh <gaurav.k.singh@intel.com>
      Date:   Thu Dec 4 10:58:51 2014 +0530
      
          drm/i915: Dual link needs Shutdown and Turn on packet for both ports
      
      to add more flexibility in using dpi_send_cmd() for just one port as
      necessary. No functional changes.
      Signed-off-by: NJani Nikula <jani.nikula@intel.com>
      Reviewed-By: NShobhit Kumar <shobhit.kumar@intel.com>
      Signed-off-by: NDaniel Vetter <daniel.vetter@ffwll.ch>
      f03e4179
    • A
      drm/i915: Make intel_crtc->config a pointer · 6e3c9717
      Ander Conselvan de Oliveira 提交于
      To match the semantics of drm_crtc->state, which this will eventually
      become. The allocation of the memory for config will be fixed in a
      followup patch. By adding the extra _config field to intel_crtc it was
      possible to generate this entire patch with the cocci script below.
      
      @@ @@
      struct intel_crtc {
      ...
      -struct intel_crtc_state config;
      +struct intel_crtc_state _config;
      +struct intel_crtc_state *config;
      ...
      }
      @@ struct intel_crtc *crtc; @@
      -memset(&crtc->config, 0, sizeof(crtc->config));
      +memset(crtc->config, 0, sizeof(*crtc->config));
      @@ @@
      __intel_set_mode(...) {
      <...
      -to_intel_crtc(crtc)->config = *pipe_config;
      +(*(to_intel_crtc(crtc)->config)) = *pipe_config;
      ...>
      }
      @@ @@
      intel_crtc_init(...) {
      ...
      WARN_ON(drm_crtc_index(&intel_crtc->base) != intel_crtc->pipe);
      +intel_crtc->config = &intel_crtc->_config;
      return;
      ...
      }
      @@ struct intel_crtc *crtc; @@
      -&crtc->config
      +crtc->config
      @@ struct intel_crtc *crtc; identifier member; @@
      -crtc->config.member
      +crtc->config->member
      @@ expression E; @@
      -&(to_intel_crtc(E)->config)
      +to_intel_crtc(E)->config
      @@ expression E; identifier member; @@
      -to_intel_crtc(E)->config.member
      +to_intel_crtc(E)->config->member
      
      v2: Clarify manual changes by splitting them into another patch. (Matt)
          Improve cocci script to generate even more of the changes. (Ander)
      Signed-off-by: NAnder Conselvan de Oliveira <ander.conselvan.de.oliveira@intel.com>
      Reviewed-by: NMatt Roper <matthew.d.roper@intel.com>
      Signed-off-by: NDaniel Vetter <daniel.vetter@ffwll.ch>
      6e3c9717
    • A
      drm/i915: Embedded struct drm_crtc_state in intel_crtc_state · 2d112de7
      Ander Conselvan de Oliveira 提交于
      And get rid of the duplicate mode structures. This patch was generated
      with the following semantic patch:
      
      @@ @@
      struct intel_crtc_state {
      +struct drm_crtc_state base;
      +
      ...
      -struct drm_display_mode requested_mode;
      -struct drm_display_mode adjusted_mode;
      ...
      }
      @@ struct intel_crtc_state *state; @@
      -state->adjusted_mode
      +state->base.adjusted_mode
      @@ struct intel_crtc_state *state; @@
      -state->requested_mode
      +state->base.mode
      @@ struct intel_crtc_state state; @@
      -state.adjusted_mode
      +state.base.adjusted_mode
      @@ struct intel_crtc_state state; @@
      -state.requested_mode
      +state.base.mode
      @@ struct drm_crtc *crtc; @@
      -to_intel_crtc(crtc)->config.adjusted_mode
      +to_intel_crtc(crtc)->config.base.adjusted_mode
      @@ identifier member; expression E; @@
      -PIPE_CONF_CHECK_FLAGS(adjusted_mode.member, E);
      +PIPE_CONF_CHECK_FLAGS(base.adjusted_mode.member, E);
      @@ identifier member; @@
      -PIPE_CONF_CHECK_I(adjusted_mode.member);
      +PIPE_CONF_CHECK_I(base.adjusted_mode.member);
      @@ identifier member; @@
      -PIPE_CONF_CHECK_CLOCK_FUZZY(adjusted_mode.member);
      +PIPE_CONF_CHECK_CLOCK_FUZZY(base.adjusted_mode.member);
      
      v2: Completely generate the patch with cocci. (Ander)
      Signed-off-by: NAnder Conselvan de Oliveira <ander.conselvan.de.oliveira@intel.com>
      Reviewed-by: NMatt Roper <matthew.d.roper@intel.com>
      Signed-off-by: NDaniel Vetter <daniel.vetter@ffwll.ch>
      2d112de7
    • A
      drm/i915: Rename struct intel_crtc_config to intel_crtc_state · 5cec258b
      Ander Conselvan de Oliveira 提交于
      The objective is to make this structure usable with the atomic helpers,
      so let's start with the rename. Patch generated with coccinelle:
      
      @@ @@
      -struct intel_crtc_config {
      +struct intel_crtc_state {
      ...
      }
      @@ @@
      -struct intel_crtc_config
      +struct intel_crtc_state
      
      v2: Completely generate the patch with cocci. (Ander)
      Signed-off-by: NAnder Conselvan de Oliveira <ander.conselvan.de.oliveira@intel.com>
      Reviewed-by: NMatt Roper <matthew.d.roper@intel.com>
      Signed-off-by: NDaniel Vetter <daniel.vetter@ffwll.ch>
      5cec258b
  2. 11 12月, 2014 2 次提交
  3. 05 12月, 2014 5 次提交
  4. 04 12月, 2014 1 次提交
  5. 03 12月, 2014 2 次提交
  6. 01 10月, 2014 1 次提交
  7. 08 8月, 2014 2 次提交
  8. 07 8月, 2014 2 次提交
  9. 09 7月, 2014 1 次提交
  10. 19 6月, 2014 1 次提交
  11. 14 6月, 2014 1 次提交
  12. 11 6月, 2014 1 次提交
  13. 05 6月, 2014 3 次提交
    • I
      drm/i915: dsi: fix pipe-off timeout due to port vs. pipe disable ordering · c315faf8
      Imre Deak 提交于
      If we disable first the port (by disabling DPI) and only then the
      display pipe the pipe-off flag will never be set, possibly leading to a
      hanged pipe state at the next modeset-enable.
      
      Note that according to the VLV2 display cluster HAS, we should disable
      the port before the pipe. This doesn't seem to match reality based on
      the above and it's also asymmetric with the enabling sequence, where we
      first enable the port and then the pipe.
      
      v2:
      - send the panel shutdown command before stopping the pipe, since this
        is the recommended sequence (Shobhit)
      Signed-off-by: NImre Deak <imre.deak@intel.com>
      Reviewed-by: NShobhit Kumar <shobhit.kumar@intel.com>
      Signed-off-by: NDaniel Vetter <daniel.vetter@ffwll.ch>
      c315faf8
    • S
      drm/i915: Detect if MIPI panel based on VBT and initialize only if present · 3e6bd011
      Shobhit Kumar 提交于
      It seems by default the VBT has MIPI configuration block as well. The
      Generic driver will assume always MIPI if MIPI configuration block is found.
      This is causing probelm when actually there is eDP. Fix this by looking
      into general definition block which will have device configurations. From here
      we can figure out what is the LFP type and initialize MIPI only if MIPI
      is found.
      
      v2: Addressed review comments by Damien
          - Moved PORT definitions to intel_bios.h and renamed as DVO_PORT_MIPIA
          - renamed is_mipi to has_mipi and moved definition as suggested
          - Check has_mipi inside parse_mipi and intel_dsi_init insted of outside
      
      v3: Make has_mipi as a bitfield as suggested
      Signed-off-by: NShobhit Kumar <shobhit.kumar@intel.com>
      Reviewed-by: NDamien Lespiau <damien.lespiau@intel.com>
      [danvet: fold in conditions to pack everything neatly below 80 chars.]
      Signed-off-by: NDaniel Vetter <daniel.vetter@ffwll.ch>
      3e6bd011
    • S
      drm/i915: Add support for Generic MIPI panel driver · 2ab8b458
      Shobhit Kumar 提交于
      This driver makes use of the generic panel information from the VBT.
      Panel information is classified into two - panel configuration and panel
      power sequence which is unique to each panel. The generic driver uses the
      panel configuration and sequence parsed from VBT block #52 and #53
      
      v2: Address review comments by Jani
          - Move all of the things in driver c file from header
          - Make all functions static
          - Make use of video/mipi_display.c instead of redefining
          - Null checks during sequence execution
      
      v3: Address review comments by Damien
          - Rename the panel driver file as intel_dsi_panel_vbt.c
          - Fix style changes as suggested
          - Correct comments for lp->hs and hs->lp count calculations
          - General updating comments to have more clarity
          - using max() instead of ternary operator
          - Fix names (ui_num, ui_den) while using UI in calculations
          - compute max of lp_to_hs switch and hs_to_lp switch while computing
            hs_lp_switch_count
      Signed-off-by: NShobhit Kumar <shobhit.kumar@intel.com>
      Reviewed-by: NDamien Lespiau <damien.lespiau@intel.com>
      Signed-off-by: NDaniel Vetter <daniel.vetter@ffwll.ch>
      2ab8b458
  14. 19 5月, 2014 1 次提交
  15. 16 5月, 2014 4 次提交
  16. 10 4月, 2014 7 次提交
  17. 11 3月, 2014 1 次提交
    • V
      drm/i915: Make encoder cloning more flexible · bc079e8b
      Ville Syrjälä 提交于
      Currently we allow encoders to indicate whether they can be part of a
      cloned set with just one flag. That's not flexible enough to describe
      the actual hardware capabilities. Instead make it a bitmask of encoder
      types with which the current encoder can be cloned.
      
      For now we set the bitmask to allow DVO+DVO and DVO+VGA, which should
      match what the old boolean flag allowed. We will add some more cloning
      options in the future.
      
      Note that this patch also removes the encoder.possible_clones setting
      from encoder setup code - we compute this dynamically.
      Signed-off-by: NVille Syrjälä <ville.syrjala@linux.intel.com>
      Reviewed-by: NRodrigo Vivi <rodrigo.vivi@gmail.com>
      [danvet: Add Ville's explanation why removing the encoder
      possible_clones is save.]
      Signed-off-by: NDaniel Vetter <daniel.vetter@ffwll.ch>
      bc079e8b
  18. 08 3月, 2014 1 次提交