Skip to content
Snippets Groups Projects
Select Git revision
  • 56e449603f0ac580700621a356d35d5716a62ce5
  • drm-misc-templates default
  • wip/final/kci-gitlab-lava-v1
  • wip/vignesh/kci-lava-gitlab-runner
  • kci-gitlab-igt-v8
  • kci-gitlab-igt-v4
  • drm-misc-fixes-2024-10-02
  • drm-misc-next-2024-09-26
  • drm-misc-fixes-2024-09-26
  • drm-misc-next-2024-09-20
  • drm-misc-fixes-2024-09-12
  • drm-misc-fixes-2024-09-05
  • drm-misc-next-fixes-2024-09-05
  • drm-misc-fixes-2024-08-29
  • drm-misc-next-2024-08-29
  • drm-misc-next-2024-08-22
  • drm-misc-fixes-2024-08-22
  • drm-misc-next-2024-08-16
  • drm-misc-fixes-2024-08-15
  • drm-misc-next-2024-08-09
  • drm-misc-fixes-2024-08-08
  • drm-misc-next-2024-08-01
  • drm-misc-fixes-2024-08-01
  • drm-misc-next-fixes-2024-07-25
  • drm-misc-next-fixes-2024-07-19
  • drm-misc-next-fixes-2024-07-11
26 results

sched_main.c

