mirror of
https://github.com/LibreELEC/LibreELEC.tv.git
synced 2025-07-24 11:16:51 +00:00
linux (Allwinner): drop upstream patches included in 6.1.2-rc1
This commit is contained in:
parent
0405d900a5
commit
ff1506bb4e
@ -1,91 +0,0 @@
|
||||
From e85edafea5122a1357c884559db1a00046102807 Mon Sep 17 00:00:00 2001
|
||||
From: Jernej Skrabec <jernej.skrabec@gmail.com>
|
||||
Date: Tue, 4 Oct 2022 20:28:44 +0200
|
||||
Subject: [PATCH] media: cedrus: hevc: Fix offset adjustments
|
||||
|
||||
As it turns out, current padding size check works fine in theory but it
|
||||
doesn't in practice. Most probable reason are caching issues.
|
||||
|
||||
Let's rework reading data from bitstream using Cedrus engine instead of
|
||||
CPU. That way we avoid all cache issues and make sure that we're reading
|
||||
same data as Cedrus.
|
||||
|
||||
Fixes: e7060d9a78c2 ("media: uapi: Change data_bit_offset definition")
|
||||
Signed-off-by: Jernej Skrabec <jernej.skrabec@gmail.com>
|
||||
---
|
||||
.../staging/media/sunxi/cedrus/cedrus_h265.c | 24 ++++++++++++++-----
|
||||
.../staging/media/sunxi/cedrus/cedrus_regs.h | 2 ++
|
||||
2 files changed, 20 insertions(+), 6 deletions(-)
|
||||
|
||||
diff --git a/drivers/staging/media/sunxi/cedrus/cedrus_h265.c b/drivers/staging/media/sunxi/cedrus/cedrus_h265.c
|
||||
index 82e2e510e62509..400a7bc1670df3 100644
|
||||
--- a/drivers/staging/media/sunxi/cedrus/cedrus_h265.c
|
||||
+++ b/drivers/staging/media/sunxi/cedrus/cedrus_h265.c
|
||||
@@ -281,6 +281,17 @@ static void cedrus_h265_skip_bits(struct cedrus_dev *dev, int num)
|
||||
}
|
||||
}
|
||||
|
||||
+static u32 cedrus_h265_show_bits(struct cedrus_dev *dev, int num)
|
||||
+{
|
||||
+ cedrus_write(dev, VE_DEC_H265_TRIGGER,
|
||||
+ VE_DEC_H265_TRIGGER_SHOW_BITS |
|
||||
+ VE_DEC_H265_TRIGGER_TYPE_N_BITS(num));
|
||||
+ while (cedrus_read(dev, VE_DEC_H265_STATUS) & VE_DEC_H265_STATUS_VLD_BUSY)
|
||||
+ udelay(1);
|
||||
+
|
||||
+ return cedrus_read(dev, VE_DEC_H265_READED_BITS);
|
||||
+}
|
||||
+
|
||||
static void cedrus_h265_write_scaling_list(struct cedrus_ctx *ctx,
|
||||
struct cedrus_run *run)
|
||||
{
|
||||
@@ -445,7 +456,7 @@ static int cedrus_h265_setup(struct cedrus_ctx *ctx, struct cedrus_run *run)
|
||||
u32 num_entry_point_offsets;
|
||||
u32 output_pic_list_index;
|
||||
u32 pic_order_cnt[2];
|
||||
- u8 *padding;
|
||||
+ u8 padding;
|
||||
int count;
|
||||
u32 reg;
|
||||
|
||||
@@ -529,21 +540,22 @@ static int cedrus_h265_setup(struct cedrus_ctx *ctx, struct cedrus_run *run)
|
||||
if (slice_params->data_byte_offset == 0)
|
||||
return -EOPNOTSUPP;
|
||||
|
||||
- padding = (u8 *)vb2_plane_vaddr(&run->src->vb2_buf, 0) +
|
||||
- slice_params->data_byte_offset - 1;
|
||||
+ cedrus_h265_skip_bits(dev, (slice_params->data_byte_offset - 1) * 8);
|
||||
+
|
||||
+ padding = cedrus_h265_show_bits(dev, 8);
|
||||
|
||||
/* at least one bit must be set in that byte */
|
||||
- if (*padding == 0)
|
||||
+ if (padding == 0)
|
||||
return -EINVAL;
|
||||
|
||||
for (count = 0; count < 8; count++)
|
||||
- if (*padding & (1 << count))
|
||||
+ if (padding & (1 << count))
|
||||
break;
|
||||
|
||||
/* Include the one bit. */
|
||||
count++;
|
||||
|
||||
- cedrus_h265_skip_bits(dev, slice_params->data_byte_offset * 8 - count);
|
||||
+ cedrus_h265_skip_bits(dev, 8 - count);
|
||||
|
||||
/* Bitstream parameters. */
|
||||
|
||||
diff --git a/drivers/staging/media/sunxi/cedrus/cedrus_regs.h b/drivers/staging/media/sunxi/cedrus/cedrus_regs.h
|
||||
index 2f7dbd8b8896e9..424049f567c465 100644
|
||||
--- a/drivers/staging/media/sunxi/cedrus/cedrus_regs.h
|
||||
+++ b/drivers/staging/media/sunxi/cedrus/cedrus_regs.h
|
||||
@@ -509,6 +509,8 @@
|
||||
#define VE_DEC_H265_LOW_ADDR_ENTRY_POINTS_BUF(a) \
|
||||
SHIFT_AND_MASK_BITS(a, 7, 0)
|
||||
|
||||
+#define VE_DEC_H265_READED_BITS (VE_ENGINE_DEC_H265 + 0xdc)
|
||||
+
|
||||
#define VE_DEC_H265_SRAM_OFFSET (VE_ENGINE_DEC_H265 + 0xe0)
|
||||
|
||||
#define VE_DEC_H265_SRAM_OFFSET_PRED_WEIGHT_LUMA_L0 0x00
|
@ -1,44 +0,0 @@
|
||||
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
|
||||
From: Jernej Skrabec <jernej.skrabec@gmail.com>
|
||||
Date: Wed, 12 Oct 2022 21:10:47 +0200
|
||||
Subject: [PATCH] iommu/sun50i: Fix reset release
|
||||
|
||||
Reset signal is asserted by writing 0 to the corresponding locations of
|
||||
masters we want to reset. So in order to deassert all reset signals, we
|
||||
should write 1's to all locations.
|
||||
|
||||
Current code writes 1's to locations of masters which were just reset
|
||||
which is good. However, at the same time it also writes 0's to other
|
||||
locations and thus asserts reset signals of remaining masters. Fix code
|
||||
by writing all 1's when we want to deassert all reset signals.
|
||||
|
||||
This bug was discovered when working with Cedrus (video decoder). When
|
||||
it faulted, display went blank due to reset signal assertion.
|
||||
|
||||
Fixes: 4100b8c229b3 ("iommu: Add Allwinner H6 IOMMU driver")
|
||||
Signed-off-by: Jernej Skrabec <jernej.skrabec@gmail.com>
|
||||
---
|
||||
drivers/iommu/sun50i-iommu.c | 3 ++-
|
||||
1 file changed, 2 insertions(+), 1 deletion(-)
|
||||
|
||||
diff --git a/drivers/iommu/sun50i-iommu.c b/drivers/iommu/sun50i-iommu.c
|
||||
index a84c63518773..c777882d0ec2 100644
|
||||
--- a/drivers/iommu/sun50i-iommu.c
|
||||
+++ b/drivers/iommu/sun50i-iommu.c
|
||||
@@ -27,6 +27,7 @@
|
||||
#include <linux/types.h>
|
||||
|
||||
#define IOMMU_RESET_REG 0x010
|
||||
+#define IOMMU_RESET_RELEASE_ALL 0xffffffff
|
||||
#define IOMMU_ENABLE_REG 0x020
|
||||
#define IOMMU_ENABLE_ENABLE BIT(0)
|
||||
|
||||
@@ -893,7 +894,7 @@ static irqreturn_t sun50i_iommu_irq(int irq, void *dev_id)
|
||||
iommu_write(iommu, IOMMU_INT_CLR_REG, status);
|
||||
|
||||
iommu_write(iommu, IOMMU_RESET_REG, ~status);
|
||||
- iommu_write(iommu, IOMMU_RESET_REG, status);
|
||||
+ iommu_write(iommu, IOMMU_RESET_REG, IOMMU_RESET_RELEASE_ALL);
|
||||
|
||||
spin_unlock(&iommu->iommu_lock);
|
||||
|
@ -1,50 +0,0 @@
|
||||
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
|
||||
From: Jernej Skrabec <jernej.skrabec@gmail.com>
|
||||
Date: Wed, 12 Oct 2022 22:46:32 +0200
|
||||
Subject: [PATCH] iommu/sun50i: Consider all fault sources for reset
|
||||
|
||||
We have to reset masters for all faults - permissions, L1 fault or L2
|
||||
fault. Currently it's done only for permissions. If other type of fault
|
||||
happens, master is in locked up state. Fix that by really considering
|
||||
all fault sources.
|
||||
|
||||
Fixes: 4100b8c229b3 ("iommu: Add Allwinner H6 IOMMU driver")
|
||||
Signed-off-by: Jernej Skrabec <jernej.skrabec@gmail.com>
|
||||
---
|
||||
drivers/iommu/sun50i-iommu.c | 8 ++++++--
|
||||
1 file changed, 6 insertions(+), 2 deletions(-)
|
||||
|
||||
diff --git a/drivers/iommu/sun50i-iommu.c b/drivers/iommu/sun50i-iommu.c
|
||||
index c777882d0ec2..38d1069cf383 100644
|
||||
--- a/drivers/iommu/sun50i-iommu.c
|
||||
+++ b/drivers/iommu/sun50i-iommu.c
|
||||
@@ -869,8 +869,8 @@ static phys_addr_t sun50i_iommu_handle_perm_irq(struct sun50i_iommu *iommu)
|
||||
|
||||
static irqreturn_t sun50i_iommu_irq(int irq, void *dev_id)
|
||||
{
|
||||
+ u32 status, l1_status, l2_status, resets;
|
||||
struct sun50i_iommu *iommu = dev_id;
|
||||
- u32 status;
|
||||
|
||||
spin_lock(&iommu->iommu_lock);
|
||||
|
||||
@@ -880,6 +880,9 @@ static irqreturn_t sun50i_iommu_irq(int irq, void *dev_id)
|
||||
return IRQ_NONE;
|
||||
}
|
||||
|
||||
+ l1_status = iommu_read(iommu, IOMMU_L1PG_INT_REG);
|
||||
+ l2_status = iommu_read(iommu, IOMMU_L2PG_INT_REG);
|
||||
+
|
||||
if (status & IOMMU_INT_INVALID_L2PG)
|
||||
sun50i_iommu_handle_pt_irq(iommu,
|
||||
IOMMU_INT_ERR_ADDR_L2_REG,
|
||||
@@ -893,7 +896,8 @@ static irqreturn_t sun50i_iommu_irq(int irq, void *dev_id)
|
||||
|
||||
iommu_write(iommu, IOMMU_INT_CLR_REG, status);
|
||||
|
||||
- iommu_write(iommu, IOMMU_RESET_REG, ~status);
|
||||
+ resets = (status | l1_status | l2_status) & IOMMU_INT_MASTER_MASK;
|
||||
+ iommu_write(iommu, IOMMU_RESET_REG, ~resets);
|
||||
iommu_write(iommu, IOMMU_RESET_REG, IOMMU_RESET_RELEASE_ALL);
|
||||
|
||||
spin_unlock(&iommu->iommu_lock);
|
@ -1,33 +0,0 @@
|
||||
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
|
||||
From: Jernej Skrabec <jernej.skrabec@gmail.com>
|
||||
Date: Wed, 12 Oct 2022 21:24:03 +0200
|
||||
Subject: [PATCH] iommu/sun50i: Fix R/W permission check
|
||||
|
||||
Because driver has enum type permissions and iommu subsystem has bitmap
|
||||
type, we have to be careful how check for combined read and write
|
||||
permissions is done. In such case, we have to mask both permissions and
|
||||
check that both are set at the same time.
|
||||
|
||||
Current code just masks both flags but doesn't check that both are set.
|
||||
In short, it always sets R/W permission, regardles if requested
|
||||
permissions were RO, WO or RW. Fix that.
|
||||
|
||||
Fixes: 4100b8c229b3 ("iommu: Add Allwinner H6 IOMMU driver")
|
||||
Signed-off-by: Jernej Skrabec <jernej.skrabec@gmail.com>
|
||||
---
|
||||
drivers/iommu/sun50i-iommu.c | 2 +-
|
||||
1 file changed, 1 insertion(+), 1 deletion(-)
|
||||
|
||||
diff --git a/drivers/iommu/sun50i-iommu.c b/drivers/iommu/sun50i-iommu.c
|
||||
index 38d1069cf383..135df6934a9e 100644
|
||||
--- a/drivers/iommu/sun50i-iommu.c
|
||||
+++ b/drivers/iommu/sun50i-iommu.c
|
||||
@@ -271,7 +271,7 @@ static u32 sun50i_mk_pte(phys_addr_t page, int prot)
|
||||
enum sun50i_iommu_aci aci;
|
||||
u32 flags = 0;
|
||||
|
||||
- if (prot & (IOMMU_READ | IOMMU_WRITE))
|
||||
+ if ((prot & (IOMMU_READ | IOMMU_WRITE)) == (IOMMU_READ | IOMMU_WRITE))
|
||||
aci = SUN50I_IOMMU_ACI_RD_WR;
|
||||
else if (prot & IOMMU_READ)
|
||||
aci = SUN50I_IOMMU_ACI_RD;
|
@ -1,27 +0,0 @@
|
||||
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
|
||||
From: Jernej Skrabec <jernej.skrabec@gmail.com>
|
||||
Date: Wed, 12 Oct 2022 21:35:53 +0200
|
||||
Subject: [PATCH] iommu/sun50i: Fix flush size
|
||||
|
||||
Function sun50i_table_flush() takes number of entries as an argument,
|
||||
not number of bytes. Fix that mistake in sun50i_dte_get_page_table().
|
||||
|
||||
Fixes: 4100b8c229b3 ("iommu: Add Allwinner H6 IOMMU driver")
|
||||
Signed-off-by: Jernej Skrabec <jernej.skrabec@gmail.com>
|
||||
---
|
||||
drivers/iommu/sun50i-iommu.c | 2 +-
|
||||
1 file changed, 1 insertion(+), 1 deletion(-)
|
||||
|
||||
diff --git a/drivers/iommu/sun50i-iommu.c b/drivers/iommu/sun50i-iommu.c
|
||||
index 135df6934a9e..7c3b2ac552da 100644
|
||||
--- a/drivers/iommu/sun50i-iommu.c
|
||||
+++ b/drivers/iommu/sun50i-iommu.c
|
||||
@@ -512,7 +512,7 @@ static u32 *sun50i_dte_get_page_table(struct sun50i_iommu_domain *sun50i_domain,
|
||||
sun50i_iommu_free_page_table(iommu, drop_pt);
|
||||
}
|
||||
|
||||
- sun50i_table_flush(sun50i_domain, page_table, PT_SIZE);
|
||||
+ sun50i_table_flush(sun50i_domain, page_table, NUM_PT_ENTRIES);
|
||||
sun50i_table_flush(sun50i_domain, dte_addr, 1);
|
||||
|
||||
return page_table;
|
@ -1,133 +0,0 @@
|
||||
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
|
||||
From: Jernej Skrabec <jernej.skrabec@gmail.com>
|
||||
Date: Wed, 12 Oct 2022 21:55:27 +0200
|
||||
Subject: [PATCH] iommu/sun50i: Implement .iotlb_sync_map
|
||||
|
||||
Allocated iova ranges need to be invalidated immediately or otherwise
|
||||
they might or might not work when used by master or CPU. This was
|
||||
discovered when running video decoder conformity test with Cedrus. Some
|
||||
videos were now and then decoded incorrectly and generated page faults.
|
||||
|
||||
According to vendor driver, it's enough to invalidate just start and end
|
||||
TLB and PTW cache lines. Documentation says that neighbouring lines must
|
||||
be invalidated too. Finally, when page fault occurs, that iova must be
|
||||
invalidated the same way, according to documentation.
|
||||
|
||||
Fixes: 4100b8c229b3 ("iommu: Add Allwinner H6 IOMMU driver")
|
||||
Signed-off-by: Jernej Skrabec <jernej.skrabec@gmail.com>
|
||||
---
|
||||
drivers/iommu/sun50i-iommu.c | 73 ++++++++++++++++++++++++++++++++++++
|
||||
1 file changed, 73 insertions(+)
|
||||
|
||||
diff --git a/drivers/iommu/sun50i-iommu.c b/drivers/iommu/sun50i-iommu.c
|
||||
index 7c3b2ac552da..d7c5e9b1a087 100644
|
||||
--- a/drivers/iommu/sun50i-iommu.c
|
||||
+++ b/drivers/iommu/sun50i-iommu.c
|
||||
@@ -93,6 +93,8 @@
|
||||
#define NUM_PT_ENTRIES 256
|
||||
#define PT_SIZE (NUM_PT_ENTRIES * PT_ENTRY_SIZE)
|
||||
|
||||
+#define SPAGE_SIZE 4096
|
||||
+
|
||||
struct sun50i_iommu {
|
||||
struct iommu_device iommu;
|
||||
|
||||
@@ -295,6 +297,62 @@ static void sun50i_table_flush(struct sun50i_iommu_domain *sun50i_domain,
|
||||
dma_sync_single_for_device(iommu->dev, dma, size, DMA_TO_DEVICE);
|
||||
}
|
||||
|
||||
+static void sun50i_iommu_zap_iova(struct sun50i_iommu *iommu,
|
||||
+ unsigned long iova)
|
||||
+{
|
||||
+ u32 reg;
|
||||
+ int ret;
|
||||
+
|
||||
+ iommu_write(iommu, IOMMU_TLB_IVLD_ADDR_REG, iova);
|
||||
+ iommu_write(iommu, IOMMU_TLB_IVLD_ADDR_MASK_REG, GENMASK(31, 12));
|
||||
+ iommu_write(iommu, IOMMU_TLB_IVLD_ENABLE_REG,
|
||||
+ IOMMU_TLB_IVLD_ENABLE_ENABLE);
|
||||
+
|
||||
+ ret = readl_poll_timeout_atomic(iommu->base + IOMMU_TLB_IVLD_ENABLE_REG,
|
||||
+ reg, !reg, 1, 2000);
|
||||
+ if (ret)
|
||||
+ dev_warn(iommu->dev, "TLB invalidation timed out!\n");
|
||||
+}
|
||||
+
|
||||
+static void sun50i_iommu_zap_ptw_cache(struct sun50i_iommu *iommu,
|
||||
+ unsigned long iova)
|
||||
+{
|
||||
+ u32 reg;
|
||||
+ int ret;
|
||||
+
|
||||
+ iommu_write(iommu, IOMMU_PC_IVLD_ADDR_REG, iova);
|
||||
+ iommu_write(iommu, IOMMU_PC_IVLD_ENABLE_REG,
|
||||
+ IOMMU_PC_IVLD_ENABLE_ENABLE);
|
||||
+
|
||||
+ ret = readl_poll_timeout_atomic(iommu->base + IOMMU_PC_IVLD_ENABLE_REG,
|
||||
+ reg, !reg, 1, 2000);
|
||||
+ if (ret)
|
||||
+ dev_warn(iommu->dev, "PTW cache invalidation timed out!\n");
|
||||
+}
|
||||
+
|
||||
+static void sun50i_iommu_zap_range(struct sun50i_iommu *iommu,
|
||||
+ unsigned long iova, size_t size)
|
||||
+{
|
||||
+ assert_spin_locked(&iommu->iommu_lock);
|
||||
+
|
||||
+ iommu_write(iommu, IOMMU_AUTO_GATING_REG, 0);
|
||||
+
|
||||
+ sun50i_iommu_zap_iova(iommu, iova);
|
||||
+ sun50i_iommu_zap_iova(iommu, iova + SPAGE_SIZE);
|
||||
+ if (size > SPAGE_SIZE) {
|
||||
+ sun50i_iommu_zap_iova(iommu, iova + size);
|
||||
+ sun50i_iommu_zap_iova(iommu, iova + size + SPAGE_SIZE);
|
||||
+ }
|
||||
+ sun50i_iommu_zap_ptw_cache(iommu, iova);
|
||||
+ sun50i_iommu_zap_ptw_cache(iommu, iova + SZ_1M);
|
||||
+ if (size > SZ_1M) {
|
||||
+ sun50i_iommu_zap_ptw_cache(iommu, iova + size);
|
||||
+ sun50i_iommu_zap_ptw_cache(iommu, iova + size + SZ_1M);
|
||||
+ }
|
||||
+
|
||||
+ iommu_write(iommu, IOMMU_AUTO_GATING_REG, IOMMU_AUTO_GATING_ENABLE);
|
||||
+}
|
||||
+
|
||||
static int sun50i_iommu_flush_all_tlb(struct sun50i_iommu *iommu)
|
||||
{
|
||||
u32 reg;
|
||||
@@ -344,6 +402,18 @@ static void sun50i_iommu_flush_iotlb_all(struct iommu_domain *domain)
|
||||
spin_unlock_irqrestore(&iommu->iommu_lock, flags);
|
||||
}
|
||||
|
||||
+static void sun50i_iommu_iotlb_sync_map(struct iommu_domain *domain,
|
||||
+ unsigned long iova, size_t size)
|
||||
+{
|
||||
+ struct sun50i_iommu_domain *sun50i_domain = to_sun50i_domain(domain);
|
||||
+ struct sun50i_iommu *iommu = sun50i_domain->iommu;
|
||||
+ unsigned long flags;
|
||||
+
|
||||
+ spin_lock_irqsave(&iommu->iommu_lock, flags);
|
||||
+ sun50i_iommu_zap_range(iommu, iova, size);
|
||||
+ spin_unlock_irqrestore(&iommu->iommu_lock, flags);
|
||||
+}
|
||||
+
|
||||
static void sun50i_iommu_iotlb_sync(struct iommu_domain *domain,
|
||||
struct iommu_iotlb_gather *gather)
|
||||
{
|
||||
@@ -767,6 +837,7 @@ static const struct iommu_ops sun50i_iommu_ops = {
|
||||
.attach_dev = sun50i_iommu_attach_device,
|
||||
.detach_dev = sun50i_iommu_detach_device,
|
||||
.flush_iotlb_all = sun50i_iommu_flush_iotlb_all,
|
||||
+ .iotlb_sync_map = sun50i_iommu_iotlb_sync_map,
|
||||
.iotlb_sync = sun50i_iommu_iotlb_sync,
|
||||
.iova_to_phys = sun50i_iommu_iova_to_phys,
|
||||
.map = sun50i_iommu_map,
|
||||
@@ -786,6 +857,8 @@ static void sun50i_iommu_report_fault(struct sun50i_iommu *iommu,
|
||||
report_iommu_fault(iommu->domain, iommu->dev, iova, prot);
|
||||
else
|
||||
dev_err(iommu->dev, "Page fault while iommu not attached to any domain?\n");
|
||||
+
|
||||
+ sun50i_iommu_zap_range(iommu, iova, SPAGE_SIZE);
|
||||
}
|
||||
|
||||
static phys_addr_t sun50i_iommu_handle_pt_irq(struct sun50i_iommu *iommu,
|
@ -1,61 +0,0 @@
|
||||
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
|
||||
From: Jernej Skrabec <jernej.skrabec@gmail.com>
|
||||
Date: Sat, 15 Oct 2022 10:43:41 +0200
|
||||
Subject: [PATCH] media: Unify YCbCr/YUV terms in format descriptions
|
||||
|
||||
Format descriptions use YCbCr and YUV terms interchangeably. Let's unify
|
||||
them so they all use YUV. While YCbCr is actually correct term here, YUV
|
||||
is shorter and thus it also fixes too long description of P010 tiled
|
||||
format.
|
||||
|
||||
Fixes: 3c8e19d3d3f9 ("media: Add P010 tiled format")
|
||||
Signed-off-by: Jernej Skrabec <jernej.skrabec@gmail.com>
|
||||
---
|
||||
drivers/media/v4l2-core/v4l2-ioctl.c | 34 ++++++++++++++--------------
|
||||
1 file changed, 17 insertions(+), 17 deletions(-)
|
||||
|
||||
diff --git a/drivers/media/v4l2-core/v4l2-ioctl.c b/drivers/media/v4l2-core/v4l2-ioctl.c
|
||||
index e6fd355a2e92..de83714f0d40 100644
|
||||
--- a/drivers/media/v4l2-core/v4l2-ioctl.c
|
||||
+++ b/drivers/media/v4l2-core/v4l2-ioctl.c
|
||||
@@ -1347,23 +1347,23 @@ static void v4l_fill_fmtdesc(struct v4l2_fmtdesc *fmt)
|
||||
case V4L2_PIX_FMT_YUV420: descr = "Planar YUV 4:2:0"; break;
|
||||
case V4L2_PIX_FMT_HI240: descr = "8-bit Dithered RGB (BTTV)"; break;
|
||||
case V4L2_PIX_FMT_M420: descr = "YUV 4:2:0 (M420)"; break;
|
||||
- case V4L2_PIX_FMT_NV12: descr = "Y/CbCr 4:2:0"; break;
|
||||
- case V4L2_PIX_FMT_NV21: descr = "Y/CrCb 4:2:0"; break;
|
||||
- case V4L2_PIX_FMT_NV16: descr = "Y/CbCr 4:2:2"; break;
|
||||
- case V4L2_PIX_FMT_NV61: descr = "Y/CrCb 4:2:2"; break;
|
||||
- case V4L2_PIX_FMT_NV24: descr = "Y/CbCr 4:4:4"; break;
|
||||
- case V4L2_PIX_FMT_NV42: descr = "Y/CrCb 4:4:4"; break;
|
||||
- case V4L2_PIX_FMT_P010: descr = "10-bit Y/CbCr 4:2:0"; break;
|
||||
- case V4L2_PIX_FMT_NV12_4L4: descr = "Y/CbCr 4:2:0 (4x4 Linear)"; break;
|
||||
- case V4L2_PIX_FMT_NV12_16L16: descr = "Y/CbCr 4:2:0 (16x16 Linear)"; break;
|
||||
- case V4L2_PIX_FMT_NV12_32L32: descr = "Y/CbCr 4:2:0 (32x32 Linear)"; break;
|
||||
- case V4L2_PIX_FMT_P010_4L4: descr = "10-bit Y/CbCr 4:2:0 (4x4 Linear)"; break;
|
||||
- case V4L2_PIX_FMT_NV12M: descr = "Y/CbCr 4:2:0 (N-C)"; break;
|
||||
- case V4L2_PIX_FMT_NV21M: descr = "Y/CrCb 4:2:0 (N-C)"; break;
|
||||
- case V4L2_PIX_FMT_NV16M: descr = "Y/CbCr 4:2:2 (N-C)"; break;
|
||||
- case V4L2_PIX_FMT_NV61M: descr = "Y/CrCb 4:2:2 (N-C)"; break;
|
||||
- case V4L2_PIX_FMT_NV12MT: descr = "Y/CbCr 4:2:0 (64x32 MB, N-C)"; break;
|
||||
- case V4L2_PIX_FMT_NV12MT_16X16: descr = "Y/CbCr 4:2:0 (16x16 MB, N-C)"; break;
|
||||
+ case V4L2_PIX_FMT_NV12: descr = "Y/UV 4:2:0"; break;
|
||||
+ case V4L2_PIX_FMT_NV21: descr = "Y/VU 4:2:0"; break;
|
||||
+ case V4L2_PIX_FMT_NV16: descr = "Y/UV 4:2:2"; break;
|
||||
+ case V4L2_PIX_FMT_NV61: descr = "Y/VU 4:2:2"; break;
|
||||
+ case V4L2_PIX_FMT_NV24: descr = "Y/UV 4:4:4"; break;
|
||||
+ case V4L2_PIX_FMT_NV42: descr = "Y/VU 4:4:4"; break;
|
||||
+ case V4L2_PIX_FMT_P010: descr = "10-bit Y/UV 4:2:0"; break;
|
||||
+ case V4L2_PIX_FMT_NV12_4L4: descr = "Y/UV 4:2:0 (4x4 Linear)"; break;
|
||||
+ case V4L2_PIX_FMT_NV12_16L16: descr = "Y/UV 4:2:0 (16x16 Linear)"; break;
|
||||
+ case V4L2_PIX_FMT_NV12_32L32: descr = "Y/UV 4:2:0 (32x32 Linear)"; break;
|
||||
+ case V4L2_PIX_FMT_P010_4L4: descr = "10-bit Y/UV 4:2:0 (4x4 Linear)"; break;
|
||||
+ case V4L2_PIX_FMT_NV12M: descr = "Y/UV 4:2:0 (N-C)"; break;
|
||||
+ case V4L2_PIX_FMT_NV21M: descr = "Y/VU 4:2:0 (N-C)"; break;
|
||||
+ case V4L2_PIX_FMT_NV16M: descr = "Y/UV 4:2:2 (N-C)"; break;
|
||||
+ case V4L2_PIX_FMT_NV61M: descr = "Y/VU 4:2:2 (N-C)"; break;
|
||||
+ case V4L2_PIX_FMT_NV12MT: descr = "Y/UV 4:2:0 (64x32 MB, N-C)"; break;
|
||||
+ case V4L2_PIX_FMT_NV12MT_16X16: descr = "Y/UV 4:2:0 (16x16 MB, N-C)"; break;
|
||||
case V4L2_PIX_FMT_YUV420M: descr = "Planar YUV 4:2:0 (N-C)"; break;
|
||||
case V4L2_PIX_FMT_YVU420M: descr = "Planar YVU 4:2:0 (N-C)"; break;
|
||||
case V4L2_PIX_FMT_YUV422M: descr = "Planar YUV 4:2:2 (N-C)"; break;
|
Loading…
x
Reference in New Issue
Block a user