1. 25 Oct, 2016 18 commits
    • Akash Goel's avatar
      drm/i915: Use SSE4.1 movntdqa based memcpy for sampling GuC log buffer · 71706590
      Akash Goel authored
      To ensure that we always get the up-to-date data from log buffer, its
      better to access the buffer through an uncached CPU mapping. Also the way
      buffer is accessed from GuC & Host side, manually doing cache flush may
      not be effective always if cached CPU mapping is used. In order to avoid
      any performance drop & have fast reads from the GuC log buffer, used SSE4.1
      movntdqa based memcpy function i915_memcpy_from_wc, as copying using
      movntqda from WC type memory is almost as fast as reading from WB memory.
      This way log buffer sampling time will not get increased and so would be
      able to deal with the flush interrupt storm when GuC is generating logs at
      a very high rate.
      Ideally SSE 4.1 should be present on all chipsets supporting GuC based
      submisssions, but if not then logging will not be enabled.
      
      v2: Rebase.
      
      v3: Squash the WC type vmalloc mapping patch with this patch. (Chris)
      Suggested-by: default avatarChris Wilson <chris@chris-wilson.co.uk>
      Signed-off-by: default avatarAkash Goel <akash.goel@intel.com>
      Reviewed-by: default avatarTvrtko Ursulin <tvrtko.ursulin@intel.com>
      Signed-off-by: default avatarTvrtko Ursulin <tvrtko.ursulin@intel.com>
      71706590
    • Sagar Arun Kamble's avatar
      drm/i915: Debugfs support for GuC logging control · 685534ef
      Sagar Arun Kamble authored
      This patch provides debugfs interface i915_guc_output_control for
      on the fly enabling/disabling of logging in GuC firmware and controlling
      the verbosity level of logs.
      The value written to the file, should have bit 0 set to enable logging and
      bits 4-7 should contain the verbosity info.
      
      v2: Add a forceful flush, to collect left over logs, on disabling logging.
          Useful for Validation.
      
      v3: Besides minor cleanup, implement read method for the debugfs file and
          set the guc_log_level to -1 when logging is disabled. (Tvrtko)
      
      v4: Minor cleanup & rebase. (Tvrtko)
      
      v5:
      - Lock struct_mutex after the NULL check for guc log buffer vma. (Chris)
      - Rebase.
      Signed-off-by: default avatarSagar Arun Kamble <sagar.a.kamble@intel.com>
      Signed-off-by: default avatarAkash Goel <akash.goel@intel.com>
      Reviewed-by: default avatarTvrtko Ursulin <tvrtko.ursulin@intel.com>
      Signed-off-by: default avatarTvrtko Ursulin <tvrtko.ursulin@intel.com>
      685534ef
    • Sagar Arun Kamble's avatar
      drm/i915: Support for forceful flush of GuC log buffer · 896a0cb0
      Sagar Arun Kamble authored
      GuC firmware sends a flush interrupt to Host when the log buffer is half
      full and at that time only it updates the log buffer state.
      But in certain cases, as described below, it could be useful to have all
      that even when log buffer is only partially full. For that there is a force
      log buffer flush Host2GuC action supported by GuC firmware.
      
      For Validation requirements, a forceful flush is needed to collect the
      left over logs on disabling logging. The same can be done before proceeding
      with GPU/GuC reset as there could be some data in log buffer which is yet
      to be captured and those logs would be particularly useful to understand
      that why the reset was initiated.
      Signed-off-by: default avatarSagar Arun Kamble <sagar.a.kamble@intel.com>
      Signed-off-by: default avatarAkash Goel <akash.goel@intel.com>
      Reviewed-by: default avatarTvrtko Ursulin <tvrtko.ursulin@intel.com>
      Signed-off-by: default avatarTvrtko Ursulin <tvrtko.ursulin@intel.com>
      896a0cb0
    • Akash Goel's avatar
      drm/i915: Augment i915 error state to include the dump of GuC log buffer · 27b85bea
      Akash Goel authored
      Added the dump of GuC log buffer to i915 error state, as the contents of
      GuC log buffer would also be useful to determine that why the GPU reset
      was triggered.
      
      v2:
      - For uniformity use existing helper function print_error_obj() to
        dump out contents of GuC log buffer, pretty printing is better left
        to userspace. (Chris)
      - Skip the dumping of GuC log buffer when logging is disabled as it
        won't be of any use.
      - Rebase.
      
      v3: Rebase.
      Suggested-by: default avatarChris Wilson <chris@chris-wilson.co.uk>
      Signed-off-by: default avatarAkash Goel <akash.goel@intel.com>
      Reviewed-by: default avatarTvrtko Ursulin <tvrtko.ursulin@intel.com>
      Signed-off-by: default avatarTvrtko Ursulin <tvrtko.ursulin@intel.com>
      27b85bea
    • Akash Goel's avatar
      drm/i915: Increase GuC log buffer size to reduce flush interrupts · 72c0bc66
      Akash Goel authored
      In cases where GuC generate logs at a very high rate, correspondingly
      the rate of flush interrupts is also very high.
      So far total 8 pages were allocated for storing both ISR & DPC logs.
      As per the half-full draining protocol followed by GuC, by doubling
      the number of pages, the frequency of flush interrupts can be cut down
      to almost half, which then helps in reducing the logging overhead.
      So now allocating 8 pages apiece for ISR & DPC logs.
      This also helps in reducing the output log file size, apart from
      reducing the flush interrupt count. With the original settings,
      44 KB was needed for one snapshot. With modified settings, 76 KB is
      needed for a snapshot which will be equivalent to 2 snapshots of the
      original setting. So 12KB saving, every 88 KB, over the original setting.
      Suggested-by: default avatarTvrtko Ursulin <tvrtko.ursulin@intel.com>
      Signed-off-by: default avatarAkash Goel <akash.goel@intel.com>
      Reviewed-by: default avatarTvrtko Ursulin <tvrtko.ursulin@intel.com>
      Signed-off-by: default avatarTvrtko Ursulin <tvrtko.ursulin@intel.com>
      72c0bc66
    • Akash Goel's avatar
      drm/i915: Optimization to reduce the sampling time of GuC log buffer · 6941f3c9
      Akash Goel authored
      GuC firmware sends an interrupt to flush the log buffer when it becomes
      half full, so Driver doesn't really need to sample the complete buffer
      and can just copy only the newly written data by GuC into the local
      buffer, i.e. as per the read & write pointer values.
      Moreover the flush interrupt would generally come for one type of log
      buffer, when it becomes half full, so at that time the other 2 types of
      log buffer would comparatively have much lesser unread data in them.
      In case of overflow reported by GuC, Driver do need to copy the entire
      buffer as the whole buffer would contain the unread data.
      
      v2: Rebase.
      
      v3: Fix the blooper of doing the copy twice. (Tvrtko)
      
      v4: Add curlies for 'else' case also, matching the 'if'. (Tvrtko)
      Signed-off-by: default avatarAkash Goel <akash.goel@intel.com>
      Reviewed-by: default avatarTvrtko Ursulin <tvrtko.ursulin@intel.com>
      Signed-off-by: default avatarTvrtko Ursulin <tvrtko.ursulin@intel.com>
      6941f3c9
    • Akash Goel's avatar
      drm/i915: Add stats for GuC log buffer flush interrupts · 5aa1ee4b
      Akash Goel authored
      GuC firmware sends an interrupt to flush the log buffer when it
      becomes half full. GuC firmware also tracks how many times the
      buffer overflowed.
      It would be useful to maintain a statistics of how many flush
      interrupts were received and for which type of log buffer,
      along with the overflow count of each buffer type.
      Augmented i915_log_info debugfs to report back these statistics.
      
      v2:
      - Update the logic to detect multiple overflows between the 2
        flush interrupts and also log a message for overflow (Tvrtko)
      - Track the number of times there was no free sub buffer to capture
        the GuC log buffer. (Tvrtko)
      
      v3:
      - Fix the printf field width for overflow counter, set it to 10 as per the
        max value of u32, which takes 10 digits in decimal form. (Tvrtko)
      
      v4:
      - Move the log buffer overflow handling to a new function for better
        readability. (Tvrtko)
      Signed-off-by: default avatarAkash Goel <akash.goel@intel.com>
      Reviewed-by: default avatarTvrtko Ursulin <tvrtko.ursulin@intel.com>
      Signed-off-by: default avatarTvrtko Ursulin <tvrtko.ursulin@intel.com>
      5aa1ee4b
    • Akash Goel's avatar
      drm/i915: New lock to serialize the Host2GuC actions · 5dd7989b
      Akash Goel authored
      With the addition of new Host2GuC actions related to GuC logging, there
      is a need of a lock to serialize them, as they can execute concurrently
      with each other and also with other existing actions.
      
      v2: Use mutex in place of spinlock to serialize, as sleep can happen
          while waiting for the action's response from GuC. (Tvrtko)
      
      v3: To conform to the general rules, acquire mutex before taking the
          forcewake. (Tvrtko)
      Signed-off-by: default avatarAkash Goel <akash.goel@intel.com>
      Reviewed-by: default avatarTvrtko Ursulin <tvrtko.ursulin@intel.com>
      Signed-off-by: default avatarTvrtko Ursulin <tvrtko.ursulin@intel.com>
      5dd7989b
    • Akash Goel's avatar
      drm/i915: Add a relay backed debugfs interface for capturing GuC logs · f8240835
      Akash Goel authored
      Added a new debugfs interface '/sys/kernel/debug/dri/guc_log' for the
      User to capture GuC firmware logs. Availed relay framework to implement
      the interface, where Driver will have to just use a relay API to store
      snapshots of the GuC log buffer in the buffer managed by relay.
      The snapshot will be taken when GuC firmware sends a log buffer flush
      interrupt and up to four snapshots could be stored in the relay buffer.
      The relay buffer will be operated in a mode where it will overwrite the
      data not yet collected by User.
      Besides mmap method, through which User can directly access the relay
      buffer contents, relay also supports the 'poll' method. Through the 'poll'
      call on log file, User can come to know whenever a new snapshot of the
      log buffer is taken by Driver, so can run in tandem with the Driver and
      capture the logs in a sustained/streaming manner, without any loss of data.
      
      v2: Defer the creation of relay channel & associated debugfs file, as
          debugfs setup is now done at the end of i915 Driver load. (Chris)
      
      v3:
      - Switch to no-overwrite mode for relay.
      - Fix the relay sub buffer switching sequence.
      
      v4:
      - Update i915 Kconfig to select RELAY config. (TvrtKo)
      - Log a message when there is no sub buffer available to capture
        the GuC log buffer. (Tvrtko)
      - Increase the number of relay sub buffers to 8 from 4, to have
        sufficient buffering for boot time logs
      
      v5:
      - Fix the alignment, indentation issues and some minor cleanup. (Tvrtko)
      - Update the comment to elaborate on why a relay channel has to be
        associated with the debugfs file. (Tvrtko)
      
      v6:
      - Move the write to 'is_global' after the NULL check on parent directory
        dentry pointer. (Tvrtko)
      
      v7: Add a BUG_ON to validate relay buffer allocation size. (Chris)
      
      Testcase: igt/tools/intel_guc_logger
      Suggested-by: default avatarChris Wilson <chris@chris-wilson.co.uk>
      Signed-off-by: default avatarSourab Gupta <sourab.gupta@intel.com>
      Signed-off-by: default avatarAkash Goel <akash.goel@intel.com>
      Reviewed-by: default avatarTvrtko Ursulin <tvrtko.ursulin@intel.com>
      Signed-off-by: default avatarTvrtko Ursulin <tvrtko.ursulin@intel.com>
      f8240835
    • Sagar Arun Kamble's avatar
      drm/i915: Handle log buffer flush interrupt event from GuC · 4100b2ab
      Sagar Arun Kamble authored
      GuC ukernel sends an interrupt to Host to flush the log buffer
      and expects Host to correspondingly update the read pointer
      information in the state structure, once it has consumed the
      log buffer contents by copying them to a file or buffer.
      Even if Host couldn't copy the contents, it can still update the
      read pointer so that logging state is not disturbed on GuC side.
      
      v2:
      - Use a dedicated workqueue for handling flush interrupt. (Tvrtko)
      - Reduce the overall log buffer copying time by skipping the copy of
        crash buffer area for regular cases and copying only the state
        structure data in first page.
      
      v3:
       - Create a vmalloc mapping of log buffer. (Chris)
       - Cover the flush acknowledgment under rpm get & put.(Chris)
       - Revert the change of skipping the copy of crash dump area, as
         not really needed, will be covered by subsequent patch.
      
      v4:
       - Destroy the wq under the same condition in which it was created,
         pass dev_piv pointer instead of dev to newly added GuC function,
         add more comments & rename variable for clarity. (Tvrtko)
      
      v5:
      - Allocate & destroy the dedicated wq, for handling flush interrupt,
        from the setup/teardown routines of GuC logging. (Chris)
      - Validate the log buffer size value retrieved from state structure
        and do some minor cleanup. (Tvrtko)
      - Fix error/warnings reported by checkpatch. (Tvrtko)
      - Rebase.
      
      v6:
       - Remove the interrupts_enabled check from guc_capture_logs_work, need
         to process that last work item also, queued just before disabling the
         interrupt as log buffer flush interrupt handling is a bit different
         case where GuC is actually expecting an ACK from host, which should be
         provided to keep the logging going.
         Sync against the work will be done by caller disabling the interrupt.
       - Don't sample the log buffer size value from state structure, directly
         use the expected value to move the pointer & do the copy and that cannot
         go wrong (out of bounds) as Driver only allocated the log buffer and the
         relay buffers. Driver should refrain from interpreting the log packet,
         as much possible and let Userspace parser detect the anomaly. (Chris)
      
      v7:
      - Use switch statement instead of 'if else' for retrieving the GuC log
        buffer size. (Tvrtko)
      - Refactored the log buffer copying function and shortended the name of
        couple of variables for better readability. (Tvrtko)
      
      v8:
      - Make the dedicated wq as a high priority one to further reduce the
        turnaround time of handing log buffer flush event from GuC.
      Signed-off-by: default avatarSagar Arun Kamble <sagar.a.kamble@intel.com>
      Signed-off-by: default avatarAkash Goel <akash.goel@intel.com>
      Reviewed-by: default avatarTvrtko Ursulin <tvrtko.ursulin@intel.com>
      Signed-off-by: default avatarTvrtko Ursulin <tvrtko.ursulin@intel.com>
      4100b2ab
    • Sagar Arun Kamble's avatar
      drm/i915: Support for GuC interrupts · 26705e20
      Sagar Arun Kamble authored
      There are certain types of interrupts which Host can receive from GuC.
      GuC ukernel sends an interrupt to Host for certain events, like for
      example retrieve/consume the logs generated by ukernel.
      This patch adds support to receive interrupts from GuC but currently
      enables & partially handles only the interrupt sent by GuC ukernel.
      Future patches will add support for handling other interrupt types.
      
      v2:
      - Use common low level routines for PM IER/IIR programming (Chris)
      - Rename interrupt functions to gen9_xxx from gen8_xxx (Chris)
      - Replace disabling of wake ref asserts with rpm get/put (Chris)
      
      v3:
      - Update comments for more clarity. (Tvrtko)
      - Remove the masking of GuC interrupt, which was kept masked till the
        start of bottom half, its not really needed as there is only a
        single instance of work item & wq is ordered. (Tvrtko)
      
      v4:
      - Rebase.
      - Rename guc_events to pm_guc_events so as to be indicative of the
        register/control block it is associated with. (Chris)
      - Add handling for back to back log buffer flush interrupts.
      
      v5:
      - Move the read & clearing of register, containing Guc2Host message
        bits, outside the irq spinlock. (Tvrtko)
      
      v6:
      - Move the log buffer flush interrupt related stuff to the following
        patch so as to do only generic bits in this patch. (Tvrtko)
      - Rebase.
      
      v7:
      - Remove the interrupts_enabled check from gen9_guc_irq_handler, want to
        process that last interrupt also before disabling the interrupt, sync
        against the work queued by irq handler will be done by caller disabling
        the interrupt.
      Signed-off-by: default avatarSagar Arun Kamble <sagar.a.kamble@intel.com>
      Signed-off-by: default avatarAkash Goel <akash.goel@intel.com>
      Reviewed-by: default avatarTvrtko Ursulin <tvrtko.ursulin@intel.com>
      Signed-off-by: default avatarTvrtko Ursulin <tvrtko.ursulin@intel.com>
      26705e20
    • Akash Goel's avatar
      drm/i915: Add low level set of routines for programming PM IER/IIR/IMR register set · f4e9af4f
      Akash Goel authored
      So far PM IER/IIR/IMR registers were being used only for Turbo related
      interrupts. But interrupts coming from GuC also use the same set.
      As a precursor to supporting GuC interrupts, added new low level routines
      so as to allow sharing the programming of PM IER/IIR/IMR registers between
      Turbo & GuC.
      Also similar to PM IMR, maintaining a bitmask for PM IER register, to allow
      easy sharing of it between Turbo & GuC without involving a rmw operation.
      
      v2:
      - For appropriateness & avoid any ambiguity, rename old functions
        enable/disable pm_irq to mask/unmask pm_irq and rename new functions
        enable/disable pm_interrupts to enable/disable pm_irq. (Tvrtko)
      - Use u32 in place of uint32_t. (Tvrtko)
      
      v3:
      - Rename the fields pm_irq_mask & pm_ier_mask and do some cleanup. (Chris)
      - Rebase.
      
      v4: Fix the inadvertent disabling of User interrupt for VECS ring causing
          failure for certain IGTs.
      
      v5: Use dev_priv with HAS_VEBOX macro. (Tvrtko)
      Suggested-by: default avatarChris Wilson <chris@chris-wilson.co.uk>
      Signed-off-by: default avatarAkash Goel <akash.goel@intel.com>
      Reviewed-by: default avatarTvrtko Ursulin <tvrtko.ursulin@intel.com>
      Signed-off-by: default avatarTvrtko Ursulin <tvrtko.ursulin@intel.com>
      f4e9af4f
    • Akash Goel's avatar
      drm/i915: New structure to contain GuC logging related fields · d6b40b4b
      Akash Goel authored
      So far there were 2 fields related to GuC logs in 'intel_guc' structure.
      For the support of capturing GuC logs & storing them in a local buffer,
      multiple new fields would have to be added. This warrants a separate
      structure to contain the fields related to GuC logging state.
      Added a new structure 'intel_guc_log' and instance of it inside
      'intel_guc' structure.
      
      v2: Rebase.
      Signed-off-by: default avatarAkash Goel <akash.goel@intel.com>
      Reviewed-by: default avatarTvrtko Ursulin <tvrtko.ursulin@intel.com>
      Signed-off-by: default avatarTvrtko Ursulin <tvrtko.ursulin@intel.com>
      d6b40b4b
    • Sagar Arun Kamble's avatar
      drm/i915: Add GuC ukernel logging related fields to fw interface file · 5d34e85a
      Sagar Arun Kamble authored
      The first page of the GuC log buffer contains state info or meta data
      which is required to parse the logs contained in the subsequent pages.
      The structure representing the state info is added to interface file
      as Driver would need to handle log buffer flush interrupts from GuC.
      Added an enum for the different message/event types that can be send
      by the GuC ukernel to Host.
      Also added 2 new Host to GuC action types to inform GuC when Host has
      flushed the log buffer and forcefuly cause the GuC to send a new
      log buffer flush interrupt.
      
      v2:
      - Make documentation of log buffer state structure more elaborate &
        rename LOGBUFFERFLUSH action to LOG_BUFFER_FLUSH for consistency.(Tvrtko)
      
      v3: Add GuC log buffer layout diagram for more clarity.
      Signed-off-by: default avatarSagar Arun Kamble <sagar.a.kamble@intel.com>
      Signed-off-by: default avatarAkash Goel <akash.goel@intel.com>
      Reviewed-by: default avatarTvrtko Ursulin <tvrtko.ursulin@intel.com>
      Signed-off-by: default avatarTvrtko Ursulin <tvrtko.ursulin@intel.com>
      5d34e85a
    • Sagar Arun Kamble's avatar
      drm/i915: Decouple GuC log setup from verbosity parameter · b1e37103
      Sagar Arun Kamble authored
      GuC Log buffer allocation was tied up with verbosity level module param
      i915.guc_log_level. User would be given a provision to enable firmware
      logging at runtime, through a host2guc action, and not necessarily during
      Driver load time. But the address of log buffer can be passed only in
      init params, at firmware load time, so GuC has to be reset and firmware
      needs to be reloaded to pass the log buffer address at runtime.
      To avoid reset of GuC & reload of firmware, allocation of log buffer will
      be done always but logging would be enabled initially on GuC side based on
      the value of module parameter guc_log_level.
      
      v2: Update commit message to describe the constraint with allocation of
          log buffer at runtime. (Tvrtko)
      
      v3: Rebase.
      Signed-off-by: default avatarSagar Arun Kamble <sagar.a.kamble@intel.com>
      Signed-off-by: default avatarAkash Goel <akash.goel@intel.com>
      Reviewed-by: default avatarTvrtko Ursulin <tvrtko.ursulin@intel.com>
      Signed-off-by: default avatarTvrtko Ursulin <tvrtko.ursulin@intel.com>
      b1e37103
    • Daniel Vetter's avatar
      Merge remote-tracking branch 'airlied/drm-next' into drm-intel-next-queued · f9bf1d97
      Daniel Vetter authored
      Backmerge because Chris Wilson needs the very latest&greates of
      Gustavo Padovan's sync_file work, specifically the refcounting changes
      from:
      
      commit 30cd85dd
      Author: Gustavo Padovan <gustavo.padovan@collabora.co.uk>
      Date:   Wed Oct 19 15:48:32 2016 -0200
      
          dma-buf/sync_file: hold reference to fence when creating sync_file
      
      Also good to sync in general since git tends to get confused with the
      cherry-picking going on.
      Signed-off-by: default avatarDaniel Vetter <daniel.vetter@intel.com>
      f9bf1d97
    • Dave Airlie's avatar
      Merge tag 'drm-intel-next-2016-10-24' of git://anongit.freedesktop.org/drm-intel into drm-next · 5481e27f
      Dave Airlie authored
      - first slice of the gvt device model (Zhenyu et al)
      - compression support for gpu error states (Chris)
      - sunset clause on gpu errors resulting in dmesg noise telling users
        how to report them
      - .rodata diet from Tvrtko
      - switch over lots of macros to only take dev_priv (Tvrtko)
      - underrun suppression for dp link training (Ville)
      - lspcon (hmdi 2.0 on skl/bxt) support from Shashank Sharma, polish
        from Jani
      - gen9 wm fixes from Paulo&Lyude
      - updated ddi programming for kbl (Rodrigo)
      - respect alternate aux/ddc pins (from vbt) for all ddi ports (Ville)
      
      * tag 'drm-intel-next-2016-10-24' of git://anongit.freedesktop.org/drm-intel: (227 commits)
        drm/i915: Update DRIVER_DATE to 20161024
        drm/i915: Stop setting SNB min-freq-table 0 on powersave setup
        drm/i915/dp: add lane_count check in intel_dp_check_link_status
        drm/i915: Fix whitespace issues
        drm/i915: Clean up DDI DDC/AUX CH sanitation
        drm/i915: Respect alternate_ddc_pin for all DDI ports
        drm/i915: Respect alternate_aux_channel for all DDI ports
        drm/i915/gen9: Remove WaEnableYV12BugFixInHalfSliceChicken7
        drm/i915: KBL - Recommended buffer translation programming for DisplayPort
        drm/i915: Move down skl/kbl ddi iboost and n_edp_entires fixup
        drm/i915: Add a sunset clause to GPU hang logging
        drm/i915: Stop reporting error details in dmesg as well as the error-state
        drm/i915/gvt: do not ignore return value of create_scratch_page
        drm/i915/gvt: fix spare warnings on odd constant _Bool cast
        drm/i915/gvt: mark symbols static where possible
        drm/i915/gvt: fix sparse warnings on different address spaces
        drm/i915/gvt: properly access enabled intel_engine_cs
        drm/i915/gvt: Remove defunct vmap_batch()
        drm/i915/gvt: Use common mapping routines for shadow_bb object
        drm/i915/gvt: Use common mapping routines for indirect_ctx object
        ...
      5481e27f
    • Dave Airlie's avatar
      Merge tag 'topic/drm-misc-2016-10-24' of git://anongit.freedesktop.org/drm-intel into drm-next · 61d0a04d
      Dave Airlie authored
      First -misc pull for 4.10:
      - drm_format rework from Laurent
      - reservation patches from Chris that missed 4.9.
      - aspect ratio support in infoframe helpers and drm mode/edid code
        (Shashank Sharma)
      - rotation rework from Ville (first parts at least)
      - another attempt at the CRC debugfs interface from Tomeu
      - piles and piles of misc patches all over
      
      * tag 'topic/drm-misc-2016-10-24' of git://anongit.freedesktop.org/drm-intel: (55 commits)
        drm: Use u64 for intermediate dotclock calculations
        drm/i915: Use the per-plane rotation property
        drm/omap: Use per-plane rotation property
        drm/omap: Set rotation property initial value to BIT(DRM_ROTATE_0) insted of 0
        drm/atmel-hlcdc: Use per-plane rotation property
        drm/arm: Use per-plane rotation property
        drm: Add support for optional per-plane rotation property
        drm/atomic: Reject attempts to use multiple rotation angles at once
        drm: Add drm_rotation_90_or_270()
        dma-buf/sync_file: hold reference to fence when creating sync_file
        drm/virtio: kconfig: Fixup white space.
        drm/fence: release fence reference when canceling event
        drm/i915: Handle early failure during intel_get_load_detect_pipe
        drm/fb_cma_helper: do not free fbdev if there is none
        drm: fix sparse warnings on undeclared symbols in crc debugfs
        gpu: Remove depends on RESET_CONTROLLER when not a provider
        i915: don't call drm_atomic_state_put on invalid pointer
        drm: Don't export the drm_fb_get_bpp_depth() function
        drm/arm: mali-dp: Replace drm_fb_get_bpp_depth() with drm_format_plane_cpp()
        drm: vmwgfx: Replace drm_fb_get_bpp_depth() with drm_format_info()
        ...
      61d0a04d
  2. 24 Oct, 2016 11 commits
  3. 23 Oct, 2016 5 commits
    • Linus Torvalds's avatar
      Merge tag 'upstream-4.9-rc2' of git://git.infradead.org/linux-ubifs · 5ff93abc
      Linus Torvalds authored
      Pull UBI[FS] fixes from Richard Weinberger:
       "This contains fixes for issues in both UBI and UBIFS:
      
         - Fallout from the merge window, refactoring UBI code introduced some
           issues.
      
         - Fixes for an UBIFS readdir bug which can cause getdents() to busy
           loop for ever and a bug in the UBIFS xattr code"
      
      * tag 'upstream-4.9-rc2' of git://git.infradead.org/linux-ubifs:
        ubifs: Abort readdir upon error
        UBI: Fix crash in try_recover_peb()
        ubi: fix swapped arguments to call to ubi_alloc_aeb
        ubifs: Fix xattr_names length in exit paths
        ubifs: Rename ubifs_rename2
      5ff93abc
    • Linus Torvalds's avatar
      Merge tag 'ext4_for_linus_stable' of git://git.kernel.org/pub/scm/linux/kernel/git/tytso/ext4 · c761923c
      Linus Torvalds authored
      Pull ext4 fixes from Ted Ts'o:
       "A few bug fixes and add some missing KERN_CONT annotations"
      
      * tag 'ext4_for_linus_stable' of git://git.kernel.org/pub/scm/linux/kernel/git/tytso/ext4:
        ext4: add missing KERN_CONT to a few more debugging uses
        fscrypto: lock inode while setting encryption policy
        ext4: correct endianness conversion in __xattr_check_inode()
        fscrypto: make XTS tweak initialization endian-independent
        ext4: do not advertise encryption support when disabled
        jbd2: fix incorrect unlock on j_list_lock
        ext4: super.c: Update logging style using KERN_CONT
      c761923c
    • Linus Torvalds's avatar
      Merge git://git.kernel.org/pub/scm/linux/kernel/git/nab/target-pending · a55da8a0
      Linus Torvalds authored
      Pull SCSI target fixes from Nicholas Bellinger:
       "Here are the outstanding target-pending fixes for v4.9-rc2.
      
        This includes:
      
         - Fix v4.1.y+ reference leak regression with concurrent TMR
           ABORT_TASK + session shutdown. (Vaibhav Tandon)
      
         - Enable tcm_fc w/ SCF_USE_CPUID to avoid host exchange timeouts
           (Hannes)
      
         - target/user error sense handling fixes. (Andy + MNC + HCH)
      
         - Fix iscsi-target NOP_OUT error path iscsi_cmd descriptor leak
           (Varun)
      
         - Two EXTENDED_COPY SCSI status fixes for ESX VAAI (Dinesh Israni +
           Nixon Vincent)
      
         - Revert a v4.8 residual overflow change, that breaks sg_inq with
           small allocation lengths.
      
        There are a number of folks stress testing the v4.1.y regression fix
        in their environments, and more folks doing iser-target I/O stress
        testing atop recent v4.x.y code.
      
        There is also one v4.2.y+ RCU conversion regression related to
        explicit NodeACL configfs changes, that is still being tracked down"
      
      * git://git.kernel.org/pub/scm/linux/kernel/git/nab/target-pending:
        target/tcm_fc: use CPU affinity for responses
        target/tcm_fc: Update debugging statements to match libfc usage
        target/tcm_fc: return detailed error in ft_sess_create()
        target/tcm_fc: print command pointer in debug message
        target: fix potential race window in target_sess_cmd_list_waiting()
        Revert "target: Fix residual overflow handling in target_complete_cmd_with_length"
        target: Don't override EXTENDED_COPY xcopy_pt_cmd SCSI status code
        target: Make EXTENDED_COPY 0xe4 failure return COPY TARGET DEVICE NOT REACHABLE
        target: Re-add missing SCF_ACK_KREF assignment in v4.1.y
        iscsi-target: fix iscsi cmd leak
        iscsi-target: fix spelling mistake "Unsolicitied" -> "Unsolicited"
        target/user: Fix comments to not refer to data ring
        target/user: Return an error if cmd data size is too large
        target/user: Use sense_reason_t in tcmu_queue_cmd_ring
      a55da8a0
    • Linus Torvalds's avatar
      Merge tag 'hwmon-for-linus-v4.9-rc2' of... · e6995f22
      Linus Torvalds authored
      Merge tag 'hwmon-for-linus-v4.9-rc2' of git://git.kernel.org/pub/scm/linux/kernel/git/groeck/linux-staging
      
      Pull hwmon fixes from Guenter Roeck:
       "Couple of hwmon fixes:
      
        Fix a potential ERR_PTR dereference in max31790 driver, and handle
        temperature readings below 0 in adm9240 driver"
      
      * tag 'hwmon-for-linus-v4.9-rc2' of git://git.kernel.org/pub/scm/linux/kernel/git/groeck/linux-staging:
        hwmon: (max31790) potential ERR_PTR dereference
        hwmon: (adm9240) handle temperature readings below 0
      e6995f22
    • Linus Torvalds's avatar
      Merge tag 'for-linus-4.9-2' of git://git.code.sf.net/p/openipmi/linux-ipmi · 5766e9d2
      Linus Torvalds authored
      Pull IPMI updates from Corey Minyard:
       "A small bug fix and a new driver for acting as an IPMI device.
      
        I was on vacation during the merge window (a long vacation) but this
        is a bug fix that should go in and a new driver that shouldn't hurt
        anything.
      
        This has been in linux-next for a month or so"
      
      * tag 'for-linus-4.9-2' of git://git.code.sf.net/p/openipmi/linux-ipmi:
        ipmi: fix crash on reading version from proc after unregisted bmc
        ipmi/bt-bmc: remove redundant return value check of platform_get_resource()
        ipmi/bt-bmc: add a dependency on ARCH_ASPEED
        ipmi: Fix ioremap error handling in bt-bmc
        ipmi: add an Aspeed BT IPMI BMC driver
      5766e9d2
  4. 22 Oct, 2016 6 commits
    • Linus Torvalds's avatar
      Merge branch 'timers-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · 0c2b6dc4
      Linus Torvalds authored
      Pull timer updates from Thomas Gleixner:
       "This updates contains:
      
         - A revert which addresses a boot failure on ARM Sun5i platforms
      
         - A new clocksource driver, which has been delayed beyond rc1 due to
           an interrupt driver issue which was unearthed by this driver. The
           debugging of that issue and the discussion about the proper
           solution made this driver miss the merge window. There is no point
           in delaying it for a full cycle as it completes the basic mainline
           support for the new JCore platform and does not create any risk
           outside of that platform"
      
      * 'timers-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
        Revert "clocksource/drivers/timer_sun5i: Replace code by clocksource_mmio_init"
        clocksource: Add J-Core timer/clocksource driver
        of: Add J-Core timer bindings
      0c2b6dc4
    • Linus Torvalds's avatar
      Merge branch 'x86-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · 3e9679a3
      Linus Torvalds authored
      Pull x86 fixes from Ingo Molnar:
       "Three fixes, a hw-enablement and a cross-arch fix/enablement change:
      
         - SGI/UV fix for older platforms
      
         - x32 signal handling fix
      
         - older x86 platform bootup APIC fix
      
         - AVX512-4VNNIW (Neural Network Instructions) and AVX512-4FMAPS
           (Multiply Accumulation Single precision instructions) enablement.
      
         - move thread_info back into x86 specific code, to make life easier
           for other architectures trying to make use of
           CONFIG_THREAD_INFO_IN_TASK_STRUCT=y"
      
      * 'x86-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
        x86/boot/smp: Don't try to poke disabled/non-existent APIC
        sched/core, x86: Make struct thread_info arch specific again
        x86/signal: Remove bogus user_64bit_mode() check from sigaction_compat_abi()
        x86/platform/UV: Fix support for EFI_OLD_MEMMAP after BIOS callback updates
        x86/cpufeature: Add AVX512_4VNNIW and AVX512_4FMAPS features
        x86/vmware: Skip timer_irq_works() check on VMware
      3e9679a3
    • Linus Torvalds's avatar
      Merge branch 'mm-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · 86c5bf71
      Linus Torvalds authored
      Pull vmap stack fixes from Ingo Molnar:
       "This is fallout from CONFIG_HAVE_ARCH_VMAP_STACK=y on x86: stack
        accesses that used to be just somewhat questionable are now totally
        buggy.
      
        These changes try to do it without breaking the ABI: the fields are
        left there, they are just reporting zero, or reporting narrower
        information (the maps file change)"
      
      * 'mm-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
        mm: Change vm_is_stack_for_task() to vm_is_stack_for_current()
        fs/proc: Stop trying to report thread stacks
        fs/proc: Stop reporting eip and esp in /proc/PID/stat
        mm/numa: Remove duplicated include from mprotect.c
      86c5bf71
    • Linus Torvalds's avatar
      Merge branch 'irq-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · bfb7bfef
      Linus Torvalds authored
      Pull irq fixes from Ingo Molnar:
       "Mostly irqchip driver fixes, plus a symbol export"
      
      * 'irq-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
        kernel/irq: Export irq_set_parent()
        irqchip/gic: Add missing \n to CPU IF adjustment message
        irqchip/jcore: Don't show Kconfig menu item for driver
        irqchip/eznps: Drop pointless static qualifier in nps400_of_init()
        irqchip/gic-v3-its: Fix entry size mask for GITS_BASER
        irqchip/gic-v3-its: Fix 64bit GIC{R,ITS}_TYPER accesses
      bfb7bfef
    • Linus Torvalds's avatar
      Merge branch 'efi-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · 90e01058
      Linus Torvalds authored
      Pull EFI fixes from Ingo Molnar:
       "Add Ard Biesheuvel as EFI co-maintainer, plus fix an ARM build bug
        with older toolchains"
      
      * 'efi-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
        efi/arm: Fix absolute relocation detection for older toolchains
        MAINTAINERS: Add myself as EFI maintainer
      90e01058
    • Ville Syrjälä's avatar
      x86/boot/smp: Don't try to poke disabled/non-existent APIC · ff856051
      Ville Syrjälä authored
      Apparently trying to poke a disabled or non-existent APIC
      leads to a box that doesn't even boot. Let's not do that.
      
      No real clue if this is the right fix, but at least my
      P3 machine boots again.
      Signed-off-by: default avatarVille Syrjälä <ville.syrjala@linux.intel.com>
      Cc: Andy Lutomirski <luto@kernel.org>
      Cc: Borislav Petkov <bp@alien8.de>
      Cc: Borislav Petkov <bp@suse.de>
      Cc: Brian Gerst <brgerst@gmail.com>
      Cc: Denys Vlasenko <dvlasenk@redhat.com>
      Cc: Eric Biederman <ebiederm@xmission.com>
      Cc: H. Peter Anvin <hpa@zytor.com>
      Cc: Jiri Olsa <jolsa@redhat.com>
      Cc: Josh Poimboeuf <jpoimboe@redhat.com>
      Cc: Juergen Gross <jgross@suse.com>
      Cc: Len Brown <len.brown@intel.com>
      Cc: Linus Torvalds <torvalds@linux-foundation.org>
      Cc: Peter Zijlstra <peterz@infradead.org>
      Cc: Prarit Bhargava <prarit@redhat.com>
      Cc: Thomas Gleixner <tglx@linutronix.de>
      Cc: Yinghai Lu <yinghai@kernel.org>
      Cc: dyoung@redhat.com
      Cc: kexec@lists.infradead.org
      Cc: stable@vger.kernel.org
      Fixes: 2a51fe08 ("arch/x86: Handle non enumerated CPU after physical hotplug")
      Link: http://lkml.kernel.org/r/1477102684-5092-1-git-send-email-ville.syrjala@linux.intel.comSigned-off-by: default avatarIngo Molnar <mingo@kernel.org>
      ff856051