linux: bump Samsung to Linux 5.19.y

This commit is contained in:
Christian Hewitt
2022-06-24 13:42:03 +00:00
parent 854b89de67
commit 8c8bcdff95
34 changed files with 1233 additions and 937 deletions

View File

@@ -27,6 +27,12 @@ case "${LINUX}" in
PKG_URL="https://github.com/raspberrypi/linux/archive/${PKG_VERSION}.tar.gz"
PKG_SOURCE_NAME="linux-${LINUX}-${PKG_VERSION}.tar.gz"
;;
samsung)
PKG_VERSION="d49914ee4ec93d58d90a12275a814415c189059c" # 5.19.2
PKG_SHA256="e1c2a33685f93eab23c26c20aa56781595ae7b678d387c7c621c7d9fbbc2349f"
PKG_URL="https://github.com/torvalds/linux/archive/${PKG_VERSION}.tar.gz"
PKG_SOURCE_NAME="linux-${LINUX}-${PKG_VERSION}.tar.gz"
;;
*)
PKG_VERSION="5.19"
PKG_SHA256="ff240c579b9ee1affc318917de07394fc1c3bb49dac25ec1287370c2e15005a8"

View File

@@ -1,15 +1,15 @@
#
# Automatically generated file; DO NOT EDIT.
# Linux/arm 5.19.0 Kernel Configuration
# Linux/arm 5.19.2 Kernel Configuration
#
CONFIG_CC_VERSION_TEXT="armv7ve-libreelec-linux-gnueabihf-gcc-12.1.0 (GCC) 12.1.0"
CONFIG_CC_IS_GCC=y
CONFIG_GCC_VERSION=120100
CONFIG_CLANG_VERSION=0
CONFIG_AS_IS_GNU=y
CONFIG_AS_VERSION=23800
CONFIG_AS_VERSION=23900
CONFIG_LD_IS_BFD=y
CONFIG_LD_VERSION=23800
CONFIG_LD_VERSION=23900
CONFIG_LLD_VERSION=0
CONFIG_CC_CAN_LINK=y
CONFIG_CC_CAN_LINK_STATIC=y
@@ -1514,7 +1514,7 @@ CONFIG_USB_IPHETH=m
# CONFIG_USB_VL600 is not set
# CONFIG_USB_NET_CH9200 is not set
# CONFIG_USB_NET_AQC111 is not set
# CONFIG_USB_RTL8153_ECM is not set
CONFIG_USB_RTL8153_ECM=y
CONFIG_WLAN=y
# CONFIG_WLAN_VENDOR_ADMTEK is not set
CONFIG_ATH_COMMON=m
@@ -2658,7 +2658,7 @@ CONFIG_MEDIA_CAMERA_SUPPORT=y
# CONFIG_MEDIA_DIGITAL_TV_SUPPORT is not set
# CONFIG_MEDIA_RADIO_SUPPORT is not set
# CONFIG_MEDIA_SDR_SUPPORT is not set
# CONFIG_MEDIA_PLATFORM_SUPPORT is not set
CONFIG_MEDIA_PLATFORM_SUPPORT=y
# CONFIG_MEDIA_TEST_SUPPORT is not set
# end of Media device types
@@ -2672,6 +2672,7 @@ CONFIG_VIDEO_V4L2_I2C=y
CONFIG_VIDEO_V4L2_SUBDEV_API=y
# CONFIG_VIDEO_ADV_DEBUG is not set
# CONFIG_VIDEO_FIXED_MINOR_RANGES is not set
CONFIG_V4L2_MEM2MEM_DEV=m
# CONFIG_V4L2_FLASH_LED_CLASS is not set
CONFIG_V4L2_FWNODE=m
CONFIG_V4L2_ASYNC=m
@@ -2761,9 +2762,108 @@ CONFIG_USB_VIDEO_CLASS_INPUT_EVDEV=y
# Webcam, TV (analog/digital) USB devices
#
# CONFIG_VIDEO_EM28XX is not set
CONFIG_MEDIA_PLATFORM_DRIVERS=y
CONFIG_V4L_PLATFORM_DRIVERS=y
CONFIG_V4L_MEM2MEM_DRIVERS=y
# CONFIG_VIDEO_MEM2MEM_DEINTERLACE is not set
# CONFIG_VIDEO_MUX is not set
#
# Allegro DVT media platform drivers
#
#
# Amlogic media platform drivers
#
#
# Amphion drivers
#
#
# Aspeed media platform drivers
#
# CONFIG_VIDEO_ASPEED is not set
#
# Atmel media platform drivers
#
#
# Cadence media platform drivers
#
# CONFIG_VIDEO_CADENCE_CSI2RX is not set
# CONFIG_VIDEO_CADENCE_CSI2TX is not set
#
# Chips&Media media platform drivers
#
#
# Intel media platform drivers
#
#
# Marvell media platform drivers
#
#
# Mediatek media platform drivers
#
#
# NVidia media platform drivers
#
#
# NXP media platform drivers
#
#
# Qualcomm media platform drivers
#
#
# Renesas media platform drivers
#
#
# Rockchip media platform drivers
#
#
# Samsung media platform drivers
#
CONFIG_VIDEO_SAMSUNG_EXYNOS_GSC=m
# CONFIG_VIDEO_SAMSUNG_EXYNOS4_IS is not set
CONFIG_VIDEO_SAMSUNG_S5P_G2D=m
CONFIG_VIDEO_SAMSUNG_S5P_JPEG=m
CONFIG_VIDEO_SAMSUNG_S5P_MFC=m
#
# STMicroelectronics media platform drivers
#
#
# Sunxi media platform drivers
#
#
# Texas Instruments drivers
#
#
# VIA media platform drivers
#
#
# Xilinx media platform drivers
#
# CONFIG_VIDEO_XILINX is not set
CONFIG_VIDEOBUF2_CORE=m
CONFIG_VIDEOBUF2_V4L2=m
CONFIG_VIDEOBUF2_MEMOPS=m
CONFIG_VIDEOBUF2_DMA_CONTIG=m
CONFIG_VIDEOBUF2_VMALLOC=m
# end of Media drivers
@@ -2986,6 +3086,8 @@ CONFIG_DRM_DISPLAY_HELPER=y
CONFIG_DRM_DISPLAY_DP_HELPER=y
# CONFIG_DRM_DP_AUX_CHARDEV is not set
# CONFIG_DRM_DP_CEC is not set
CONFIG_DRM_GEM_SHMEM_HELPER=m
CONFIG_DRM_SCHED=m
#
# I2C encoder or helper chips
@@ -3028,11 +3130,10 @@ CONFIG_DRM_EXYNOS_HDMI=y
#
# Sub-drivers
#
# CONFIG_DRM_EXYNOS_G2D is not set
# CONFIG_DRM_EXYNOS_FIMC is not set
CONFIG_DRM_EXYNOS_IPP=y
CONFIG_DRM_EXYNOS_FIMC=y
# CONFIG_DRM_EXYNOS_ROTATOR is not set
# CONFIG_DRM_EXYNOS_SCALER is not set
# CONFIG_DRM_EXYNOS_GSC is not set
CONFIG_DRM_EXYNOS_SCALER=y
# CONFIG_DRM_UDL is not set
# CONFIG_DRM_ARMADA is not set
# CONFIG_DRM_RCAR_DW_HDMI is not set
@@ -3129,7 +3230,6 @@ CONFIG_DRM_PANEL_BRIDGE=y
# CONFIG_DRM_CHIPONE_ICN6211 is not set
# CONFIG_DRM_CHRONTEL_CH7033 is not set
# CONFIG_DRM_DISPLAY_CONNECTOR is not set
# CONFIG_DRM_FSL_LDB is not set
# CONFIG_DRM_ITE_IT6505 is not set
# CONFIG_DRM_LONTIUM_LT8912B is not set
# CONFIG_DRM_LONTIUM_LT9211 is not set
@@ -3183,7 +3283,7 @@ CONFIG_DRM_ANALOGIX_DP=y
# CONFIG_DRM_PL111 is not set
# CONFIG_DRM_TVE200 is not set
# CONFIG_DRM_LIMA is not set
# CONFIG_DRM_PANFROST is not set
CONFIG_DRM_PANFROST=m
# CONFIG_DRM_MCDE is not set
# CONFIG_DRM_TIDSS is not set
# CONFIG_DRM_GUD is not set
@@ -3636,7 +3736,6 @@ CONFIG_HID_MONTEREY=y
# CONFIG_HID_NTI is not set
# CONFIG_HID_NTRIG is not set
# CONFIG_HID_ORTEK is not set
# CONFIG_HID_OUYA is not set
# CONFIG_HID_PANTHERLORD is not set
# CONFIG_HID_PENMOUNT is not set
# CONFIG_HID_PETALYNX is not set
@@ -5464,7 +5563,6 @@ CONFIG_CRYPTO_CRC32C=y
CONFIG_CRYPTO_CRC32=y
CONFIG_CRYPTO_XXHASH=m
CONFIG_CRYPTO_BLAKE2B=m
# CONFIG_CRYPTO_BLAKE2S is not set
# CONFIG_CRYPTO_CRCT10DIF is not set
CONFIG_CRYPTO_GHASH=y
# CONFIG_CRYPTO_POLY1305 is not set

