Skip to content
  1. Jul 08, 2014
    • Matt Roper's avatar
      drm: Remove command line guard for universal planes · c7dbc6c9
      Matt Roper authored
      
      
      Universal planes are ready to leave 'experimental' state so drop the
      kernel command line parameter that we've been hiding them behind.
      Userspace clients that wish to receive universal planes will still need
      to opt-in by setting the appropriate capability bit, so this should have
      no impact on existing userspace.
      
      Signed-off-by: default avatarMatt Roper <matthew.d.roper@intel.com>
      Signed-off-by: default avatarDave Airlie <airlied@redhat.com>
      c7dbc6c9
    • Dave Airlie's avatar
      drm/helper: add Displayport multi-stream helper (v0.6) · ad7f8a1f
      Dave Airlie authored
      
      
      This is the initial import of the helper for displayport multistream.
      
      It consists of a topology manager, init/destroy/set mst state
      
      It supports DP 1.2 MST sideband msg protocol handler - via hpd irqs
      
      connector detect and edid retrieval interface.
      
      It supports i2c device over DP 1.2 sideband msg protocol (EDID reads only)
      
      bandwidth manager API via vcpi allocation and payload updating,
      along with a helper to check the ACT status.
      
      Objects:
      MST topology manager - one per toplevel MST capable GPU port - not sure if this should be higher level again
      MST branch unit - one instance per plugged branching unit - one at top of hierarchy - others hanging from ports
      MST port - one port per port reported by branching units, can have MST units hanging from them as well.
      
      Changes since initial posting:
      a) add a mutex responsbile for the queues, it locks the sideband and msg slots, and msgs to transmit state
      b) add worker to handle connection state change events, for MST device chaining and hotplug
      c) add a payload spinlock
      d) add path sideband msg support
      e) fixup enum path resources transmit
      f) reduce max dpcd msg to 16, as per DP1.2 spec.
      g) separate tx queue kicking from irq processing and move irq acking back to drivers.
      
      Changes since v0.2:
      a) reorganise code,
      b) drop ACT forcing code
      c) add connector naming interface using path property
      d) add topology dumper helper
      e) proper reference counting and lookup for ports and mstbs.
      f) move tx kicking into a workq
      g) add aux locking - this should be redone
      h) split teardown into two parts
      i) start working on documentation on interface.
      
      Changes since v0.3:
      a) vc payload locking and tracking fixes
      b) add hotplug callback into driver - replaces crazy return 1 scheme
      c) txmsg + mst branch device refcount fixes
      d) don't bail on mst shutdown if device is gone
      e) change irq handler to take all 4 bytes of SINK_COUNT + ESI vectors
      f) make DP payload updates timeout longer - observed on docking station redock
      g) add more info to debugfs dumper
      
      Changes since v0.4:
      a) suspend/resume support
      b) more debugging in debugfs
      
      Changes since v0.5:
      a) use byte * to avoid unnecessary stack usage
      b) fix num_sdp_streams interpretation.
      c) init payload state for unplug events
      d) remove lenovo dock sink count hack
      e) drop aux lock - post rebase
      f) call hotplug on port destroy
      
      TODO:
      misc features
      
      Reviewed-by: default avatarTodd Previte <tprevite@gmail.com>
      Signed-off-by: default avatarDave Airlie <airlied@redhat.com>
      ad7f8a1f
    • Dave Airlie's avatar
      drm: add a path blob property · 43aba7eb
      Dave Airlie authored
      
      
      This property will be used by the MST code to provide userspace
      with a path to parse so it can recognise connectors around hotplugs.
      
      Reviewed-by: default avatarTodd Previte <tprevite@gmail.com>
      Signed-off-by: default avatarDave Airlie <airlied@redhat.com>
      43aba7eb
    • Dave Airlie's avatar
      drm/fb_helper: allow adding/removing connectors later · 65c2a89c
      Dave Airlie authored
      
      
      This is required to get fbcon probing to work on new connectors,
      callers should acquire the mode config lock before calling these.
      
      Reviewed-by: default avatarTodd Previte <tprevite@gmail.com>
      Signed-off-by: default avatarDave Airlie <airlied@redhat.com>
      65c2a89c
    • Dave Airlie's avatar
      drm/crtc: add interface to reinitialise the legacy mode group · 2390cd11
      Dave Airlie authored
      
      
      This can be called to update things after dynamic connectors/encoders
      are created/deleted.
      
      Reviewed-by: default avatarTodd Previte <tprevite@gmail.com>
      Signed-off-by: default avatarDave Airlie <airlied@redhat.com>
      2390cd11
    • Stéphane Marchesin's avatar
      drm/udl: Implement page_flip ioctl · 40377ef2
      Stéphane Marchesin authored
      
      
      This is a very crude page_flip implementation for UDL. There are ways
      to make it better (make it asynchronous, make it do actual vsynced
      flips...) but that's for another patch.
      
      [airlied: fixup primary change]
      
      Signed-off-by: default avatarStéphane Marchesin <marcheu@chromium.org>
      Signed-off-by: default avatarDave Airlie <airlied@redhat.com>
      40377ef2
    • Stéphane Marchesin's avatar
      drm/udl: add vblank support · 26507b06
      Stéphane Marchesin authored
      
      
      This is needed to be able to send page flip completion events.
      Also while I'm at it, fix the error paths on init.
      
      Signed-off-by: default avatarStéphane Marchesin <marcheu@chromium.org>
      Signed-off-by: default avatarDave Airlie <airlied@redhat.com>
      26507b06
    • Thierry Reding's avatar
      drm/tegra: Implement race-free hotplug detection · e2215321
      Thierry Reding authored
      
      
      A race condition currently exists on Tegra, where it can happen that a
      monitor attached via HDMI isn't detected during the initial FB helper
      setup, but the hotplug event happens too early to be processed by the
      poll helpers because they haven't been initialized yet. This happens
      because on some boards the HDMI driver can control the regulator that
      supplies the +5V pin on the HDMI connector. Therefore depending on the
      timing between the initialization of the HDMI driver and the rest of
      DRM, it's possible that the monitor returns the hotplug signal right
      within the window where we would miss it.
      
      Unfortunately, drm_kms_helper_poll_init() will wreak havoc when called
      before at least some parts of the FB helpers have been set up.
      
      This commit fixes this by splitting out the minimum of initialization
      required to make drm_kms_helper_poll_init() work into a separate
      function that can be called early. It is then safe to move all of the
      poll helper initialization to an earlier point in time (before the
      HDMI output driver has a chance to enable the +5V supply). That way if
      the hotplug signal is returned before the initial FB helper setup, the
      monitor will be forcefully detected at that point, and if the hotplug
      signal is returned after that it will be properly handled by the poll
      helpers.
      
      Signed-off-by: default avatarThierry Reding <treding@nvidia.com>
      Signed-off-by: default avatarDave Airlie <airlied@redhat.com>
      e2215321
    • Thierry Reding's avatar
      drm: Introduce drm_fb_helper_prepare() · 10a23102
      Thierry Reding authored
      
      
      To implement hotplug detection in a race-free manner, drivers must call
      drm_kms_helper_poll_init() before hotplug events can be triggered. Such
      events can be triggered right after any of the encoders or connectors
      are initialized. At the same time, if the drm_fb_helper_hotplug_event()
      helper is used by a driver, then the poll helper requires some parts of
      the FB helper to be initialized to prevent a crash.
      
      At the same time, drm_fb_helper_init() requires information that is not
      necessarily available at such an early stage (number of CRTCs and
      connectors), so it cannot be used yet.
      
      Add a new helper, drm_fb_helper_prepare(), that initializes the bare
      minimum needed to allow drm_kms_helper_poll_init() to execute and any
      subsequent hotplug events to be processed properly.
      
      Reviewed-by: default avatarDaniel Vetter <daniel.vetter@ffwll.ch>
      Signed-off-by: default avatarThierry Reding <treding@nvidia.com>
      Signed-off-by: default avatarDave Airlie <airlied@redhat.com>
      10a23102
    • Thierry Reding's avatar
      drm: Constify struct drm_fb_helper_funcs · 3a493879
      Thierry Reding authored
      
      
      There's no need for this to be modifiable. Make it const so that it can
      be put into the .rodata section.
      
      Reviewed-by: default avatarDaniel Vetter <daniel.vetter@ffwll.ch>
      Signed-off-by: default avatarThierry Reding <treding@nvidia.com>
      Acked-by: default avatarRussell King <rmk+kernel@arm.linux.org.uk>
      Signed-off-by: default avatarDave Airlie <airlied@redhat.com>
      3a493879
    • Daniel Vetter's avatar
      drm/fb-helper: Fix hpd vs. initial config races · 50c3dc97
      Daniel Vetter authored
      Some drivers need to be able to have a perfect race-free fbcon setup.
      Current drivers only enable hotplug processing after the call to
      drm_fb_helper_initial_config which leaves a tiny but important race.
      
      This race is especially noticable on embedded platforms where the
      driver itself enables the voltage for the hdmi output, since only then
      will monitors (after a bit of delay, as usual) respond by asserting
      the hpd pin.
      
      Most of the infrastructure is already there with the split-out
      drm_fb_helper_init. And drm_fb_helper_initial_config already has all
      the required locking to handle concurrent hpd events since
      
      commit 53f1904b
      
      
      Author: Daniel Vetter <daniel.vetter@ffwll.ch>
      Date:   Thu Mar 20 14:26:35 2014 +0100
      
          drm/fb-helper: improve drm_fb_helper_initial_config locking
      
      The only missing bit is making drm_fb_helper_hotplug_event save
      against concurrent calls of drm_fb_helper_initial_config. The only
      unprotected bit is the check for fb_helper->fb.
      
      With that drivers can first initialize the fb helper, then enabel
      hotplug processing and then set up the initial config all in a
      completely race-free manner. Update kerneldoc and convert i915 as a
      proof of concept.
      
      Feature requested by Thierry since his tegra driver atm reliably boots
      slowly enough to misses the hotplug event for an external hdmi screen,
      but also reliably boots to quickly for the hpd pin to be asserted when
      the fb helper calls into the hdmi ->detect function.
      
      Cc: Thierry Reding <treding@nvidia.com>
      Signed-off-by: default avatarDaniel Vetter <daniel.vetter@ffwll.ch>
      Signed-off-by: default avatarThierry Reding <treding@nvidia.com>
      Signed-off-by: default avatarDave Airlie <airlied@redhat.com>
      50c3dc97
    • Martin Kepplinger's avatar
      ttm: use NULL instead of 0 for ttm_bo_reserve()'s pointer arg. · 0eff2a24
      Martin Kepplinger authored
      
      
      Fix a sparse warning: ttm_bo_reserve()'s last argument is a
      pointer to a struct, so use NULL as nullpointer.
      
      Signed-off-by: default avatarMartin Kepplinger <martink@posteo.de>
      Reviewed-by: default avatarJingoo Han <jg1.han@samsung.com>
      Signed-off-by: default avatarDave Airlie <airlied@redhat.com>
      0eff2a24
    • Guido Martínez's avatar
      drm/tilcdc: replace late_initcall with module_init · 2023d84d
      Guido Martínez authored
      Use module_init instead of late_initcall, as is the norm for modular
      drivers.
      
      module_init was used until 6e8de0bd
      
      
      ("drm/tilcdc: add encoder slave (v2)") changed it to a late_initcall,
      but it does not explain why. Tests show it's working properly with
      module_init.
      
      Signed-off-by: default avatarGuido Martínez <guido@vanguardiasur.com.ar>
      Tested-by: default avatarDarren Etheridge <detheridge@ti.com>
      Signed-off-by: default avatarDave Airlie <airlied@redhat.com>
      2023d84d
    • Guido Martínez's avatar
      drm/tilcdc: remove submodule destroy calls · 7cdcce9f
      Guido Martínez authored
      
      
      The TI tilcdc driver is designed with a notion of submodules. Currently,
      at unload time, these submodules are iterated and destroyed.
      
      Now that the tilcdc remove order is fixed, this can be handled perfectly
      by the kernel using the device infrastructure, since each submodule
      is a kernel driver itself, and they are only destroy()'ed at unload
      time. Therefore we move the destroy() functionality to each submodule's
      remove().
      
      Also, remove some checks in the unloading process since the new code
      guarantees the resources are allocated and need a release.
      
      Signed-off-by: default avatarGuido Martínez <guido@vanguardiasur.com.ar>
      Tested-by: default avatarDarren Etheridge <detheridge@ti.com>
      Signed-off-by: default avatarDave Airlie <airlied@redhat.com>
      7cdcce9f
    • Guido Martínez's avatar
      drm/tilcdc: fix double kfree · c9a3ad25
      Guido Martínez authored
      
      
      display_timings_release calls kfree on the display_timings object passed
      to it. Calling kfree after it is wrong. SLUB debug showed the following
      warning:
      
          =============================================================================
          BUG kmalloc-64 (Tainted: G        W    ): Object already free
          -----------------------------------------------------------------------------
      
          Disabling lock debugging due to kernel taint
          INFO: Allocated in of_get_display_timings+0x2c/0x214 age=601 cpu=0
          pid=884
           __slab_alloc.constprop.79+0x2e0/0x33c
           kmem_cache_alloc+0xac/0xdc
           of_get_display_timings+0x2c/0x214
           panel_probe+0x7c/0x314 [tilcdc]
           platform_drv_probe+0x18/0x48
           [..snip..]
          INFO: Freed in panel_destroy+0x18/0x3c [tilcdc] age=0 cpu=0 pid=907
           __slab_free+0x34/0x330
           panel_destroy+0x18/0x3c [tilcdc]
           tilcdc_unload+0xd0/0x118 [tilcdc]
           drm_dev_unregister+0x24/0x98
           [..snip..]
      
      Signed-off-by: default avatarGuido Martínez <guido@vanguardiasur.com.ar>
      Tested-by: default avatarDarren Etheridge <detheridge@ti.com>
      Cc: <stable@vger.kernel.org> #v3.9+
      Signed-off-by: default avatarDave Airlie <airlied@redhat.com>
      c9a3ad25
    • Guido Martínez's avatar
      drm/tilcdc: fix release order on exit · eb565a2b
      Guido Martínez authored
      
      
      Unregister resources in the correct order on tilcdc_drm_fini, which is
      the reverse order they were registered during tilcdc_drm_init.
      
      This also means unregistering the driver before releasing its resources.
      
      Signed-off-by: default avatarGuido Martínez <guido@vanguardiasur.com.ar>
      Tested-by: default avatarDarren Etheridge <detheridge@ti.com>
      Cc: <stable@vger.kernel.org> #v3.9+
      Signed-off-by: default avatarDave Airlie <airlied@redhat.com>
      eb565a2b
    • Guido Martínez's avatar
      drm/tilcdc: panel: fix leak when unloading the module · 3a490122
      Guido Martínez authored
      
      
      The driver did not unregister the allocated framebuffer, which caused
      memory leaks (and memory manager WARNs) when unloading. Also, the
      framebuffer device under /dev still existed after unloading.
      
      Add a call to drm_fbdev_cma_fini when unloading the module to prevent
      both issues.
      
      Signed-off-by: default avatarGuido Martínez <guido@vanguardiasur.com.ar>
      Tested-by: default avatarDarren Etheridge <detheridge@ti.com>
      Cc: <stable@vger.kernel.org> #v3.9+
      Signed-off-by: default avatarDave Airlie <airlied@redhat.com>
      3a490122
    • Guido Martínez's avatar
      drm/tilcdc: tfp410: fix dangling sysfs connector node · 16dcbdef
      Guido Martínez authored
      
      
      Add a drm_sysfs_connector_remove call when we destroy the panel to make
      sure the connector node in sysfs gets deleted.
      
      This is required for proper unload and re-load of this driver, otherwise
      we will get a warning about a duplicate filename in sysfs.
      
      Signed-off-by: default avatarGuido Martínez <guido@vanguardiasur.com.ar>
      Tested-by: default avatarDarren Etheridge <detheridge@ti.com>
      Cc: <stable@vger.kernel.org> #v3.9+
      Signed-off-by: default avatarDave Airlie <airlied@redhat.com>
      16dcbdef
    • Guido Martínez's avatar
      drm/tilcdc: slave: fix dangling sysfs connector node · daa15b4c
      Guido Martínez authored
      
      
      Add a drm_sysfs_connector_remove call when we destroy the panel to make
      sure the connector node in sysfs gets deleted.
      
      This is required for proper unload and re-load of this driver as a
      module. Without this, we would get a warning at re-load time like so:
      
         tda998x 0-0070: found TDA19988
         ------------[ cut here ]------------
         WARNING: CPU: 0 PID: 825 at fs/sysfs/dir.c:31 sysfs_warn_dup+0x54/0x74()
         sysfs: cannot create duplicate filename '/class/drm/card0-HDMI-A-1'
         Modules linked in: [..]
         CPU: 0 PID: 825 Comm: modprobe Not tainted 3.15.0-rc4-00027-g9dcdef4 #82
         [<c0013bb8>] (unwind_backtrace) from [<c0011824>] (show_stack+0x10/0x14)
         [<c0011824>] (show_stack) from [<c0034e8c>] (warn_slowpath_common+0x68/0x88)
         [<c0034e8c>] (warn_slowpath_common) from [<c0034edc>] (warn_slowpath_fmt+0x30/0x40)
         [<c0034edc>] (warn_slowpath_fmt) from [<c01243f4>] (sysfs_warn_dup+0x54/0x74)
         [<c01243f4>] (sysfs_warn_dup) from [<c0124708>] (sysfs_do_create_link_sd.isra.2+0xb0/0xb8)
         [<c0124708>] (sysfs_do_create_link_sd.isra.2) from [<c02ae37c>] (device_add+0x338/0x520)
         [<c02ae37c>] (device_add) from [<c02ae6e8>] (device_create_groups_vargs+0xa0/0xc4)
         [<c02ae6e8>] (device_create_groups_vargs) from [<c02ae758>] (device_create+0x24/0x2c)
         [<c02ae758>] (device_create) from [<c029b4ec>] (drm_sysfs_connector_add+0x64/0x204)
         [<c029b4ec>] (drm_sysfs_connector_add) from [<bf0b1b40>] (slave_modeset_init+0x120/0x1bc [tilcdc])
         [<bf0b1b40>] (slave_modeset_init [tilcdc]) from [<bf0b2be8>] (tilcdc_load+0x214/0x4c0 [tilcdc])
         [<bf0b2be8>] (tilcdc_load [tilcdc]) from [<c029955c>] (drm_dev_register+0xa4/0x104)
            [..snip..]
         ---[ end trace 4df8d614936ebdee ]---
         [drm:drm_sysfs_connector_add] *ERROR* failed to register connector device: -17
      
      Signed-off-by: default avatarGuido Martínez <guido@vanguardiasur.com.ar>
      Tested-by: default avatarDarren Etheridge <detheridge@ti.com>
      Cc: <stable@vger.kernel.org> #v3.9+
      Signed-off-by: default avatarDave Airlie <airlied@redhat.com>
      daa15b4c
    • Guido Martínez's avatar
      drm/tilcdc: panel: fix dangling sysfs connector node · e396900e
      Guido Martínez authored
      
      
      Add a drm_sysfs_connector_remove call when we destroy the panel to make
      sure the connector node in sysfs gets deleted.
      
      This is required for proper unload and re-load of this driver as a
      module. Without this, we would get a warning at re-load time like so:
      
         ------------[ cut here ]------------
         WARNING: CPU: 0 PID: 824 at fs/sysfs/dir.c:31 sysfs_warn_dup+0x54/0x74()
         sysfs: cannot create duplicate filename '/class/drm/card0-LVDS-1'
         Modules linked in: [...]
         CPU: 0 PID: 824 Comm: modprobe Not tainted 3.15.0-rc4-00027-g6484f96-dirty #81
         [<c0013bb8>] (unwind_backtrace) from [<c0011824>] (show_stack+0x10/0x14)
         [<c0011824>] (show_stack) from [<c0034e8c>] (warn_slowpath_common+0x68/0x88)
         [<c0034e8c>] (warn_slowpath_common) from [<c0034edc>] (warn_slowpath_fmt+0x30/0x40)
         [<c0034edc>] (warn_slowpath_fmt) from [<c01243f4>] (sysfs_warn_dup+0x54/0x74)
         [<c01243f4>] (sysfs_warn_dup) from [<c0124708>] (sysfs_do_create_link_sd.isra.2+0xb0/0xb8)
         [<c0124708>] (sysfs_do_create_link_sd.isra.2) from [<c02ae37c>] (device_add+0x338/0x520)
         [<c02ae37c>] (device_add) from [<c02ae6e8>] (device_create_groups_vargs+0xa0/0xc4)
         [<c02ae6e8>] (device_create_groups_vargs) from [<c02ae758>] (device_create+0x24/0x2c)
         [<c02ae758>] (device_create) from [<c029b4ec>] (drm_sysfs_connector_add+0x64/0x204)
         [<c029b4ec>] (drm_sysfs_connector_add) from [<bf0b1fec>] (panel_modeset_init+0xb8/0x134 [tilcdc])
         [<bf0b1fec>] (panel_modeset_init [tilcdc]) from [<bf0b2bf0>] (tilcdc_load+0x214/0x4c0 [tilcdc])
         [<bf0b2bf0>] (tilcdc_load [tilcdc]) from [<c029955c>] (drm_dev_register+0xa4/0x104)
            [ .. snip .. ]
         ---[ end trace b2d09cd9578b0497 ]---
         [drm:drm_sysfs_connector_add] *ERROR* failed to register connector device: -17
      
      Signed-off-by: default avatarGuido Martínez <guido@vanguardiasur.com.ar>
      Tested-by: default avatarDarren Etheridge <detheridge@ti.com>
      Cc: <stable@vger.kernel.org> #v3.9+
      Signed-off-by: default avatarDave Airlie <airlied@redhat.com>
      e396900e
    • Fabien DESSENNE's avatar
      drm/crtc-helper: use drm_framebuffer flags · d980b183
      Fabien DESSENNE authored
      
      
      The "flags" parameter of the DRM_IOCTL_MODE_ADDFB2 ioctl must be
      propagated and used by the driver.
      The only possible value of flags is DRM_MODE_FB_INTERLACED.
      
      Signed-off-by: default avatarFabien Dessenne <fabien.dessenne@st.com>
      Reviewed-by: default avatarBenjamin GAIGNARD <benjamin.gaignard@st.com>
      Signed-off-by: default avatarDave Airlie <airlied@redhat.com>
      d980b183
    • Christian König's avatar
      drm/ttm: fix handling of TTM_PL_FLAG_TOPDOWN v2 · e3f20279
      Christian König authored
      
      
      bo->mem.placement is not initialized when ttm_bo_man_get_node is called,
      so the flag had no effect at all.
      
      v2: change nouveau and vmwgfx as well
      
      Signed-off-by: default avatarChristian König <christian.koenig@amd.com>
      Cc: stable@vger.kernel.org
      Signed-off-by: default avatarDave Airlie <airlied@redhat.com>
      e3f20279
    • Alex Williamson's avatar
      vgaarb: We can own non-decoded resources · 4e4e7dc5
      Alex Williamson authored
      
      
      The VGA arbiter does not allow devices to "own" resources that it
      doesn't "decode".  However, it does allow devices to "lock" resources
      that it doesn't decode.  This gets us into trouble because locking
      the resource goes through the same bridge routing updates regardless
      of whether we decode the resource.  This means that when a non-decoded
      resource is released, the bridge is left with VGA routing enabled and
      locking a different device won't clear it.
      
      This happens in the following scenario:
      
      VGA device 01:00.0 (VGA1) is owned by the radeon driver, which
      registers a set_vga_decode function which releases legacy VGA decodes.
      
      VGA device 02:00.0 (VGA2) is any VGA device.
      
      VGA1 user locks VGA resources triggering first_use callback of
      set_vga_decoded, clearing "decode" and "owns" of legacy resources
      on VGA1.
      
      VGA1 user unlocks VGA resources.
      
      VGA2 user locks VGA resources, which skips VGA1 as conflicting as it
      does not "own" legacy resources, although VGA routing is still enabled
      for the VGA1 bridge.  VGA routing is enabled on VGA2 bridge.
      
      VGA2 may or may not receive VGA transactions depending on the bus
      priority of VGA1 vs VGA2 bridge.
      
      To resolve this, we need to allow devices to "own" resources that they
      do not "decode".  This way we can track bus ownership of VGA.  When a
      device decodes VGA, it only means that we must update the command bits
      in cases where the conflicting device is on the same bus.
      
      Signed-off-by: default avatarAlex Williamson <alex.williamson@redhat.com>
      Cc: Ville Syrjälä <ville.syrjala@linux.intel.com>
      Cc: Daniel Vetter <daniel.vetter@ffwll.ch>
      Cc: Dave Airlie <airlied@redhat.com>
      Signed-off-by: default avatarDave Airlie <airlied@redhat.com>
      4e4e7dc5
    • Dave Airlie's avatar
      Merge branch 'drm-next' of git://people.freedesktop.org/~dvdhrm/linux into drm-next · f71c5d9d
      Dave Airlie authored
      * 'drm-next' of git://people.freedesktop.org/~dvdhrm/linux:
        drm/omap: remove null test before kfree
        drm/bochs: replace ALIGN(PAGE_SIZE) by PAGE_ALIGN
        drm/ttm: recognize ARM arch in ioprot handler
        drm: enable render-nodes by default
        drm/ttm: remove declaration of ttm_tt_cache_flush
        drm/gem: remove misleading gfp parameter to get_pages()
        drm/omap: use __GFP_DMA32 for shmem-backed gem
        drm/i915: use shmem helpers if possible
      
      Conflicts:
      	drivers/gpu/drm/drm_stub.c
      f71c5d9d
    • Dave Airlie's avatar
      Merge tag 'topic/core-stuff-2014-06-30' of git://anongit.freedesktop.org/drm-intel into drm-next · afa95e74
      Dave Airlie authored
      misc core patches picked up by Daniel and Jani.
      
      * tag 'topic/core-stuff-2014-06-30' of git://anongit.freedesktop.org/drm-intel:
        drm/fb-helper: Remove unnecessary list empty check in drm_fb_helper_debug_enter()
        drm/fb-helper: Redundant info->fix.type_aux setting in drm_fb_helper_fill_fix()
        drm/debugfs: add an "edid_override" file per connector
        drm/debugfs: add a "force" file per connector
        drm: add register and unregister functions for connectors
        drm: fix uninitialized acquire_ctx fields (v2)
        drm: Driver-specific ioctls range from 0x40 to 0x9f
        drm: Don't export internal module variables
      afa95e74
    • Dave Airlie's avatar
      Merge tag 'vmwgfx-next-2014-07-04' of git://people.freedesktop.org/~thomash/linux into drm-next · 4b7ba869
      Dave Airlie authored
      Pull request of 2014-07-04
      
      * tag 'vmwgfx-next-2014-07-04' of git://people.freedesktop.org/~thomash/linux:
        drm/vmwgfx: Fix compat shader namespace
      4b7ba869
    • Fabian Frederick's avatar
      drm/omap: remove null test before kfree · d2c87e2d
      Fabian Frederick authored
      
      
      Fix checkpatch warning:
      WARNING: kfree(NULL) is safe this check is probably not required
      
      Cc: David Airlie <airlied@linux.ie>
      Cc: Tomi Valkeinen <tomi.valkeinen@ti.com>
      Signed-off-by: default avatarFabian Frederick <fabf@skynet.be>
      Signed-off-by: default avatarDavid Herrmann <dh.herrmann@gmail.com>
      d2c87e2d
    • Fabian Frederick's avatar
      drm/bochs: replace ALIGN(PAGE_SIZE) by PAGE_ALIGN · a8ba29cd
      Fabian Frederick authored
      
      
      use mm.h definition
      
      Signed-off-by: default avatarFabian Frederick <fabf@skynet.be>
      Signed-off-by: default avatarDavid Herrmann <dh.herrmann@gmail.com>
      a8ba29cd
    • Lucas Stach's avatar
      drm/ttm: recognize ARM arch in ioprot handler · 2fc2dd78
      Lucas Stach authored
      
      
      Nouveau can now be used on ARM, so add an ioprot handler for this
      architecture.
      
      Signed-off-by: default avatarLucas Stach <dev@lynxeye.de>
      Signed-off-by: default avatarAlexandre Courbot <acourbot@nvidia.com>
      Signed-off-by: default avatarDavid Herrmann <dh.herrmann@gmail.com>
      2fc2dd78
    • David Herrmann's avatar
      drm: enable render-nodes by default · 6d6dfcfb
      David Herrmann authored
      
      
      We introduced render-nodes about 1/2 year ago and no problems showed up.
      Remove the drm_rnodes argument and enable them by default now.
      
      Acked-by: default avatarDaniel Vetter <daniel.vetter@ffwll.ch>
      Acked-by: default avatarAlex Deucher <alexander.deucher@amd.com>
      Signed-off-by: default avatarDavid Herrmann <dh.herrmann@gmail.com>
      6d6dfcfb
    • Alexandre Courbot's avatar
      drm/ttm: remove declaration of ttm_tt_cache_flush · 15f8f657
      Alexandre Courbot authored
      ttm_tt_cache_flush's implementation was removed in 2009 by commit
      c9c97b8c
      
      , but its declaration has been hiding in ttm_bo_driver.h since
      then.
      
      It has been surviving in the dark for too long now ; give it the mercy
      blow.
      
      Reviewed-by: default avatarThierry Reding <treding@nvidia.com>
      Reviewed-by: default avatarDavid Herrmann <dh.herrmann@gmail.com>
      Signed-off-by: default avatarAlexandre Courbot <acourbot@nvidia.com>
      Signed-off-by: default avatarDavid Herrmann <dh.herrmann@gmail.com>
      15f8f657
    • David Herrmann's avatar
      drm/gem: remove misleading gfp parameter to get_pages() · 0cdbe8ac
      David Herrmann authored
      
      
      drm_gem_get_pages() currently allows passing a 'gfp' parameter that is
      passed to shmem combined with mapping_gfp_mask(). Given that the default
      mapping_gfp_mask() is GFP_HIGHUSER, it is _very_ unlikely that anyone will
      ever make use of that parameter. In fact, all drivers currently pass
      redundant flags or 0.
      
      This patch removes the 'gfp' parameter. The only reason to keep it is to
      remove flags like __GFP_WAIT. But in its current form, it can only be used
      to add flags. So to remove __GFP_WAIT, you'd have to drop it from the
      mapping_gfp_mask, which again is stupid as this mask is used by shmem-core
      for other allocations, too.
      
      If any driver ever requires that parameter, we can introduce a new helper
      that takes the raw 'gfp' parameter. The caller'd be responsible to combine
      it with mapping_gfp_mask() in a suitable way. The current
      drm_gem_get_pages() helper would then simply use mapping_gfp_mask() and
      call the new helper. This is what shmem_read_mapping_pages{_gfp,} does
      right now.
      
      Moreover, the gfp-zone flag-usage is not obvious: If you pass a modified
      zone, shmem core will WARN() or even BUG(). In other words, the following
      must be true for 'gfp' passed to shmem_read_mapping_pages_gfp():
          gfp_zone(mapping_gfp_mask(mapping)) == gfp_zone(gfp)
      Add a comment to drm_gem_read_pages() explaining that constraint.
      
      Signed-off-by: default avatarDavid Herrmann <dh.herrmann@gmail.com>
      0cdbe8ac
    • David Herrmann's avatar
      drm/omap: use __GFP_DMA32 for shmem-backed gem · ab5a60c3
      David Herrmann authored
      
      
      OMAP requires bo-pages to be in the DMA32 zone. Explicitly request this by
      setting __GFP_DMA32 as mapping-gfp-mask during shmem initialization. This
      drops HIGHMEM from the gfp-mask and uses DMA32 instead. shmem-core takes
      care to relocate pages during swap-in in case they have been loaded into
      the wrong zone.
      
      It is _not_ possible to pass __GFP_DMA32 to shmem_read_mapping_page_gfp()
      as the page might have already been swapped-in at that time. The zone-mask
      must be set during initialization and be kept constant for now.
      
      Remove the now superfluous TODO in omap_gem.c.
      
      Reviewed-by: default avatarRob Clark <robdclark@gmail.com>
      Tested-by: default avatarTomi Valkeinen <tomi.valkeinen@ti.com>
      Signed-off-by: default avatarDavid Herrmann <dh.herrmann@gmail.com>
      ab5a60c3
  2. Jul 07, 2014
    • Linus Torvalds's avatar
      Linux 3.16-rc4 · cd3de83f
      Linus Torvalds authored
      cd3de83f
    • Linus Torvalds's avatar
      Merge tag 'dt-for-linus' of git://git.secretlab.ca/git/linux · 100193f5
      Linus Torvalds authored
      Pull devicetree bugfix from Grant Likely:
       "Important bug fix for parsing 64-bit addresses on 32-bit platforms.
        Without this patch the kernel will try to use memory ranges that
        cannot be reached"
      
      * tag 'dt-for-linus' of git://git.secretlab.ca/git/linux:
        of: Check for phys_addr_t overflows in early_init_dt_add_memory_arch
      100193f5
    • Linus Torvalds's avatar
      Merge tag 'scsi-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jejb/scsi · 8addf0c7
      Linus Torvalds authored
      Pull SCSI fixes from James Bottomley:
       "This is a set of 13 fixes, a MAINTAINERS update and a sparse update.
        The fixes are mostly correct value initialisations, avoiding NULL
        derefs and some uninitialised pointer avoidance.
      
        All the patches have been incubated in -next for a few days.  The
        final patch (use the scsi data buffer length to extract transfer size)
        has been rebased to add a cc to stable, but only the commit message
        has changed"
      
      * tag 'scsi-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jejb/scsi:
        [SCSI] use the scsi data buffer length to extract transfer size
        virtio-scsi: fix various bad behavior on aborted requests
        virtio-scsi: avoid cancelling uninitialized work items
        ibmvscsi: Add memory barriers for send / receive
        ibmvscsi: Abort init sequence during error recovery
        qla2xxx: Fix sparse warning in qla_target.c.
        bnx2fc: Improve stats update mechanism
        bnx2fc: do not scan uninitialized lists in case of error.
        fc: ensure scan_work isn't active when freeing fc_rport
        pm8001: Fix potential null pointer dereference and memory leak.
        MAINTAINERS: Update LSILOGIC MPT FUSION DRIVERS (FC/SAS/SPI) maintainers Email IDs
        be2iscsi: remove potential junk pointer free
        be2iscsi: add an missing goto in error path
        scsi_error: set DID_TIME_OUT correctly
        scsi_error: fix invalid setting of host byte
      8addf0c7
  3. Jul 06, 2014
    • Linus Torvalds's avatar
      Merge branch 'drm-fixes' of git://people.freedesktop.org/~airlied/linux · 110e4308
      Linus Torvalds authored
      Pull drm fixes from Dave Airlie:
       "i915, tda998x and vmwgfx fixes,
      
        The main one is i915 fix for missing VGA connectors, along with some
        fixes for the tda998x from Russell fixing some modesetting problems.
      
        (still on holidays, but got a spare moment to find these)"
      
      * 'drm-fixes' of git://people.freedesktop.org/~airlied/linux:
        drm/vmwgfx: Fix incorrect write to read-only register v2:
        drm/i915: Drop early VLV WA to fix Voltage not getting dropped to Vmin
        drm/i915: only apply crt_present check on VLV
        drm/i915: Wait for vblank after enabling the primary plane on BDW
        drm/i2c: tda998x: add some basic mode validation
        drm/i2c: tda998x: faster polling for edid
        drm/i2c: tda998x: move drm_i2c_encoder_destroy call
      110e4308
    • Linus Torvalds's avatar
      Merge tag 'fixes-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/arm/arm-soc · 75bf757e
      Linus Torvalds authored
      Pull ARM SoC fixes from Olof Johansson:
       "This week's arm-soc fixes:
      
         - A set of of OMAP patches that we had missed Tony's pull request of:
           * Reset fix for am43xx
           * Proper OPP table for omap5
           * Fix for SoC detection of one of the DRA7 SoCs
           * hwmod updates to get SATA and OCP to work on omap5 (drivers
             merged in 3.16)
           * ... plus a handful of smaller fixes
         - sunxi needed to re-add machine specific restart code that was
           removed in anticipation of a watchdog driver being merged for 3.16,
           and it didn't make it in.
         - Marvell fixes for PCIe on SMP and a big-endian fix.
         - A trivial defconfig update to make my capri test board boot with
           bcm_defconfig again.
      
        ... and a couple of MAINTAINERS updates, one to claim new Keystone
        drivers that have been merged, and one to merge MXS and i.MX (both
        Freescale platforms).
      
        The largest diffs come from the hwmod code for omap5 and the re-add of
        the restart code on sunxi.  The hwmod stuff is quite late at this
        point but it slipped through cracks repeatedly while coming up the
        maintainer chain and only affects the one SoC so risk is low"
      
      * tag 'fixes-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/arm/arm-soc:
        MAINTAINERS: Add few more Keystone drivers
        MAINTAINERS: merge MXS entry into IMX one
        ARM: sunxi: Reintroduce the restart code for A10/A20 SoCs
        ARM: mvebu: fix cpuidle implementation to work on big-endian systems
        ARM: mvebu: update L2/PCIe deadlock workaround after L2CC cleanup
        ARM: mvebu: move Armada 375 external abort logic as a quirk
        ARM: bcm: Fix bcm and multi_v7 defconfigs
        ARM: dts: dra7-evm: remove interrupt binding
        ARM: OMAP2+: Fix parser-bug in platform muxing code
        ARM: DTS: dra7/dra7xx-clocks: ATL related changes
        ARM: OMAP2+: drop unused function
        ARM: dts: am43x-epos-evm: Add Missing cpsw-phy-sel for am43x-epos-evm
        ARM: dts: omap5: Update CPU OPP table as per final production Manual
        ARM: DRA722: add detection of SoC information
        ARM: dts: Enable twl4030 off-idle configuration for selected omaps
        ARM: OMAP5: hwmod: Add ocp2scp3 and sata hwmods
        ARM: OMAP2+: hwmod: Change hardreset soc_ops for AM43XX
      75bf757e
    • Linus Torvalds's avatar
      Merge branch 'irq-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · 549f11c9
      Linus Torvalds authored
      Pull irq fixes from Thomas Gleixner:
       "A few minor fixlets in ARM SoC irq drivers and a fix for a memory leak
        which I introduced in the last round of cleanups :("
      
      * 'irq-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
        genirq: Fix memory leak when calling irq_free_hwirqs()
        irqchip: spear_shirq: Fix interrupt offset
        irqchip: brcmstb-l2: Level-2 interrupts are edge sensitive
        irqchip: armada-370-xp: Mask all interrupts during initialization.
      549f11c9
    • Dave Airlie's avatar
      Merge tag 'drm-intel-fixes-2014-07-03' of git://anongit.freedesktop.org/drm-intel · dfd7aecf
      Dave Airlie authored
      Fixes for 3.16-rc3; most importantly Jesse brings back VGA he took away
      on a bunch of machines. Also a vblank fix for BDW and a power workaround
      fix for VLV.
      
      * tag 'drm-intel-fixes-2014-07-03' of git://anongit.freedesktop.org/drm-intel:
        drm/i915: Drop early VLV WA to fix Voltage not getting dropped to Vmin
        drm/i915: only apply crt_present check on VLV
        drm/i915: Wait for vblank after enabling the primary plane on BDW
      dfd7aecf