1. 19 8月, 2016 2 次提交
  2. 17 8月, 2016 11 次提交
  3. 16 8月, 2016 12 次提交
  4. 15 8月, 2016 1 次提交
  5. 12 8月, 2016 6 次提交
  6. 11 8月, 2016 8 次提交
    • G
      nvme: Suspend all queues before deletion · c21377f8
      Gabriel Krisman Bertazi 提交于
      When nvme_delete_queue fails in the first pass of the
      nvme_disable_io_queues() loop, we return early, failing to suspend all
      of the IO queues.  Later, on the nvme_pci_disable path, this causes us
      to disable MSI without actually having freed all the IRQs, which
      triggers the BUG_ON in free_msi_irqs(), as show below.
      
      This patch refactors nvme_disable_io_queues to suspend all queues before
      start submitting delete queue commands.  This way, we ensure that we
      have at least returned every IRQ before continuing with the removal
      path.
      
      [  487.529200] kernel BUG at ../drivers/pci/msi.c:368!
      cpu 0x46: Vector: 700 (Program Check) at [c0000078c5b83650]
          pc: c000000000627a50: free_msi_irqs+0x90/0x200
          lr: c000000000627a40: free_msi_irqs+0x80/0x200
          sp: c0000078c5b838d0
         msr: 9000000100029033
        current = 0xc0000078c5b40000
        paca    = 0xc000000002bd7600   softe: 0        irq_happened: 0x01
          pid   = 1376, comm = kworker/70:1H
      kernel BUG at ../drivers/pci/msi.c:368!
      Linux version 4.7.0.mainline+ (root@iod76) (gcc version 5.3.1 20160413
      (Ubuntu/IBM 5.3.1-14ubuntu2.1) ) #104 SMP Fri Jul 29 09:20:17 CDT 2016
      enter ? for help
      [c0000078c5b83920] d0000000363b0cd8 nvme_dev_disable+0x208/0x4f0 [nvme]
      [c0000078c5b83a10] d0000000363b12a4 nvme_timeout+0xe4/0x250 [nvme]
      [c0000078c5b83ad0] c0000000005690e4 blk_mq_rq_timed_out+0x64/0x110
      [c0000078c5b83b40] c00000000056c930 bt_for_each+0x160/0x170
      [c0000078c5b83bb0] c00000000056d928 blk_mq_queue_tag_busy_iter+0x78/0x110
      [c0000078c5b83c00] c0000000005675d8 blk_mq_timeout_work+0xd8/0x1b0
      [c0000078c5b83c50] c0000000000e8cf0 process_one_work+0x1e0/0x590
      [c0000078c5b83ce0] c0000000000e9148 worker_thread+0xa8/0x660
      [c0000078c5b83d80] c0000000000f2090 kthread+0x110/0x130
      [c0000078c5b83e30] c0000000000095f0 ret_from_kernel_thread+0x5c/0x6c
      Signed-off-by: NGabriel Krisman Bertazi <krisman@linux.vnet.ibm.com>
      Cc: Brian King <brking@linux.vnet.ibm.com>
      Cc: Keith Busch <keith.busch@intel.com>
      Cc: linux-nvme@lists.infradead.org
      Signed-off-by: NJens Axboe <axboe@fb.com>
      c21377f8
    • A
      efi/capsule: Allocate whole capsule into virtual memory · 6862e6ad
      Austin Christ 提交于
      According to UEFI 2.6 section 7.5.3, the capsule should be in contiguous
      virtual memory and firmware may consume the capsule immediately. To
      correctly implement this functionality, the kernel driver needs to vmap
      the entire capsule at the time it is made available to firmware.
      
      The virtual allocation of the capsule update has been changed from kmap,
      which was only allocating the first page of the update, to vmap, and
      allocates the entire data payload.
      Signed-off-by: NAustin Christ <austinwc@codeaurora.org>
      Signed-off-by: NMatt Fleming <matt@codeblueprint.co.uk>
      Reviewed-by: NMatt Fleming <matt@codeblueprint.co.uk>
      Reviewed-by: NLee, Chun-Yi <jlee@suse.com>
      Cc: <stable@vger.kernel.org> # v4.7
      Cc: Andy Lutomirski <luto@kernel.org>
      Cc: Ard Biesheuvel <ard.biesheuvel@linaro.org>
      Cc: Borislav Petkov <bp@alien8.de>
      Cc: Brian Gerst <brgerst@gmail.com>
      Cc: Bryan O'Donoghue <pure.logic@nexus-software.ie>
      Cc: Denys Vlasenko <dvlasenk@redhat.com>
      Cc: H. Peter Anvin <hpa@zytor.com>
      Cc: Josh Poimboeuf <jpoimboe@redhat.com>
      Cc: Kweh Hock Leong <hock.leong.kweh@intel.com>
      Cc: Linus Torvalds <torvalds@linux-foundation.org>
      Cc: Peter Zijlstra <peterz@infradead.org>
      Cc: Thomas Gleixner <tglx@linutronix.de>
      Cc: linux-efi@vger.kernel.org
      Link: http://lkml.kernel.org/r/1470912120-22831-3-git-send-email-matt@codeblueprint.co.ukSigned-off-by: NIngo Molnar <mingo@kernel.org>
      6862e6ad
    • G
      dma-buf/sync_file: only enable fence signalling on poll() · e2416553
      Gustavo Padovan 提交于
      Signalling doesn't need to be enabled at sync_file creation, it is only
      required if userspace waiting the fence to signal through poll().
      
      Thus we delay fence_add_callback() until poll is called. It only adds the
      callback the first time poll() is called. This avoid re-adding the same
      callback multiple times.
      
      v2: rebase and update to work with new fence support for sync_file
      
      v3: use atomic operation to set enabled and protect fence_add_callback()
      
      v4: use user bit from fence flags (comment from Chris Wilson)
      
      v5: use ternary if on poll return (comment from Chris Wilson)
      Signed-off-by: NGustavo Padovan <gustavo.padovan@collabora.co.uk>
      Reviewed-by: NChris Wilson <chris@chris-wilson.co.uk>
      Signed-off-by: NSumit Semwal <sumit.semwal@linaro.org>
        [sumits: remove unused var status]
      Link: http://patchwork.freedesktop.org/patch/msgid/1470404378-27961-1-git-send-email-gustavo@padovan.org
      e2416553
    • G
      dma-buf/sync_file: add sync_file_get_fence() · 972526a4
      Gustavo Padovan 提交于
      Creates a function that given an sync file descriptor returns a
      fence containing all fences in the sync_file.
      
      v2: Comments by Daniel Vetter
      	- Adapt to new version of fence_collection_init()
      	- Hold a reference for the fence we return
      
      v3:
      	- Adapt to use fput() directly
      	- rename to sync_file_get_fence() as we always return one fence
      
      v4: Adapt to use fence_array
      
      v5: set fence through fence_get()
      Signed-off-by: NGustavo Padovan <gustavo.padovan@collabora.co.uk>
      Reviewed-by: NChris Wilson <chris@chris-wilson.co.uk>
      Acked-by: NChristian König <christian.koenig@amd.com>
      Signed-off-by: NSumit Semwal <sumit.semwal@linaro.org>
      972526a4
    • G
      dma-buf/sync_file: refactor fence storage in struct sync_file · a02b9dc9
      Gustavo Padovan 提交于
      Create sync_file->fence to abstract the type of fence we are using for
      each sync_file. If only one fence is present we use a normal struct fence
      but if there is more fences to be added to the sync_file a fence_array
      is created.
      
      This change cleans up sync_file a bit. We don't need to have sync_file_cb
      array anymore. Instead, as we always have  one fence, only one fence
      callback is registered per sync_file.
      
      v2: Comments from Chris Wilson and Christian König
      	- Not using fence_ops anymore
      	- fence_is_array() was created to differentiate fence from fence_array
      	- fence_array_teardown() is now exported and used under fence_is_array()
      	- struct sync_file lost num_fences member
      
      v3: Comments from Chris Wilson and Christian König
      	- struct sync_file lost status member in favor of fence_is_signaled()
      	- drop use of fence_array_teardown()
      	- use sizeof(*fence) to allocate only an array on fence pointers
      
      v4: Comments from Chris Wilson
      	- use sizeof(*fence) to reallocate array
      	- fix typo in comments
      	- protect num_fences sum against overflows
      	- use array->base instead of casting the to struct fence
      
      v5: fixes checkpatch warnings
      
      v6: fix case where all fences are signaled.
      Signed-off-by: NGustavo Padovan <gustavo.padovan@collabora.co.uk>
      Reviewed-by: NChris Wilson <chris@chris-wilson.co.uk>
      Acked-by: NChristian König <christian.koenig@amd.com>
      Acked-by: NGreg Kroah-Hartman <gregkh@linuxfoundation.org>
      Signed-off-by: NSumit Semwal <sumit.semwal@linaro.org>
      a02b9dc9
    • G
      dma-buf/fence-array: add fence_is_array() · e1aaf311
      Gustavo Padovan 提交于
      Add helper to check if fence is array.
      
      v2: Comments from Chris Wilson
      	- remove ternary if from ops comparison
      	- add EXPORT_SYMBOL(fence_array_ops)
      
      Cc: Chris Wilson <chris@chris-wilson.co.uk>
      Cc: Christian König <christian.koenig@amd.com>
      Signed-off-by: NGustavo Padovan <gustavo.padovan@collabora.co.uk>
      Reviewed-by: NChris Wilson <chris@chris-wilson.co.uk>
      Reviewed-by: NChristian König <christian.koenig@amd.com>
      Signed-off-by: NSumit Semwal <sumit.semwal@linaro.org>
      e1aaf311
    • P
      drm/imx-ldb: Add support to drm-bridge · dc80d703
      Peter Senna Tschudin 提交于
      Add support to attach a drm_bridge to imx-ldb in addition to
      existing support to attach a LVDS panel.
      
      This patch does a simple code refactoring by moving code
      from for_each_child_of_node iterator to a new function named
      imx_ldb_panel_ddc(). This was necessary to allow the panel ddc
      code to run only when the imx_ldb is not attached to a bridge.
      
      Cc: Enric Balletbo i Serra <enric.balletbo@collabora.com>
      Cc: Philipp Zabel <p.zabel@pengutronix.de>
      Cc: Rob Herring <robh@kernel.org>
      Cc: Fabio Estevam <fabio.estevam@nxp.com>
      Cc: David Airlie <airlied@linux.ie>
      Cc: Thierry Reding <treding@nvidia.com>
      Cc: Thierry Reding <thierry.reding@gmail.com>
      Signed-off-by: NPeter Senna Tschudin <peter.senna@collabora.com>
      Signed-off-by: NPhilipp Zabel <p.zabel@pengutronix.de>
      dc80d703
    • B
      drm/mediatek: set mt8173 dithering function · 72164364
      Bibby Hsieh 提交于
      Some panels only accept bpc (bit per color) 6-bit.
      But, the default bpc in mt8173 display data path is 8-bit.
      If we didn't enable dithering function to convert bpc,
      display cannot show the smooth grayscale image.
      
      In mt8173, the dithering function in OD (OverDrive) and
      GAMMA module, we have to config them with
      connector->display_mode.bpc when CRTC initial.
      
      1. Clear the default value at *_DITHER_5 and *_DITHER_7 register.
      2. Calculate the LSB_ERR_SHIFT bits and ADD_LSHIFT bits two values.
      i.e. Input bpc of OD is 10 bits, we assume the bpc of panel is 6-bit,
      so, we need to set 4-bit to LSB_ERR_SHIFT and ADD_LSHIFT bits respectively.
      3. Then, set the OD or GAMMA to dithering mode depends on path-1 or path-2.
      Signed-off-by: NBibby Hsieh <bibby.hsieh@mediatek.com>
      Signed-off-by: NPhilipp Zabel <p.zabel@pengutronix.de>
      72164364