View File

@@ -0,0 +1,34 @@
From 009b15525e53e5d96dd75c43543b57f3505c7081 Mon Sep 17 00:00:00 2001
From: Dongwon Kim <dongwon.kim@intel.com>
Date: Fri, 24 Jun 2022 12:48:38 +0000
Subject: [PATCH 01/21] HACK: drm: set DRM_RENDER_ALLOW flag on
DRM_IOCTL_MODE_CREATE/DESTROY_DUMB ioctls
Render clients should be able to create/destroy dumb object to import
and use it as render buffer in case the default DRM device is different
from the render device (i.e. kmsro).
Signed-off-by: Dongwon Kim <dongwon.kim@intel.com>
---
drivers/gpu/drm/drm_ioctl.c | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/drivers/gpu/drm/drm_ioctl.c b/drivers/gpu/drm/drm_ioctl.c
index 51fcf1298023..8984c60037b2 100644
--- a/drivers/gpu/drm/drm_ioctl.c
+++ b/drivers/gpu/drm/drm_ioctl.c
@@ -672,9 +672,9 @@ static const struct drm_ioctl_desc drm_ioctls[] = {
DRM_IOCTL_DEF(DRM_IOCTL_MODE_RMFB, drm_mode_rmfb_ioctl, 0),
DRM_IOCTL_DEF(DRM_IOCTL_MODE_PAGE_FLIP, drm_mode_page_flip_ioctl, DRM_MASTER),
DRM_IOCTL_DEF(DRM_IOCTL_MODE_DIRTYFB, drm_mode_dirtyfb_ioctl, DRM_MASTER),
- DRM_IOCTL_DEF(DRM_IOCTL_MODE_CREATE_DUMB, drm_mode_create_dumb_ioctl, 0),
+ DRM_IOCTL_DEF(DRM_IOCTL_MODE_CREATE_DUMB, drm_mode_create_dumb_ioctl, DRM_RENDER_ALLOW),
DRM_IOCTL_DEF(DRM_IOCTL_MODE_MAP_DUMB, drm_mode_mmap_dumb_ioctl, 0),
- DRM_IOCTL_DEF(DRM_IOCTL_MODE_DESTROY_DUMB, drm_mode_destroy_dumb_ioctl, 0),
+ DRM_IOCTL_DEF(DRM_IOCTL_MODE_DESTROY_DUMB, drm_mode_destroy_dumb_ioctl, DRM_RENDER_ALLOW),
DRM_IOCTL_DEF(DRM_IOCTL_MODE_OBJ_GETPROPERTIES, drm_mode_obj_get_properties_ioctl, 0),
DRM_IOCTL_DEF(DRM_IOCTL_MODE_OBJ_SETPROPERTY, drm_mode_obj_set_property_ioctl, DRM_MASTER),
DRM_IOCTL_DEF(DRM_IOCTL_MODE_CURSOR2, drm_mode_cursor2_ioctl, DRM_MASTER),
--
2.17.1

View File

@@ -0,0 +1,29 @@
From 4aca48cc2517dcd5abab9b0cca22c65c54d75a03 Mon Sep 17 00:00:00 2001
From: Pavel Golikov <Paullo612@ya.ru>
Date: Fri, 24 Jun 2022 15:42:59 +0000
Subject: [PATCH 02/21] WIP: media: videobuf2: always enable
V4L2_MEMORY_FLAG_NON_COHERENT
Always enable V4L2_MEMORY_FLAG_NON_COHERENT for all V4L queues.
Signed-off-by: Pavel Golikov <Paullo612@ya.ru>
---
drivers/media/common/videobuf2/videobuf2-v4l2.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/drivers/media/common/videobuf2/videobuf2-v4l2.c b/drivers/media/common/videobuf2/videobuf2-v4l2.c
index 075d24ebf44c..ecbb5f7d3f23 100644
--- a/drivers/media/common/videobuf2/videobuf2-v4l2.c
+++ b/drivers/media/common/videobuf2/videobuf2-v4l2.c
@@ -704,7 +704,7 @@ static void validate_memory_flags(struct vb2_queue *q,
*flags = 0;
} else {
/* Clear all unknown flags. */
- *flags &= V4L2_MEMORY_FLAG_NON_COHERENT;
+ *flags |= V4L2_MEMORY_FLAG_NON_COHERENT;
}
}
--
2.17.1

View File

