1. 20 12月, 2013 1 次提交
    • T
      drm/tegra: Add DSI support · dec72739
      Thierry Reding 提交于
      This commit adds support for both DSI outputs found on Tegra. Only very
      minimal functionality is implemented, so advanced features like ganged
      mode won't work.
      
      Due to the lack of other test hardware, some sections of the driver are
      hardcoded to work with Dalmore.
      Signed-off-by: NThierry Reding <treding@nvidia.com>
      dec72739
  2. 19 12月, 2013 15 次提交
  3. 18 12月, 2013 5 次提交
    • T
      drm/tegra: Implement panel support · 9be7d864
      Thierry Reding 提交于
      Use the DRM panel framework to attach a panel to an output. If the panel
      attached to a connector supports supports the backlight brightness
      accessors, a property will be available to allow the brightness to be
      modified from userspace.
      Signed-off-by: NThierry Reding <treding@nvidia.com>
      9be7d864
    • T
      drm/panel: Add support for Panasonic VVX10F004B0 · 210fcd9d
      Thierry Reding 提交于
      The Panasonic VVX10F004B0 is a 10.1" WUXGA TFT LCD panel connected using
      four DSI lanes.
      Signed-off-by: NThierry Reding <treding@nvidia.com>
      210fcd9d
    • T
      drm/panel: Add simple panel support · 280921de
      Thierry Reding 提交于
      Add a driver for simple panels. Such panels can have a regulator that
      provides the supply voltage and a separate GPIO to enable the panel.
      Optionally the panels can have a backlight associated with them so it
      can be enabled or disabled according to the panel's power management
      mode.
      
      Support is added for two panels: An AU Optronics 10.1" WSVGA and a
      Chunghwa Picture Tubes 10.1" WXGA panel.
      Signed-off-by: NThierry Reding <treding@nvidia.com>
      280921de
    • T
      drm: Add panel support · aead40ea
      Thierry Reding 提交于
      Add a very simple framework to register and lookup panels. Panel drivers
      can initialize a DRM panel and register it with the framework, allowing
      them to be retrieved and used by display drivers. Currently only support
      for DPMS and obtaining panel modes is provided. However it should be
      sufficient to enable a large number of panels. The framework should also
      be easily extensible to support more sophisticated kinds of panels such
      as DSI.
      
      The framework hasn't been tied into the DRM core, even though it should
      be easily possible to do so if that's what we want. In the current
      implementation, display drivers can simple make use of it to retrieve a
      panel, obtain its modes and control its DPMS mode.
      
      Note that this is currently only tested on systems that boot from a
      device tree. No glue code has been written yet for systems that use
      platform data, but it should be easy to add.
      Signed-off-by: NThierry Reding <treding@nvidia.com>
      aead40ea
    • A
      drm: Add MIPI DSI bus support · 068a0023
      Andrzej Hajda 提交于
      MIPI DSI bus allows to model DSI hosts and DSI peripherals using the
      Linux driver model. DSI hosts are registered by the DSI host drivers.
      During registration DSI peripherals will be created from the children
      of the DSI host's device tree node. Support for registration from
      board-setup code will be added later when needed.
      
      DSI hosts expose operations which can be used by DSI peripheral drivers
      to access associated devices.
      Signed-off-by: NAndrzej Hajda <a.hajda@samsung.com>
      Signed-off-by: NKyungmin Park <kyungmin.park@samsung.com>
      Signed-off-by: NThierry Reding <treding@nvidia.com>
      068a0023
  4. 17 12月, 2013 1 次提交
  5. 16 12月, 2013 2 次提交
    • M
      null_blk: mem garbage on NUMA systems during init · 57053d8c
      Matias Bjorling 提交于
      For NUMA systems, initializing the blk-mq layer and using per node hctx.
      We initialize submit queues to 1, while blk-mq nr_hw_queues is
      initialized to the number of NUMA nodes.
      
      This makes the null_init_hctx function overwrite memory outside of what
      it allocated.  In my case it lead to writing garbage into struct
      request_queue's mq_map.
      Signed-off-by: NMatias Bjorling <m@bjorling.me>
      Cc: Jens Axboe <axboe@kernel.dk>
      Signed-off-by: NLinus Torvalds <torvalds@linux-foundation.org>
      57053d8c
    • S
      radeon_pm: fix oops in hwmon_attributes_visible() and radeon_hwmon_show_temp_thresh() · e4158f1b
      Sergey Senozhatsky 提交于
      Since commit ec39f64b ("drm/radeon/dpm: Convert to use
      devm_hwmon_register_with_groups") radeon_hwmon_init() is using
      hwmon_device_register_with_groups(), which sets `rdev' as a device
      private driver_data, while hwmon_attributes_visible() and
      radeon_hwmon_show_temp_thresh() are still waiting for `drm_device'.
      
      Fix them by using dev_get_drvdata(), in order to avoid this oops:
      
        BUG: unable to handle kernel paging request at 0000000000001e28
        IP: [<ffffffffa02ae8b4>] hwmon_attributes_visible+0x18/0x3d [radeon]
        PGD 15057e067 PUD 151a8e067 PMD 0
        Oops: 0000 [#1] PREEMPT SMP
        Call Trace:
          internal_create_group+0x114/0x1d9
          sysfs_create_group+0xe/0x10
          sysfs_create_groups+0x22/0x5f
          device_add+0x34f/0x501
          device_register+0x15/0x18
          hwmon_device_register_with_groups+0xb5/0xed
          radeon_hwmon_init+0x56/0x7c [radeon]
          radeon_pm_init+0x134/0x7e5 [radeon]
          radeon_modeset_init+0x75f/0x8ed [radeon]
          radeon_driver_load_kms+0xc6/0x187 [radeon]
          drm_dev_register+0xf9/0x1b4 [drm]
          drm_get_pci_dev+0x98/0x129 [drm]
          radeon_pci_probe+0xa3/0xac [radeon]
          pci_device_probe+0x6e/0xcf
          driver_probe_device+0x98/0x1c4
          __driver_attach+0x5c/0x7e
          bus_for_each_dev+0x7b/0x85
          driver_attach+0x19/0x1b
          bus_add_driver+0x104/0x1ce
          driver_register+0x89/0xc5
          __pci_register_driver+0x58/0x5b
          drm_pci_init+0x86/0xea [drm]
          radeon_init+0x97/0x1000 [radeon]
          do_one_initcall+0x7f/0x117
          load_module+0x1583/0x1bb4
          SyS_init_module+0xa0/0xaf
      Signed-off-by: NSergey Senozhatsky <sergey.senozhatsky@gmail.com>
      Cc: Borislav Petkov <bp@alien8.de>
      Cc: Alexander Deucher <Alexander.Deucher@amd.com>
      Signed-off-by: NLinus Torvalds <torvalds@linux-foundation.org>
      e4158f1b
  6. 15 12月, 2013 2 次提交
  7. 14 12月, 2013 2 次提交
    • J
      dm array: fix a reference counting bug in shadow_ablock · ed9571f0
      Joe Thornber 提交于
      An old array block could have its reference count decremented below
      zero when it is being replaced in the btree by a new array block.
      
      The fix is to increment the old ablock's reference count just before
      inserting a new ablock into the btree.
      Signed-off-by: NJoe Thornber <ejt@redhat.com>
      Signed-off-by: NMike Snitzer <snitzer@redhat.com>
      Cc: stable@vger.kernel.org # 3.9+
      ed9571f0
    • J
      dm space map: disallow decrementing a reference count below zero · 5b564d80
      Joe Thornber 提交于
      The old behaviour, returning -EINVAL if a ref_count of 0 would be
      decremented, was removed in commit f722063e ("dm space map: optimise
      sm_ll_dec and sm_ll_inc").  To fix this regression we return an error
      code from the mutator function pointer passed to sm_ll_mutate() and have
      dec_ref_count() return -EINVAL if the old ref_count is 0.
      
      Add a DMERR to reflect the potential seriousness of this error.
      
      Also, add missing dm_tm_unlock() to sm_ll_mutate()'s error path.
      
      With this fix the following dmts regression test now passes:
       dmtest run --suite cache -n /metadata_use_kernel/
      
      The next patch fixes the higher-level dm-array code that exposed this
      regression.
      Signed-off-by: NJoe Thornber <ejt@redhat.com>
      Signed-off-by: NMike Snitzer <snitzer@redhat.com>
      Cc: stable@vger.kernel.org # 3.12+
      5b564d80
  8. 13 12月, 2013 12 次提交