1. 24 6月, 2019 2 次提交
  2. 19 6月, 2019 4 次提交
  3. 28 5月, 2019 1 次提交
  4. 18 3月, 2019 1 次提交
  5. 04 2月, 2019 1 次提交
  6. 24 1月, 2019 1 次提交
    • T
      drm/modes: Prevent division by zero htotal · a2fcd5c8
      Tina Zhang 提交于
      This patch prevents division by zero htotal.
      
      In a follow-up mail Tina writes:
      
      > > How did you manage to get here with htotal == 0? This needs backtraces (or if
      > > this is just about static checkers, a mention of that).
      > > -Daniel
      >
      > In GVT-g, we are trying to enable a virtual display w/o setting timings for a pipe
      > (a.k.a htotal=0), then we met the following kernel panic:
      >
      > [   32.832048] divide error: 0000 [#1] SMP PTI
      > [   32.833614] CPU: 0 PID: 1 Comm: swapper/0 Not tainted 4.18.0-rc4-sriov+ #33
      > [   32.834438] Hardware name: QEMU Standard PC (Q35 + ICH9, 2009), BIOS rel-1.10.1-0-g8891697-dirty-20180511_165818-tinazhang-linux-1 04/01/2014
      > [   32.835901] RIP: 0010:drm_mode_hsync+0x1e/0x40
      > [   32.836004] Code: 31 c0 c3 90 90 90 90 90 90 90 90 90 0f 1f 44 00 00 8b 87 d8 00 00 00 85 c0 75 22 8b 4f 68 85 c9 78 1b 69 47 58 e8 03 00 00 99 <f7> f9 b9 d3 4d 62 10 05 f4 01 00 00 f7 e1 89 d0 c1 e8 06 f3 c3 66
      > [   32.836004] RSP: 0000:ffffc900000ebb90 EFLAGS: 00010206
      > [   32.836004] RAX: 0000000000000000 RBX: ffff88001c67c8a0 RCX: 0000000000000000
      > [   32.836004] RDX: 0000000000000000 RSI: ffff88001c67c000 RDI: ffff88001c67c8a0
      > [   32.836004] RBP: ffff88001c7d03a0 R08: ffff88001c67c8a0 R09: ffff88001c7d0330
      > [   32.836004] R10: ffffffff822c3a98 R11: 0000000000000001 R12: ffff88001c67c000
      > [   32.836004] R13: ffff88001c7d0370 R14: ffffffff8207eb78 R15: ffff88001c67c800
      > [   32.836004] FS:  0000000000000000(0000) GS:ffff88001da00000(0000) knlGS:0000000000000000
      > [   32.836004] CS:  0010 DS: 0000 ES: 0000 CR0: 0000000080050033
      > [   32.836004] CR2: 0000000000000000 CR3: 000000000220a000 CR4: 00000000000006f0
      > [   32.836004] DR0: 0000000000000000 DR1: 0000000000000000 DR2: 0000000000000000
      > [   32.836004] DR3: 0000000000000000 DR6: 00000000fffe0ff0 DR7: 0000000000000400
      > [   32.836004] Call Trace:
      > [   32.836004]  intel_mode_from_pipe_config+0x72/0x90
      > [   32.836004]  intel_modeset_setup_hw_state+0x569/0xf90
      > [   32.836004]  intel_modeset_init+0x905/0x1db0
      > [   32.836004]  i915_driver_load+0xb8c/0x1120
      > [   32.836004]  i915_pci_probe+0x4d/0xb0
      > [   32.836004]  local_pci_probe+0x44/0xa0
      > [   32.836004]  ? pci_assign_irq+0x27/0x130
      > [   32.836004]  pci_device_probe+0x102/0x1c0
      > [   32.836004]  driver_probe_device+0x2b8/0x480
      > [   32.836004]  __driver_attach+0x109/0x110
      > [   32.836004]  ? driver_probe_device+0x480/0x480
      > [   32.836004]  bus_for_each_dev+0x67/0xc0
      > [   32.836004]  ? klist_add_tail+0x3b/0x70
      > [   32.836004]  bus_add_driver+0x1e8/0x260
      > [   32.836004]  driver_register+0x5b/0xe0
      > [   32.836004]  ? mipi_dsi_bus_init+0x11/0x11
      > [   32.836004]  do_one_initcall+0x4d/0x1eb
      > [   32.836004]  kernel_init_freeable+0x197/0x237
      > [   32.836004]  ? rest_init+0xd0/0xd0
      > [   32.836004]  kernel_init+0xa/0x110
      > [   32.836004]  ret_from_fork+0x35/0x40
      > [   32.836004] Modules linked in:
      > [   32.859183] ---[ end trace 525608b0ed0e8665 ]---
      > [   32.859722] RIP: 0010:drm_mode_hsync+0x1e/0x40
      > [   32.860287] Code: 31 c0 c3 90 90 90 90 90 90 90 90 90 0f 1f 44 00 00 8b 87 d8 00 00 00 85 c0 75 22 8b 4f 68 85 c9 78 1b 69 47 58 e8 03 00 00 99 <f7> f9 b9 d3 4d 62 10 05 f4 01 00 00 f7 e1 89 d0 c1 e8 06 f3 c3 66
      > [   32.862680] RSP: 0000:ffffc900000ebb90 EFLAGS: 00010206
      > [   32.863309] RAX: 0000000000000000 RBX: ffff88001c67c8a0 RCX: 0000000000000000
      > [   32.864182] RDX: 0000000000000000 RSI: ffff88001c67c000 RDI: ffff88001c67c8a0
      > [   32.865206] RBP: ffff88001c7d03a0 R08: ffff88001c67c8a0 R09: ffff88001c7d0330
      > [   32.866359] R10: ffffffff822c3a98 R11: 0000000000000001 R12: ffff88001c67c000
      > [   32.867213] R13: ffff88001c7d0370 R14: ffffffff8207eb78 R15: ffff88001c67c800
      > [   32.868075] FS:  0000000000000000(0000) GS:ffff88001da00000(0000) knlGS:0000000000000000
      > [   32.868983] CS:  0010 DS: 0000 ES: 0000 CR0: 0000000080050033
      > [   32.869659] CR2: 0000000000000000 CR3: 000000000220a000 CR4: 00000000000006f0
      > [   32.870599] DR0: 0000000000000000 DR1: 0000000000000000 DR2: 0000000000000000
      > [   32.871598] DR3: 0000000000000000 DR6: 00000000fffe0ff0 DR7: 0000000000000400
      > [   32.872549] Kernel panic - not syncing: Attempted to kill init! exitcode=0x0000000b
      >
      > Since drm_mode_hsync() has the logic to check mode->htotal, I just extend it to cover the case htotal==0.
      Signed-off-by: NTina Zhang <tina.zhang@intel.com>
      Cc: Adam Jackson <ajax@redhat.com>
      Cc: Dave Airlie <airlied@redhat.com>
      Cc: Daniel Vetter <daniel@ffwll.ch>
      [danvet: Add additional explanations + cc: stable.]
      Cc: stable@vger.kernel.org
      Signed-off-by: NDaniel Vetter <daniel.vetter@ffwll.ch>
      Link: https://patchwork.freedesktop.org/patch/msgid/1548228539-3061-1-git-send-email-tina.zhang@intel.com
      a2fcd5c8
  7. 15 1月, 2019 1 次提交
  8. 01 10月, 2018 1 次提交
  9. 14 7月, 2018 1 次提交
  10. 10 7月, 2018 1 次提交
  11. 16 6月, 2018 1 次提交
  12. 11 5月, 2018 3 次提交
  13. 23 3月, 2018 1 次提交
  14. 17 3月, 2018 2 次提交
  15. 20 2月, 2018 1 次提交
  16. 30 1月, 2018 4 次提交
  17. 31 7月, 2017 1 次提交
  18. 26 7月, 2017 1 次提交
    • R
      drm: Convert to using %pOF instead of full_name · 4bf99144
      Rob Herring 提交于
      Now that we have a custom printf format specifier, convert users of
      full_name to use %pOF instead. This is preparation to remove storing
      of the full path string for each node.
      Signed-off-by: NRob Herring <robh@kernel.org>
      Cc: Russell King <linux@armlinux.org.uk>
      Cc: David Airlie <airlied@linux.ie>
      Cc: Daniel Vetter <daniel.vetter@intel.com>
      Cc: Jani Nikula <jani.nikula@linux.intel.com>
      Cc: Sean Paul <seanpaul@chromium.org>
      Cc: Inki Dae <inki.dae@samsung.com>
      Cc: Joonyoung Shim <jy0922.shim@samsung.com>
      Cc: Seung-Woo Kim <sw0312.kim@samsung.com>
      Cc: Kyungmin Park <kyungmin.park@samsung.com>
      Cc: Kukjin Kim <kgene@kernel.org>
      Cc: Krzysztof Kozlowski <krzk@kernel.org>
      Cc: Javier Martinez Canillas <javier@osg.samsung.com>
      Cc: Xinliang Liu <z.liuxinliang@hisilicon.com>
      Cc: Rongrong Zou <zourongrong@gmail.com>
      Cc: Xinwei Kong <kong.kongxinwei@hisilicon.com>
      Cc: Chen Feng <puck.chen@hisilicon.com>
      Cc: CK Hu <ck.hu@mediatek.com>
      Cc: Philipp Zabel <p.zabel@pengutronix.de>
      Cc: Matthias Brugger <matthias.bgg@gmail.com>
      Cc: Neil Armstrong <narmstrong@baylibre.com>
      Cc: Carlo Caione <carlo@caione.org>
      Cc: Kevin Hilman <khilman@baylibre.com>
      Cc: Thierry Reding <thierry.reding@gmail.com>
      Cc: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
      Cc: Mark Yao <mark.yao@rock-chips.com>
      Cc: Heiko Stuebner <heiko@sntech.de>
      Cc: Maxime Ripard <maxime.ripard@free-electrons.com>
      Cc: Chen-Yu Tsai <wens@csie.org>
      Cc: Jyri Sarha <jsarha@ti.com>
      Cc: Tomi Valkeinen <tomi.valkeinen@ti.com>
      Cc: dri-devel@lists.freedesktop.org
      Cc: linux-arm-kernel@lists.infradead.org
      Cc: linux-samsung-soc@vger.kernel.org
      Cc: linux-mediatek@lists.infradead.org
      Cc: linux-amlogic@lists.infradead.org
      Cc: linux-renesas-soc@vger.kernel.org
      Cc: linux-rockchip@lists.infradead.org
      Partially-Reviewed-by: NLaurent Pinchart <laurent.pinchart@ideasonboard.com>
      Reviewed-by: NPhilipp Zabel <p.zabel@pengutronix.de>
      Acked-by: NMaxime Ripard <maxime.ripard@free-electrons.com>
      [seanpaul changed subject prefix and fixed conflict in stm/ltdc.c]
      Signed-off-by: NSean Paul <seanpaul@chromium.org>
      Signed-off-by: NDaniel Vetter <daniel.vetter@ffwll.ch>
      4bf99144
  19. 15 7月, 2017 2 次提交
    • S
      drm: add helper functions for YCBCR420 handling · 2570fe25
      Shashank Sharma 提交于
      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 <ville.syrjala@linux.intel.com>
      Cc: Jose Abreu <Jose.Abreu@synopsys.com>
      Cc: Daniel Vetter <daniel.vetter@intel.com>
      Signed-off-by: NShashank Sharma <shashank.sharma@intel.com>
      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: NVille Syrjälä <ville.syrjala@linux.intel.com>
      2570fe25
    • S
      drm: add helper to validate YCBCR420 modes · d8523153
      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 <ville.syrjala@linux.intel.com>
      Signed-off-by: NShashank Sharma <shashank.sharma@intel.com>
      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: NVille Syrjälä <ville.syrjala@linux.intel.com>
      d8523153
  20. 28 2月, 2017 1 次提交
  21. 02 2月, 2017 1 次提交
  22. 26 1月, 2017 2 次提交
  23. 12 1月, 2017 1 次提交
    • T
      drm: Fix broken VT switch with video=1366x768 option · fdf35a6b
      Takashi Iwai 提交于
      I noticed that the VT switch doesn't work any longer with a Dell
      laptop with 1366x768 eDP when the machine is connected with a DP
      monitor.  It behaves as if VT were switched, but the graphics remain
      frozen.  Actually the keyboard works, so I could switch back to VT7
      again.
      
      I tried to track down the problem, and encountered a long story until
      we reach to this error:
      
      - The machine is booted with video=1366x768 option (the distro
        installer seems to add it as default).
      - Recently, drm_helper_probe_single_connector_modes() deals with
        cmdline modes, and it tries to create a new mode when no
        matching mode is found.
      - The drm_mode_create_from_cmdline_mode() creates a mode based on
        either CVT of GFT according to the given cmdline mode; in our case,
        it's 1366x768.
      - Since both CVT and GFT can't express the width 1366 due to
        alignment, the resultant mode becomes 1368x768, slightly larger than
        the given size.
      - Later on, the atomic commit is performed, and in
        drm_atomic_check_only(), the size of each plane is checked.
      - The size check of 1366x768 fails due to the above, and eventually
        the whole VT switch fails.
      
      Back in the history, we've had a manual fix-up of 1368x768 in various
      places via c09dedb7 ("drm/edid: Add a workaround for 1366x768 HD
      panel"), but they have been all in drm_edid.c at probing the modes
      from EDID.  For addressing the problem above, we need a similar hack
      to the mode newly created from cmdline, manually adjusting the width
      when the expected size is 1366 while we get 1368 instead.
      
      Fixes: eaf99c74 ("drm: Perform cmdline mode parsing during...")
      Cc: <stable@vger.kernel.org>
      Signed-off-by: NTakashi Iwai <tiwai@suse.de>
      Link: http://patchwork.freedesktop.org/patch/msgid/20170109145614.29454-1-tiwai@suse.deReviewed-by: NVille Syrjälä <ville.syrjala@linux.intel.com>
      Signed-off-by: NVille Syrjälä <ville.syrjala@linux.intel.com>
      fdf35a6b
  24. 15 11月, 2016 2 次提交
  25. 09 11月, 2016 1 次提交
  26. 22 10月, 2016 1 次提交
  27. 17 10月, 2016 1 次提交