@@ -0,0 +1,37 @@
From 530424bde16e74a8542d34709ac13be3c426afe1 Mon Sep 17 00:00:00 2001
From: Pavel Golikov <Paullo612@ya.ru>
Date: Fri, 24 Jun 2022 15:54:16 +0000
Subject: [PATCH 03/21] WIP: iommu/io-pgtable-arm: Fix coherency support for
Mali LPAE
Mali T628r0p1 which may be found in Samsung Exynos 5422 SOC is
definitely not dma coherent, and it is not happy with PTE_SH_OS bit set
by default in commit 728da60da7c1 ("iommu/io-pgtable-arm: Support
coherency for Mali LPAE"). Use PTE_SH_IS by default for non dma
coherent Mali GPUs.
Signed-off-by: Pavel Golikov <Paullo612@ya.ru>
---
drivers/iommu/io-pgtable-arm.c | 5 +++--
1 file changed, 3 insertions(+), 2 deletions(-)
diff --git a/drivers/iommu/io-pgtable-arm.c b/drivers/iommu/io-pgtable-arm.c
index 94ff319ae8ac..9ac55085e141 100644
--- a/drivers/iommu/io-pgtable-arm.c
+++ b/drivers/iommu/io-pgtable-arm.c
@@ -457,9 +457,10 @@ static arm_lpae_iopte arm_lpae_prot_to_pte(struct arm_lpae_io_pgtable *data,
* "outside the GPU" (i.e. either the Inner or System domain in CPU
* terms, depending on coherency).
*/
- if (prot & IOMMU_CACHE && data->iop.fmt != ARM_MALI_LPAE)
+ if (prot & IOMMU_CACHE ||
+ (data->iop.fmt == ARM_MALI_LPAE && !data->iop.cfg.coherent_walk))
pte |= ARM_LPAE_PTE_SH_IS;
- else
+ else if (data->iop.fmt == ARM_MALI_LPAE)
pte |= ARM_LPAE_PTE_SH_OS;
if (prot & IOMMU_NOEXEC)
--
2.17.1

View File

@@ -1,112 +0,0 @@
From c1c6c93af475ebfa806760f8883b3f06c3c19bbe Mon Sep 17 00:00:00 2001
From: memeka <mihailescu2m@gmail.com>
Date: Thu, 24 Jan 2019 16:07:24 +1030
Subject: [PATCH 04/25] MEMEKA: media: s5p-jpeg: Enable decoding with multiple
buffers
Signed-off-by: memeka <mihailescu2m@gmail.com>
---
drivers/media/platform/s5p-jpeg/jpeg-core.c | 45 ++++++++++++++++-----
1 file changed, 35 insertions(+), 10 deletions(-)
diff --git a/drivers/media/platform/samsung/s5p-jpeg/jpeg-core.c b/drivers/media/platform/samsung/s5p-jpeg/jpeg-core.c
index 86bda3947110..3015a9c350f2 100644
--- a/drivers/media/platform/samsung/s5p-jpeg/jpeg-core.c
+++ b/drivers/media/platform/samsung/s5p-jpeg/jpeg-core.c
@@ -1797,6 +1797,31 @@ static int exynos3250_jpeg_try_crop(struct s5p_jpeg_ctx *ctx,
* V4L2 controls
*/
+static int vidioc_decoder_cmd(struct file *file, void *priv,
+ struct v4l2_decoder_cmd *cmd)
+{
+ struct s5p_jpeg_ctx *ctx = fh_to_ctx(priv);
+ struct vb2_queue *vq_src = v4l2_m2m_get_vq(ctx->fh.m2m_ctx, V4L2_BUF_TYPE_VIDEO_OUTPUT);
+ struct vb2_v4l2_buffer *buf;
+
+ switch (cmd->cmd) {
+ case V4L2_DEC_CMD_STOP:
+ if (cmd->flags != 0)
+ return -EINVAL;
+ if (!vb2_is_streaming(vq_src))
+ return -EINVAL;
+
+ buf = v4l2_m2m_last_src_buf(ctx->fh.m2m_ctx);
+ buf->flags |= V4L2_BUF_FLAG_LAST;
+
+ break;
+ default:
+ return -EINVAL;
+ }
+
+ return 0;
+}
+
static int s5p_jpeg_g_selection(struct file *file, void *priv,
struct v4l2_selection *s)
{
@@ -1831,9 +1856,6 @@ static int s5p_jpeg_g_selection(struct file *file, void *priv,
return 0;
}
-/*
- * V4L2 controls
- */
static int s5p_jpeg_s_selection(struct file *file, void *fh,
struct v4l2_selection *s)
{
@@ -2025,6 +2047,8 @@ static const struct v4l2_ioctl_ops s5p_jpeg_ioctl_ops = {
.vidioc_streamon = v4l2_m2m_ioctl_streamon,
.vidioc_streamoff = v4l2_m2m_ioctl_streamoff,
+ .vidioc_decoder_cmd = vidioc_decoder_cmd,
+
.vidioc_g_selection = s5p_jpeg_g_selection,
.vidioc_s_selection = s5p_jpeg_s_selection,
@@ -2471,13 +2495,6 @@ static int s5p_jpeg_queue_setup(struct vb2_queue *vq,
size = q_data->size;
- /*
- * header is parsed during decoding and parsed information stored
- * in the context so we do not allow another buffer to overwrite it
- */
- if (ctx->mode == S5P_JPEG_DECODE)
- count = 1;
-
*nbuffers = count;
*nplanes = 1;
sizes[0] = size;
@@ -2588,6 +2605,7 @@ static int s5p_jpeg_start_streaming(struct vb2_queue *q, unsigned int count)
static void s5p_jpeg_stop_streaming(struct vb2_queue *q)
{
struct s5p_jpeg_ctx *ctx = vb2_get_drv_priv(q);
+ struct vb2_v4l2_buffer *buf;
/*
* STREAMOFF is an acknowledgment for resolution change event.
@@ -2600,6 +2618,11 @@ static void s5p_jpeg_stop_streaming(struct vb2_queue *q)
ctx->state = JPEGCTX_RUNNING;
}
+ while ((buf = v4l2_m2m_src_buf_remove(ctx->fh.m2m_ctx)))
+ v4l2_m2m_buf_done(buf, VB2_BUF_STATE_ERROR);
+ while ((buf = v4l2_m2m_dst_buf_remove(ctx->fh.m2m_ctx)))
+ v4l2_m2m_buf_done(buf, VB2_BUF_STATE_ERROR);
+
pm_runtime_put(ctx->jpeg->dev);
}
@@ -2839,6 +2862,8 @@ static irqreturn_t exynos3250_jpeg_irq(int irq, void *dev_id)
v4l2_m2m_buf_done(src_buf, state);
if (curr_ctx->mode == S5P_JPEG_ENCODE)
vb2_set_plane_payload(&dst_buf->vb2_buf, 0, payload_size);
+ if (src_buf->flags & V4L2_BUF_FLAG_LAST)
+ dst_buf->flags |= V4L2_BUF_FLAG_LAST;
v4l2_m2m_buf_done(dst_buf, state);
curr_ctx->subsampling =
--
2.17.1

View File

@@ -0,0 +1,169 @@
From 77acb18b46a9464521f4f9af26f87d8a5f644515 Mon Sep 17 00:00:00 2001
From: Pavel Golikov <Paullo612@ya.ru>
Date: Fri, 24 Jun 2022 15:56:41 +0000
Subject: [PATCH 04/21] WIP: soc: samsung: pm_domains: Bring back old driver
implementation
Using new implementation decreases Mali GPU performance significantly
(with both KBase and Panfrost drivers).
Signed-off-by: Pavel Golikov <Paullo612@ya.ru>
---
drivers/soc/samsung/pm_domains.c | 97 ++++++++++++++++----------------
1 file changed, 49 insertions(+), 48 deletions(-)
diff --git a/drivers/soc/samsung/pm_domains.c b/drivers/soc/samsung/pm_domains.c
index d07f3c9d6903..1022d40eb700 100644
--- a/drivers/soc/samsung/pm_domains.c
+++ b/drivers/soc/samsung/pm_domains.c
@@ -16,7 +16,7 @@
#include <linux/delay.h>
#include <linux/of_address.h>
#include <linux/of_platform.h>
-#include <linux/pm_runtime.h>
+#include <linux/sched.h>
struct exynos_pm_domain_config {
/* Value for LOCAL_PWR_CFG and STATUS fields for each domain */
@@ -72,15 +72,15 @@ static int exynos_pd_power_off(struct generic_pm_domain *domain)
return exynos_pd_power(domain, false);
}
-static const struct exynos_pm_domain_config exynos4210_cfg = {
+static const struct exynos_pm_domain_config exynos4210_cfg __initconst = {
.local_pwr_cfg = 0x7,
};
-static const struct exynos_pm_domain_config exynos5433_cfg = {
+static const struct exynos_pm_domain_config exynos5433_cfg __initconst = {
.local_pwr_cfg = 0xf,
};
-static const struct of_device_id exynos_pm_domain_of_match[] = {
+static const struct of_device_id exynos_pm_domain_of_match[] __initconst = {
{
.compatible = "samsung,exynos4210-pd",
.data = &exynos4210_cfg,
@@ -91,7 +91,7 @@ static const struct of_device_id exynos_pm_domain_of_match[] = {
{ },
};
-static const char *exynos_get_domain_name(struct device_node *node)
+static __init const char *exynos_get_domain_name(struct device_node *node)
{
const char *name;
@@ -100,44 +100,60 @@ static const char *exynos_get_domain_name(struct device_node *node)
return kstrdup_const(name, GFP_KERNEL);
}
-static int exynos_pd_probe(struct platform_device *pdev)
+static __init int exynos4_pm_init_power_domain(void)
{
- const struct exynos_pm_domain_config *pm_domain_cfg;
- struct device *dev = &pdev->dev;
- struct device_node *np = dev->of_node;
- struct of_phandle_args child, parent;
- struct exynos_pm_domain *pd;
- int on, ret;
+ struct device_node *np;
+ const struct of_device_id *match;
- pm_domain_cfg = of_device_get_match_data(dev);
- pd = devm_kzalloc(dev, sizeof(*pd), GFP_KERNEL);
- if (!pd)
- return -ENOMEM;
+ for_each_matching_node_and_match(np, exynos_pm_domain_of_match, &match) {
+ const struct exynos_pm_domain_config *pm_domain_cfg;
+ struct exynos_pm_domain *pd;
+ int on;
- pd->pd.name = exynos_get_domain_name(np);
- if (!pd->pd.name)
- return -ENOMEM;
+ pm_domain_cfg = match->data;
- pd->base = of_iomap(np, 0);
- if (!pd->base) {
- kfree_const(pd->pd.name);
- return -ENODEV;
- }
+ pd = kzalloc(sizeof(*pd), GFP_KERNEL);
+ if (!pd) {
+ of_node_put(np);
+ return -ENOMEM;
+ }
+ pd->pd.name = exynos_get_domain_name(np);
+ if (!pd->pd.name) {
+ kfree(pd);
+ of_node_put(np);
+ return -ENOMEM;
+ }
- pd->pd.power_off = exynos_pd_power_off;
- pd->pd.power_on = exynos_pd_power_on;
- pd->local_pwr_cfg = pm_domain_cfg->local_pwr_cfg;
+ pd->base = of_iomap(np, 0);
+ if (!pd->base) {
+ pr_warn("%s: failed to map memory\n", __func__);
+ kfree_const(pd->pd.name);
+ kfree(pd);
+ continue;
+ }
+
+ pd->pd.power_off = exynos_pd_power_off;
+ pd->pd.power_on = exynos_pd_power_on;
+ pd->local_pwr_cfg = pm_domain_cfg->local_pwr_cfg;
- on = readl_relaxed(pd->base + 0x4) & pd->local_pwr_cfg;
+ on = readl_relaxed(pd->base + 0x4) & pd->local_pwr_cfg;
+
+ pm_genpd_init(&pd->pd, NULL, !on);
+ of_genpd_add_provider_simple(np, &pd->pd);
+ }
- pm_genpd_init(&pd->pd, NULL, !on);
- ret = of_genpd_add_provider_simple(np, &pd->pd);
+ /* Assign the child power domains to their parents */
+ for_each_matching_node(np, exynos_pm_domain_of_match) {
+ struct of_phandle_args child, parent;
- if (ret == 0 && of_parse_phandle_with_args(np, "power-domains",
- "#power-domain-cells", 0, &parent) == 0) {
child.np = np;
child.args_count = 0;
+ if (of_parse_phandle_with_args(np, "power-domains",
+ "#power-domain-cells", 0,
+ &parent) != 0)
+ continue;
+
if (of_genpd_add_subdomain(&parent, &child))
pr_warn("%pOF failed to add subdomain: %pOF\n",
parent.np, child.np);
@@ -146,21 +162,6 @@ static int exynos_pd_probe(struct platform_device *pdev)
parent.np, child.np);
}
- pm_runtime_enable(dev);
- return ret;
-}
-
-static struct platform_driver exynos_pd_driver = {
- .probe = exynos_pd_probe,
- .driver = {
- .name = "exynos-pd",
- .of_match_table = exynos_pm_domain_of_match,
- .suppress_bind_attrs = true,
- }
-};
-
-static __init int exynos4_pm_init_power_domain(void)
-{
- return platform_driver_register(&exynos_pd_driver);
+ return 0;
}
core_initcall(exynos4_pm_init_power_domain);
--
2.17.1

View File

@@ -1,39 +1,39 @@
From ca94000c34d98c1bd83bdcabeee8cb79958c56e1 Mon Sep 17 00:00:00 2001
From 34cfc53ec99e6e3356bb6e06ecd68faa4d2e4bac Mon Sep 17 00:00:00 2001
From: Christian Hewitt <christianshewitt@gmail.com>
Date: Wed, 29 Apr 2020 10:37:08 +0000
Subject: [PATCH 25/25] WIP: ARM: dts: exynos5422: HC1/XU3/XU4 model name is
Subject: [PATCH 05/21] WIP: arm: dts: exynos5422: HC1/XU3/XU4 model name is
ODROID not Odroid
Cosmetic change to model and audio card name for HC1/XU3/XU4 to
put ODROID in capitals (as per Hardkernel branding). Also fixup
some unneeded backslashes and wrap lines per kernel standards.
put ODROID in capitals (as per Hardkernel branding).
Signed-off-by: Christian Hewitt <christianshewitt@gmail.com>
---
arch/arm/boot/dts/exynos5422-odroidhc1.dts | 4 ++--
arch/arm/boot/dts/exynos5422-odroidhc1.dts | 5 ++---
arch/arm/boot/dts/exynos5422-odroidxu3-audio.dtsi | 2 +-
arch/arm/boot/dts/exynos5422-odroidxu3-lite.dts | 5 +++--
arch/arm/boot/dts/exynos5422-odroidxu3.dts | 5 +++--
arch/arm/boot/dts/exynos5422-odroidxu4.dts | 6 +++---
5 files changed, 12 insertions(+), 10 deletions(-)
arch/arm/boot/dts/exynos5422-odroidxu3-lite.dts | 2 +-
arch/arm/boot/dts/exynos5422-odroidxu3.dts | 2 +-
arch/arm/boot/dts/exynos5422-odroidxu4.dts | 7 +++----
5 files changed, 8 insertions(+), 10 deletions(-)
diff --git a/arch/arm/boot/dts/exynos5422-odroidhc1.dts b/arch/arm/boot/dts/exynos5422-odroidhc1.dts
index 812659260278..b90da73510cf 100644
index d91f7fa2cf80..6550d59ce3d8 100644
--- a/arch/arm/boot/dts/exynos5422-odroidhc1.dts
+++ b/arch/arm/boot/dts/exynos5422-odroidhc1.dts
@@ -11,8 +11,8 @@
@@ -11,9 +11,8 @@
#include "exynos5422-odroid-core.dtsi"
/ {
- model = "Hardkernel Odroid HC1";
- compatible = "hardkernel,odroid-hc1", "samsung,exynos5800", \
- "samsung,exynos5";
+ model = "Hardkernel ODROID HC1";
+ compatible = "hardkernel,odroid-hc1", "samsung,exynos5800",
"samsung,exynos5";
+ compatible = "hardkernel,odroid-hc1", "samsung,exynos5800", "samsung,exynos5";
pwmleds {
led-controller {
compatible = "pwm-leds";
diff --git a/arch/arm/boot/dts/exynos5422-odroidxu3-audio.dtsi b/arch/arm/boot/dts/exynos5422-odroidxu3-audio.dtsi
index c3c2d85267da..26961dcea010 100644
index 86b96f9706db..1a3940f2ead2 100644
--- a/arch/arm/boot/dts/exynos5422-odroidxu3-audio.dtsi
+++ b/arch/arm/boot/dts/exynos5422-odroidxu3-audio.dtsi
@@ -13,7 +13,7 @@
@@ -46,53 +46,48 @@ index c3c2d85267da..26961dcea010 100644
samsung,audio-widgets =
"Headphone", "Headphone Jack",
diff --git a/arch/arm/boot/dts/exynos5422-odroidxu3-lite.dts b/arch/arm/boot/dts/exynos5422-odroidxu3-lite.dts
index 98feecad5489..d0084033199a 100644
index e3154a1cae23..4d337f9e79b8 100644
--- a/arch/arm/boot/dts/exynos5422-odroidxu3-lite.dts
+++ b/arch/arm/boot/dts/exynos5422-odroidxu3-lite.dts
@@ -14,8 +14,9 @@
@@ -14,7 +14,7 @@
#include "exynos54xx-odroidxu-leds.dtsi"
/ {
- model = "Hardkernel Odroid XU3 Lite";
- compatible = "hardkernel,odroid-xu3-lite", "samsung,exynos5800", "samsung,exynos5";
+ model = "Hardkernel ODROID XU3 Lite";
+ compatible = "hardkernel,odroid-xu3-lite", "samsung,exynos5800",
+ "samsung,exynos5";
compatible = "hardkernel,odroid-xu3-lite", "samsung,exynos5800", "samsung,exynos5";
aliases {
ethernet = &ethernet;
diff --git a/arch/arm/boot/dts/exynos5422-odroidxu3.dts b/arch/arm/boot/dts/exynos5422-odroidxu3.dts
index db0bc17a667b..3ff7ec514e20 100644
index a378d4937ff7..21cf909b9cc8 100644
--- a/arch/arm/boot/dts/exynos5422-odroidxu3.dts
+++ b/arch/arm/boot/dts/exynos5422-odroidxu3.dts
@@ -13,8 +13,9 @@
@@ -13,7 +13,7 @@
#include "exynos54xx-odroidxu-leds.dtsi"
/ {
- model = "Hardkernel Odroid XU3";
- compatible = "hardkernel,odroid-xu3", "samsung,exynos5800", "samsung,exynos5";
+ model = "Hardkernel ODROID XU3";
+ compatible = "hardkernel,odroid-xu3", "samsung,exynos5800",
+ "samsung,exynos5";
compatible = "hardkernel,odroid-xu3", "samsung,exynos5800", "samsung,exynos5";
aliases {
ethernet = &ethernet;
diff --git a/arch/arm/boot/dts/exynos5422-odroidxu4.dts b/arch/arm/boot/dts/exynos5422-odroidxu4.dts
index 892d389d6d09..d2061b244537 100644
index 1c24f9b35973..caf4f50e91df 100644
--- a/arch/arm/boot/dts/exynos5422-odroidxu4.dts
+++ b/arch/arm/boot/dts/exynos5422-odroidxu4.dts
@@ -13,8 +13,8 @@
@@ -13,9 +13,8 @@
#include "exynos5422-odroidxu3-common.dtsi"
/ {
- model = "Hardkernel Odroid XU4";
- compatible = "hardkernel,odroid-xu4", "samsung,exynos5800", \
- "samsung,exynos5";
+ model = "Hardkernel ODROID XU4";
+ compatible = "hardkernel,odroid-xu4", "samsung,exynos5800",
"samsung,exynos5";
+ compatible = "hardkernel,odroid-xu4", "samsung,exynos5800", "samsung,exynos5";
pwmleds {
@@ -31,7 +31,7 @@
led-controller {
compatible = "pwm-leds";
@@ -31,7 +30,7 @@
sound: sound {
compatible = "samsung,odroid-xu3-audio";

View File

@@ -1,87 +0,0 @@
From a47cabb4e0626125ea91fa25616e449705e1e783 Mon Sep 17 00:00:00 2001
From: Thierry Escande <thierry.escande@collabora.com>
Date: Wed, 26 Oct 2016 10:52:05 +0200
Subject: [PATCH 06/25] MEMEKA: videobuf2-dc: Move vb2_dc_get_base_sgt() above
mmap callbacks
This patch moves vb2_dc_get_base_sgt() function above mmap buffers
callbacks, particularly vb2_dc_alloc() and vb2_dc_mmap() from where it
will be called for cacheable MMAP support introduced in the next patch.
Signed-off-by: Thierry Escande <thierry.escande@collabora.com>
Signed-off-by: memeka <mihailescu2m@gmail.com>
---
.../common/videobuf2/videobuf2-dma-contig.c | 44 +++++++++----------
1 file changed, 22 insertions(+), 22 deletions(-)
diff --git a/drivers/media/common/videobuf2/videobuf2-dma-contig.c b/drivers/media/common/videobuf2/videobuf2-dma-contig.c
index f4b4a7c135eb..8accf13fe439 100644
--- a/drivers/media/common/videobuf2/videobuf2-dma-contig.c
+++ b/drivers/media/common/videobuf2/videobuf2-dma-contig.c
@@ -66,6 +66,31 @@ static unsigned long vb2_dc_get_contiguous_size(struct sg_table *sgt)
return size;
}
+static struct sg_table *vb2_dc_get_base_sgt(struct vb2_dc_buf *buf)
+{
+ int ret;
+ struct sg_table *sgt;
+
+ if (buf->non_coherent_mem)
+ return buf->dma_sgt;
+
+ sgt = kmalloc(sizeof(*sgt), GFP_KERNEL);
+ if (!sgt) {
+ dev_err(buf->dev, "failed to alloc sg table\n");
+ return NULL;
+ }
+
+ ret = dma_get_sgtable_attrs(buf->dev, sgt, buf->cookie, buf->dma_addr,
+ buf->size, buf->attrs);
+ if (ret < 0) {
+ dev_err(buf->dev, "failed to get scatterlist from DMA API\n");
+ kfree(sgt);
+ return NULL;
+ }
+
+ return sgt;
+}
+
/*********************************************/
/* callbacks for all buffers */
/*********************************************/
@@ -479,31 +504,6 @@ static const struct dma_buf_ops vb2_dc_dmabuf_ops = {
.release = vb2_dc_dmabuf_ops_release,
};
-static struct sg_table *vb2_dc_get_base_sgt(struct vb2_dc_buf *buf)
-{
- int ret;
- struct sg_table *sgt;
-
- if (buf->non_coherent_mem)
- return buf->dma_sgt;
-
- sgt = kmalloc(sizeof(*sgt), GFP_KERNEL);
- if (!sgt) {
- dev_err(buf->dev, "failed to alloc sg table\n");
- return NULL;
- }
-
- ret = dma_get_sgtable_attrs(buf->dev, sgt, buf->cookie, buf->dma_addr,
- buf->size, buf->attrs);
- if (ret < 0) {
- dev_err(buf->dev, "failed to get scatterlist from DMA API\n");
- kfree(sgt);
- return NULL;
- }
-
- return sgt;
-}
-
static struct dma_buf *vb2_dc_get_dmabuf(struct vb2_buffer *vb,
void *buf_priv,
unsigned long flags)
--
2.17.1

View File

@@ -0,0 +1,36 @@
From f07c3dc233b36997c3dcd679fa24fb4040a57d4f Mon Sep 17 00:00:00 2001
From: Pavel Golikov <Paullo612@ya.ru>
Date: Fri, 24 Jun 2022 15:56:05 +0000
Subject: [PATCH 06/21] WIP: media: s5p-mfc: Allow cache hints for queues
Passing V4L2_MEMORY_FLAG_NON_COHERENT from userspace significantly
improves video rendering performance on Exynos 5422 (Odroid XU4).
Signed-off-by: Pavel Golikov <Paullo612@ya.ru>
---
drivers/media/platform/samsung/s5p-mfc/s5p_mfc.c | 2 ++
1 file changed, 2 insertions(+)
diff --git a/drivers/media/platform/samsung/s5p-mfc/s5p_mfc.c b/drivers/media/platform/samsung/s5p-mfc/s5p_mfc.c
index 761341934925..e33863d9ae2d 100644
--- a/drivers/media/platform/samsung/s5p-mfc/s5p_mfc.c
+++ b/drivers/media/platform/samsung/s5p-mfc/s5p_mfc.c
@@ -861,6 +861,7 @@ static int s5p_mfc_open(struct file *file)
q->dma_attrs = DMA_ATTR_ALLOC_SINGLE_PAGES;
q->mem_ops = &vb2_dma_contig_memops;
q->timestamp_flags = V4L2_BUF_FLAG_TIMESTAMP_COPY;
+ q->allow_cache_hints = 1;
ret = vb2_queue_init(q);
if (ret) {
mfc_err("Failed to initialize videobuf2 queue(capture)\n");
@@ -896,6 +897,7 @@ static int s5p_mfc_open(struct file *file)
q->dma_attrs = DMA_ATTR_ALLOC_SINGLE_PAGES;
q->mem_ops = &vb2_dma_contig_memops;
q->timestamp_flags = V4L2_BUF_FLAG_TIMESTAMP_COPY;
+ q->allow_cache_hints = 1;
ret = vb2_queue_init(q);
if (ret) {
mfc_err("Failed to initialize videobuf2 queue(output)\n");
--
2.17.1

View File

@@ -0,0 +1,38 @@
From a31044355812a2e9e0df4edd3a1c503c7c77eee0 Mon Sep 17 00:00:00 2001
From: Christian Hewitt <christianshewitt@gmail.com>
Date: Tue, 28 Jun 2022 07:34:21 +0000
Subject: [PATCH 07/21] WIP: media: s5p-mfc: use EAGAIN not EIO for
MFCINST_ERROR
Patch from https://forum.odroid.com/viewtopic.php?p=319025&sid=1fbdb9d8f7ea0ebee30dc8824f76d308#p319025
Signed-off-by: Christian Hewitt <christianshewitt@gmail.com>
---
drivers/media/platform/samsung/s5p-mfc/s5p_mfc_dec.c | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/drivers/media/platform/samsung/s5p-mfc/s5p_mfc_dec.c b/drivers/media/platform/samsung/s5p-mfc/s5p_mfc_dec.c
index 268ffe4da53c..ff5756e446d6 100644
--- a/drivers/media/platform/samsung/s5p-mfc/s5p_mfc_dec.c
+++ b/drivers/media/platform/samsung/s5p-mfc/s5p_mfc_dec.c
@@ -632,7 +632,7 @@ static int vidioc_qbuf(struct file *file, void *priv, struct v4l2_buffer *buf)
if (ctx->state == MFCINST_ERROR) {
mfc_err("Call on QBUF after unrecoverable error\n");
- return -EIO;
+ return -EAGAIN;
}
if (buf->type == V4L2_BUF_TYPE_VIDEO_OUTPUT_MPLANE)
return vb2_qbuf(&ctx->vq_src, NULL, buf);
@@ -652,7 +652,7 @@ static int vidioc_dqbuf(struct file *file, void *priv, struct v4l2_buffer *buf)
if (ctx->state == MFCINST_ERROR) {
mfc_err_limited("Call on DQBUF after unrecoverable error\n");
- return -EIO;
+ return -EAGAIN;
}
switch (buf->type) {
--
2.17.1

View File

@@ -0,0 +1,93 @@
From a3760f539508e81d47b21321aa42a09ce96555d3 Mon Sep 17 00:00:00 2001
From: Pavel Golikov <Paullo612@ya.ru>
Date: Fri, 24 Jun 2022 15:52:58 +0000
Subject: [PATCH 08/21] WIP: ARM/dma-mapping: implement ->alloc_noncontiguous
Implement support for allocating a non-contiguous DMA region. The
implementation is based on the ma-iommu driver.
Signed-off-by: Pavel Golikov <Paullo612@ya.ru>
---
arch/arm/mm/dma-mapping.c | 59 +++++++++++++++++++++++++++++++++++++++
1 file changed, 59 insertions(+)
diff --git a/arch/arm/mm/dma-mapping.c b/arch/arm/mm/dma-mapping.c
index 059cce018570..8f867cb9fe75 100644
--- a/arch/arm/mm/dma-mapping.c
+++ b/arch/arm/mm/dma-mapping.c
@@ -1759,6 +1759,63 @@ static void arm_iommu_unmap_sg(struct device *dev,
__iommu_unmap_sg(dev, sg, nents, dir, attrs, false);
}
+static struct sg_table *arm_iommu_alloc_noncontiguous(struct device *dev,
+ size_t size, enum dma_data_direction dir, gfp_t gfp,
+ unsigned long attrs)
+{
+ struct dma_sgt_handle *sh;
+ int count;
+
+ sh = kmalloc(sizeof(*sh), gfp);
+ if (!sh)
+ return NULL;
+
+ size = PAGE_ALIGN(size);
+ count = size >> PAGE_SHIFT;
+
+ /*
+ * Following is a work-around (a.k.a. hack) to prevent pages
+ * with __GFP_COMP being passed to split_page() which cannot
+ * handle them. The real problem is that this flag probably
+ * should be 0 on ARM as it is not supported on this
+ * platform; see CONFIG_HUGETLBFS.
+ */
+ gfp &= ~(__GFP_COMP);
+
+ sh->pages = __iommu_alloc_buffer(dev, size, gfp, attrs, false);
+ if (!sh->pages)
+ goto err_sh;
+
+ if (sg_alloc_table_from_pages(&sh->sgt, sh->pages, count, 0, size,
+ GFP_KERNEL))
+ goto err_buffer;
+
+ if (__iommu_map_sg(dev, sh->sgt.sgl, sh->sgt.orig_nents, dir, attrs,
+ false) < 1)
+ goto err_free_sg;
+
+ return &sh->sgt;
+
+err_free_sg:
+ sg_free_table(&sh->sgt);
+err_buffer:
+ __iommu_free_buffer(dev, sh->pages, size, attrs);
+err_sh:
+ kfree(sh);
+ return NULL;
+}
+
+static void arm_iommu_free_noncontiguous(struct device *dev, size_t size,
+ struct sg_table *sgt, enum dma_data_direction dir)
+{
+ struct dma_sgt_handle *sh = sgt_handle(sgt);
+
+ __iommu_unmap_sg(dev, sgt->sgl, sgt->orig_nents, dir, 0, false);
+ __iommu_free_buffer(dev, sh->pages, PAGE_ALIGN(size), 0);
+ sg_free_table(&sh->sgt);
+ kfree(sh);
+}
+
/**
* arm_iommu_sync_sg_for_cpu
* @dev: valid struct device pointer
@@ -1996,6 +2053,8 @@ static const struct dma_map_ops iommu_ops = {
.map_page = arm_iommu_map_page,
.unmap_page = arm_iommu_unmap_page,
+ .alloc_noncontiguous = arm_iommu_alloc_noncontiguous,
+ .free_noncontiguous = arm_iommu_free_noncontiguous,
.sync_single_for_cpu = arm_iommu_sync_single_for_cpu,
.sync_single_for_device = arm_iommu_sync_single_for_device,
--
2.17.1

View File

@@ -1,7 +1,7 @@
From 4ebb0fa9bdf877355ceaabc6ede0960002ebbfb1 Mon Sep 17 00:00:00 2001
From 3062d6e0008928c46388d6b118d4ae2137d5d0f4 Mon Sep 17 00:00:00 2001
From: memeka <mihailescu2m@gmail.com>
Date: Mon, 21 Oct 2019 10:58:47 +1030
Subject: [PATCH 02/25] MEMEKA: ARM: dma-mapping: increase DMA coherent pool
Subject: [PATCH 09/21] MEMEKA: ARM: dma-mapping: increase DMA coherent pool
size to 2M
---
@@ -9,10 +9,10 @@ Subject: [PATCH 02/25] MEMEKA: ARM: dma-mapping: increase DMA coherent pool
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/arch/arm/mm/dma-mapping.c b/arch/arm/mm/dma-mapping.c
index 8a8949174b1c..80d4e66039ff 100644
index 8f867cb9fe75..7493dcf0567a 100644
--- a/arch/arm/mm/dma-mapping.c
+++ b/arch/arm/mm/dma-mapping.c
@@ -314,7 +314,7 @@ static void *__alloc_remap_buffer(struct device *dev, size_t size, gfp_t gfp,
@@ -315,7 +315,7 @@ static void *__alloc_remap_buffer(struct device *dev, size_t size, gfp_t gfp,
pgprot_t prot, struct page **ret_page,
const void *caller, bool want_vaddr);

View File

@@ -1,7 +1,7 @@
From eba616b4f08a69c3398d6fd32d19a8896d36db50 Mon Sep 17 00:00:00 2001
From 16718487d729416d1f6c371c1cb524f817f2d019 Mon Sep 17 00:00:00 2001
From: OtherCrashOverride <OtherCrashOverride@users.noreply.github.com>
Date: Sun, 9 Apr 2017 17:31:25 +0000
Subject: [PATCH 03/25] MEMEKA: drm/exynos/mixer: never blend the base layer
Subject: [PATCH 10/21] MEMEKA: drm/exynos/mixer: never blend the base layer
On Exynos there is a solid color plane that is logically below all the other display planes.
This causes display artifacts due to alpha. The patch disables blending the base plane with
@@ -14,7 +14,7 @@ Signed-off-by: memeka <mihailescu2m@gmail.com>
1 file changed, 18 insertions(+), 15 deletions(-)
diff --git a/drivers/gpu/drm/exynos/exynos_mixer.c b/drivers/gpu/drm/exynos/exynos_mixer.c
index 21b726baedea..c1a527fa1df8 100644
index e5204be86093..430622e0d8d4 100644
--- a/drivers/gpu/drm/exynos/exynos_mixer.c
+++ b/drivers/gpu/drm/exynos/exynos_mixer.c
@@ -315,23 +315,26 @@ static void mixer_cfg_gfx_blend(struct mixer_context *ctx, unsigned int win,

View File

@@ -1,18 +1,18 @@
From 8ffeeccf93279efefc2a76aae04766b7ad6c0634 Mon Sep 17 00:00:00 2001
From: memeka <mihailescu2m@gmail.com>
Date: Tue, 10 Jul 2018 11:24:56 +0930
Subject: [PATCH 05/25] MEMEKA: media: exynos-gsc: fix v4l2 SELECTION api
From 8078cb106c24c415f96c21f0a3e91b8d28741045 Mon Sep 17 00:00:00 2001
From: Marian Mihailescu <mihailescu2m@gmail.com>
Date: Fri, 24 Jun 2022 17:30:42 +0000
Subject: [PATCH 11/21] MEMEKA: media: exynos-gsc: fix v4l2 SELECTION api
Signed-off-by: memeka <mihailescu2m@gmail.com>
Signed-off-by: Marian Mihailescu <mihailescu2m@gmail.com>
---
drivers/media/platform/exynos-gsc/gsc-core.h | 4 ++--
drivers/media/platform/samsung/exynos-gsc/gsc-core.h | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/drivers/media/platform/samsung/exynos-gsc/gsc-core.h b/drivers/media/platform/samsung/exynos-gsc/gsc-core.h
index 8e5a9acb78aa..235d687614f0 100644
index e894e85e84a4..95fda27de0a3 100644
--- a/drivers/media/platform/samsung/exynos-gsc/gsc-core.h
+++ b/drivers/media/platform/samsung/exynos-gsc/gsc-core.h
@@ -474,9 +474,9 @@ static inline struct gsc_frame *ctx_get_frame(struct gsc_ctx *ctx,
@@ -481,9 +481,9 @@ static inline struct gsc_frame *ctx_get_frame(struct gsc_ctx *ctx,
{
struct gsc_frame *frame;

View File

@@ -1,19 +1,19 @@
From beba0c663769d49b752c6b8f11f8341d56b16102 Mon Sep 17 00:00:00 2001
From: memeka <mihailescu2m@gmail.com>
Date: Tue, 10 Jul 2018 22:01:38 +0930
Subject: [PATCH 10/25] MEMEKA: media: s5p-mfc: copy timestamp and timecode in
From ddff825a6c234556d761c8cb23d6c28c97d85339 Mon Sep 17 00:00:00 2001
From: Marian Mihailescu <mihailescu2m@gmail.com>
Date: Fri, 24 Jun 2022 17:36:37 +0000
Subject: [PATCH 12/21] MEMEKA: media: s5p-mfc: copy timestamp and timecode in
encoder output
Signed-off-by: memeka <mihailescu2m@gmail.com>
Signed-off-by: Marian Mihailescu <mihailescu2m@gmail.com>
---
drivers/media/platform/s5p-mfc/s5p_mfc_enc.c | 9 +++++++++
drivers/media/platform/samsung/s5p-mfc/s5p_mfc_enc.c | 9 +++++++++
1 file changed, 9 insertions(+)
diff --git a/drivers/media/platform/samsung/s5p-mfc/s5p_mfc_enc.c b/drivers/media/platform/samsung/s5p-mfc/s5p_mfc_enc.c
index 912fe0c5ab18..d48e7b57d96a 100644
index b65e506665af..d445466046eb 100644
--- a/drivers/media/platform/samsung/s5p-mfc/s5p_mfc_enc.c
+++ b/drivers/media/platform/samsung/s5p-mfc/s5p_mfc_enc.c
@@ -1208,6 +1208,7 @@ static int enc_post_frame_start(struct s5p_mfc_ctx *ctx)
@@ -1214,6 +1214,7 @@ static int enc_post_frame_start(struct s5p_mfc_ctx *ctx)
{
struct s5p_mfc_dev *dev = ctx->dev;
struct s5p_mfc_buf *mb_entry;
@@ -21,7 +21,7 @@ index 912fe0c5ab18..d48e7b57d96a 100644
unsigned long enc_y_addr = 0, enc_c_addr = 0;
unsigned long mb_y_addr, mb_c_addr;
int slice_type;
@@ -1227,8 +1228,12 @@ static int enc_post_frame_start(struct s5p_mfc_ctx *ctx)
@@ -1233,8 +1234,12 @@ static int enc_post_frame_start(struct s5p_mfc_ctx *ctx)
&mb_entry->b->vb2_buf, 0);
mb_c_addr = vb2_dma_contig_plane_dma_addr(
&mb_entry->b->vb2_buf, 1);
@@ -34,7 +34,7 @@ index 912fe0c5ab18..d48e7b57d96a 100644
list_del(&mb_entry->list);
ctx->src_queue_cnt--;
vb2_buffer_done(&mb_entry->b->vb2_buf,
@@ -1241,8 +1246,12 @@ static int enc_post_frame_start(struct s5p_mfc_ctx *ctx)
@@ -1247,8 +1252,12 @@ static int enc_post_frame_start(struct s5p_mfc_ctx *ctx)
&mb_entry->b->vb2_buf, 0);
mb_c_addr = vb2_dma_contig_plane_dma_addr(
&mb_entry->b->vb2_buf, 1);

View File

@@ -1,21 +1,21 @@
From 06d0e059b754aef63e8ca0d901d6759fb9ed15e7 Mon Sep 17 00:00:00 2001
From: OtherCrashOverride <OtherCrashOverride@users.noreply.github.com>
Date: Fri, 19 May 2017 12:59:51 +0000
Subject: [PATCH 11/25] MEMEKA: media: s5p-mfc: stop streaming before releasing
From 30b928690575651687ae46f4bdbc946efd9cc0bd Mon Sep 17 00:00:00 2001
From: Marian Mihailescu <mihailescu2m@gmail.com>
Date: Fri, 24 Jun 2022 17:38:45 +0000
Subject: [PATCH 13/21] MEMEKA: media: s5p-mfc: stop streaming before releasing
queues
If streaming is active when the MFC device is closed, it will generate an IOMMU page-fault.
Signed-off-by: memeka <mihailescu2m@gmail.com>
Signed-off-by: Marian Mihailescu <mihailescu2m@gmail.com>
---
drivers/media/platform/s5p-mfc/s5p_mfc.c | 5 +++++
drivers/media/platform/samsung/s5p-mfc/s5p_mfc.c | 5 +++++
1 file changed, 5 insertions(+)
diff --git a/drivers/media/platform/samsung/s5p-mfc/s5p_mfc.c b/drivers/media/platform/samsung/s5p-mfc/s5p_mfc.c
index 37f2113a00ec..8c39528be39e 100644
index e33863d9ae2d..f9b4b506c04c 100644
--- a/drivers/media/platform/samsung/s5p-mfc/s5p_mfc.c
+++ b/drivers/media/platform/samsung/s5p-mfc/s5p_mfc.c
@@ -941,6 +941,11 @@ static int s5p_mfc_release(struct file *file)
@@ -943,6 +943,11 @@ static int s5p_mfc_release(struct file *file)
mfc_debug_enter();
if (dev)
mutex_lock(&dev->mfc_mutex);

View File

@@ -0,0 +1,99 @@
From db4c420d468a14b244e1f19b6733088006a18e99 Mon Sep 17 00:00:00 2001
From: Andres Freund <andres@anarazel.de>
Date: Sat, 20 Aug 2022 02:15:54 +0000
Subject: [PATCH 14/21] FROMLIST(v3): tools build: Add feature test for
init_disassemble_info API changes
binutils changed the signature of init_disassemble_info(), which now causes
compilation failures for tools/{perf,bpf}, e.g. on debian unstable.
Relevant binutils commit:
https://sourceware.org/git/?p=binutils-gdb.git;a=commit;h=60a3da00bd5407f07
This commit adds a feature test to detect the new signature. Subsequent
commits will use it to fix the build failures.
Cc: Alexei Starovoitov <ast@kernel.org>
Cc: Arnaldo Carvalho de Melo <acme@redhat.com>
Cc: Sedat Dilek <sedat.dilek@gmail.com>
Cc: Quentin Monnet <quentin@isovalent.com>
Link: http://lore.kernel.org/lkml/20220622181918.ykrs5rsnmx3og4sv@alap3.anarazel.de
Signed-off-by: Andres Freund <andres@anarazel.de>
---
tools/build/Makefile.feature | 1 +
tools/build/feature/Makefile | 4 ++++
tools/build/feature/test-all.c | 4 ++++
tools/build/feature/test-disassembler-init-styled.c | 13 +++++++++++++
4 files changed, 22 insertions(+)
create mode 100644 tools/build/feature/test-disassembler-init-styled.c
diff --git a/tools/build/Makefile.feature b/tools/build/Makefile.feature
index 888a0421d43b..8f6578e4d324 100644
--- a/tools/build/Makefile.feature
+++ b/tools/build/Makefile.feature
@@ -70,6 +70,7 @@ FEATURE_TESTS_BASIC := \
libaio \
libzstd \
disassembler-four-args \
+ disassembler-init-styled \
file-handle
# FEATURE_TESTS_BASIC + FEATURE_TESTS_EXTRA is the complete list
diff --git a/tools/build/feature/Makefile b/tools/build/feature/Makefile
index 7c2a17e23c30..c3059739318a 100644
--- a/tools/build/feature/Makefile
+++ b/tools/build/feature/Makefile
@@ -18,6 +18,7 @@ FILES= \
test-libbfd.bin \
test-libbfd-buildid.bin \
test-disassembler-four-args.bin \
+ test-disassembler-init-styled.bin \
test-reallocarray.bin \
test-libbfd-liberty.bin \
test-libbfd-liberty-z.bin \
@@ -248,6 +249,9 @@ $(OUTPUT)test-libbfd-buildid.bin:
$(OUTPUT)test-disassembler-four-args.bin:
$(BUILD) -DPACKAGE='"perf"' -lbfd -lopcodes
+$(OUTPUT)test-disassembler-init-styled.bin:
+ $(BUILD) -DPACKAGE='"perf"' -lbfd -lopcodes
+
$(OUTPUT)test-reallocarray.bin:
$(BUILD)
diff --git a/tools/build/feature/test-all.c b/tools/build/feature/test-all.c
index 5ffafb967b6e..957c02c7b163 100644
--- a/tools/build/feature/test-all.c
+++ b/tools/build/feature/test-all.c
@@ -166,6 +166,10 @@
# include "test-disassembler-four-args.c"
#undef main
+#define main main_test_disassembler_init_styled
+# include "test-disassembler-init-styled.c"
+#undef main
+
#define main main_test_libzstd
# include "test-libzstd.c"
#undef main
diff --git a/tools/build/feature/test-disassembler-init-styled.c b/tools/build/feature/test-disassembler-init-styled.c
new file mode 100644
index 000000000000..f1ce0ec3bee9
--- /dev/null
+++ b/tools/build/feature/test-disassembler-init-styled.c
@@ -0,0 +1,13 @@
+// SPDX-License-Identifier: GPL-2.0
+#include <stdio.h>
+#include <dis-asm.h>
+
+int main(void)
+{
+ struct disassemble_info info;
+
+ init_disassemble_info(&info, stdout,
+ NULL, NULL);
+
+ return 0;
+}
--
2.17.1

View File

@@ -1,50 +0,0 @@
From 20570c820357eb0cfee14342328a3e6920e8a320 Mon Sep 17 00:00:00 2001
From: memeka <mihailescu2m@gmail.com>
Date: Tue, 10 Jul 2018 22:13:03 +0930
Subject: [PATCH 14/25] MEMEKA: thermal: exynos: add support for 8 trip points
on Exynos5422 TMU
Signed-off-by: memeka <mihailescu2m@gmail.com>
---
drivers/thermal/samsung/exynos_tmu.c | 18 ++++++++++++++++--
1 file changed, 16 insertions(+), 2 deletions(-)
diff --git a/drivers/thermal/samsung/exynos_tmu.c b/drivers/thermal/samsung/exynos_tmu.c
index e9a90bc23b11..b49df21fa0e7 100644
--- a/drivers/thermal/samsung/exynos_tmu.c
+++ b/drivers/thermal/samsung/exynos_tmu.c
@@ -915,8 +915,6 @@ static int exynos_map_dt_data(struct platform_device *pdev)
case SOC_ARCH_EXYNOS4412:
case SOC_ARCH_EXYNOS5250:
case SOC_ARCH_EXYNOS5260:
- case SOC_ARCH_EXYNOS5420:
- case SOC_ARCH_EXYNOS5420_TRIMINFO:
data->tmu_set_trip_temp = exynos4412_tmu_set_trip_temp;
data->tmu_set_trip_hyst = exynos4412_tmu_set_trip_hyst;
data->tmu_initialize = exynos4412_tmu_initialize;
@@ -935,6 +933,22 @@ static int exynos_map_dt_data(struct platform_device *pdev)
data->min_efuse_value = 0;
data->max_efuse_value = 100;
break;
+ case SOC_ARCH_EXYNOS5420:
+ case SOC_ARCH_EXYNOS5420_TRIMINFO:
+ data->tmu_set_trip_temp = exynos4412_tmu_set_trip_temp;
+ data->tmu_set_trip_hyst = exynos4412_tmu_set_trip_hyst;
+ data->tmu_initialize = exynos4412_tmu_initialize;
+ data->tmu_control = exynos4210_tmu_control;
+ data->tmu_read = exynos4412_tmu_read;
+ data->tmu_set_emulation = exynos4412_tmu_set_emulation;
+ data->tmu_clear_irqs = exynos4210_tmu_clear_irqs;
+ data->ntrip = 8;
+ data->gain = 8;
+ data->reference_voltage = 16;
+ data->efuse_value = 55;
+ data->min_efuse_value = 16;
+ data->max_efuse_value = 76;
+ break;
case SOC_ARCH_EXYNOS5433:
data->tmu_set_trip_temp = exynos5433_tmu_set_trip_temp;
data->tmu_set_trip_hyst = exynos5433_tmu_set_trip_hyst;
--
2.17.1

View File

@@ -0,0 +1,31 @@
From 72506043957ff415a2e609d9a245ecffb76dc674 Mon Sep 17 00:00:00 2001
From: Andres Freund <andres@anarazel.de>
Date: Sat, 20 Aug 2022 02:16:55 +0000
Subject: [PATCH 15/21] FROMLIST(v3): tools build: Don't display
disassembler-four-args feature test
The feature check does not seem important enough to display.
Suggested-by: Jiri Olsa <jolsa@kernel.org>
Signed-off-by: Andres Freund <andres@anarazel.de>
---
tools/build/Makefile.feature | 3 +--
1 file changed, 1 insertion(+), 2 deletions(-)
diff --git a/tools/build/Makefile.feature b/tools/build/Makefile.feature
index 8f6578e4d324..fc6ce0b2535a 100644
--- a/tools/build/Makefile.feature
+++ b/tools/build/Makefile.feature
@@ -135,8 +135,7 @@ FEATURE_DISPLAY ?= \
get_cpuid \
bpf \
libaio \
- libzstd \
- disassembler-four-args
+ libzstd
# Set FEATURE_CHECK_(C|LD)FLAGS-all for all FEATURE_TESTS features.
# If in the future we need per-feature checks/flags for features not
--
2.17.1

Some files were not shown because too many files have changed in this diff Show More