mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git
synced 2024-09-27 12:57:53 +00:00
drm-misc-next for 6.6:
UAPI Changes: - syncobj: New DRM_IOCTL_SYNCOBJ_EVENTFD ioctl Cross-subsystem Changes: - Converge to use of_device_uevent() Core Changes: - GPU VA Manager - improvements to make it clearer that drm_minor_type is uAPI Driver Changes: - ssd130x: Improve intermediate buffer size computation - bridges: - adv7511: Fix low refresh rate - anx7625: Switch to macros instead of hardcoded values - panel: - ld9040: Backlight support, magic improved -----BEGIN PGP SIGNATURE----- iHUEABYKAB0WIQRcEzekXsqa64kGDp7j7w1vZxhRxQUCZLqaowAKCRDj7w1vZxhR xTT5AQCLDVfxVLvEPwyFrOoHdUhD4fA5Lwv22IbB3rSiOBC4PQD/dUo/ANtHFu8k o4WLS1nYnSMfBzaTrKU31uvBa1SySwU= =cF+J -----END PGP SIGNATURE----- Merge tag 'drm-misc-next-2023-07-21' of ssh://git.freedesktop.org/git/drm/drm-misc into drm-next drm-misc-next for 6.6: UAPI Changes: - syncobj: New DRM_IOCTL_SYNCOBJ_EVENTFD ioctl Cross-subsystem Changes: - Converge to use of_device_uevent() Core Changes: - GPU VA Manager - improvements to make it clearer that drm_minor_type is uAPI Driver Changes: - ssd130x: Improve intermediate buffer size computation - bridges: - adv7511: Fix low refresh rate - anx7625: Switch to macros instead of hardcoded values - panel: - ld9040: Backlight support, magic improved Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch> From: Maxime Ripard <mripard@kernel.org> Link: https://patchwork.freedesktop.org/patch/msgid/urs7omo5xnhglztxgwgsslws7duqfj4jhzrtppaenuvdh2lwuz@4htm4iiqhkep
This commit is contained in:
commit
5c1b19b45a
172 changed files with 3014 additions and 215 deletions
|
@ -466,6 +466,42 @@ DRM MM Range Allocator Function References
|
|||
.. kernel-doc:: drivers/gpu/drm/drm_mm.c
|
||||
:export:
|
||||
|
||||
DRM GPU VA Manager
|
||||
==================
|
||||
|
||||
Overview
|
||||
--------
|
||||
|
||||
.. kernel-doc:: drivers/gpu/drm/drm_gpuva_mgr.c
|
||||
:doc: Overview
|
||||
|
||||
Split and Merge
|
||||
---------------
|
||||
|
||||
.. kernel-doc:: drivers/gpu/drm/drm_gpuva_mgr.c
|
||||
:doc: Split and Merge
|
||||
|
||||
Locking
|
||||
-------
|
||||
|
||||
.. kernel-doc:: drivers/gpu/drm/drm_gpuva_mgr.c
|
||||
:doc: Locking
|
||||
|
||||
Examples
|
||||
--------
|
||||
|
||||
.. kernel-doc:: drivers/gpu/drm/drm_gpuva_mgr.c
|
||||
:doc: Examples
|
||||
|
||||
DRM GPU VA Manager Function References
|
||||
--------------------------------------
|
||||
|
||||
.. kernel-doc:: include/drm/drm_gpuva_mgr.h
|
||||
:internal:
|
||||
|
||||
.. kernel-doc:: drivers/gpu/drm/drm_gpuva_mgr.c
|
||||
:export:
|
||||
|
||||
DRM Buddy Allocator
|
||||
===================
|
||||
|
||||
|
|
|
@ -45,6 +45,7 @@ drm-y := \
|
|||
drm_vblank.o \
|
||||
drm_vblank_work.o \
|
||||
drm_vma_manager.o \
|
||||
drm_gpuva_mgr.o \
|
||||
drm_writeback.o
|
||||
drm-$(CONFIG_DRM_LEGACY) += \
|
||||
drm_agpsupport.o \
|
||||
|
|
|
@ -6,7 +6,7 @@
|
|||
*/
|
||||
#include <linux/io.h>
|
||||
#include <linux/iommu.h>
|
||||
#include <linux/of_device.h>
|
||||
#include <linux/of.h>
|
||||
#include <linux/of_graph.h>
|
||||
#include <linux/of_reserved_mem.h>
|
||||
#include <linux/platform_device.h>
|
||||
|
|
|
@ -12,6 +12,7 @@
|
|||
#include <linux/of_device.h>
|
||||
#include <linux/of_graph.h>
|
||||
#include <linux/of_reserved_mem.h>
|
||||
#include <linux/platform_device.h>
|
||||
#include <linux/pm_runtime.h>
|
||||
#include <linux/debugfs.h>
|
||||
|
||||
|
|
|
@ -7,7 +7,6 @@
|
|||
|
||||
#include <linux/device.h>
|
||||
#include <linux/module.h>
|
||||
#include <linux/of_device.h>
|
||||
#include <linux/slab.h>
|
||||
#include <linux/clk.h>
|
||||
|
||||
|
|
|
@ -9,7 +9,7 @@
|
|||
#include <linux/device.h>
|
||||
#include <linux/gpio/consumer.h>
|
||||
#include <linux/module.h>
|
||||
#include <linux/of_device.h>
|
||||
#include <linux/of.h>
|
||||
#include <linux/slab.h>
|
||||
|
||||
#include <media/cec.h>
|
||||
|
@ -786,8 +786,13 @@ static void adv7511_mode_set(struct adv7511 *adv7511,
|
|||
else
|
||||
low_refresh_rate = ADV7511_LOW_REFRESH_RATE_NONE;
|
||||
|
||||
regmap_update_bits(adv7511->regmap, 0xfb,
|
||||
0x6, low_refresh_rate << 1);
|
||||
if (adv7511->type == ADV7511)
|
||||
regmap_update_bits(adv7511->regmap, 0xfb,
|
||||
0x6, low_refresh_rate << 1);
|
||||
else
|
||||
regmap_update_bits(adv7511->regmap, 0x4a,
|
||||
0xc, low_refresh_rate << 2);
|
||||
|
||||
regmap_update_bits(adv7511->regmap, 0x17,
|
||||
0x60, (vsync_polarity << 6) | (hsync_polarity << 5));
|
||||
|
||||
|
|
|
@ -872,11 +872,11 @@ static int anx7625_hdcp_enable(struct anx7625_data *ctx)
|
|||
}
|
||||
|
||||
/* Read downstream capability */
|
||||
ret = anx7625_aux_trans(ctx, DP_AUX_NATIVE_READ, 0x68028, 1, &bcap);
|
||||
ret = anx7625_aux_trans(ctx, DP_AUX_NATIVE_READ, DP_AUX_HDCP_BCAPS, 1, &bcap);
|
||||
if (ret < 0)
|
||||
return ret;
|
||||
|
||||
if (!(bcap & 0x01)) {
|
||||
if (!(bcap & DP_BCAPS_HDCP_CAPABLE)) {
|
||||
pr_warn("downstream not support HDCP 1.4, cap(%x).\n", bcap);
|
||||
return 0;
|
||||
}
|
||||
|
@ -931,8 +931,8 @@ static void anx7625_dp_start(struct anx7625_data *ctx)
|
|||
|
||||
dev_dbg(dev, "set downstream sink into normal\n");
|
||||
/* Downstream sink enter into normal mode */
|
||||
data = 1;
|
||||
ret = anx7625_aux_trans(ctx, DP_AUX_NATIVE_WRITE, 0x000600, 1, &data);
|
||||
data = DP_SET_POWER_D0;
|
||||
ret = anx7625_aux_trans(ctx, DP_AUX_NATIVE_WRITE, DP_SET_POWER, 1, &data);
|
||||
if (ret < 0)
|
||||
dev_err(dev, "IO error : set sink into normal mode fail\n");
|
||||
|
||||
|
@ -971,8 +971,8 @@ static void anx7625_dp_stop(struct anx7625_data *ctx)
|
|||
|
||||
dev_dbg(dev, "notify downstream enter into standby\n");
|
||||
/* Downstream monitor enter into standby mode */
|
||||
data = 2;
|
||||
ret |= anx7625_aux_trans(ctx, DP_AUX_NATIVE_WRITE, 0x000600, 1, &data);
|
||||
data = DP_SET_POWER_D3;
|
||||
ret |= anx7625_aux_trans(ctx, DP_AUX_NATIVE_WRITE, DP_SET_POWER, 1, &data);
|
||||
if (ret < 0)
|
||||
DRM_DEV_ERROR(dev, "IO error : mute video fail\n");
|
||||
|
||||
|
|
|
@ -14,8 +14,7 @@
|
|||
#include <linux/interrupt.h>
|
||||
#include <linux/iopoll.h>
|
||||
#include <linux/module.h>
|
||||
#include <linux/of_address.h>
|
||||
#include <linux/of_device.h>
|
||||
#include <linux/of.h>
|
||||
#include <linux/of_graph.h>
|
||||
#include <linux/platform_device.h>
|
||||
#include <linux/pm_runtime.h>
|
||||
|
|
|
@ -29,7 +29,6 @@
|
|||
#include <linux/media-bus-format.h>
|
||||
#include <linux/module.h>
|
||||
#include <linux/of.h>
|
||||
#include <linux/of_device.h>
|
||||
#include <linux/phy/phy.h>
|
||||
#include <linux/phy/phy-dp.h>
|
||||
#include <linux/platform_device.h>
|
||||
|
|
|
@ -17,7 +17,7 @@
|
|||
#include <linux/i2c.h>
|
||||
#include <linux/media-bus-format.h>
|
||||
#include <linux/module.h>
|
||||
#include <linux/of_device.h>
|
||||
#include <linux/of.h>
|
||||
#include <linux/regmap.h>
|
||||
#include <linux/regulator/consumer.h>
|
||||
|
||||
|
|
|
@ -10,7 +10,6 @@
|
|||
#include <linux/module.h>
|
||||
#include <linux/mutex.h>
|
||||
#include <linux/of.h>
|
||||
#include <linux/of_device.h>
|
||||
#include <linux/platform_device.h>
|
||||
#include <linux/regulator/consumer.h>
|
||||
|
||||
|
|
|
@ -8,7 +8,6 @@
|
|||
#include <linux/mfd/syscon.h>
|
||||
#include <linux/module.h>
|
||||
#include <linux/of.h>
|
||||
#include <linux/of_device.h>
|
||||
#include <linux/of_graph.h>
|
||||
#include <linux/platform_device.h>
|
||||
#include <linux/regmap.h>
|
||||
|
|
|
@ -9,9 +9,9 @@
|
|||
#include <linux/mfd/syscon.h>
|
||||
#include <linux/module.h>
|
||||
#include <linux/of.h>
|
||||
#include <linux/of_device.h>
|
||||
#include <linux/of_graph.h>
|
||||
#include <linux/phy/phy.h>
|
||||
#include <linux/platform_device.h>
|
||||
#include <linux/pm_runtime.h>
|
||||
#include <linux/regmap.h>
|
||||
|
||||
|
|
|
@ -12,6 +12,7 @@
|
|||
#include <linux/of_device.h>
|
||||
#include <linux/of_graph.h>
|
||||
#include <linux/phy/phy.h>
|
||||
#include <linux/platform_device.h>
|
||||
#include <linux/pm_runtime.h>
|
||||
#include <linux/regmap.h>
|
||||
|
||||
|
|
|
@ -16,7 +16,6 @@
|
|||
#include <linux/i2c.h>
|
||||
#include <linux/media-bus-format.h>
|
||||
#include <linux/module.h>
|
||||
#include <linux/of_device.h>
|
||||
#include <linux/of_graph.h>
|
||||
#include <linux/regmap.h>
|
||||
#include <linux/regulator/consumer.h>
|
||||
|
|
|
@ -7,7 +7,6 @@
|
|||
#include <linux/gpio/consumer.h>
|
||||
#include <linux/module.h>
|
||||
#include <linux/of.h>
|
||||
#include <linux/of_device.h>
|
||||
#include <linux/of_graph.h>
|
||||
#include <linux/platform_device.h>
|
||||
#include <linux/regulator/consumer.h>
|
||||
|
|
|
@ -16,8 +16,8 @@
|
|||
#include <linux/module.h>
|
||||
#include <linux/mux/consumer.h>
|
||||
#include <linux/of.h>
|
||||
#include <linux/of_platform.h>
|
||||
#include <linux/phy/phy.h>
|
||||
#include <linux/platform_device.h>
|
||||
#include <linux/regmap.h>
|
||||
#include <linux/reset.h>
|
||||
#include <linux/sys_soc.h>
|
||||
|
|
|
@ -12,7 +12,6 @@
|
|||
#include <linux/i2c.h>
|
||||
#include <linux/module.h>
|
||||
#include <linux/of.h>
|
||||
#include <linux/of_device.h>
|
||||
#include <linux/pm.h>
|
||||
#include <linux/regulator/consumer.h>
|
||||
|
||||
|
|
|
@ -16,8 +16,9 @@
|
|||
#include <linux/delay.h>
|
||||
#include <linux/irq.h>
|
||||
#include <linux/media-bus-format.h>
|
||||
#include <linux/of_device.h>
|
||||
#include <linux/of.h>
|
||||
#include <linux/phy/phy.h>
|
||||
#include <linux/platform_device.h>
|
||||
|
||||
#include <video/mipi_display.h>
|
||||
|
||||
|
|
|
@ -8,8 +8,9 @@
|
|||
|
||||
#include <linux/gpio/consumer.h>
|
||||
#include <linux/module.h>
|
||||
#include <linux/of_device.h>
|
||||
#include <linux/of.h>
|
||||
#include <linux/of_graph.h>
|
||||
#include <linux/platform_device.h>
|
||||
#include <linux/regulator/consumer.h>
|
||||
|
||||
#include <drm/drm_atomic_helper.h>
|
||||
|
|
|
@ -14,7 +14,7 @@
|
|||
#include <linux/irq.h>
|
||||
#include <linux/module.h>
|
||||
#include <linux/mutex.h>
|
||||
#include <linux/of_device.h>
|
||||
#include <linux/of.h>
|
||||
#include <linux/pinctrl/consumer.h>
|
||||
#include <linux/regmap.h>
|
||||
#include <linux/dma-mapping.h>
|
||||
|
|
|
@ -13,7 +13,7 @@
|
|||
#include <linux/debugfs.h>
|
||||
#include <linux/iopoll.h>
|
||||
#include <linux/module.h>
|
||||
#include <linux/of_device.h>
|
||||
#include <linux/platform_device.h>
|
||||
#include <linux/pm_runtime.h>
|
||||
#include <linux/reset.h>
|
||||
|
||||
|
|
|
@ -31,7 +31,7 @@
|
|||
#include <linux/i2c.h>
|
||||
#include <linux/media-bus-format.h>
|
||||
#include <linux/module.h>
|
||||
#include <linux/of_device.h>
|
||||
#include <linux/of.h>
|
||||
#include <linux/of_graph.h>
|
||||
#include <linux/regmap.h>
|
||||
#include <linux/regulator/consumer.h>
|
||||
|
|
|
@ -39,6 +39,7 @@
|
|||
#include <drm/drm_file.h>
|
||||
#include <drm/drm_gem.h>
|
||||
#include <drm/drm_managed.h>
|
||||
#include <drm/drm_gpuva_mgr.h>
|
||||
|
||||
#include "drm_crtc_internal.h"
|
||||
#include "drm_internal.h"
|
||||
|
@ -175,6 +176,45 @@ static const struct file_operations drm_debugfs_fops = {
|
|||
.release = single_release,
|
||||
};
|
||||
|
||||
/**
|
||||
* drm_debugfs_gpuva_info - dump the given DRM GPU VA space
|
||||
* @m: pointer to the &seq_file to write
|
||||
* @mgr: the &drm_gpuva_manager representing the GPU VA space
|
||||
*
|
||||
* Dumps the GPU VA mappings of a given DRM GPU VA manager.
|
||||
*
|
||||
* For each DRM GPU VA space drivers should call this function from their
|
||||
* &drm_info_list's show callback.
|
||||
*
|
||||
* Returns: 0 on success, -ENODEV if the &mgr is not initialized
|
||||
*/
|
||||
int drm_debugfs_gpuva_info(struct seq_file *m,
|
||||
struct drm_gpuva_manager *mgr)
|
||||
{
|
||||
struct drm_gpuva *va, *kva = &mgr->kernel_alloc_node;
|
||||
|
||||
if (!mgr->name)
|
||||
return -ENODEV;
|
||||
|
||||
seq_printf(m, "DRM GPU VA space (%s) [0x%016llx;0x%016llx]\n",
|
||||
mgr->name, mgr->mm_start, mgr->mm_start + mgr->mm_range);
|
||||
seq_printf(m, "Kernel reserved node [0x%016llx;0x%016llx]\n",
|
||||
kva->va.addr, kva->va.addr + kva->va.range);
|
||||
seq_puts(m, "\n");
|
||||
seq_puts(m, " VAs | start | range | end | object | object offset\n");
|
||||
seq_puts(m, "-------------------------------------------------------------------------------------------------------------\n");
|
||||
drm_gpuva_for_each_va(va, mgr) {
|
||||
if (unlikely(va == kva))
|
||||
continue;
|
||||
|
||||
seq_printf(m, " | 0x%016llx | 0x%016llx | 0x%016llx | 0x%016llx | 0x%016llx\n",
|
||||
va->va.addr, va->va.range, va->va.addr + va->va.range,
|
||||
(u64)(uintptr_t)va->gem.obj, va->gem.offset);
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
||||
EXPORT_SYMBOL(drm_debugfs_gpuva_info);
|
||||
|
||||
/**
|
||||
* drm_debugfs_create_files - Initialize a given set of debugfs files for DRM
|
||||
|
|
|
@ -84,7 +84,7 @@ DEFINE_STATIC_SRCU(drm_unplug_srcu);
|
|||
*/
|
||||
|
||||
static struct drm_minor **drm_minor_get_slot(struct drm_device *dev,
|
||||
unsigned int type)
|
||||
enum drm_minor_type type)
|
||||
{
|
||||
switch (type) {
|
||||
case DRM_MINOR_PRIMARY:
|
||||
|
@ -116,7 +116,7 @@ static void drm_minor_alloc_release(struct drm_device *dev, void *data)
|
|||
}
|
||||
}
|
||||
|
||||
static int drm_minor_alloc(struct drm_device *dev, unsigned int type)
|
||||
static int drm_minor_alloc(struct drm_device *dev, enum drm_minor_type type)
|
||||
{
|
||||
struct drm_minor *minor;
|
||||
unsigned long flags;
|
||||
|
@ -160,7 +160,7 @@ static int drm_minor_alloc(struct drm_device *dev, unsigned int type)
|
|||
return 0;
|
||||
}
|
||||
|
||||
static int drm_minor_register(struct drm_device *dev, unsigned int type)
|
||||
static int drm_minor_register(struct drm_device *dev, enum drm_minor_type type)
|
||||
{
|
||||
struct drm_minor *minor;
|
||||
unsigned long flags;
|
||||
|
@ -203,7 +203,7 @@ static int drm_minor_register(struct drm_device *dev, unsigned int type)
|
|||
return ret;
|
||||
}
|
||||
|
||||
static void drm_minor_unregister(struct drm_device *dev, unsigned int type)
|
||||
static void drm_minor_unregister(struct drm_device *dev, enum drm_minor_type type)
|
||||
{
|
||||
struct drm_minor *minor;
|
||||
unsigned long flags;
|
||||
|
|
|
@ -164,6 +164,9 @@ void drm_gem_private_object_init(struct drm_device *dev,
|
|||
if (!obj->resv)
|
||||
obj->resv = &obj->_resv;
|
||||
|
||||
if (drm_core_check_feature(dev, DRIVER_GEM_GPUVA))
|
||||
drm_gem_gpuva_init(obj);
|
||||
|
||||
drm_vma_node_reset(&obj->vma_node);
|
||||
INIT_LIST_HEAD(&obj->lru_node);
|
||||
}
|
||||
|
|
1725
drivers/gpu/drm/drm_gpuva_mgr.c
Normal file
1725
drivers/gpu/drm/drm_gpuva_mgr.c
Normal file
File diff suppressed because it is too large
Load diff
|
@ -245,6 +245,8 @@ int drm_syncobj_wait_ioctl(struct drm_device *dev, void *data,
|
|||
struct drm_file *file_private);
|
||||
int drm_syncobj_timeline_wait_ioctl(struct drm_device *dev, void *data,
|
||||
struct drm_file *file_private);
|
||||
int drm_syncobj_eventfd_ioctl(struct drm_device *dev, void *data,
|
||||
struct drm_file *file_private);
|
||||
int drm_syncobj_reset_ioctl(struct drm_device *dev, void *data,
|
||||
struct drm_file *file_private);
|
||||
int drm_syncobj_signal_ioctl(struct drm_device *dev, void *data,
|
||||
|
|
|
@ -701,6 +701,8 @@ static const struct drm_ioctl_desc drm_ioctls[] = {
|
|||
DRM_RENDER_ALLOW),
|
||||
DRM_IOCTL_DEF(DRM_IOCTL_SYNCOBJ_TIMELINE_WAIT, drm_syncobj_timeline_wait_ioctl,
|
||||
DRM_RENDER_ALLOW),
|
||||
DRM_IOCTL_DEF(DRM_IOCTL_SYNCOBJ_EVENTFD, drm_syncobj_eventfd_ioctl,
|
||||
DRM_RENDER_ALLOW),
|
||||
DRM_IOCTL_DEF(DRM_IOCTL_SYNCOBJ_RESET, drm_syncobj_reset_ioctl,
|
||||
DRM_RENDER_ALLOW),
|
||||
DRM_IOCTL_DEF(DRM_IOCTL_SYNCOBJ_SIGNAL, drm_syncobj_signal_ioctl,
|
||||
|
|
|
@ -27,6 +27,7 @@
|
|||
|
||||
#include <linux/device.h>
|
||||
#include <linux/module.h>
|
||||
#include <linux/of.h>
|
||||
#include <linux/of_device.h>
|
||||
#include <linux/pm_runtime.h>
|
||||
#include <linux/slab.h>
|
||||
|
|
|
@ -136,6 +136,10 @@
|
|||
* requirement is inherited from the wait-before-signal behavior required by
|
||||
* the Vulkan timeline semaphore API.
|
||||
*
|
||||
* Alternatively, &DRM_IOCTL_SYNCOBJ_EVENTFD can be used to wait without
|
||||
* blocking: an eventfd will be signaled when the syncobj is. This is useful to
|
||||
* integrate the wait in an event loop.
|
||||
*
|
||||
*
|
||||
* Import/export of syncobjs
|
||||
* -------------------------
|
||||
|
@ -185,6 +189,7 @@
|
|||
|
||||
#include <linux/anon_inodes.h>
|
||||
#include <linux/dma-fence-unwrap.h>
|
||||
#include <linux/eventfd.h>
|
||||
#include <linux/file.h>
|
||||
#include <linux/fs.h>
|
||||
#include <linux/sched/signal.h>
|
||||
|
@ -212,6 +217,20 @@ struct syncobj_wait_entry {
|
|||
static void syncobj_wait_syncobj_func(struct drm_syncobj *syncobj,
|
||||
struct syncobj_wait_entry *wait);
|
||||
|
||||
struct syncobj_eventfd_entry {
|
||||
struct list_head node;
|
||||
struct dma_fence *fence;
|
||||
struct dma_fence_cb fence_cb;
|
||||
struct drm_syncobj *syncobj;
|
||||
struct eventfd_ctx *ev_fd_ctx;
|
||||
u64 point;
|
||||
u32 flags;
|
||||
};
|
||||
|
||||
static void
|
||||
syncobj_eventfd_entry_func(struct drm_syncobj *syncobj,
|
||||
struct syncobj_eventfd_entry *entry);
|
||||
|
||||
/**
|
||||
* drm_syncobj_find - lookup and reference a sync object.
|
||||
* @file_private: drm file private pointer
|
||||
|
@ -274,6 +293,28 @@ static void drm_syncobj_remove_wait(struct drm_syncobj *syncobj,
|
|||
spin_unlock(&syncobj->lock);
|
||||
}
|
||||
|
||||
static void
|
||||
syncobj_eventfd_entry_free(struct syncobj_eventfd_entry *entry)
|
||||
{
|
||||
eventfd_ctx_put(entry->ev_fd_ctx);
|
||||
dma_fence_put(entry->fence);
|
||||
/* This happens either inside the syncobj lock, or after the node has
|
||||
* already been removed from the list.
|
||||
*/
|
||||
list_del(&entry->node);
|
||||
kfree(entry);
|
||||
}
|
||||
|
||||
static void
|
||||
drm_syncobj_add_eventfd(struct drm_syncobj *syncobj,
|
||||
struct syncobj_eventfd_entry *entry)
|
||||
{
|
||||
spin_lock(&syncobj->lock);
|
||||
list_add_tail(&entry->node, &syncobj->ev_fd_list);
|
||||
syncobj_eventfd_entry_func(syncobj, entry);
|
||||
spin_unlock(&syncobj->lock);
|
||||
}
|
||||
|
||||
/**
|
||||
* drm_syncobj_add_point - add new timeline point to the syncobj
|
||||
* @syncobj: sync object to add timeline point do
|
||||
|
@ -288,7 +329,8 @@ void drm_syncobj_add_point(struct drm_syncobj *syncobj,
|
|||
struct dma_fence *fence,
|
||||
uint64_t point)
|
||||
{
|
||||
struct syncobj_wait_entry *cur, *tmp;
|
||||
struct syncobj_wait_entry *wait_cur, *wait_tmp;
|
||||
struct syncobj_eventfd_entry *ev_fd_cur, *ev_fd_tmp;
|
||||
struct dma_fence *prev;
|
||||
|
||||
dma_fence_get(fence);
|
||||
|
@ -302,8 +344,10 @@ void drm_syncobj_add_point(struct drm_syncobj *syncobj,
|
|||
dma_fence_chain_init(chain, prev, fence, point);
|
||||
rcu_assign_pointer(syncobj->fence, &chain->base);
|
||||
|
||||
list_for_each_entry_safe(cur, tmp, &syncobj->cb_list, node)
|
||||
syncobj_wait_syncobj_func(syncobj, cur);
|
||||
list_for_each_entry_safe(wait_cur, wait_tmp, &syncobj->cb_list, node)
|
||||
syncobj_wait_syncobj_func(syncobj, wait_cur);
|
||||
list_for_each_entry_safe(ev_fd_cur, ev_fd_tmp, &syncobj->ev_fd_list, node)
|
||||
syncobj_eventfd_entry_func(syncobj, ev_fd_cur);
|
||||
spin_unlock(&syncobj->lock);
|
||||
|
||||
/* Walk the chain once to trigger garbage collection */
|
||||
|
@ -323,7 +367,8 @@ void drm_syncobj_replace_fence(struct drm_syncobj *syncobj,
|
|||
struct dma_fence *fence)
|
||||
{
|
||||
struct dma_fence *old_fence;
|
||||
struct syncobj_wait_entry *cur, *tmp;
|
||||
struct syncobj_wait_entry *wait_cur, *wait_tmp;
|
||||
struct syncobj_eventfd_entry *ev_fd_cur, *ev_fd_tmp;
|
||||
|
||||
if (fence)
|
||||
dma_fence_get(fence);
|
||||
|
@ -335,8 +380,10 @@ void drm_syncobj_replace_fence(struct drm_syncobj *syncobj,
|
|||
rcu_assign_pointer(syncobj->fence, fence);
|
||||
|
||||
if (fence != old_fence) {
|
||||
list_for_each_entry_safe(cur, tmp, &syncobj->cb_list, node)
|
||||
syncobj_wait_syncobj_func(syncobj, cur);
|
||||
list_for_each_entry_safe(wait_cur, wait_tmp, &syncobj->cb_list, node)
|
||||
syncobj_wait_syncobj_func(syncobj, wait_cur);
|
||||
list_for_each_entry_safe(ev_fd_cur, ev_fd_tmp, &syncobj->ev_fd_list, node)
|
||||
syncobj_eventfd_entry_func(syncobj, ev_fd_cur);
|
||||
}
|
||||
|
||||
spin_unlock(&syncobj->lock);
|
||||
|
@ -472,7 +519,13 @@ void drm_syncobj_free(struct kref *kref)
|
|||
struct drm_syncobj *syncobj = container_of(kref,
|
||||
struct drm_syncobj,
|
||||
refcount);
|
||||
struct syncobj_eventfd_entry *ev_fd_cur, *ev_fd_tmp;
|
||||
|
||||
drm_syncobj_replace_fence(syncobj, NULL);
|
||||
|
||||
list_for_each_entry_safe(ev_fd_cur, ev_fd_tmp, &syncobj->ev_fd_list, node)
|
||||
syncobj_eventfd_entry_free(ev_fd_cur);
|
||||
|
||||
kfree(syncobj);
|
||||
}
|
||||
EXPORT_SYMBOL(drm_syncobj_free);
|
||||
|
@ -501,6 +554,7 @@ int drm_syncobj_create(struct drm_syncobj **out_syncobj, uint32_t flags,
|
|||
|
||||
kref_init(&syncobj->refcount);
|
||||
INIT_LIST_HEAD(&syncobj->cb_list);
|
||||
INIT_LIST_HEAD(&syncobj->ev_fd_list);
|
||||
spin_lock_init(&syncobj->lock);
|
||||
|
||||
if (flags & DRM_SYNCOBJ_CREATE_SIGNALED) {
|
||||
|
@ -1304,6 +1358,88 @@ drm_syncobj_timeline_wait_ioctl(struct drm_device *dev, void *data,
|
|||
return ret;
|
||||
}
|
||||
|
||||
static void syncobj_eventfd_entry_fence_func(struct dma_fence *fence,
|
||||
struct dma_fence_cb *cb)
|
||||
{
|
||||
struct syncobj_eventfd_entry *entry =
|
||||
container_of(cb, struct syncobj_eventfd_entry, fence_cb);
|
||||
|
||||
eventfd_signal(entry->ev_fd_ctx, 1);
|
||||
syncobj_eventfd_entry_free(entry);
|
||||
}
|
||||
|
||||
static void
|
||||
syncobj_eventfd_entry_func(struct drm_syncobj *syncobj,
|
||||
struct syncobj_eventfd_entry *entry)
|
||||
{
|
||||
int ret;
|
||||
struct dma_fence *fence;
|
||||
|
||||
/* This happens inside the syncobj lock */
|
||||
fence = dma_fence_get(rcu_dereference_protected(syncobj->fence, 1));
|
||||
ret = dma_fence_chain_find_seqno(&fence, entry->point);
|
||||
if (ret != 0 || !fence) {
|
||||
dma_fence_put(fence);
|
||||
return;
|
||||
}
|
||||
|
||||
list_del_init(&entry->node);
|
||||
entry->fence = fence;
|
||||
|
||||
if (entry->flags & DRM_SYNCOBJ_WAIT_FLAGS_WAIT_AVAILABLE) {
|
||||
eventfd_signal(entry->ev_fd_ctx, 1);
|
||||
syncobj_eventfd_entry_free(entry);
|
||||
} else {
|
||||
ret = dma_fence_add_callback(fence, &entry->fence_cb,
|
||||
syncobj_eventfd_entry_fence_func);
|
||||
if (ret == -ENOENT) {
|
||||
eventfd_signal(entry->ev_fd_ctx, 1);
|
||||
syncobj_eventfd_entry_free(entry);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
int
|
||||
drm_syncobj_eventfd_ioctl(struct drm_device *dev, void *data,
|
||||
struct drm_file *file_private)
|
||||
{
|
||||
struct drm_syncobj_eventfd *args = data;
|
||||
struct drm_syncobj *syncobj;
|
||||
struct eventfd_ctx *ev_fd_ctx;
|
||||
struct syncobj_eventfd_entry *entry;
|
||||
|
||||
if (!drm_core_check_feature(dev, DRIVER_SYNCOBJ_TIMELINE))
|
||||
return -EOPNOTSUPP;
|
||||
|
||||
if (args->flags & ~DRM_SYNCOBJ_WAIT_FLAGS_WAIT_AVAILABLE)
|
||||
return -EINVAL;
|
||||
|
||||
if (args->pad)
|
||||
return -EINVAL;
|
||||
|
||||
syncobj = drm_syncobj_find(file_private, args->handle);
|
||||
if (!syncobj)
|
||||
return -ENOENT;
|
||||
|
||||
ev_fd_ctx = eventfd_ctx_fdget(args->fd);
|
||||
if (IS_ERR(ev_fd_ctx))
|
||||
return PTR_ERR(ev_fd_ctx);
|
||||
|
||||
entry = kzalloc(sizeof(*entry), GFP_KERNEL);
|
||||
if (!entry) {
|
||||
eventfd_ctx_put(ev_fd_ctx);
|
||||
return -ENOMEM;
|
||||
}
|
||||
entry->syncobj = syncobj;
|
||||
entry->ev_fd_ctx = ev_fd_ctx;
|
||||
entry->point = args->point;
|
||||
entry->flags = args->flags;
|
||||
|
||||
drm_syncobj_add_eventfd(syncobj, entry);
|
||||
drm_syncobj_put(syncobj);
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
int
|
||||
drm_syncobj_reset_ioctl(struct drm_device *dev, void *data,
|
||||
|
|
|
@ -8,8 +8,8 @@
|
|||
#include <linux/delay.h>
|
||||
#include <linux/dma-fence.h>
|
||||
#include <linux/dma-mapping.h>
|
||||
#include <linux/mod_devicetable.h>
|
||||
#include <linux/module.h>
|
||||
#include <linux/of_device.h>
|
||||
#include <linux/platform_device.h>
|
||||
#include <linux/pm_runtime.h>
|
||||
#include <linux/regulator/consumer.h>
|
||||
|
|
|
@ -12,7 +12,7 @@
|
|||
#include <linux/iopoll.h>
|
||||
#include <linux/irq.h>
|
||||
#include <linux/mfd/syscon.h>
|
||||
#include <linux/of_device.h>
|
||||
#include <linux/of.h>
|
||||
#include <linux/platform_device.h>
|
||||
#include <linux/pm_runtime.h>
|
||||
#include <linux/regmap.h>
|
||||
|
|
|
@ -12,7 +12,6 @@
|
|||
#include <linux/kernel.h>
|
||||
#include <linux/of.h>
|
||||
#include <linux/of_address.h>
|
||||
#include <linux/of_device.h>
|
||||
#include <linux/platform_device.h>
|
||||
#include <linux/pm_runtime.h>
|
||||
|
||||
|
|
|
@ -8,7 +8,8 @@
|
|||
*/
|
||||
|
||||
#include <linux/component.h>
|
||||
#include <linux/of_device.h>
|
||||
#include <linux/of.h>
|
||||
#include <linux/platform_device.h>
|
||||
|
||||
#include <drm/bridge/samsung-dsim.h>
|
||||
#include <drm/drm_probe_helper.h>
|
||||
|
|
|
@ -12,7 +12,6 @@
|
|||
#include <linux/kernel.h>
|
||||
#include <linux/mfd/syscon.h>
|
||||
#include <linux/of.h>
|
||||
#include <linux/of_device.h>
|
||||
#include <linux/platform_device.h>
|
||||
#include <linux/pm_runtime.h>
|
||||
#include <linux/regmap.h>
|
||||
|
|
|
@ -12,7 +12,7 @@
|
|||
#include <linux/interrupt.h>
|
||||
#include <linux/io.h>
|
||||
#include <linux/kernel.h>
|
||||
#include <linux/of_device.h>
|
||||
#include <linux/of.h>
|
||||
#include <linux/platform_device.h>
|
||||
#include <linux/pm_runtime.h>
|
||||
#include <linux/sizes.h>
|
||||
|
|
|
@ -11,7 +11,7 @@
|
|||
#include <linux/interrupt.h>
|
||||
#include <linux/io.h>
|
||||
#include <linux/kernel.h>
|
||||
#include <linux/of_device.h>
|
||||
#include <linux/of.h>
|
||||
#include <linux/platform_device.h>
|
||||
#include <linux/pm_runtime.h>
|
||||
|
||||
|
|
|
@ -21,8 +21,8 @@
|
|||
#include <linux/irq.h>
|
||||
#include <linux/kernel.h>
|
||||
#include <linux/mfd/syscon.h>
|
||||
#include <linux/of.h>
|
||||
#include <linux/of_address.h>
|
||||
#include <linux/of_device.h>
|
||||
#include <linux/of_graph.h>
|
||||
#include <linux/platform_device.h>
|
||||
#include <linux/pm_runtime.h>
|
||||
|
|
|
@ -18,7 +18,6 @@
|
|||
#include <linux/kernel.h>
|
||||
#include <linux/ktime.h>
|
||||
#include <linux/of.h>
|
||||
#include <linux/of_device.h>
|
||||
#include <linux/platform_device.h>
|
||||
#include <linux/pm_runtime.h>
|
||||
#include <linux/regulator/consumer.h>
|
||||
|
|
|
@ -11,9 +11,9 @@
|
|||
* Xinwei Kong <kong.kongxinwei@hisilicon.com>
|
||||
*/
|
||||
|
||||
#include <linux/of_platform.h>
|
||||
#include <linux/component.h>
|
||||
#include <linux/module.h>
|
||||
#include <linux/of.h>
|
||||
#include <linux/of_graph.h>
|
||||
#include <linux/platform_device.h>
|
||||
|
||||
|
|
|
@ -4,8 +4,9 @@
|
|||
*/
|
||||
|
||||
#include <linux/clk.h>
|
||||
#include <linux/of_device.h>
|
||||
#include <linux/of.h>
|
||||
#include <linux/of_graph.h>
|
||||
#include <linux/platform_device.h>
|
||||
#include <linux/pm_runtime.h>
|
||||
#include <linux/slab.h>
|
||||
#include <drm/drm_bridge_connector.h>
|
||||
|
@ -198,7 +199,7 @@ struct dcss_dev *dcss_dev_create(struct device *dev, bool hdmi_output)
|
|||
|
||||
dcss->of_port = of_graph_get_port_by_id(dev->of_node, 0);
|
||||
if (!dcss->of_port) {
|
||||
dev_err(dev, "no port@0 node in %s\n", dev->of_node->full_name);
|
||||
dev_err(dev, "no port@0 node in %pOF\n", dev->of_node);
|
||||
ret = -ENODEV;
|
||||
goto clks_err;
|
||||
}
|
||||
|
|
|
@ -19,8 +19,8 @@
|
|||
#include <linux/bitfield.h>
|
||||
#include <linux/clk.h>
|
||||
#include <linux/dma-mapping.h>
|
||||
#include <linux/mod_devicetable.h>
|
||||
#include <linux/module.h>
|
||||
#include <linux/of_device.h>
|
||||
#include <linux/platform_device.h>
|
||||
|
||||
#define IMX21LCDC_LSSAR 0x0000 /* LCDC Screen Start Address Register */
|
||||
|
|
|
@ -14,7 +14,7 @@
|
|||
#include <linux/media-bus-format.h>
|
||||
#include <linux/module.h>
|
||||
#include <linux/mutex.h>
|
||||
#include <linux/of_device.h>
|
||||
#include <linux/of.h>
|
||||
#include <linux/of_reserved_mem.h>
|
||||
#include <linux/platform_device.h>
|
||||
#include <linux/pm.h>
|
||||
|
|
|
@ -14,7 +14,7 @@
|
|||
#include <linux/interrupt.h>
|
||||
#include <linux/module.h>
|
||||
#include <linux/of.h>
|
||||
#include <linux/of_device.h>
|
||||
#include <linux/platform_device.h>
|
||||
#include <linux/regmap.h>
|
||||
#include <linux/time.h>
|
||||
|
||||
|
|
|
@ -2,7 +2,8 @@
|
|||
/* Copyright 2017-2019 Qiang Yu <yuq825@gmail.com> */
|
||||
|
||||
#include <linux/module.h>
|
||||
#include <linux/of_platform.h>
|
||||
#include <linux/of.h>
|
||||
#include <linux/platform_device.h>
|
||||
#include <linux/uaccess.h>
|
||||
#include <linux/slab.h>
|
||||
#include <linux/pm_runtime.h>
|
||||
|
|
|
@ -10,8 +10,8 @@
|
|||
#include <linux/module.h>
|
||||
#include <linux/of.h>
|
||||
#include <linux/of_address.h>
|
||||
#include <linux/of_device.h>
|
||||
#include <linux/of_reserved_mem.h>
|
||||
#include <linux/platform_device.h>
|
||||
#include <linux/regmap.h>
|
||||
#include <linux/types.h>
|
||||
|
||||
|
|
|
@ -469,7 +469,7 @@ static const struct of_device_id mcde_of_match[] = {
|
|||
static struct platform_driver mcde_driver = {
|
||||
.driver = {
|
||||
.name = "mcde",
|
||||
.of_match_table = of_match_ptr(mcde_of_match),
|
||||
.of_match_table = mcde_of_match,
|
||||
},
|
||||
.probe = mcde_probe,
|
||||
.remove_new = mcde_remove,
|
||||
|
|
|
@ -6,8 +6,7 @@
|
|||
#include <linux/clk.h>
|
||||
#include <linux/component.h>
|
||||
#include <linux/module.h>
|
||||
#include <linux/of_device.h>
|
||||
#include <linux/of_irq.h>
|
||||
#include <linux/of.h>
|
||||
#include <linux/platform_device.h>
|
||||
#include <linux/soc/mediatek/mtk-cmdq.h>
|
||||
|
||||
|
|
|
@ -6,8 +6,7 @@
|
|||
#include <linux/clk.h>
|
||||
#include <linux/component.h>
|
||||
#include <linux/module.h>
|
||||
#include <linux/of_device.h>
|
||||
#include <linux/of_irq.h>
|
||||
#include <linux/of.h>
|
||||
#include <linux/platform_device.h>
|
||||
#include <linux/soc/mediatek/mtk-cmdq.h>
|
||||
|
||||
|
|
|
@ -6,8 +6,7 @@
|
|||
#include <linux/clk.h>
|
||||
#include <linux/component.h>
|
||||
#include <linux/module.h>
|
||||
#include <linux/of_device.h>
|
||||
#include <linux/of_irq.h>
|
||||
#include <linux/of.h>
|
||||
#include <linux/platform_device.h>
|
||||
#include <linux/soc/mediatek/mtk-cmdq.h>
|
||||
|
||||
|
|
|
@ -6,8 +6,7 @@
|
|||
#include <linux/clk.h>
|
||||
#include <linux/component.h>
|
||||
#include <linux/module.h>
|
||||
#include <linux/of_device.h>
|
||||
#include <linux/of_irq.h>
|
||||
#include <linux/of.h>
|
||||
#include <linux/platform_device.h>
|
||||
#include <linux/soc/mediatek/mtk-cmdq.h>
|
||||
|
||||
|
|
|
@ -5,8 +5,7 @@
|
|||
|
||||
#include <linux/clk.h>
|
||||
#include <linux/component.h>
|
||||
#include <linux/of_device.h>
|
||||
#include <linux/of_irq.h>
|
||||
#include <linux/of.h>
|
||||
#include <linux/platform_device.h>
|
||||
#include <linux/reset.h>
|
||||
#include <linux/soc/mediatek/mtk-cmdq.h>
|
||||
|
|
|
@ -10,8 +10,7 @@
|
|||
#include <linux/clk.h>
|
||||
#include <linux/component.h>
|
||||
#include <linux/module.h>
|
||||
#include <linux/of_device.h>
|
||||
#include <linux/of_irq.h>
|
||||
#include <linux/of.h>
|
||||
#include <linux/platform_device.h>
|
||||
#include <linux/pm_runtime.h>
|
||||
#include <linux/soc/mediatek/mtk-cmdq.h>
|
||||
|
|
|
@ -7,8 +7,9 @@
|
|||
#include <drm/drm_of.h>
|
||||
#include <linux/clk.h>
|
||||
#include <linux/component.h>
|
||||
#include <linux/of_device.h>
|
||||
#include <linux/of.h>
|
||||
#include <linux/of_address.h>
|
||||
#include <linux/of_platform.h>
|
||||
#include <linux/platform_device.h>
|
||||
#include <linux/pm_runtime.h>
|
||||
#include <linux/reset.h>
|
||||
|
|
|
@ -8,8 +8,7 @@
|
|||
#include <linux/clk.h>
|
||||
#include <linux/component.h>
|
||||
#include <linux/module.h>
|
||||
#include <linux/of_device.h>
|
||||
#include <linux/of_irq.h>
|
||||
#include <linux/of.h>
|
||||
#include <linux/platform_device.h>
|
||||
#include <linux/pm_runtime.h>
|
||||
#include <linux/soc/mediatek/mtk-cmdq.h>
|
||||
|
|
|
@ -10,7 +10,6 @@
|
|||
#include <linux/kernel.h>
|
||||
#include <linux/media-bus-format.h>
|
||||
#include <linux/of.h>
|
||||
#include <linux/of_device.h>
|
||||
#include <linux/of_graph.h>
|
||||
#include <linux/pinctrl/consumer.h>
|
||||
#include <linux/platform_device.h>
|
||||
|
|
|
@ -6,6 +6,7 @@
|
|||
#include <linux/clk.h>
|
||||
#include <linux/dma-mapping.h>
|
||||
#include <linux/mailbox_controller.h>
|
||||
#include <linux/of.h>
|
||||
#include <linux/pm_runtime.h>
|
||||
#include <linux/soc/mediatek/mtk-cmdq.h>
|
||||
#include <linux/soc/mediatek/mtk-mmsys.h>
|
||||
|
|
|
@ -7,8 +7,9 @@
|
|||
#include <linux/component.h>
|
||||
#include <linux/iommu.h>
|
||||
#include <linux/module.h>
|
||||
#include <linux/of_address.h>
|
||||
#include <linux/of.h>
|
||||
#include <linux/of_platform.h>
|
||||
#include <linux/platform_device.h>
|
||||
#include <linux/pm_runtime.h>
|
||||
#include <linux/dma-mapping.h>
|
||||
|
||||
|
|
|
@ -7,7 +7,7 @@
|
|||
#include <drm/drm_framebuffer.h>
|
||||
#include <linux/clk.h>
|
||||
#include <linux/component.h>
|
||||
#include <linux/of_device.h>
|
||||
#include <linux/of.h>
|
||||
#include <linux/of_address.h>
|
||||
#include <linux/platform_device.h>
|
||||
#include <linux/reset.h>
|
||||
|
|
|
@ -6,8 +6,7 @@
|
|||
#include <drm/drm_fourcc.h>
|
||||
#include <linux/clk.h>
|
||||
#include <linux/component.h>
|
||||
#include <linux/of_address.h>
|
||||
#include <linux/of_device.h>
|
||||
#include <linux/mod_devicetable.h>
|
||||
#include <linux/platform_device.h>
|
||||
#include <linux/pm_runtime.h>
|
||||
#include <linux/soc/mediatek/mtk-cmdq.h>
|
||||
|
|
|
@ -9,7 +9,6 @@
|
|||
|
||||
#include <linux/device.h>
|
||||
#include <linux/of.h>
|
||||
#include <linux/of_device.h>
|
||||
#include <linux/regmap.h>
|
||||
|
||||
struct drm_crtc;
|
||||
|
|
|
@ -9,8 +9,9 @@
|
|||
#include <linux/component.h>
|
||||
#include <linux/kernel.h>
|
||||
#include <linux/module.h>
|
||||
#include <linux/of_device.h>
|
||||
#include <linux/of.h>
|
||||
#include <linux/of_graph.h>
|
||||
#include <linux/platform_device.h>
|
||||
#include <linux/regulator/consumer.h>
|
||||
#include <linux/reset.h>
|
||||
|
||||
|
|
|
@ -7,9 +7,10 @@
|
|||
|
||||
#include <linux/clk.h>
|
||||
#include <linux/kernel.h>
|
||||
#include <linux/mod_devicetable.h>
|
||||
#include <linux/module.h>
|
||||
#include <linux/of_device.h>
|
||||
#include <linux/of_graph.h>
|
||||
#include <linux/platform_device.h>
|
||||
#include <linux/reset.h>
|
||||
#include <linux/phy/phy.h>
|
||||
#include <linux/bitfield.h>
|
||||
|
|
|
@ -7,7 +7,6 @@
|
|||
|
||||
#include <linux/kernel.h>
|
||||
#include <linux/module.h>
|
||||
#include <linux/of_device.h>
|
||||
#include <linux/of_graph.h>
|
||||
|
||||
#include <drm/drm_atomic_helper.h>
|
||||
|
|
|
@ -9,8 +9,10 @@
|
|||
#include <linux/component.h>
|
||||
#include <linux/kernel.h>
|
||||
#include <linux/module.h>
|
||||
#include <linux/of_device.h>
|
||||
#include <linux/of.h>
|
||||
#include <linux/of_graph.h>
|
||||
#include <linux/of_platform.h>
|
||||
#include <linux/platform_device.h>
|
||||
#include <linux/regulator/consumer.h>
|
||||
#include <linux/reset.h>
|
||||
|
||||
|
|
|
@ -3,6 +3,8 @@
|
|||
|
||||
#include <linux/clk.h>
|
||||
#include <linux/interconnect.h>
|
||||
#include <linux/of_platform.h>
|
||||
#include <linux/platform_device.h>
|
||||
#include <linux/pm_domain.h>
|
||||
#include <linux/pm_opp.h>
|
||||
#include <soc/qcom/cmd-db.h>
|
||||
|
|
|
@ -6,7 +6,7 @@
|
|||
|
||||
#define pr_fmt(fmt) "[drm-dp] %s: " fmt, __func__
|
||||
|
||||
#include <linux/of_platform.h>
|
||||
#include <linux/platform_device.h>
|
||||
|
||||
#include <drm/display/drm_dp_helper.h>
|
||||
#include <drm/drm_edid.h>
|
||||
|
|
|
@ -10,7 +10,7 @@
|
|||
#include <linux/gpio/consumer.h>
|
||||
#include <linux/interrupt.h>
|
||||
#include <linux/mfd/syscon.h>
|
||||
#include <linux/of_device.h>
|
||||
#include <linux/of.h>
|
||||
#include <linux/of_graph.h>
|
||||
#include <linux/of_irq.h>
|
||||
#include <linux/pinctrl/consumer.h>
|
||||
|
|
|
@ -7,6 +7,8 @@
|
|||
|
||||
#include <linux/of_irq.h>
|
||||
#include <linux/of_gpio.h>
|
||||
#include <linux/of_platform.h>
|
||||
#include <linux/platform_device.h>
|
||||
|
||||
#include <drm/drm_bridge_connector.h>
|
||||
#include <drm/drm_of.h>
|
||||
|
|
|
@ -3,7 +3,8 @@
|
|||
* Copyright (c) 2016, The Linux Foundation. All rights reserved.
|
||||
*/
|
||||
|
||||
#include <linux/of_device.h>
|
||||
#include <linux/of.h>
|
||||
#include <linux/platform_device.h>
|
||||
|
||||
#include "hdmi.h"
|
||||
|
||||
|
|
|
@ -10,6 +10,8 @@
|
|||
#include <linux/irqchip.h>
|
||||
#include <linux/irqdesc.h>
|
||||
#include <linux/irqchip/chained_irq.h>
|
||||
#include <linux/of_platform.h>
|
||||
#include <linux/platform_device.h>
|
||||
#include <linux/pm_runtime.h>
|
||||
#include <linux/reset.h>
|
||||
|
||||
|
|
|
@ -10,7 +10,6 @@
|
|||
#include <linux/io.h>
|
||||
#include <linux/module.h>
|
||||
#include <linux/of.h>
|
||||
#include <linux/of_device.h>
|
||||
#include <linux/of_graph.h>
|
||||
#include <linux/platform_device.h>
|
||||
#include <linux/pm_runtime.h>
|
||||
|
|
|
@ -11,7 +11,8 @@
|
|||
#include <linux/gpio/consumer.h>
|
||||
#include <linux/media-bus-format.h>
|
||||
#include <linux/module.h>
|
||||
#include <linux/of_device.h>
|
||||
#include <linux/of.h>
|
||||
#include <linux/platform_device.h>
|
||||
#include <linux/regmap.h>
|
||||
#include <linux/regulator/consumer.h>
|
||||
#include <linux/spi/spi.h>
|
||||
|
|
|
@ -11,8 +11,8 @@
|
|||
#include <linux/device.h>
|
||||
#include <linux/gpio/consumer.h>
|
||||
#include <linux/media-bus-format.h>
|
||||
#include <linux/mod_devicetable.h>
|
||||
#include <linux/module.h>
|
||||
#include <linux/of_device.h>
|
||||
#include <linux/regmap.h>
|
||||
#include <linux/regulator/consumer.h>
|
||||
#include <linux/spi/spi.h>
|
||||
|
|
|
@ -10,7 +10,6 @@
|
|||
#include <linux/kernel.h>
|
||||
#include <linux/module.h>
|
||||
#include <linux/of.h>
|
||||
#include <linux/of_device.h>
|
||||
|
||||
#include <linux/gpio/consumer.h>
|
||||
#include <linux/regulator/consumer.h>
|
||||
|
|
|
@ -8,7 +8,6 @@
|
|||
#include <linux/gpio/consumer.h>
|
||||
#include <linux/module.h>
|
||||
#include <linux/of.h>
|
||||
#include <linux/of_device.h>
|
||||
#include <linux/regulator/consumer.h>
|
||||
|
||||
#include <drm/drm_connector.h>
|
||||
|
|
|
@ -11,7 +11,7 @@
|
|||
#include <linux/gpio/consumer.h>
|
||||
#include <linux/jiffies.h>
|
||||
#include <linux/module.h>
|
||||
#include <linux/of_device.h>
|
||||
#include <linux/of.h>
|
||||
#include <linux/regulator/consumer.h>
|
||||
|
||||
#include <drm/drm_connector.h>
|
||||
|
|
|
@ -7,7 +7,6 @@
|
|||
#include <linux/delay.h>
|
||||
#include <linux/mod_devicetable.h>
|
||||
#include <linux/module.h>
|
||||
#include <linux/of_device.h>
|
||||
#include <linux/regulator/consumer.h>
|
||||
|
||||
#include <drm/drm_mipi_dsi.h>
|
||||
|
|
|
@ -11,7 +11,7 @@
|
|||
#include <linux/gpio/consumer.h>
|
||||
#include <linux/delay.h>
|
||||
#include <linux/module.h>
|
||||
#include <linux/of_device.h>
|
||||
#include <linux/mod_devicetable.h>
|
||||
#include <linux/regulator/consumer.h>
|
||||
|
||||
#define FEIYANG_INIT_CMD_LEN 2
|
||||
|
|
|
@ -15,7 +15,7 @@
|
|||
#include <linux/media-bus-format.h>
|
||||
#include <linux/mod_devicetable.h>
|
||||
#include <linux/module.h>
|
||||
#include <linux/of_device.h>
|
||||
#include <linux/of.h>
|
||||
#include <linux/regulator/consumer.h>
|
||||
|
||||
#include <video/mipi_display.h>
|
||||
|
|
|
@ -22,7 +22,8 @@
|
|||
#include <linux/bitops.h>
|
||||
#include <linux/gpio/consumer.h>
|
||||
#include <linux/module.h>
|
||||
#include <linux/of_device.h>
|
||||
#include <linux/of.h>
|
||||
#include <linux/platform_device.h>
|
||||
#include <linux/regmap.h>
|
||||
#include <linux/regulator/consumer.h>
|
||||
#include <linux/spi/spi.h>
|
||||
|
|
|
@ -23,7 +23,7 @@
|
|||
#include <linux/delay.h>
|
||||
#include <linux/gpio/consumer.h>
|
||||
#include <linux/module.h>
|
||||
#include <linux/of_device.h>
|
||||
#include <linux/of.h>
|
||||
#include <linux/regulator/consumer.h>
|
||||
#include <linux/spi/spi.h>
|
||||
|
||||
|
|
|
@ -9,7 +9,7 @@
|
|||
#include <linux/errno.h>
|
||||
#include <linux/kernel.h>
|
||||
#include <linux/module.h>
|
||||
#include <linux/of_device.h>
|
||||
#include <linux/of.h>
|
||||
|
||||
#include <linux/gpio/consumer.h>
|
||||
#include <linux/regulator/consumer.h>
|
||||
|
|
|
@ -11,7 +11,8 @@
|
|||
#include <linux/gpio/consumer.h>
|
||||
#include <linux/media-bus-format.h>
|
||||
#include <linux/module.h>
|
||||
#include <linux/of_device.h>
|
||||
#include <linux/of.h>
|
||||
#include <linux/platform_device.h>
|
||||
#include <linux/regmap.h>
|
||||
#include <linux/regulator/consumer.h>
|
||||
#include <linux/spi/spi.h>
|
||||
|
|
|
@ -7,7 +7,6 @@
|
|||
#include <linux/gpio/consumer.h>
|
||||
#include <linux/module.h>
|
||||
#include <linux/of.h>
|
||||
#include <linux/of_device.h>
|
||||
#include <linux/regulator/consumer.h>
|
||||
|
||||
#include <video/mipi_display.h>
|
||||
|
|
|
@ -16,7 +16,7 @@
|
|||
#include <linux/gpio/consumer.h>
|
||||
#include <linux/delay.h>
|
||||
#include <linux/module.h>
|
||||
#include <linux/of_device.h>
|
||||
#include <linux/of.h>
|
||||
#include <linux/regulator/consumer.h>
|
||||
|
||||
#define JD9365DA_INIT_CMD_LEN 2
|
||||
|
|
|
@ -8,7 +8,6 @@
|
|||
#include <linux/media-bus-format.h>
|
||||
#include <linux/module.h>
|
||||
#include <linux/of.h>
|
||||
#include <linux/of_device.h>
|
||||
#include <linux/regulator/consumer.h>
|
||||
|
||||
#include <video/display_timing.h>
|
||||
|
|
|
@ -10,7 +10,7 @@
|
|||
|
||||
#include <linux/gpio/consumer.h>
|
||||
#include <linux/module.h>
|
||||
#include <linux/of_platform.h>
|
||||
#include <linux/of.h>
|
||||
#include <linux/platform_device.h>
|
||||
#include <linux/regulator/consumer.h>
|
||||
#include <linux/slab.h>
|
||||
|
|
|
@ -18,7 +18,6 @@
|
|||
#include <linux/media-bus-format.h>
|
||||
#include <linux/module.h>
|
||||
#include <linux/of.h>
|
||||
#include <linux/of_device.h>
|
||||
#include <linux/regulator/consumer.h>
|
||||
#include <linux/spi/spi.h>
|
||||
|
||||
|
|
|
@ -10,7 +10,7 @@
|
|||
#include <linux/gpio/consumer.h>
|
||||
#include <linux/media-bus-format.h>
|
||||
#include <linux/module.h>
|
||||
#include <linux/of_device.h>
|
||||
#include <linux/of.h>
|
||||
#include <linux/regulator/consumer.h>
|
||||
|
||||
#include <video/mipi_display.h>
|
||||
|
|
|
@ -13,7 +13,7 @@
|
|||
#include <linux/gpio/consumer.h>
|
||||
#include <linux/media-bus-format.h>
|
||||
#include <linux/module.h>
|
||||
#include <linux/of_device.h>
|
||||
#include <linux/of.h>
|
||||
#include <linux/regulator/consumer.h>
|
||||
|
||||
#include <video/display_timing.h>
|
||||
|
|
|
@ -11,7 +11,8 @@
|
|||
#include <linux/gpio/consumer.h>
|
||||
#include <linux/media-bus-format.h>
|
||||
#include <linux/module.h>
|
||||
#include <linux/of_device.h>
|
||||
#include <linux/of.h>
|
||||
#include <linux/platform_device.h>
|
||||
#include <linux/regulator/consumer.h>
|
||||
#include <linux/spi/spi.h>
|
||||
#include <video/mipi_display.h>
|
||||
|
|
|
@ -26,7 +26,7 @@
|
|||
#include <linux/bitops.h>
|
||||
#include <linux/gpio/consumer.h>
|
||||
#include <linux/module.h>
|
||||
#include <linux/of_device.h>
|
||||
#include <linux/of.h>
|
||||
#include <linux/regmap.h>
|
||||
#include <linux/regulator/consumer.h>
|
||||
|
||||
|
|
|
@ -18,7 +18,6 @@
|
|||
#include <linux/gpio/consumer.h>
|
||||
#include <linux/module.h>
|
||||
#include <linux/of.h>
|
||||
#include <linux/of_device.h>
|
||||
#include <linux/regulator/consumer.h>
|
||||
|
||||
#include <video/mipi_display.h>
|
||||
|
|
|
@ -8,7 +8,7 @@
|
|||
#include <linux/delay.h>
|
||||
#include <linux/gpio/consumer.h>
|
||||
#include <linux/module.h>
|
||||
#include <linux/of_device.h>
|
||||
#include <linux/of.h>
|
||||
#include <linux/of_graph.h>
|
||||
#include <linux/regulator/consumer.h>
|
||||
|
||||
|
|
|
@ -9,7 +9,7 @@
|
|||
#include <linux/delay.h>
|
||||
#include <linux/gpio/consumer.h>
|
||||
#include <linux/module.h>
|
||||
#include <linux/of_device.h>
|
||||
#include <linux/of.h>
|
||||
#include <linux/of_graph.h>
|
||||
#include <linux/regulator/consumer.h>
|
||||
|
||||
|
|
|
@ -16,7 +16,6 @@
|
|||
#include <linux/kernel.h>
|
||||
#include <linux/module.h>
|
||||
#include <linux/of.h>
|
||||
#include <linux/of_device.h>
|
||||
|
||||
#include <linux/gpio/consumer.h>
|
||||
#include <linux/pinctrl/consumer.h>
|
||||
|
|
|
@ -12,7 +12,6 @@
|
|||
#include <linux/media-bus-format.h>
|
||||
#include <linux/module.h>
|
||||
#include <linux/of.h>
|
||||
#include <linux/of_device.h>
|
||||
#include <linux/regmap.h>
|
||||
#include <linux/regulator/consumer.h>
|
||||
#include <linux/spi/spi.h>
|
||||
|
|
|
@ -12,7 +12,6 @@
|
|||
#include <linux/media-bus-format.h>
|
||||
#include <linux/module.h>
|
||||
#include <linux/of.h>
|
||||
#include <linux/of_device.h>
|
||||
#include <linux/regmap.h>
|
||||
#include <linux/regulator/consumer.h>
|
||||
#include <linux/spi/spi.h>
|
||||
|
|
Some files were not shown because too many files have changed in this diff Show more
Loading…
Reference in a new issue