1. 26 May, 2015 4 commits
  2. 22 May, 2015 7 commits
  3. 21 May, 2015 5 commits
    • Archit Taneja's avatar
      drm/DocBook: Add more drm_bridge documentation · 2331b4e4
      Archit Taneja authored
      Add DOC sections giving an overview of drm_bridge and how to fill up the
      drm_bridge_funcs ops. Add these to drm.tpml in DocBook.
      
      Add headerdocs for funcs in drm_bridge.c that don't have them yet.
      Signed-off-by: default avatarArchit Taneja <architt@codeaurora.org>
      [danvet: Amend kerneldoc as discussed with Archit.]
      Signed-off-by: default avatarDaniel Vetter <daniel.vetter@ffwll.ch>
      2331b4e4
    • Archit Taneja's avatar
      drm: bridge: Allow daisy chaining of bridges · 862e686c
      Archit Taneja authored
      Allow drm_bridge objects to link to each other in order to form an encoder
      chain. The requirement for creating a chain of bridges comes because the
      MSM drm driver uses up its encoder and bridge objects for blocks within
      the SoC itself. There isn't anything left to use if the SoC display output
      is connected to an external encoder IC. Having an additional bridge
      connected to the existing bridge helps here. In general, it is possible for
      platforms to have  multiple devices between the encoder and the
      connector/panel that require some sort of configuration.
      
      We create drm bridge helper functions corresponding to each op in
      'drm_bridge_funcs'. These helpers call the corresponding
      'drm_bridge_funcs' op for the entire chain of bridges. These helpers are
      used internally by drm_atomic_helper.c and drm_crtc_helper.c.
      
      The drm_bridge_enable/pre_enable helpers execute enable/pre_enable ops of
      the bridge closet to the encoder, and proceed until the last bridge in the
      chain is enabled. The same holds for drm_bridge_mode_set/mode_fixup
      helpers. The drm_bridge_disable/post_disable helpers disable the last
      bridge in the chain first, and proceed until the first bridge in the chain
      is disabled.
      
      drm_bridge_attach() remains the same. As before, the driver calling this
      function should make sure it has set the links correctly. The order in
      which the bridges are connected to each other determines the order in which
      the calls are made. One requirement is that every bridge in the chain
      should point the parent encoder object. This is required since bridge
      drivers expect a valid encoder pointer in drm_bridge. For example, consider
      a chain where an encoder's output is connected to bridge1, and bridge1's
      output is connected to bridge2:
      
      	/* Like before, attach bridge to an encoder */
      	bridge1->encoder = encoder;
      	ret = drm_bridge_attach(dev, bridge1);
      	..
      
      	/*
      	 * set the first bridge's 'next' bridge to bridge2, set its encoder
      	 * as bridge1's encoder
      	 */
      	bridge1->next = bridge2
      	bridge2->encoder = bridge1->encoder;
      	ret = drm_bridge_attach(dev, bridge2);
      
      	...
      	...
      
      This method of bridge chaining isn't intrusive and existing drivers that
      use drm_bridge will behave the same way as before. The bridge helpers also
      cleans up the atomic and crtc helper files a bit.
      Reviewed-by: default avatarJani Nikula <jani.nikula@linux.intel.com>
      Reviewed-by: default avatarRob Clark <robdclark@gmail.com>
      Reviewed-by: default avatarDaniel Vetter <daniel@ffwll.ch>
      Signed-off-by: default avatarArchit Taneja <architt@codeaurora.org>
      Signed-off-by: default avatarDaniel Vetter <daniel.vetter@ffwll.ch>
      862e686c
    • Maarten Lankhorst's avatar
      drm/atomic: add all affected planes in drm_atomic_helper_check_modeset · 57744aa7
      Maarten Lankhorst authored
      Drivers may need to recalculate plane state when a modeset occurs,
      not reliably adding them might cause hard to debug bugs.
      Signed-off-by: default avatarMaarten Lankhorst <maarten.lankhorst@linux.intel.com>
      Signed-off-by: default avatarDaniel Vetter <daniel.vetter@ffwll.ch>
      57744aa7
    • Maarten Lankhorst's avatar
      drm/atomic: add drm_atomic_add_affected_planes · e01e9f75
      Maarten Lankhorst authored
      This is a convenience function to add all planes for a crtc,
      similar to add_affected_connectors. This will be used in
      drm_atomic_helper_check_modeset, but drivers can call it too
      when they need to recalculate all state.
      Signed-off-by: default avatarMaarten Lankhorst <maarten.lankhorst@linux.intel.com>
      [danvet: Amend kerneldoc a bit.]
      Signed-off-by: default avatarDaniel Vetter <daniel.vetter@ffwll.ch>
      e01e9f75
    • Maarten Lankhorst's avatar
      drm/atomic: add commit_planes_on_crtc helper · de28d021
      Maarten Lankhorst authored
      drm_atomic_helper_commit_planes calls all atomic_begin's first,
      then updates all planes, finally calling atomic_flush.
      
      Some drivers may want to things like disabling irq's
      from their atomic_begin, in which case a second call to atomic_begin
      will splat. By using commit_planes_on_crtc on each crtc in the
      atomic state they'll evade that issue.
      Signed-off-by: default avatarMaarten Lankhorst <maarten.lankhorst@linux.intel.com>
      [danvet: Extend kerneldoc a bit as discussed with Maarten on irc.]
      [danvet: Squash in fixup to check for crtc_funcs in all places.
      Reported by Dan Carpenter.]
      Signed-off-by: default avatarDaniel Vetter <daniel.vetter@ffwll.ch>
      de28d021
  4. 20 May, 2015 1 commit
  5. 19 May, 2015 17 commits
    • Dave Airlie's avatar
      Merge tag 'drm-amdkfd-next-2015-05-19' of git://people.freedesktop.org/~gabbayo/linux into drm-next · 91d9f985
      Dave Airlie authored
      - Add the interrupts & events modules, including new IOCTLs to create and wait
        on events. The HSA RT open source stack is mainly using events to know when
        a dispatched work has been completed. In addition, this module is
        a pre-requisite for the next module I'm going to upstream - debugger support
      
        This module also handles H/W exceptions, such as memory exception received
        through the IOMMUv2 H/W and Bad Opcode exception receieved from the GPU.
      
      - Adding a new kernel module parameter to let the user decide whether he wants
        to receive a SIGTERM when a memory exception occurs inside the GPU kernel and
        the HSA application doesn't wait on an appropriate event, or if he just want
        to receive notification about this event in dmesg. The default is the latter.
      
      - Additional improvements for SDMA code
      
      - Update my email address in Maintainers file.
      
      * tag 'drm-amdkfd-next-2015-05-19' of git://people.freedesktop.org/~gabbayo/linux:
        drm/amdkfd: change driver version to 0.7.2
        drm/amdkfd: Implement events IOCTLs
        drm/amdkfd: Add module parameter of send_sigterm
        drm/amdkfd: Add bad opcode exception handling
        drm/amdkfd: Add memory exception handling
        drm/amdkfd: Add the events module
        drm/amdkfd: add events IOCTL set definitions
        drm/amdkfd: Add interrupt handling module
        drm/radeon: Add init interrupt kfd->kgd interface
        MAINTAINERS: update amdkfd Oded's email address
        drm/amdkfd: make the sdma vm init to be asic specific
        drm/amdkfd: Use new struct for asic specific ops
        drm/amdkfd: reformat some debug prints
        drm/amdkfd: Remove unessary void pointer cast
      91d9f985
    • Dave Airlie's avatar
      Merge tag 'topic/drm-misc-2015-05-19' of git://anongit.freedesktop.org/drm-intel into drm-next · 9c37bf2d
      Dave Airlie authored
      Scattering of random drm core patches. Bunch of atomic prep work too, but
      the final bits for blob properties, atomic modesets and lifting the
      experimental tag on the atomic ioctl are still blocked on Daniel Stone
      finalizing and testing the weston support for it. I hope that we can get
      it all ready for 4.2 though.
      
      * tag 'topic/drm-misc-2015-05-19' of git://anongit.freedesktop.org/drm-intel: (22 commits)
        drm/atomic: Allow drivers to subclass drm_atomic_state, v3
        drm/atomic: remove duplicated assignment of old_plane_state
        drm/dp: Fix comment in DP helper
        drm/atomic: add drm_atomic_get_existing_*_state helpers
        drm/core: get rid of -Iinclude/drm
        drm/i915: get rid of -Iinclude/drm
        drm/atomic-helpers: Export drm_atomic_helper_update_legacy_modeset_state
        drm/atomic-helpers: Update vblank timestamping constants
        drm/sysfs: remove unnecessary connector type checks
        drm/sysfs: split DVI-I and TV-out attributes
        drm/sysfs: make optional attribute groups per connector type
        drm/sysfs: add a helper for extracting connector type from kobject
        drm/edid: Add CEA modes before inferred modes
        drm/prime: Allow internal imports without import_sg_table
        drm: Add reference counting to blob properties
        drm: Introduce blob_lock
        drm: Introduce helper for replacing blob properties
        drm: Don't leak path blob property when updating
        drm/atomic: Don't open-code CRTC state destroy
        drm/edid: Add DMT modes with ID > 0x50
        ...
      9c37bf2d
    • Oded Gabbay's avatar
      7591cd2c
    • Andrew Lewycky's avatar
      8377396b
    • Oded Gabbay's avatar
      drm/amdkfd: Add module parameter of send_sigterm · 81663016
      Oded Gabbay authored
      This patch adds a new kernel module parameter to amdkfd,
      called send_sigterm.
      
      This parameter specifies whether amdkfd should send the
      SIGTERM signal to an HSA process, when the following conditions
      occur:
      
      1. The GPU triggers an exception regarding a kernel that was
         issued by this process.
      
      2. The HSA process isn't waiting on an event that handles
         this exception.
      
      The default behavior is not to send a SIGTERM and suffice
      with a dmesg error print.
      Reviewed-by: default avatarBen Goz <ben.goz@amd.com>
      Signed-off-by: default avatarOded Gabbay <oded.gabbay@gmail.com>
      81663016
    • Alexey Skidanov's avatar
    • Alexey Skidanov's avatar
      drm/amdkfd: Add memory exception handling · 59d3e8be
      Alexey Skidanov authored
      This patch adds Peripheral Page Request (PPR) failure processing
      and reporting.
      
      Bad address or pointer to a system memory block with inappropriate
      read/write permission cause such PPR failure during a user queue
      processing. PPR request handling is done by IOMMU driver notifying
      AMDKFD module on PPR failure.
      
      The process triggering a PPR failure will be notified by
      appropriate event or SIGTERM signal will be sent to it.
      
      v3:
      - Change all bool fields in struct kfd_memory_exception_failure to
        uint32_t
      Signed-off-by: default avatarAlexey Skidanov <alexey.skidanov@gmail.com>
      Signed-off-by: default avatarOded Gabbay <oded.gabbay@gmail.com>
      59d3e8be
    • Andrew Lewycky's avatar
      drm/amdkfd: Add the events module · f3a39818
      Andrew Lewycky authored
      This patch adds the events module (kfd_events.c) and the interrupt
      handle module for Kaveri (cik_event_interrupt.c).
      
      The patch updates the interrupt_is_wanted(), so that it now calls the
      interrupt isr function specific for the device that received the
      interrupt. That function(implemented in cik_event_interrupt.c)
      returns whether this interrupt is of interest to us or not.
      
      The patch also updates the interrupt_wq(), so that it now calls the
      device's specific wq function, which checks the interrupt source
      and tries to signal relevant events.
      
      v2:
      
      Increase limit of signal events to 4096 per process
      Remove bitfields from struct cik_ih_ring_entry
      Rename radeon_kfd_event_mmap to kfd_event_mmap
      Add debug prints to allocate_free_slot and allocate_signal_page
      Make allocate_event_notification_slot return a correct value
      Add warning prints to create_signal_event
      Remove error print from IOCTL path
      Reformatted debug prints in kfd_event_mmap
      Map correct size (as received from mmap) in kfd_event_mmap
      
      v3:
      
      Reduce limit of signal events back to 256 per process
      Fix allocation of kernel memory for signal events
      Signed-off-by: default avatarAndrew Lewycky <Andrew.Lewycky@amd.com>
      Signed-off-by: default avatarOded Gabbay <oded.gabbay@gmail.com>
      f3a39818
    • Andrew Lewycky's avatar
      drm/amdkfd: add events IOCTL set definitions · 29a5d3eb
      Andrew Lewycky authored
      - AMDKFD_IOC_CREATE_EVENT:
      	Creates a new event of a specified type
      
      - AMDKFD_IOC_DESTROY_EVENT:
      	Destroys an existing event
      
      - AMDKFD_IOC_SET_EVENT:
      	Signal an existing event
      
      - AMDKFD_IOC_RESET_EVENT:
      	Reset an existing event
      
      - AMDKFD_IOC_WAIT_EVENTS:
      	Wait on event(s) until they are signaled
      
      v2:
      
      - Move the limit of the signal events to kfd_ioctl.h so it
        can be used by userspace
      
      v3:
      - Change all bool fields in struct kfd_memory_exception_failure
      to uint32_t
      Signed-off-by: default avatarAndrew Lewycky <Andrew.Lewycky@amd.com>
      Signed-off-by: default avatarOded Gabbay <oded.gabbay@gmail.com>
      29a5d3eb
    • Andrew Lewycky's avatar
      drm/amdkfd: Add interrupt handling module · 2249d558
      Andrew Lewycky authored
      This patch adds the interrupt handling module, kfd_interrupt.c, and its
      related members in different data structures to the amdkfd driver.
      
      The amdkfd interrupt module maintains an internal interrupt ring
      per amdkfd device. The internal interrupt ring contains interrupts
      that needs further handling. The extra handling is deferred to
      a later time through a workqueue.
      
      There's no acknowledgment for the interrupts we use. The hardware
      simply queues a new interrupt each time without waiting.
      
      The fixed-size internal queue means that it's possible for us to lose
      interrupts because we have no back-pressure to the hardware.
      
      However, only interrupts that are "wanted" by amdkfd, are copied into
      the amdkfd s/w interrupt ring, in order to minimize the chances
      for overflow of the ring.
      Signed-off-by: default avatarAndrew Lewycky <Andrew.Lewycky@amd.com>
      Signed-off-by: default avatarOded Gabbay <oded.gabbay@gmail.com>
      2249d558
    • Oded Gabbay's avatar
      drm/radeon: Add init interrupt kfd->kgd interface · d36b94fc
      Oded Gabbay authored
      This patch adds a new interface function to the kfd->kgd interface.
      The function is kgd_init_interrupts() and its function is to
      initialize a pipe's interrupts.
      
      The function currently enables the timestamp interrupt and the
      bad opcode interrupt.
      Signed-off-by: default avatarOded Gabbay <oded.gabbay@gmail.com>
      d36b94fc
    • Oded Gabbay's avatar
      MAINTAINERS: update amdkfd Oded's email address · 1241e0b4
      Oded Gabbay authored
      Leaving AMD soon so need to update my email address to @gmail.com
      Signed-off-by: default avatarOded Gabbay <oded.gabbay@gmail.com>
      1241e0b4
    • Oded Gabbay's avatar
    • Oded Gabbay's avatar
      drm/amdkfd: Use new struct for asic specific ops · d42af779
      Oded Gabbay authored
      This patch creates a new structure for asic specific operations, instead
      of using the existing structure of operations.
      
      This is done to make the code flow more logic, readable and maintainable.
      
      The change is done only to the device queue manager module at this point.
      Signed-off-by: default avatarOded Gabbay <oded.gabbay@gmail.com>
      Reviewed-by: default avatarAlex Deucher <alexander.deucher@amd.com>
      d42af779
    • Oded Gabbay's avatar
      drm/amdkfd: reformat some debug prints · 8856d8e0
      Oded Gabbay authored
      Signed-off-by: default avatarOded Gabbay <oded.gabbay@gmail.com>
      8856d8e0
    • Firo Yang's avatar
      drm/amdkfd: Remove unessary void pointer cast · 1549fcd1
      Firo Yang authored
      kmalloc() returns a void pointer - no need to cast it in
      drivers/gpu/drm/amd/amdkfd/kfd_process.c::kfd_process_destroy_delayed()
      Signed-off-by: default avatarFiro Yang <firogm@gmail.com>
      Signed-off-by: default avatarOded Gabbay <oded.gabbay@amd.com>
      1549fcd1
    • Dave Airlie's avatar
      Merge tag 'drm-intel-next-2015-05-08' of git://anongit.freedesktop.org/drm-intel into drm-next · d0093404
      Dave Airlie authored
      - skl plane scaler support (Chandra Kondru)
      - enable hsw cmd parser (Daniel and fix from Rebecca Palmer)
      - skl dc5/6 support (low power display modes) from Suketu&Sunil
      - dp compliance testing patches (Todd Previte)
      - dp link training optimization (Mika Kahola)
      - fixes to make skl resume work (Damien)
      - rework modeset code to fully use atomic state objects (Ander&Maarten)
      - pile of bxt w/a patchs from Nick Hoath
      - (linear) partial gtt mmap support (Joonas Lahtinen)
      
      * tag 'drm-intel-next-2015-05-08' of git://anongit.freedesktop.org/drm-intel: (103 commits)
        drm/i915: Update DRIVER_DATE to 20150508
        drm/i915: Only wait for required lanes in vlv_wait_port_ready()
        drm/i915: Fix possible security hole in command parsing
        drm/edid: Kerneldoc for newly added edid_corrupt
        drm/i915: Reject huge tiled objects
        Revert "drm/i915: Hack to tie both common lanes together on chv"
        drm/i915: Work around DISPLAY_PHY_CONTROL register corruption on CHV
        drm/i915: Implement chv display PHY lane stagger setup
        drm/i915/vlv: remove wait for previous GFX clk disable request
        drm/i915: Set crtc_state->active to false when CRTC is disabled (v2)
        drm/i915/skl: Re-indent part of skl_ddi_calculate_wrpll()
        drm/i915: Use partial view in mmap fault handler
        drm/i915: Add a partial GGTT view type
        drm/i915: Consider object pinned if any VMA is pinned
        drm/i915: Do not make assumptions on GGTT VMA sizes
        drm/i915/bxt: Mark WaCcsTlbPrefetchDisable as for Broxton also.
        drm/i915/bxt: Mark WaDisablePartialResolveInVc as for Broxton also.
        drm/i915/bxt: Mark Wa4x4STCOptimizationDisable as for Broxton also.
        drm/i915/bxt: Move WaForceEnableNonCoherent to Skylake only
        drm/i915/bxt: Enable WaEnableYV12BugFixInHalfSliceChicken7 for Broxton
        ...
      d0093404
  6. 18 May, 2015 6 commits