Blame
    • Luben Tuikov's avatar
      56e44960
      drm/sched: Convert the GPU scheduler to variable number of run-queues · 56e44960
      Luben Tuikov authored
      
      The GPU scheduler has now a variable number of run-queues, which are set up at
      drm_sched_init() time. This way, each driver announces how many run-queues it
      requires (supports) per each GPU scheduler it creates. Note, that run-queues
      correspond to scheduler "priorities", thus if the number of run-queues is set
      to 1 at drm_sched_init(), then that scheduler supports a single run-queue,
      i.e. single "priority". If a driver further sets a single entity per
      run-queue, then this creates a 1-to-1 correspondence between a scheduler and
      a scheduled entity.
      
      Cc: Lucas Stach <l.stach@pengutronix.de>
      Cc: Russell King <linux+etnaviv@armlinux.org.uk>
      Cc: Qiang Yu <yuq825@gmail.com>
      Cc: Rob Clark <robdclark@gmail.com>
      Cc: Abhinav Kumar <quic_abhinavk@quicinc.com>
      Cc: Dmitry Baryshkov <dmitry.baryshkov@linaro.org>
      Cc: Danilo Krummrich <dakr@redhat.com>
      Cc: Matthew Brost <matthew.brost@intel.com>
      Cc: Boris Brezillon <boris.brezillon@collabora.com>
      Cc: Alex Deucher <alexander.deucher@amd.com>
      Cc: Christian König <christian.koenig@amd.com>
      Cc: Emma Anholt <emma@anholt.net>
      Cc: etnaviv@lists.freedesktop.org
      Cc: lima@lists.freedesktop.org
      Cc: linux-arm-msm@vger.kernel.org
      Cc: freedreno@lists.freedesktop.org
      Cc: nouveau@lists.freedesktop.org
      Cc: dri-devel@lists.freedesktop.org
      Signed-off-by: default avatarLuben Tuikov <luben.tuikov@amd.com>
      Acked-by: default avatarChristian König <christian.koenig@amd.com>
      Link: https://lore.kernel.org/r/20231023032251.164775-1-luben.tuikov@amd.com
      56e44960
      History
      drm/sched: Convert the GPU scheduler to variable number of run-queues
      Luben Tuikov authored
      
      The GPU scheduler has now a variable number of run-queues, which are set up at
      drm_sched_init() time. This way, each driver announces how many run-queues it
      requires (supports) per each GPU scheduler it creates. Note, that run-queues
      correspond to scheduler "priorities", thus if the number of run-queues is set
      to 1 at drm_sched_init(), then that scheduler supports a single run-queue,
      i.e. single "priority". If a driver further sets a single entity per
      run-queue, then this creates a 1-to-1 correspondence between a scheduler and
      a scheduled entity.
      
      Cc: Lucas Stach <l.stach@pengutronix.de>
      Cc: Russell King <linux+etnaviv@armlinux.org.uk>
      Cc: Qiang Yu <yuq825@gmail.com>
      Cc: Rob Clark <robdclark@gmail.com>
      Cc: Abhinav Kumar <quic_abhinavk@quicinc.com>
      Cc: Dmitry Baryshkov <dmitry.baryshkov@linaro.org>
      Cc: Danilo Krummrich <dakr@redhat.com>
      Cc: Matthew Brost <matthew.brost@intel.com>
      Cc: Boris Brezillon <boris.brezillon@collabora.com>
      Cc: Alex Deucher <alexander.deucher@amd.com>
      Cc: Christian König <christian.koenig@amd.com>
      Cc: Emma Anholt <emma@anholt.net>
      Cc: etnaviv@lists.freedesktop.org
      Cc: lima@lists.freedesktop.org
      Cc: linux-arm-msm@vger.kernel.org
      Cc: freedreno@lists.freedesktop.org
      Cc: nouveau@lists.freedesktop.org
      Cc: dri-devel@lists.freedesktop.org
      Signed-off-by: default avatarLuben Tuikov <luben.tuikov@amd.com>
      Acked-by: default avatarChristian König <christian.koenig@amd.com>
      Link: https://lore.kernel.org/r/20231023032251.164775-1-luben.tuikov@amd.com
    gpiolib.c 95.85 KiB
    #include <linux/kernel.h>
    #include <linux/module.h>
    #include <linux/interrupt.h>
    #include <linux/irq.h>
    #include <linux/spinlock.h>
    #include <linux/list.h>
    #include <linux/device.h>
    #include <linux/err.h>
    #include <linux/debugfs.h>
    #include <linux/seq_file.h>
    #include <linux/gpio.h>
    #include <linux/of_gpio.h>
    #include <linux/idr.h>
    #include <linux/slab.h>
    #include <linux/acpi.h>
    #include <linux/gpio/driver.h>
    #include <linux/gpio/machine.h>
    #include <linux/pinctrl/consumer.h>
    #include <linux/cdev.h>
    #include <linux/fs.h>
    #include <linux/uaccess.h>
    #include <linux/compat.h>
    #include <linux/anon_inodes.h>
    #include <linux/file.h>
    #include <linux/kfifo.h>
    #include <linux/poll.h>
    #include <linux/timekeeping.h>
    #include <uapi/linux/gpio.h>
    
    #include "gpiolib.h"
    
    #define CREATE_TRACE_POINTS
    #include <trace/events/gpio.h>
    
    /* Implementation infrastructure for GPIO interfaces.
     *
     * The GPIO programming interface allows for inlining speed-critical
     * get/set operations for common cases, so that access to SOC-integrated
     * GPIOs can sometimes cost only an instruction or two per bit.
     */
    
    
    /* When debugging, extend minimal trust to callers and platform code.
     * Also emit diagnostic messages that may help initial bringup, when
     * board setup or driver bugs are most common.
     *
     * Otherwise, minimize overhead in what may be bitbanging codepaths.
     */
    #ifdef	DEBUG
    #define	extra_checks	1
    #else
    #define	extra_checks	0
    #endif
    
    /* Device and char device-related information */
    static DEFINE_IDA(gpio_ida);
    static dev_t gpio_devt;
    #define GPIO_DEV_MAX 256 /* 256 GPIO chip devices supported */
    static struct bus_type gpio_bus_type = {
    	.name = "gpio",
    };
    
    /* gpio_lock prevents conflicts during gpio_desc[] table updates.
     * While any GPIO is requested, its gpio_chip is not removable;
     * each GPIO's "requested" flag serves as a lock and refcount.
     */
    DEFINE_SPINLOCK(gpio_lock);
    
    static DEFINE_MUTEX(gpio_lookup_lock);
    static LIST_HEAD(gpio_lookup_list);