* [PATCH v3 0/5] media: intel/ipu6: continue on ipu7 code sharing preparation
@ 2025-05-02 15:44 Stanislaw Gruszka
2025-05-02 15:44 ` [PATCH v3 1/5] media: intel/ipu6: Remove pin_ready function pointer Stanislaw Gruszka
` (5 more replies)
0 siblings, 6 replies; 8+ messages in thread
From: Stanislaw Gruszka @ 2025-05-02 15:44 UTC (permalink / raw)
To: linux-media; +Cc: Sakari Ailus, Bingbu Cao
Cleanups and code sharing preparation with ipu7 driver.
This is on top of:
https://git.linuxtv.org/sailus/media_tree.git/log/?h=devel
Plus:
https://lore.kernel.org/linux-media/20250317073856.162147-1-stanislaw.gruszka@linux.intel.com/
https://lore.kernel.org/linux-media/20250428161643.321617-1-stanislaw.gruszka@linux.intel.com/#t
v2 -> v3:
- Change comment instead of remove it
v1 -> v2:
- use ipu_isys_ prefix
- new patch: remove pin_ready function pointer
- drop accessor macros for now
Stanislaw Gruszka (5):
media: intel/ipu6: Remove pin_ready function pointer
media: intel/ipu6: Remove line_align
media: intel/ipu6: Change deprecated lock comment
media: intel/ipu6: Move common structures definitions to ipu-isys.h
media: intel/ipu6: Rename common structures
drivers/media/pci/intel/ipu6/ipu-isys.h | 92 +++++++++
drivers/media/pci/intel/ipu6/ipu6-isys-csi2.c | 4 +-
drivers/media/pci/intel/ipu6/ipu6-isys-csi2.h | 6 +-
.../media/pci/intel/ipu6/ipu6-isys-queue.c | 178 +++++++++---------
.../media/pci/intel/ipu6/ipu6-isys-queue.h | 69 +------
.../media/pci/intel/ipu6/ipu6-isys-video.c | 58 +++---
.../media/pci/intel/ipu6/ipu6-isys-video.h | 78 +-------
drivers/media/pci/intel/ipu6/ipu6-isys.c | 23 ++-
drivers/media/pci/intel/ipu6/ipu6-isys.h | 8 +-
9 files changed, 242 insertions(+), 274 deletions(-)
--
2.34.1
^ permalink raw reply [flat|nested] 8+ messages in thread
* [PATCH v3 1/5] media: intel/ipu6: Remove pin_ready function pointer
2025-05-02 15:44 [PATCH v3 0/5] media: intel/ipu6: continue on ipu7 code sharing preparation Stanislaw Gruszka
@ 2025-05-02 15:44 ` Stanislaw Gruszka
2025-05-02 15:44 ` [PATCH v3 2/5] media: intel/ipu6: Remove line_align Stanislaw Gruszka
` (4 subsequent siblings)
5 siblings, 0 replies; 8+ messages in thread
From: Stanislaw Gruszka @ 2025-05-02 15:44 UTC (permalink / raw)
To: linux-media; +Cc: Sakari Ailus, Bingbu Cao
We can call ipu6_isys_queue_buf_ready() directly. The only current
usage is pin_ready pointer is to check if pin was prepared before
IPU6_FW_ISYS_RESP_TYPE_PIN_DATA_READY interrupt, we can use queue
pointer for that purpose.
Signed-off-by: Stanislaw Gruszka <stanislaw.gruszka@linux.intel.com>
---
drivers/media/pci/intel/ipu6/ipu6-isys-queue.c | 2 +-
drivers/media/pci/intel/ipu6/ipu6-isys-video.c | 3 +--
drivers/media/pci/intel/ipu6/ipu6-isys-video.h | 8 +-------
drivers/media/pci/intel/ipu6/ipu6-isys.c | 7 +++----
4 files changed, 6 insertions(+), 14 deletions(-)
diff --git a/drivers/media/pci/intel/ipu6/ipu6-isys-queue.c b/drivers/media/pci/intel/ipu6/ipu6-isys-queue.c
index 12b42b46ebab..3998b0087da3 100644
--- a/drivers/media/pci/intel/ipu6/ipu6-isys-queue.c
+++ b/drivers/media/pci/intel/ipu6/ipu6-isys-queue.c
@@ -738,7 +738,7 @@ static void
ipu6_stream_buf_ready(struct ipu6_isys_stream *stream, u8 pin_id, u32 pin_addr,
u64 time, bool error_check)
{
- struct ipu6_isys_queue *aq = stream->output_pins[pin_id].aq;
+ struct ipu6_isys_queue *aq = stream->output_pins_queue[pin_id];
struct ipu6_isys *isys = stream->isys;
struct device *dev = &isys->adev->auxdev.dev;
struct ipu6_isys_buffer *ib;
diff --git a/drivers/media/pci/intel/ipu6/ipu6-isys-video.c b/drivers/media/pci/intel/ipu6/ipu6-isys-video.c
index e9705bb077b6..46b76cdae408 100644
--- a/drivers/media/pci/intel/ipu6/ipu6-isys-video.c
+++ b/drivers/media/pci/intel/ipu6/ipu6-isys-video.c
@@ -485,8 +485,7 @@ static int ipu6_isys_fw_pin_cfg(struct ipu6_isys_video *av,
output_pins = cfg->nof_output_pins++;
aq->fw_output = output_pins;
- stream->output_pins[output_pins].pin_ready = ipu6_isys_queue_buf_ready;
- stream->output_pins[output_pins].aq = aq;
+ stream->output_pins_queue[output_pins] = aq;
output_pin = &cfg->output_pins[output_pins];
output_pin->input_pin_id = input_pins;
diff --git a/drivers/media/pci/intel/ipu6/ipu6-isys-video.h b/drivers/media/pci/intel/ipu6/ipu6-isys-video.h
index 78cf6b8d5211..7b347c99d907 100644
--- a/drivers/media/pci/intel/ipu6/ipu6-isys-video.h
+++ b/drivers/media/pci/intel/ipu6/ipu6-isys-video.h
@@ -37,12 +37,6 @@ struct sequence_info {
u64 timestamp;
};
-struct output_pin_data {
- void (*pin_ready)(struct ipu6_isys_stream *stream,
- struct ipu6_fw_isys_resp_info_abi *info);
- struct ipu6_isys_queue *aq;
-};
-
/*
* Align with firmware stream. Each stream represents a CSI virtual channel.
* May map to multiple video devices
@@ -68,7 +62,7 @@ struct ipu6_isys_stream {
struct completion stream_stop_completion;
struct ipu6_isys *isys;
- struct output_pin_data output_pins[IPU6_ISYS_OUTPUT_PINS];
+ struct ipu6_isys_queue *output_pins_queue[IPU6_ISYS_OUTPUT_PINS];
int error;
u8 vc;
};
diff --git a/drivers/media/pci/intel/ipu6/ipu6-isys.c b/drivers/media/pci/intel/ipu6/ipu6-isys.c
index 9b7ff5c440de..4d2ca6aae328 100644
--- a/drivers/media/pci/intel/ipu6/ipu6-isys.c
+++ b/drivers/media/pci/intel/ipu6/ipu6-isys.c
@@ -1294,12 +1294,11 @@ static int isys_isr_one(struct ipu6_bus_device *adev)
*/
ipu6_put_fw_msg_buf(ipu6_bus_get_drvdata(adev), resp->buf_id);
if (resp->pin_id < IPU6_ISYS_OUTPUT_PINS &&
- stream->output_pins[resp->pin_id].pin_ready)
- stream->output_pins[resp->pin_id].pin_ready(stream,
- resp);
+ stream->output_pins_queue[resp->pin_id])
+ ipu6_isys_queue_buf_ready(stream, resp);
else
dev_warn(&adev->auxdev.dev,
- "%d:No data pin ready handler for pin id %d\n",
+ "%d:No queue for pin id %d\n",
resp->stream_handle, resp->pin_id);
if (csi2)
ipu6_isys_csi2_error(csi2);
--
2.34.1
^ permalink raw reply related [flat|nested] 8+ messages in thread
* [PATCH v3 2/5] media: intel/ipu6: Remove line_align
2025-05-02 15:44 [PATCH v3 0/5] media: intel/ipu6: continue on ipu7 code sharing preparation Stanislaw Gruszka
2025-05-02 15:44 ` [PATCH v3 1/5] media: intel/ipu6: Remove pin_ready function pointer Stanislaw Gruszka
@ 2025-05-02 15:44 ` Stanislaw Gruszka
2025-05-02 15:44 ` [PATCH v3 3/5] media: intel/ipu6: Change deprecated lock comment Stanislaw Gruszka
` (3 subsequent siblings)
5 siblings, 0 replies; 8+ messages in thread
From: Stanislaw Gruszka @ 2025-05-02 15:44 UTC (permalink / raw)
To: linux-media; +Cc: Sakari Ailus, Bingbu Cao
isys->line_align value is only used in one place and we can just use
the proper value directly there.
Signed-off-by: Stanislaw Gruszka <stanislaw.gruszka@linux.intel.com>
---
drivers/media/pci/intel/ipu6/ipu6-isys-video.c | 2 +-
drivers/media/pci/intel/ipu6/ipu6-isys.c | 1 -
drivers/media/pci/intel/ipu6/ipu6-isys.h | 4 ----
3 files changed, 1 insertion(+), 6 deletions(-)
diff --git a/drivers/media/pci/intel/ipu6/ipu6-isys-video.c b/drivers/media/pci/intel/ipu6/ipu6-isys-video.c
index 46b76cdae408..44b88b546f68 100644
--- a/drivers/media/pci/intel/ipu6/ipu6-isys-video.c
+++ b/drivers/media/pci/intel/ipu6/ipu6-isys-video.c
@@ -241,7 +241,7 @@ static void ipu6_isys_try_fmt_cap(struct ipu6_isys_video *av, u32 type,
else
*bytesperline = DIV_ROUND_UP(*width * pfmt->bpp, BITS_PER_BYTE);
- *bytesperline = ALIGN(*bytesperline, av->isys->line_align);
+ *bytesperline = ALIGN(*bytesperline, 64);
/*
* (height + 1) * bytesperline due to a hardware issue: the DMA unit
diff --git a/drivers/media/pci/intel/ipu6/ipu6-isys.c b/drivers/media/pci/intel/ipu6/ipu6-isys.c
index 4d2ca6aae328..8286dea681fb 100644
--- a/drivers/media/pci/intel/ipu6/ipu6-isys.c
+++ b/drivers/media/pci/intel/ipu6/ipu6-isys.c
@@ -1089,7 +1089,6 @@ static int isys_probe(struct auxiliary_device *auxdev,
INIT_LIST_HEAD(&isys->framebuflist);
INIT_LIST_HEAD(&isys->framebuflist_fw);
- isys->line_align = IPU6_ISYS_2600_MEM_LINE_ALIGN;
isys->icache_prefetch = 0;
dev_set_drvdata(&auxdev->dev, isys);
diff --git a/drivers/media/pci/intel/ipu6/ipu6-isys.h b/drivers/media/pci/intel/ipu6/ipu6-isys.h
index 610b60e69152..f488e782c26e 100644
--- a/drivers/media/pci/intel/ipu6/ipu6-isys.h
+++ b/drivers/media/pci/intel/ipu6/ipu6-isys.h
@@ -29,8 +29,6 @@ struct ipu6_bus_device;
IPU6_ISYS_UNISPART_IRQ_CSI0 | \
IPU6_ISYS_UNISPART_IRQ_CSI1)
-#define IPU6_ISYS_2600_MEM_LINE_ALIGN 64
-
/*
* Current message queue configuration. These must be big enough
* so that they never gets full. Queues are located in system memory
@@ -118,7 +116,6 @@ struct sensor_async_sd {
* @streams: streams per firmware stream ID
* @fwcom: fw communication layer private pointer
* or optional external library private pointer
- * @line_align: line alignment in memory
* @phy_termcal_val: the termination calibration value, only used for DWC PHY
* @need_reset: Isys requires d0i0->i3 transition
* @ref_count: total number of callers fw open
@@ -140,7 +137,6 @@ struct ipu6_isys {
struct ipu6_isys_stream streams[IPU6_ISYS_MAX_STREAMS];
int streams_ref_count[IPU6_ISYS_MAX_STREAMS];
void *fwcom;
- unsigned int line_align;
u32 phy_termcal_val;
bool need_reset;
bool icache_prefetch;
--
2.34.1
^ permalink raw reply related [flat|nested] 8+ messages in thread
* [PATCH v3 3/5] media: intel/ipu6: Change deprecated lock comment
2025-05-02 15:44 [PATCH v3 0/5] media: intel/ipu6: continue on ipu7 code sharing preparation Stanislaw Gruszka
2025-05-02 15:44 ` [PATCH v3 1/5] media: intel/ipu6: Remove pin_ready function pointer Stanislaw Gruszka
2025-05-02 15:44 ` [PATCH v3 2/5] media: intel/ipu6: Remove line_align Stanislaw Gruszka
@ 2025-05-02 15:44 ` Stanislaw Gruszka
2025-05-02 15:44 ` [PATCH v3 4/5] media: intel/ipu6: Move common structures definitions to ipu-isys.h Stanislaw Gruszka
` (2 subsequent siblings)
5 siblings, 0 replies; 8+ messages in thread
From: Stanislaw Gruszka @ 2025-05-02 15:44 UTC (permalink / raw)
To: linux-media; +Cc: Sakari Ailus, Bingbu Cao
pre_streamon_queued is no longer used. The lock now is protecting active
and incoming lists.
Signed-off-by: Stanislaw Gruszka <stanislaw.gruszka@linux.intel.com>
---
drivers/media/pci/intel/ipu6/ipu6-isys-queue.h | 5 +----
1 file changed, 1 insertion(+), 4 deletions(-)
diff --git a/drivers/media/pci/intel/ipu6/ipu6-isys-queue.h b/drivers/media/pci/intel/ipu6/ipu6-isys-queue.h
index b865428a0fce..844dfda15ab6 100644
--- a/drivers/media/pci/intel/ipu6/ipu6-isys-queue.h
+++ b/drivers/media/pci/intel/ipu6/ipu6-isys-queue.h
@@ -20,10 +20,7 @@ struct ipu6_isys_stream;
struct ipu6_isys_queue {
struct vb2_queue vbq;
struct list_head node;
- /*
- * @lock: serialise access to queued and pre_streamon_queued
- */
- spinlock_t lock;
+ spinlock_t lock; /* Protects active and incoming lists */
struct list_head active;
struct list_head incoming;
unsigned int fw_output;
--
2.34.1
^ permalink raw reply related [flat|nested] 8+ messages in thread
* [PATCH v3 4/5] media: intel/ipu6: Move common structures definitions to ipu-isys.h
2025-05-02 15:44 [PATCH v3 0/5] media: intel/ipu6: continue on ipu7 code sharing preparation Stanislaw Gruszka
` (2 preceding siblings ...)
2025-05-02 15:44 ` [PATCH v3 3/5] media: intel/ipu6: Change deprecated lock comment Stanislaw Gruszka
@ 2025-05-02 15:44 ` Stanislaw Gruszka
2025-05-02 15:44 ` [PATCH v3 5/5] media: intel/ipu6: Rename common structures Stanislaw Gruszka
2025-05-05 8:13 ` [PATCH v3 0/5] media: intel/ipu6: continue on ipu7 code sharing preparation Sakari Ailus
5 siblings, 0 replies; 8+ messages in thread
From: Stanislaw Gruszka @ 2025-05-02 15:44 UTC (permalink / raw)
To: linux-media; +Cc: Sakari Ailus, Bingbu Cao
Move some structures that will be reused in ipu7 to ipu-isys.h file.
Use one header file instead of multiple, since we frequently include
most of ipu6-*.h headers in c files anyways.
Signed-off-by: Stanislaw Gruszka <stanislaw.gruszka@linux.intel.com>
---
drivers/media/pci/intel/ipu6/ipu-isys.h | 92 +++++++++++++++++++
.../media/pci/intel/ipu6/ipu6-isys-queue.c | 2 +-
.../media/pci/intel/ipu6/ipu6-isys-queue.h | 53 +----------
.../media/pci/intel/ipu6/ipu6-isys-video.h | 54 +----------
drivers/media/pci/intel/ipu6/ipu6-isys.c | 1 +
5 files changed, 96 insertions(+), 106 deletions(-)
diff --git a/drivers/media/pci/intel/ipu6/ipu-isys.h b/drivers/media/pci/intel/ipu6/ipu-isys.h
index d39dbb11a4a7..69a790695856 100644
--- a/drivers/media/pci/intel/ipu6/ipu-isys.h
+++ b/drivers/media/pci/intel/ipu6/ipu-isys.h
@@ -4,10 +4,14 @@
#ifndef IPU_ISYS_H
#define IPU_ISYS_H
+#include <linux/atomic.h>
#include <linux/container_of.h>
+#include <linux/list.h>
+#include <linux/mutex.h>
#include <media/v4l2-ctrls.h>
#include <media/v4l2-subdev.h>
+#include <media/videobuf2-v4l2.h>
struct ipu_isys_subdev {
struct v4l2_subdev sd;
@@ -20,6 +24,94 @@ struct ipu_isys_subdev {
#define to_ipu_isys_subdev(__sd) container_of(__sd, struct ipu_isys_subdev, sd)
+struct ipu6_isys_queue {
+ struct vb2_queue vbq;
+ struct list_head node;
+ spinlock_t lock; /* Protects active and incoming lists */
+ struct list_head active;
+ struct list_head incoming;
+ unsigned int fw_output;
+};
+
+struct ipu6_isys_buffer {
+ struct list_head head;
+ atomic_t str2mmio_flag;
+};
+
+struct ipu6_isys_video_buffer {
+ struct vb2_v4l2_buffer vb_v4l2;
+ struct ipu6_isys_buffer ib;
+ dma_addr_t dma_addr;
+};
+
+struct ipu6_isys_buffer_list {
+ struct list_head head;
+ unsigned int nbufs;
+};
+
+#define vb2_queue_to_isys_queue(__vb2) \
+ container_of(__vb2, struct ipu6_isys_queue, vbq)
+
+#define ipu6_isys_to_isys_video_buffer(__ib) \
+ container_of(__ib, struct ipu6_isys_video_buffer, ib)
+
+#define vb2_buffer_to_ipu6_isys_video_buffer(__vvb) \
+ container_of(__vvb, struct ipu6_isys_video_buffer, vb_v4l2)
+
+#define ipu6_isys_buffer_to_vb2_buffer(__ib) \
+ (&ipu6_isys_to_isys_video_buffer(__ib)->vb_v4l2.vb2_buf)
+
+#define IPU6_ISYS_BUFFER_LIST_FL_INCOMING BIT(0)
+#define IPU6_ISYS_BUFFER_LIST_FL_ACTIVE BIT(1)
+#define IPU6_ISYS_BUFFER_LIST_FL_SET_STATE BIT(2)
+
+#define IPU6_ISYS_OUTPUT_PINS 11
+#define IPU6_ISYS_MAX_PARALLEL_SOF 2
+
+struct ipu6_isys_pixelformat {
+ u32 pixelformat;
+ u32 bpp;
+ u32 bpp_packed;
+ u32 code;
+ u32 css_pixelformat;
+ bool is_meta;
+};
+
+struct ipu_isys_sequence_info {
+ unsigned int sequence;
+ u64 timestamp;
+};
+
+/*
+ * Align with firmware stream. Each stream represents a CSI virtual channel.
+ * May map to multiple video devices
+ */
+struct ipu6_isys_stream {
+ struct mutex mutex;
+ struct media_entity *source_entity;
+ atomic_t sequence;
+ unsigned int seq_index;
+ struct ipu_isys_sequence_info seq[IPU6_ISYS_MAX_PARALLEL_SOF];
+ int stream_source;
+ int stream_handle;
+ unsigned int nr_output_pins;
+ struct ipu_isys_subdev *asd;
+
+ int nr_queues; /* Number of capture queues */
+ int nr_streaming;
+ int streaming; /* Has streaming been really started? */
+ struct list_head queues;
+ struct completion stream_open_completion;
+ struct completion stream_close_completion;
+ struct completion stream_start_completion;
+ struct completion stream_stop_completion;
+ struct ipu6_isys *isys;
+
+ struct ipu6_isys_queue *output_pins_queue[IPU6_ISYS_OUTPUT_PINS];
+ int error;
+ u8 vc;
+};
+
int ipu_isys_get_stream_pad_fmt(struct v4l2_subdev *sd, u32 pad, u32 stream,
struct v4l2_mbus_framefmt *format);
int ipu_isys_get_stream_pad_crop(struct v4l2_subdev *sd, u32 pad, u32 stream,
diff --git a/drivers/media/pci/intel/ipu6/ipu6-isys-queue.c b/drivers/media/pci/intel/ipu6/ipu6-isys-queue.c
index 3998b0087da3..ad813323e62b 100644
--- a/drivers/media/pci/intel/ipu6/ipu6-isys-queue.c
+++ b/drivers/media/pci/intel/ipu6/ipu6-isys-queue.c
@@ -20,7 +20,7 @@
#include "ipu6-dma.h"
#include "ipu6-fw-isys.h"
#include "ipu6-isys.h"
-#include "ipu6-isys-video.h"
+#include "ipu6-isys-queue.h"
static int ipu6_isys_buf_init(struct vb2_buffer *vb)
{
diff --git a/drivers/media/pci/intel/ipu6/ipu6-isys-queue.h b/drivers/media/pci/intel/ipu6/ipu6-isys-queue.h
index 844dfda15ab6..b4b14e0ef044 100644
--- a/drivers/media/pci/intel/ipu6/ipu6-isys-queue.h
+++ b/drivers/media/pci/intel/ipu6/ipu6-isys-queue.h
@@ -4,59 +4,8 @@
#ifndef IPU6_ISYS_QUEUE_H
#define IPU6_ISYS_QUEUE_H
-#include <linux/container_of.h>
-#include <linux/atomic.h>
-#include <linux/device.h>
-#include <linux/list.h>
-#include <linux/spinlock_types.h>
-
-#include <media/videobuf2-v4l2.h>
-
+#include "ipu-isys.h"
#include "ipu6-fw-isys.h"
-#include "ipu6-isys-video.h"
-
-struct ipu6_isys_stream;
-
-struct ipu6_isys_queue {
- struct vb2_queue vbq;
- struct list_head node;
- spinlock_t lock; /* Protects active and incoming lists */
- struct list_head active;
- struct list_head incoming;
- unsigned int fw_output;
-};
-
-struct ipu6_isys_buffer {
- struct list_head head;
- atomic_t str2mmio_flag;
-};
-
-struct ipu6_isys_video_buffer {
- struct vb2_v4l2_buffer vb_v4l2;
- struct ipu6_isys_buffer ib;
- dma_addr_t dma_addr;
-};
-
-#define IPU6_ISYS_BUFFER_LIST_FL_INCOMING BIT(0)
-#define IPU6_ISYS_BUFFER_LIST_FL_ACTIVE BIT(1)
-#define IPU6_ISYS_BUFFER_LIST_FL_SET_STATE BIT(2)
-
-struct ipu6_isys_buffer_list {
- struct list_head head;
- unsigned int nbufs;
-};
-
-#define vb2_queue_to_isys_queue(__vb2) \
- container_of(__vb2, struct ipu6_isys_queue, vbq)
-
-#define ipu6_isys_to_isys_video_buffer(__ib) \
- container_of(__ib, struct ipu6_isys_video_buffer, ib)
-
-#define vb2_buffer_to_ipu6_isys_video_buffer(__vvb) \
- container_of(__vvb, struct ipu6_isys_video_buffer, vb_v4l2)
-
-#define ipu6_isys_buffer_to_vb2_buffer(__ib) \
- (&ipu6_isys_to_isys_video_buffer(__ib)->vb_v4l2.vb2_buf)
void ipu6_isys_buffer_list_queue(struct ipu6_isys_buffer_list *bl,
unsigned long op_flags,
diff --git a/drivers/media/pci/intel/ipu6/ipu6-isys-video.h b/drivers/media/pci/intel/ipu6/ipu6-isys-video.h
index 7b347c99d907..0b80d73173ff 100644
--- a/drivers/media/pci/intel/ipu6/ipu6-isys-video.h
+++ b/drivers/media/pci/intel/ipu6/ipu6-isys-video.h
@@ -13,59 +13,7 @@
#include <media/media-entity.h>
#include <media/v4l2-dev.h>
-#include "ipu6-isys-queue.h"
-
-#define IPU6_ISYS_OUTPUT_PINS 11
-#define IPU6_ISYS_MAX_PARALLEL_SOF 2
-
-struct file;
-struct ipu6_isys;
-struct ipu6_isys_csi2;
-struct ipu_isys_subdev;
-
-struct ipu6_isys_pixelformat {
- u32 pixelformat;
- u32 bpp;
- u32 bpp_packed;
- u32 code;
- u32 css_pixelformat;
- bool is_meta;
-};
-
-struct sequence_info {
- unsigned int sequence;
- u64 timestamp;
-};
-
-/*
- * Align with firmware stream. Each stream represents a CSI virtual channel.
- * May map to multiple video devices
- */
-struct ipu6_isys_stream {
- struct mutex mutex;
- struct media_entity *source_entity;
- atomic_t sequence;
- unsigned int seq_index;
- struct sequence_info seq[IPU6_ISYS_MAX_PARALLEL_SOF];
- int stream_source;
- int stream_handle;
- unsigned int nr_output_pins;
- struct ipu_isys_subdev *asd;
-
- int nr_queues; /* Number of capture queues */
- int nr_streaming;
- int streaming; /* Has streaming been really started? */
- struct list_head queues;
- struct completion stream_open_completion;
- struct completion stream_close_completion;
- struct completion stream_start_completion;
- struct completion stream_stop_completion;
- struct ipu6_isys *isys;
-
- struct ipu6_isys_queue *output_pins_queue[IPU6_ISYS_OUTPUT_PINS];
- int error;
- u8 vc;
-};
+#include "ipu-isys.h"
struct video_stream_watermark {
u32 width;
diff --git a/drivers/media/pci/intel/ipu6/ipu6-isys.c b/drivers/media/pci/intel/ipu6/ipu6-isys.c
index 8286dea681fb..7fc529b5a9f5 100644
--- a/drivers/media/pci/intel/ipu6/ipu6-isys.c
+++ b/drivers/media/pci/intel/ipu6/ipu6-isys.c
@@ -37,6 +37,7 @@
#include "ipu6-dma.h"
#include "ipu6-isys.h"
#include "ipu6-isys-csi2.h"
+#include "ipu6-isys-queue.h"
#include "ipu6-mmu.h"
#include "ipu6-platform-buttress-regs.h"
#include "ipu6-platform-isys-csi2-reg.h"
--
2.34.1
^ permalink raw reply related [flat|nested] 8+ messages in thread
* [PATCH v3 5/5] media: intel/ipu6: Rename common structures
2025-05-02 15:44 [PATCH v3 0/5] media: intel/ipu6: continue on ipu7 code sharing preparation Stanislaw Gruszka
` (3 preceding siblings ...)
2025-05-02 15:44 ` [PATCH v3 4/5] media: intel/ipu6: Move common structures definitions to ipu-isys.h Stanislaw Gruszka
@ 2025-05-02 15:44 ` Stanislaw Gruszka
2025-05-05 8:13 ` [PATCH v3 0/5] media: intel/ipu6: continue on ipu7 code sharing preparation Sakari Ailus
5 siblings, 0 replies; 8+ messages in thread
From: Stanislaw Gruszka @ 2025-05-02 15:44 UTC (permalink / raw)
To: linux-media; +Cc: Sakari Ailus, Bingbu Cao
Rename common structures and defines with ipu_isys_ prefix, to make
clean distinction between ipu common layer and hw generation specific
structures.
Signed-off-by: Stanislaw Gruszka <stanislaw.gruszka@linux.intel.com>
---
drivers/media/pci/intel/ipu6/ipu-isys.h | 42 ++---
drivers/media/pci/intel/ipu6/ipu6-isys-csi2.c | 4 +-
drivers/media/pci/intel/ipu6/ipu6-isys-csi2.h | 6 +-
.../media/pci/intel/ipu6/ipu6-isys-queue.c | 176 +++++++++---------
.../media/pci/intel/ipu6/ipu6-isys-queue.h | 13 +-
.../media/pci/intel/ipu6/ipu6-isys-video.c | 53 +++---
.../media/pci/intel/ipu6/ipu6-isys-video.h | 18 +-
drivers/media/pci/intel/ipu6/ipu6-isys.c | 14 +-
drivers/media/pci/intel/ipu6/ipu6-isys.h | 4 +-
9 files changed, 162 insertions(+), 168 deletions(-)
diff --git a/drivers/media/pci/intel/ipu6/ipu-isys.h b/drivers/media/pci/intel/ipu6/ipu-isys.h
index 69a790695856..42d7be93a876 100644
--- a/drivers/media/pci/intel/ipu6/ipu-isys.h
+++ b/drivers/media/pci/intel/ipu6/ipu-isys.h
@@ -24,7 +24,7 @@ struct ipu_isys_subdev {
#define to_ipu_isys_subdev(__sd) container_of(__sd, struct ipu_isys_subdev, sd)
-struct ipu6_isys_queue {
+struct ipu_isys_queue {
struct vb2_queue vbq;
struct list_head node;
spinlock_t lock; /* Protects active and incoming lists */
@@ -33,42 +33,42 @@ struct ipu6_isys_queue {
unsigned int fw_output;
};
-struct ipu6_isys_buffer {
+struct ipu_isys_buffer {
struct list_head head;
atomic_t str2mmio_flag;
};
-struct ipu6_isys_video_buffer {
+struct ipu_isys_video_buffer {
struct vb2_v4l2_buffer vb_v4l2;
- struct ipu6_isys_buffer ib;
+ struct ipu_isys_buffer ib;
dma_addr_t dma_addr;
};
-struct ipu6_isys_buffer_list {
+struct ipu_isys_buffer_list {
struct list_head head;
unsigned int nbufs;
};
#define vb2_queue_to_isys_queue(__vb2) \
- container_of(__vb2, struct ipu6_isys_queue, vbq)
+ container_of(__vb2, struct ipu_isys_queue, vbq)
-#define ipu6_isys_to_isys_video_buffer(__ib) \
- container_of(__ib, struct ipu6_isys_video_buffer, ib)
+#define vb2_buffer_to_isys_video_buffer(__vvb) \
+ container_of(__vvb, struct ipu_isys_video_buffer, vb_v4l2)
-#define vb2_buffer_to_ipu6_isys_video_buffer(__vvb) \
- container_of(__vvb, struct ipu6_isys_video_buffer, vb_v4l2)
+#define ipu_isys_buffer_to_isys_video_buffer(__ib) \
+ container_of(__ib, struct ipu_isys_video_buffer, ib)
-#define ipu6_isys_buffer_to_vb2_buffer(__ib) \
- (&ipu6_isys_to_isys_video_buffer(__ib)->vb_v4l2.vb2_buf)
+#define ipu_isys_buffer_to_vb2_buffer(__ib) \
+ (&ipu_isys_buffer_to_isys_video_buffer(__ib)->vb_v4l2.vb2_buf)
-#define IPU6_ISYS_BUFFER_LIST_FL_INCOMING BIT(0)
-#define IPU6_ISYS_BUFFER_LIST_FL_ACTIVE BIT(1)
-#define IPU6_ISYS_BUFFER_LIST_FL_SET_STATE BIT(2)
+#define IPU_ISYS_BUFFER_LIST_INCOMING BIT(0)
+#define IPU_ISYS_BUFFER_LIST_ACTIVE BIT(1)
+#define IPU_ISYS_BUFFER_LIST_SET_STATE BIT(2)
-#define IPU6_ISYS_OUTPUT_PINS 11
-#define IPU6_ISYS_MAX_PARALLEL_SOF 2
+#define IPU_ISYS_OUTPUT_PINS 11U
+#define IPU_ISYS_MAX_PARALLEL_SOF 2U
-struct ipu6_isys_pixelformat {
+struct ipu_isys_pixelformat {
u32 pixelformat;
u32 bpp;
u32 bpp_packed;
@@ -86,12 +86,12 @@ struct ipu_isys_sequence_info {
* Align with firmware stream. Each stream represents a CSI virtual channel.
* May map to multiple video devices
*/
-struct ipu6_isys_stream {
+struct ipu_isys_stream {
struct mutex mutex;
struct media_entity *source_entity;
atomic_t sequence;
unsigned int seq_index;
- struct ipu_isys_sequence_info seq[IPU6_ISYS_MAX_PARALLEL_SOF];
+ struct ipu_isys_sequence_info seq[IPU_ISYS_MAX_PARALLEL_SOF];
int stream_source;
int stream_handle;
unsigned int nr_output_pins;
@@ -107,7 +107,7 @@ struct ipu6_isys_stream {
struct completion stream_stop_completion;
struct ipu6_isys *isys;
- struct ipu6_isys_queue *output_pins_queue[IPU6_ISYS_OUTPUT_PINS];
+ struct ipu_isys_queue *output_pins_queue[IPU_ISYS_OUTPUT_PINS];
int error;
u8 vc;
};
diff --git a/drivers/media/pci/intel/ipu6/ipu6-isys-csi2.c b/drivers/media/pci/intel/ipu6/ipu6-isys-csi2.c
index 74bbacad67c5..d4a2923f1f63 100644
--- a/drivers/media/pci/intel/ipu6/ipu6-isys-csi2.c
+++ b/drivers/media/pci/intel/ipu6/ipu6-isys-csi2.c
@@ -556,7 +556,7 @@ int ipu6_isys_csi2_init(struct ipu6_isys_csi2 *csi2,
return ret;
}
-void ipu6_isys_csi2_sof_event_by_stream(struct ipu6_isys_stream *stream)
+void ipu6_isys_csi2_sof_event_by_stream(struct ipu_isys_stream *stream)
{
struct video_device *vdev = stream->asd->sd.devnode;
struct device *dev = &stream->isys->adev->auxdev.dev;
@@ -572,7 +572,7 @@ void ipu6_isys_csi2_sof_event_by_stream(struct ipu6_isys_stream *stream)
csi2->port, ev.u.frame_sync.frame_sequence, stream->vc);
}
-void ipu6_isys_csi2_eof_event_by_stream(struct ipu6_isys_stream *stream)
+void ipu6_isys_csi2_eof_event_by_stream(struct ipu_isys_stream *stream)
{
struct device *dev = &stream->isys->adev->auxdev.dev;
struct ipu6_isys_csi2 *csi2 = to_ipu6_isys_csi2(stream->asd);
diff --git a/drivers/media/pci/intel/ipu6/ipu6-isys-csi2.h b/drivers/media/pci/intel/ipu6/ipu6-isys-csi2.h
index 24f01eed7e93..9fb9ae1cc608 100644
--- a/drivers/media/pci/intel/ipu6/ipu6-isys-csi2.h
+++ b/drivers/media/pci/intel/ipu6/ipu6-isys-csi2.h
@@ -16,7 +16,7 @@ struct v4l2_mbus_frame_desc_entry;
struct ipu6_isys_video;
struct ipu6_isys;
-struct ipu6_isys_stream;
+struct ipu_isys_stream;
#define NR_OF_CSI2_VC 16
#define INVALID_VC_ID -1
@@ -65,8 +65,8 @@ s64 ipu6_isys_csi2_get_link_freq(struct ipu6_isys_csi2 *csi2);
int ipu6_isys_csi2_init(struct ipu6_isys_csi2 *csi2, struct ipu6_isys *isys,
void __iomem *base, unsigned int index);
void ipu6_isys_csi2_cleanup(struct ipu6_isys_csi2 *csi2);
-void ipu6_isys_csi2_sof_event_by_stream(struct ipu6_isys_stream *stream);
-void ipu6_isys_csi2_eof_event_by_stream(struct ipu6_isys_stream *stream);
+void ipu6_isys_csi2_sof_event_by_stream(struct ipu_isys_stream *stream);
+void ipu6_isys_csi2_eof_event_by_stream(struct ipu_isys_stream *stream);
void ipu6_isys_register_errors(struct ipu6_isys_csi2 *csi2);
void ipu6_isys_csi2_error(struct ipu6_isys_csi2 *csi2);
int ipu6_isys_csi2_get_remote_desc(u32 source_stream,
diff --git a/drivers/media/pci/intel/ipu6/ipu6-isys-queue.c b/drivers/media/pci/intel/ipu6/ipu6-isys-queue.c
index ad813323e62b..bd53c51a28a0 100644
--- a/drivers/media/pci/intel/ipu6/ipu6-isys-queue.c
+++ b/drivers/media/pci/intel/ipu6/ipu6-isys-queue.c
@@ -27,8 +27,8 @@ static int ipu6_isys_buf_init(struct vb2_buffer *vb)
struct ipu6_isys *isys = vb2_get_drv_priv(vb->vb2_queue);
struct sg_table *sg = vb2_dma_sg_plane_desc(vb, 0);
struct vb2_v4l2_buffer *vvb = to_vb2_v4l2_buffer(vb);
- struct ipu6_isys_video_buffer *ivb =
- vb2_buffer_to_ipu6_isys_video_buffer(vvb);
+ struct ipu_isys_video_buffer *ivb =
+ vb2_buffer_to_isys_video_buffer(vvb);
int ret;
ret = ipu6_dma_map_sgtable(isys->adev, sg, DMA_TO_DEVICE, 0);
@@ -45,8 +45,8 @@ static void ipu6_isys_buf_cleanup(struct vb2_buffer *vb)
struct ipu6_isys *isys = vb2_get_drv_priv(vb->vb2_queue);
struct sg_table *sg = vb2_dma_sg_plane_desc(vb, 0);
struct vb2_v4l2_buffer *vvb = to_vb2_v4l2_buffer(vb);
- struct ipu6_isys_video_buffer *ivb =
- vb2_buffer_to_ipu6_isys_video_buffer(vvb);
+ struct ipu_isys_video_buffer *ivb =
+ vb2_buffer_to_isys_video_buffer(vvb);
ivb->dma_addr = 0;
ipu6_dma_unmap_sgtable(isys->adev, sg, DMA_TO_DEVICE, 0);
@@ -56,7 +56,7 @@ static int ipu6_isys_queue_setup(struct vb2_queue *q, unsigned int *num_buffers,
unsigned int *num_planes, unsigned int sizes[],
struct device *alloc_devs[])
{
- struct ipu6_isys_queue *aq = vb2_queue_to_isys_queue(q);
+ struct ipu_isys_queue *aq = vb2_queue_to_isys_queue(q);
struct ipu6_isys_video *av = ipu6_isys_queue_to_video(aq);
struct device *dev = &av->isys->adev->auxdev.dev;
u32 size = ipu6_isys_get_data_size(av);
@@ -77,7 +77,7 @@ static int ipu6_isys_queue_setup(struct vb2_queue *q, unsigned int *num_buffers,
static int ipu6_isys_buf_prepare(struct vb2_buffer *vb)
{
- struct ipu6_isys_queue *aq = vb2_queue_to_isys_queue(vb->vb2_queue);
+ struct ipu_isys_queue *aq = vb2_queue_to_isys_queue(vb->vb2_queue);
struct ipu6_isys_video *av = ipu6_isys_queue_to_video(aq);
struct device *dev = &av->isys->adev->auxdev.dev;
u32 bytesperline = ipu6_isys_get_bytes_per_line(av);
@@ -99,11 +99,11 @@ static int ipu6_isys_buf_prepare(struct vb2_buffer *vb)
* Queue a buffer list back to incoming or active queues. The buffers
* are removed from the buffer list.
*/
-void ipu6_isys_buffer_list_queue(struct ipu6_isys_buffer_list *bl,
+void ipu6_isys_buffer_list_queue(struct ipu_isys_buffer_list *bl,
unsigned long op_flags,
enum vb2_buffer_state state)
{
- struct ipu6_isys_buffer *ib, *ib_safe;
+ struct ipu_isys_buffer *ib, *ib_safe;
unsigned long flags;
bool first = true;
@@ -111,13 +111,13 @@ void ipu6_isys_buffer_list_queue(struct ipu6_isys_buffer_list *bl,
return;
WARN_ON_ONCE(!bl->nbufs);
- WARN_ON_ONCE(op_flags & IPU6_ISYS_BUFFER_LIST_FL_ACTIVE &&
- op_flags & IPU6_ISYS_BUFFER_LIST_FL_INCOMING);
+ WARN_ON_ONCE(op_flags & IPU_ISYS_BUFFER_LIST_ACTIVE &&
+ op_flags & IPU_ISYS_BUFFER_LIST_INCOMING);
list_for_each_entry_safe(ib, ib_safe, &bl->head, head) {
struct ipu6_isys_video *av;
- struct vb2_buffer *vb = ipu6_isys_buffer_to_vb2_buffer(ib);
- struct ipu6_isys_queue *aq =
+ struct vb2_buffer *vb = ipu_isys_buffer_to_vb2_buffer(ib);
+ struct ipu_isys_queue *aq =
vb2_queue_to_isys_queue(vb->vb2_queue);
struct device *dev;
@@ -125,13 +125,13 @@ void ipu6_isys_buffer_list_queue(struct ipu6_isys_buffer_list *bl,
dev = &av->isys->adev->auxdev.dev;
spin_lock_irqsave(&aq->lock, flags);
list_del(&ib->head);
- if (op_flags & IPU6_ISYS_BUFFER_LIST_FL_ACTIVE)
+ if (op_flags & IPU_ISYS_BUFFER_LIST_ACTIVE)
list_add(&ib->head, &aq->active);
- else if (op_flags & IPU6_ISYS_BUFFER_LIST_FL_INCOMING)
+ else if (op_flags & IPU_ISYS_BUFFER_LIST_INCOMING)
list_add_tail(&ib->head, &aq->incoming);
spin_unlock_irqrestore(&aq->lock, flags);
- if (op_flags & IPU6_ISYS_BUFFER_LIST_FL_SET_STATE)
+ if (op_flags & IPU_ISYS_BUFFER_LIST_SET_STATE)
vb2_buffer_done(vb, state);
if (first) {
@@ -152,22 +152,22 @@ void ipu6_isys_buffer_list_queue(struct ipu6_isys_buffer_list *bl,
* have been queued to firmware and the *firmware streamon fails for a
* reason or another.
*/
-static void flush_firmware_streamon_fail(struct ipu6_isys_stream *stream)
+static void flush_firmware_streamon_fail(struct ipu_isys_stream *stream)
{
struct device *dev = &stream->isys->adev->auxdev.dev;
- struct ipu6_isys_queue *aq;
+ struct ipu_isys_queue *aq;
unsigned long flags;
lockdep_assert_held(&stream->mutex);
list_for_each_entry(aq, &stream->queues, node) {
struct ipu6_isys_video *av = ipu6_isys_queue_to_video(aq);
- struct ipu6_isys_buffer *ib, *ib_safe;
+ struct ipu_isys_buffer *ib, *ib_safe;
spin_lock_irqsave(&aq->lock, flags);
list_for_each_entry_safe(ib, ib_safe, &aq->active, head) {
struct vb2_buffer *vb =
- ipu6_isys_buffer_to_vb2_buffer(ib);
+ ipu_isys_buffer_to_vb2_buffer(ib);
list_del(&ib->head);
if (av->streaming) {
@@ -181,7 +181,7 @@ static void flush_firmware_streamon_fail(struct ipu6_isys_stream *stream)
/* Queue not yet streaming, return to user. */
dev_dbg(dev, "%s: return %u back to videobuf2\n",
av->vdev.name, vb->index);
- vb2_buffer_done(ipu6_isys_buffer_to_vb2_buffer(ib),
+ vb2_buffer_done(ipu_isys_buffer_to_vb2_buffer(ib),
VB2_BUF_STATE_QUEUED);
}
spin_unlock_irqrestore(&aq->lock, flags);
@@ -193,19 +193,19 @@ static void flush_firmware_streamon_fail(struct ipu6_isys_stream *stream)
* that contains one entry from each video buffer queue. If a buffer can't be
* obtained from every queue, the buffers are returned back to the queue.
*/
-static int buffer_list_get(struct ipu6_isys_stream *stream,
- struct ipu6_isys_buffer_list *bl)
+static int buffer_list_get(struct ipu_isys_stream *stream,
+ struct ipu_isys_buffer_list *bl)
{
struct device *dev = &stream->isys->adev->auxdev.dev;
- struct ipu6_isys_queue *aq;
+ struct ipu_isys_queue *aq;
unsigned long flags;
- unsigned long buf_flag = IPU6_ISYS_BUFFER_LIST_FL_INCOMING;
+ unsigned long buf_flag = IPU_ISYS_BUFFER_LIST_INCOMING;
bl->nbufs = 0;
INIT_LIST_HEAD(&bl->head);
list_for_each_entry(aq, &stream->queues, node) {
- struct ipu6_isys_buffer *ib;
+ struct ipu_isys_buffer *ib;
spin_lock_irqsave(&aq->lock, flags);
if (list_empty(&aq->incoming)) {
@@ -215,12 +215,12 @@ static int buffer_list_get(struct ipu6_isys_stream *stream,
return -ENODATA;
}
- ib = list_last_entry(&aq->incoming,
- struct ipu6_isys_buffer, head);
+ ib = list_last_entry(&aq->incoming, struct ipu_isys_buffer,
+ head);
dev_dbg(dev, "buffer: %s: buffer %u\n",
ipu6_isys_queue_to_video(aq)->vdev.name,
- ipu6_isys_buffer_to_vb2_buffer(ib)->index);
+ ipu_isys_buffer_to_vb2_buffer(ib)->index);
list_del(&ib->head);
list_add(&ib->head, &bl->head);
spin_unlock_irqrestore(&aq->lock, flags);
@@ -237,10 +237,10 @@ static void
ipu6_isys_buf_to_fw_frame_buf_pin(struct vb2_buffer *vb,
struct ipu6_fw_isys_frame_buff_set_abi *set)
{
- struct ipu6_isys_queue *aq = vb2_queue_to_isys_queue(vb->vb2_queue);
+ struct ipu_isys_queue *aq = vb2_queue_to_isys_queue(vb->vb2_queue);
struct vb2_v4l2_buffer *vvb = to_vb2_v4l2_buffer(vb);
- struct ipu6_isys_video_buffer *ivb =
- vb2_buffer_to_ipu6_isys_video_buffer(vvb);
+ struct ipu_isys_video_buffer *ivb =
+ vb2_buffer_to_isys_video_buffer(vvb);
set->output_pins[aq->fw_output].addr = ivb->dma_addr;
set->output_pins[aq->fw_output].out_buf_id = vb->index + 1;
@@ -251,12 +251,11 @@ ipu6_isys_buf_to_fw_frame_buf_pin(struct vb2_buffer *vb,
* buffer list is not modified.
*/
#define IPU6_ISYS_FRAME_NUM_THRESHOLD (30)
-void
-ipu6_isys_buf_to_fw_frame_buf(struct ipu6_fw_isys_frame_buff_set_abi *set,
- struct ipu6_isys_stream *stream,
- struct ipu6_isys_buffer_list *bl)
+void ipu6_isys_buf_to_fw_frame_buf(struct ipu6_fw_isys_frame_buff_set_abi *set,
+ struct ipu_isys_stream *stream,
+ struct ipu_isys_buffer_list *bl)
{
- struct ipu6_isys_buffer *ib;
+ struct ipu_isys_buffer *ib;
WARN_ON(!bl->nbufs);
@@ -279,7 +278,7 @@ ipu6_isys_buf_to_fw_frame_buf(struct ipu6_fw_isys_frame_buff_set_abi *set,
}
list_for_each_entry(ib, &bl->head, head) {
- struct vb2_buffer *vb = ipu6_isys_buffer_to_vb2_buffer(ib);
+ struct vb2_buffer *vb = ipu_isys_buffer_to_vb2_buffer(ib);
ipu6_isys_buf_to_fw_frame_buf_pin(vb, set);
}
@@ -287,11 +286,11 @@ ipu6_isys_buf_to_fw_frame_buf(struct ipu6_fw_isys_frame_buff_set_abi *set,
/* Start streaming for real. The buffer list must be available. */
static int ipu6_isys_stream_start(struct ipu6_isys_video *av,
- struct ipu6_isys_buffer_list *bl, bool error)
+ struct ipu_isys_buffer_list *bl, bool error)
{
- struct ipu6_isys_stream *stream = av->stream;
+ struct ipu_isys_stream *stream = av->stream;
struct device *dev = &stream->isys->adev->auxdev.dev;
- struct ipu6_isys_buffer_list __bl;
+ struct ipu_isys_buffer_list __bl;
int ret;
mutex_lock(&stream->isys->stream_mutex);
@@ -321,8 +320,7 @@ static int ipu6_isys_stream_start(struct ipu6_isys_video *av,
ipu6_isys_buf_to_fw_frame_buf(buf, stream, bl);
ipu6_fw_isys_dump_frame_buff_set(dev, buf,
stream->nr_output_pins);
- ipu6_isys_buffer_list_queue(bl, IPU6_ISYS_BUFFER_LIST_FL_ACTIVE,
- 0);
+ ipu6_isys_buffer_list_queue(bl, IPU_ISYS_BUFFER_LIST_ACTIVE, 0);
ret = ipu6_fw_isys_complex_cmd(stream->isys,
stream->stream_handle, buf,
msg->dma_addr, sizeof(*buf),
@@ -333,12 +331,11 @@ static int ipu6_isys_stream_start(struct ipu6_isys_video *av,
out_requeue:
if (bl && bl->nbufs)
- ipu6_isys_buffer_list_queue(bl,
- IPU6_ISYS_BUFFER_LIST_FL_INCOMING |
- (error ?
- IPU6_ISYS_BUFFER_LIST_FL_SET_STATE :
- 0), error ? VB2_BUF_STATE_ERROR :
- VB2_BUF_STATE_QUEUED);
+ ipu6_isys_buffer_list_queue(
+ bl,
+ IPU_ISYS_BUFFER_LIST_INCOMING |
+ (error ? IPU_ISYS_BUFFER_LIST_SET_STATE : 0),
+ error ? VB2_BUF_STATE_ERROR : VB2_BUF_STATE_QUEUED);
flush_firmware_streamon_fail(stream);
return ret;
@@ -346,18 +343,18 @@ static int ipu6_isys_stream_start(struct ipu6_isys_video *av,
static void buf_queue(struct vb2_buffer *vb)
{
- struct ipu6_isys_queue *aq = vb2_queue_to_isys_queue(vb->vb2_queue);
+ struct ipu_isys_queue *aq = vb2_queue_to_isys_queue(vb->vb2_queue);
struct ipu6_isys_video *av = ipu6_isys_queue_to_video(aq);
struct vb2_v4l2_buffer *vvb = to_vb2_v4l2_buffer(vb);
- struct ipu6_isys_video_buffer *ivb =
- vb2_buffer_to_ipu6_isys_video_buffer(vvb);
- struct ipu6_isys_buffer *ib = &ivb->ib;
+ struct ipu_isys_video_buffer *ivb =
+ vb2_buffer_to_isys_video_buffer(vvb);
+ struct ipu_isys_buffer *ib = &ivb->ib;
struct device *dev = &av->isys->adev->auxdev.dev;
struct media_pipeline *media_pipe =
media_entity_pipeline(&av->vdev.entity);
struct ipu6_fw_isys_frame_buff_set_abi *buf = NULL;
- struct ipu6_isys_stream *stream = av->stream;
- struct ipu6_isys_buffer_list bl;
+ struct ipu_isys_stream *stream = av->stream;
+ struct ipu_isys_buffer_list bl;
struct isys_fw_msgs *msg;
unsigned long flags;
dma_addr_t dma;
@@ -419,10 +416,10 @@ static void buf_queue(struct vb2_buffer *vb)
* firmware since we could get a buffer event back before we
* have queued them ourselves to the active queue.
*/
- ipu6_isys_buffer_list_queue(&bl, IPU6_ISYS_BUFFER_LIST_FL_ACTIVE, 0);
+ ipu6_isys_buffer_list_queue(&bl, IPU_ISYS_BUFFER_LIST_ACTIVE, 0);
- ret = ipu6_fw_isys_complex_cmd(stream->isys, stream->stream_handle,
- buf, msg->dma_addr, sizeof(*buf),
+ ret = ipu6_fw_isys_complex_cmd(stream->isys, stream->stream_handle, buf,
+ msg->dma_addr, sizeof(*buf),
IPU6_FW_ISYS_SEND_TYPE_STREAM_CAPTURE);
if (ret < 0)
dev_err(dev, "send stream capture failed\n");
@@ -431,7 +428,7 @@ static void buf_queue(struct vb2_buffer *vb)
mutex_unlock(&stream->mutex);
}
-static int ipu6_isys_link_fmt_validate(struct ipu6_isys_queue *aq)
+static int ipu6_isys_link_fmt_validate(struct ipu_isys_queue *aq)
{
struct v4l2_mbus_framefmt format;
struct ipu6_isys_video *av = ipu6_isys_queue_to_video(aq);
@@ -476,11 +473,11 @@ static int ipu6_isys_link_fmt_validate(struct ipu6_isys_queue *aq)
return 0;
}
-static void return_buffers(struct ipu6_isys_queue *aq,
+static void return_buffers(struct ipu_isys_queue *aq,
enum vb2_buffer_state state)
{
struct ipu6_isys_video *av = ipu6_isys_queue_to_video(aq);
- struct ipu6_isys_buffer *ib;
+ struct ipu_isys_buffer *ib;
bool need_reset = false;
unsigned long flags;
@@ -488,9 +485,9 @@ static void return_buffers(struct ipu6_isys_queue *aq,
while (!list_empty(&aq->incoming)) {
struct vb2_buffer *vb;
- ib = list_first_entry(&aq->incoming, struct ipu6_isys_buffer,
+ ib = list_first_entry(&aq->incoming, struct ipu_isys_buffer,
head);
- vb = ipu6_isys_buffer_to_vb2_buffer(ib);
+ vb = ipu_isys_buffer_to_vb2_buffer(ib);
list_del(&ib->head);
spin_unlock_irqrestore(&aq->lock, flags);
@@ -507,9 +504,9 @@ static void return_buffers(struct ipu6_isys_queue *aq,
while (!list_empty(&aq->active)) {
struct vb2_buffer *vb;
- ib = list_first_entry(&aq->active, struct ipu6_isys_buffer,
+ ib = list_first_entry(&aq->active, struct ipu_isys_buffer,
head);
- vb = ipu6_isys_buffer_to_vb2_buffer(ib);
+ vb = ipu_isys_buffer_to_vb2_buffer(ib);
list_del(&ib->head);
spin_unlock_irqrestore(&aq->lock, flags);
@@ -538,13 +535,13 @@ static void ipu6_isys_stream_cleanup(struct ipu6_isys_video *av)
static int start_streaming(struct vb2_queue *q, unsigned int count)
{
- struct ipu6_isys_queue *aq = vb2_queue_to_isys_queue(q);
+ struct ipu_isys_queue *aq = vb2_queue_to_isys_queue(q);
struct ipu6_isys_video *av = ipu6_isys_queue_to_video(aq);
struct device *dev = &av->isys->adev->auxdev.dev;
- const struct ipu6_isys_pixelformat *pfmt =
+ const struct ipu_isys_pixelformat *pfmt =
ipu6_isys_get_isys_format(ipu6_isys_get_format(av), 0);
- struct ipu6_isys_buffer_list __bl, *bl = NULL;
- struct ipu6_isys_stream *stream;
+ struct ipu_isys_buffer_list __bl, *bl = NULL;
+ struct ipu_isys_stream *stream;
struct media_entity *source_entity = NULL;
int nr_queues, ret;
@@ -626,9 +623,9 @@ static int start_streaming(struct vb2_queue *q, unsigned int count)
static void stop_streaming(struct vb2_queue *q)
{
- struct ipu6_isys_queue *aq = vb2_queue_to_isys_queue(q);
+ struct ipu_isys_queue *aq = vb2_queue_to_isys_queue(q);
struct ipu6_isys_video *av = ipu6_isys_queue_to_video(aq);
- struct ipu6_isys_stream *stream = av->stream;
+ struct ipu_isys_stream *stream = av->stream;
mutex_lock(&stream->mutex);
@@ -652,7 +649,7 @@ static void stop_streaming(struct vb2_queue *q)
}
static unsigned int
-get_sof_sequence_by_timestamp(struct ipu6_isys_stream *stream, u64 time)
+get_sof_sequence_by_timestamp(struct ipu_isys_stream *stream, u64 time)
{
struct ipu6_isys *isys = stream->isys;
struct device *dev = &isys->adev->auxdev.dev;
@@ -665,14 +662,14 @@ get_sof_sequence_by_timestamp(struct ipu6_isys_stream *stream, u64 time)
if (time == 0)
return atomic_read(&stream->sequence) - 1;
- for (i = 0; i < IPU6_ISYS_MAX_PARALLEL_SOF; i++)
+ for (i = 0; i < IPU_ISYS_MAX_PARALLEL_SOF; i++)
if (time == stream->seq[i].timestamp) {
dev_dbg(dev, "sof: using seq nr %u for ts %llu\n",
stream->seq[i].sequence, time);
return stream->seq[i].sequence;
}
- for (i = 0; i < IPU6_ISYS_MAX_PARALLEL_SOF; i++)
+ for (i = 0; i < IPU_ISYS_MAX_PARALLEL_SOF; i++)
dev_dbg(dev, "sof: sequence %u, timestamp value %llu\n",
stream->seq[i].sequence, stream->seq[i].timestamp);
@@ -694,15 +691,15 @@ static u64 get_sof_ns_delta(struct ipu6_isys_video *av, u64 timestamp)
return ipu6_buttress_tsc_ticks_to_ns(delta, isp);
}
-static void
-ipu6_isys_buf_calc_sequence_time(struct ipu6_isys_buffer *ib, u64 time)
+static void ipu6_isys_buf_calc_sequence_time(struct ipu_isys_buffer *ib,
+ u64 time)
{
- struct vb2_buffer *vb = ipu6_isys_buffer_to_vb2_buffer(ib);
+ struct vb2_buffer *vb = ipu_isys_buffer_to_vb2_buffer(ib);
struct vb2_v4l2_buffer *vbuf = to_vb2_v4l2_buffer(vb);
- struct ipu6_isys_queue *aq = vb2_queue_to_isys_queue(vb->vb2_queue);
+ struct ipu_isys_queue *aq = vb2_queue_to_isys_queue(vb->vb2_queue);
struct ipu6_isys_video *av = ipu6_isys_queue_to_video(aq);
struct device *dev = &av->isys->adev->auxdev.dev;
- struct ipu6_isys_stream *stream = av->stream;
+ struct ipu_isys_stream *stream = av->stream;
u64 ns;
u32 sequence;
@@ -718,9 +715,9 @@ ipu6_isys_buf_calc_sequence_time(struct ipu6_isys_buffer *ib, u64 time)
vbuf->vb2_buf.timestamp);
}
-static void ipu6_isys_queue_buf_done(struct ipu6_isys_buffer *ib)
+static void ipu6_isys_queue_buf_done(struct ipu_isys_buffer *ib)
{
- struct vb2_buffer *vb = ipu6_isys_buffer_to_vb2_buffer(ib);
+ struct vb2_buffer *vb = ipu_isys_buffer_to_vb2_buffer(ib);
if (atomic_read(&ib->str2mmio_flag)) {
vb2_buffer_done(vb, VB2_BUF_STATE_ERROR);
@@ -734,14 +731,13 @@ static void ipu6_isys_queue_buf_done(struct ipu6_isys_buffer *ib)
}
}
-static void
-ipu6_stream_buf_ready(struct ipu6_isys_stream *stream, u8 pin_id, u32 pin_addr,
- u64 time, bool error_check)
+static void ipu6_stream_buf_ready(struct ipu_isys_stream *stream, u8 pin_id,
+ u32 pin_addr, u64 time, bool error_check)
{
- struct ipu6_isys_queue *aq = stream->output_pins_queue[pin_id];
+ struct ipu_isys_queue *aq = stream->output_pins_queue[pin_id];
struct ipu6_isys *isys = stream->isys;
struct device *dev = &isys->adev->auxdev.dev;
- struct ipu6_isys_buffer *ib;
+ struct ipu_isys_buffer *ib;
struct vb2_buffer *vb;
unsigned long flags;
bool first = true;
@@ -755,13 +751,13 @@ ipu6_stream_buf_ready(struct ipu6_isys_stream *stream, u8 pin_id, u32 pin_addr,
}
list_for_each_entry_reverse(ib, &aq->active, head) {
- struct ipu6_isys_video_buffer *ivb;
+ struct ipu_isys_video_buffer *ivb;
struct vb2_v4l2_buffer *vvb;
dma_addr_t addr;
- vb = ipu6_isys_buffer_to_vb2_buffer(ib);
+ vb = ipu_isys_buffer_to_vb2_buffer(ib);
vvb = to_vb2_v4l2_buffer(vb);
- ivb = vb2_buffer_to_ipu6_isys_video_buffer(vvb);
+ ivb = vb2_buffer_to_isys_video_buffer(vvb);
addr = ivb->dma_addr;
if (pin_addr != addr) {
@@ -799,7 +795,7 @@ ipu6_stream_buf_ready(struct ipu6_isys_stream *stream, u8 pin_id, u32 pin_addr,
spin_unlock_irqrestore(&aq->lock, flags);
}
-void ipu6_isys_queue_buf_ready(struct ipu6_isys_stream *stream,
+void ipu6_isys_queue_buf_ready(struct ipu_isys_stream *stream,
struct ipu6_fw_isys_resp_info_abi *info)
{
u64 time = (u64)info->timestamp[1] << 32 | info->timestamp[0];
@@ -818,7 +814,7 @@ static const struct vb2_ops ipu6_isys_queue_ops = {
.buf_queue = buf_queue,
};
-int ipu6_isys_queue_init(struct ipu6_isys_queue *aq)
+int ipu6_isys_queue_init(struct ipu_isys_queue *aq)
{
struct ipu6_isys *isys = ipu6_isys_queue_to_video(aq)->isys;
struct ipu6_isys_video *av = ipu6_isys_queue_to_video(aq);
diff --git a/drivers/media/pci/intel/ipu6/ipu6-isys-queue.h b/drivers/media/pci/intel/ipu6/ipu6-isys-queue.h
index b4b14e0ef044..0554578689d5 100644
--- a/drivers/media/pci/intel/ipu6/ipu6-isys-queue.h
+++ b/drivers/media/pci/intel/ipu6/ipu6-isys-queue.h
@@ -7,14 +7,13 @@
#include "ipu-isys.h"
#include "ipu6-fw-isys.h"
-void ipu6_isys_buffer_list_queue(struct ipu6_isys_buffer_list *bl,
+void ipu6_isys_buffer_list_queue(struct ipu_isys_buffer_list *bl,
unsigned long op_flags,
enum vb2_buffer_state state);
-void
-ipu6_isys_buf_to_fw_frame_buf(struct ipu6_fw_isys_frame_buff_set_abi *set,
- struct ipu6_isys_stream *stream,
- struct ipu6_isys_buffer_list *bl);
-void ipu6_isys_queue_buf_ready(struct ipu6_isys_stream *stream,
+void ipu6_isys_buf_to_fw_frame_buf(struct ipu6_fw_isys_frame_buff_set_abi *set,
+ struct ipu_isys_stream *stream,
+ struct ipu_isys_buffer_list *bl);
+void ipu6_isys_queue_buf_ready(struct ipu_isys_stream *stream,
struct ipu6_fw_isys_resp_info_abi *info);
-int ipu6_isys_queue_init(struct ipu6_isys_queue *aq);
+int ipu6_isys_queue_init(struct ipu_isys_queue *aq);
#endif /* IPU6_ISYS_QUEUE_H */
diff --git a/drivers/media/pci/intel/ipu6/ipu6-isys-video.c b/drivers/media/pci/intel/ipu6/ipu6-isys-video.c
index 44b88b546f68..d9b433521ba7 100644
--- a/drivers/media/pci/intel/ipu6/ipu6-isys-video.c
+++ b/drivers/media/pci/intel/ipu6/ipu6-isys-video.c
@@ -36,7 +36,7 @@
#include "ipu6-isys-video.h"
#include "ipu6-platform-regs.h"
-const struct ipu6_isys_pixelformat ipu6_isys_pfmts[] = {
+const struct ipu_isys_pixelformat ipu6_isys_pfmts[] = {
{ V4L2_PIX_FMT_SBGGR12, 16, 12, MEDIA_BUS_FMT_SBGGR12_1X12,
IPU6_FW_ISYS_FRAME_FORMAT_RAW16 },
{ V4L2_PIX_FMT_SGBRG12, 16, 12, MEDIA_BUS_FMT_SGBRG12_1X12,
@@ -112,14 +112,14 @@ static int video_open(struct file *file)
return v4l2_fh_open(file);
}
-const struct ipu6_isys_pixelformat *
+const struct ipu_isys_pixelformat *
ipu6_isys_get_isys_format(u32 pixelformat, u32 type)
{
- const struct ipu6_isys_pixelformat *default_pfmt = NULL;
+ const struct ipu_isys_pixelformat *default_pfmt = NULL;
unsigned int i;
for (i = 0; i < ARRAY_SIZE(ipu6_isys_pfmts); i++) {
- const struct ipu6_isys_pixelformat *pfmt = &ipu6_isys_pfmts[i];
+ const struct ipu_isys_pixelformat *pfmt = &ipu6_isys_pfmts[i];
if (type && ((!pfmt->is_meta &&
type != V4L2_BUF_TYPE_VIDEO_CAPTURE) ||
@@ -229,7 +229,7 @@ static void ipu6_isys_try_fmt_cap(struct ipu6_isys_video *av, u32 type,
u32 *format, u32 *width, u32 *height,
u32 *bytesperline, u32 *sizeimage)
{
- const struct ipu6_isys_pixelformat *pfmt =
+ const struct ipu_isys_pixelformat *pfmt =
ipu6_isys_get_isys_format(*format, type);
*format = pfmt->pixelformat;
@@ -443,10 +443,10 @@ static int ipu6_isys_fw_pin_cfg(struct ipu6_isys_video *av,
struct v4l2_subdev *sd = media_entity_to_v4l2_subdev(src_pad->entity);
struct ipu6_fw_isys_input_pin_info_abi *input_pin;
struct ipu6_fw_isys_output_pin_info_abi *output_pin;
- struct ipu6_isys_stream *stream = av->stream;
- struct ipu6_isys_queue *aq = &av->aq;
+ struct ipu_isys_stream *stream = av->stream;
+ struct ipu_isys_queue *aq = &av->aq;
struct v4l2_mbus_framefmt fmt;
- const struct ipu6_isys_pixelformat *pfmt =
+ const struct ipu_isys_pixelformat *pfmt =
ipu6_isys_get_isys_format(ipu6_isys_get_format(av), 0);
struct v4l2_rect v4l2_crop;
struct ipu6_isys *isys = av->isys;
@@ -515,14 +515,14 @@ static int ipu6_isys_fw_pin_cfg(struct ipu6_isys_video *av,
}
static int start_stream_firmware(struct ipu6_isys_video *av,
- struct ipu6_isys_buffer_list *bl)
+ struct ipu_isys_buffer_list *bl)
{
struct ipu6_fw_isys_stream_cfg_data_abi *stream_cfg;
struct ipu6_fw_isys_frame_buff_set_abi *buf = NULL;
- struct ipu6_isys_stream *stream = av->stream;
+ struct ipu_isys_stream *stream = av->stream;
struct device *dev = &av->isys->adev->auxdev.dev;
struct isys_fw_msgs *msg = NULL;
- struct ipu6_isys_queue *aq;
+ struct ipu_isys_queue *aq;
int ret, retout, tout;
u16 send_type;
@@ -589,8 +589,7 @@ static int start_stream_firmware(struct ipu6_isys_video *av,
}
buf = &msg->fw_msg.frame;
ipu6_isys_buf_to_fw_frame_buf(buf, stream, bl);
- ipu6_isys_buffer_list_queue(bl,
- IPU6_ISYS_BUFFER_LIST_FL_ACTIVE, 0);
+ ipu6_isys_buffer_list_queue(bl, IPU_ISYS_BUFFER_LIST_ACTIVE, 0);
}
reinit_completion(&stream->stream_start_completion);
@@ -658,7 +657,7 @@ static int start_stream_firmware(struct ipu6_isys_video *av,
static void stop_streaming_firmware(struct ipu6_isys_video *av)
{
struct device *dev = &av->isys->adev->auxdev.dev;
- struct ipu6_isys_stream *stream = av->stream;
+ struct ipu_isys_stream *stream = av->stream;
int ret, tout;
reinit_completion(&stream->stream_stop_completion);
@@ -683,7 +682,7 @@ static void stop_streaming_firmware(struct ipu6_isys_video *av)
static void close_streaming_firmware(struct ipu6_isys_video *av)
{
- struct ipu6_isys_stream *stream = av->stream;
+ struct ipu_isys_stream *stream = av->stream;
struct device *dev = &av->isys->adev->auxdev.dev;
int ret, tout;
@@ -712,7 +711,7 @@ int ipu6_isys_video_prepare_stream(struct ipu6_isys_video *av,
struct media_entity *source_entity,
int nr_queues)
{
- struct ipu6_isys_stream *stream = av->stream;
+ struct ipu_isys_stream *stream = av->stream;
struct ipu6_isys_csi2 *csi2;
if (WARN_ON(stream->nr_streaming))
@@ -796,7 +795,7 @@ void ipu6_isys_configure_stream_watermark(struct ipu6_isys_video *av,
static void calculate_stream_datarate(struct ipu6_isys_video *av)
{
struct video_stream_watermark *watermark = &av->watermark;
- const struct ipu6_isys_pixelformat *pfmt =
+ const struct ipu_isys_pixelformat *pfmt =
ipu6_isys_get_isys_format(ipu6_isys_get_format(av), 0);
u32 pages_per_line, pb_bytes_per_line, pixels_per_line, bytes_per_line;
u64 line_time_ns, stream_data_rate;
@@ -840,7 +839,7 @@ void ipu6_isys_update_stream_watermark(struct ipu6_isys_video *av, bool state)
update_watermark_setting(av->isys);
}
-void ipu6_isys_put_stream(struct ipu6_isys_stream *stream)
+void ipu6_isys_put_stream(struct ipu_isys_stream *stream)
{
struct device *dev;
unsigned int i;
@@ -867,10 +866,10 @@ void ipu6_isys_put_stream(struct ipu6_isys_stream *stream)
spin_unlock_irqrestore(&stream->isys->streams_lock, flags);
}
-static struct ipu6_isys_stream *
+static struct ipu_isys_stream *
ipu6_isys_get_stream(struct ipu6_isys_video *av, struct ipu_isys_subdev *asd)
{
- struct ipu6_isys_stream *stream = NULL;
+ struct ipu_isys_stream *stream = NULL;
struct ipu6_isys *isys = av->isys;
unsigned long flags;
unsigned int i;
@@ -905,11 +904,11 @@ ipu6_isys_get_stream(struct ipu6_isys_video *av, struct ipu_isys_subdev *asd)
return stream;
}
-struct ipu6_isys_stream *
+struct ipu_isys_stream *
ipu6_isys_query_stream_by_handle(struct ipu6_isys *isys, u8 stream_handle)
{
unsigned long flags;
- struct ipu6_isys_stream *stream = NULL;
+ struct ipu_isys_stream *stream = NULL;
if (!isys)
return NULL;
@@ -930,10 +929,10 @@ ipu6_isys_query_stream_by_handle(struct ipu6_isys *isys, u8 stream_handle)
return stream;
}
-struct ipu6_isys_stream *
+struct ipu_isys_stream *
ipu6_isys_query_stream_by_source(struct ipu6_isys *isys, int source, u8 vc)
{
- struct ipu6_isys_stream *stream = NULL;
+ struct ipu_isys_stream *stream = NULL;
unsigned long flags;
unsigned int i;
@@ -981,10 +980,10 @@ static u64 get_stream_mask_by_pipeline(struct ipu6_isys_video *__av)
}
int ipu6_isys_video_set_streaming(struct ipu6_isys_video *av, int state,
- struct ipu6_isys_buffer_list *bl)
+ struct ipu_isys_buffer_list *bl)
{
struct v4l2_subdev_krouting *routing;
- struct ipu6_isys_stream *stream = av->stream;
+ struct ipu_isys_stream *stream = av->stream;
struct v4l2_subdev_state *subdev_state;
struct device *dev = &av->isys->adev->auxdev.dev;
struct v4l2_subdev *sd;
@@ -1166,7 +1165,7 @@ void ipu6_isys_fw_close(struct ipu6_isys *isys)
int ipu6_isys_setup_video(struct ipu6_isys_video *av,
struct media_entity **source_entity, int *nr_queues)
{
- const struct ipu6_isys_pixelformat *pfmt =
+ const struct ipu_isys_pixelformat *pfmt =
ipu6_isys_get_isys_format(ipu6_isys_get_format(av), 0);
struct device *dev = &av->isys->adev->auxdev.dev;
struct v4l2_mbus_frame_desc_entry entry;
diff --git a/drivers/media/pci/intel/ipu6/ipu6-isys-video.h b/drivers/media/pci/intel/ipu6/ipu6-isys-video.h
index 0b80d73173ff..086354f1b254 100644
--- a/drivers/media/pci/intel/ipu6/ipu6-isys-video.h
+++ b/drivers/media/pci/intel/ipu6/ipu6-isys-video.h
@@ -28,7 +28,7 @@ struct video_stream_watermark {
};
struct ipu6_isys_video {
- struct ipu6_isys_queue aq;
+ struct ipu_isys_queue aq;
/* Serialise access to other fields in the struct. */
struct mutex mutex;
struct media_pad pad;
@@ -37,7 +37,7 @@ struct ipu6_isys_video {
struct v4l2_meta_format meta_fmt;
struct ipu6_isys *isys;
struct ipu6_isys_csi2 *csi2;
- struct ipu6_isys_stream *stream;
+ struct ipu_isys_stream *stream;
unsigned int streaming;
struct video_stream_watermark watermark;
u32 source_stream;
@@ -48,26 +48,26 @@ struct ipu6_isys_video {
#define ipu6_isys_queue_to_video(__aq) \
container_of(__aq, struct ipu6_isys_video, aq)
-extern const struct ipu6_isys_pixelformat ipu6_isys_pfmts[];
-extern const struct ipu6_isys_pixelformat ipu6_isys_pfmts_packed[];
+extern const struct ipu_isys_pixelformat ipu6_isys_pfmts[];
+extern const struct ipu_isys_pixelformat ipu6_isys_pfmts_packed[];
-const struct ipu6_isys_pixelformat *
+const struct ipu_isys_pixelformat *
ipu6_isys_get_isys_format(u32 pixelformat, u32 code);
int ipu6_isys_video_prepare_stream(struct ipu6_isys_video *av,
struct media_entity *source_entity,
int nr_queues);
int ipu6_isys_video_set_streaming(struct ipu6_isys_video *av, int state,
- struct ipu6_isys_buffer_list *bl);
+ struct ipu_isys_buffer_list *bl);
int ipu6_isys_fw_open(struct ipu6_isys *isys);
void ipu6_isys_fw_close(struct ipu6_isys *isys);
int ipu6_isys_setup_video(struct ipu6_isys_video *av,
struct media_entity **source_entity, int *nr_queues);
int ipu6_isys_video_init(struct ipu6_isys_video *av);
void ipu6_isys_video_cleanup(struct ipu6_isys_video *av);
-void ipu6_isys_put_stream(struct ipu6_isys_stream *stream);
-struct ipu6_isys_stream *
+void ipu6_isys_put_stream(struct ipu_isys_stream *stream);
+struct ipu_isys_stream *
ipu6_isys_query_stream_by_handle(struct ipu6_isys *isys, u8 stream_handle);
-struct ipu6_isys_stream *
+struct ipu_isys_stream *
ipu6_isys_query_stream_by_source(struct ipu6_isys *isys, int source, u8 vc);
void ipu6_isys_configure_stream_watermark(struct ipu6_isys_video *av,
diff --git a/drivers/media/pci/intel/ipu6/ipu6-isys.c b/drivers/media/pci/intel/ipu6/ipu6-isys.c
index 7fc529b5a9f5..ed0784fc8a4b 100644
--- a/drivers/media/pci/intel/ipu6/ipu6-isys.c
+++ b/drivers/media/pci/intel/ipu6/ipu6-isys.c
@@ -250,7 +250,7 @@ static int isys_register_video_devices(struct ipu6_isys *isys)
i * NR_OF_CSI2_SRC_PADS + j);
av->isys = isys;
av->aq.vbq.buf_struct_size =
- sizeof(struct ipu6_isys_video_buffer);
+ sizeof(struct ipu_isys_video_buffer);
ret = ipu6_isys_video_init(av);
if (ret)
@@ -307,7 +307,7 @@ void isys_setup_hw(struct ipu6_isys *isys)
static void ipu6_isys_csi2_isr(struct ipu6_isys_csi2 *csi2)
{
- struct ipu6_isys_stream *stream;
+ struct ipu_isys_stream *stream;
unsigned int i;
u32 status;
int source;
@@ -983,7 +983,7 @@ static int alloc_fw_msg_bufs(struct ipu6_isys *isys, int amount)
return -ENOMEM;
}
-struct isys_fw_msgs *ipu6_get_fw_msg_buf(struct ipu6_isys_stream *stream)
+struct isys_fw_msgs *ipu6_get_fw_msg_buf(struct ipu_isys_stream *stream)
{
struct ipu6_isys *isys = stream->isys;
struct device *dev = &isys->adev->auxdev.dev;
@@ -1222,7 +1222,7 @@ static int isys_isr_one(struct ipu6_bus_device *adev)
{
struct ipu6_isys *isys = ipu6_bus_get_drvdata(adev);
struct ipu6_fw_isys_resp_info_abi *resp;
- struct ipu6_isys_stream *stream;
+ struct ipu_isys_stream *stream;
struct ipu6_isys_csi2 *csi2 = NULL;
u32 index;
u64 ts;
@@ -1293,7 +1293,7 @@ static int isys_isr_one(struct ipu6_bus_device *adev)
* get pin_data_ready event
*/
ipu6_put_fw_msg_buf(ipu6_bus_get_drvdata(adev), resp->buf_id);
- if (resp->pin_id < IPU6_ISYS_OUTPUT_PINS &&
+ if (resp->pin_id < IPU_ISYS_OUTPUT_PINS &&
stream->output_pins_queue[resp->pin_id])
ipu6_isys_queue_buf_ready(stream, resp);
else
@@ -1319,8 +1319,8 @@ static int isys_isr_one(struct ipu6_bus_device *adev)
"sof: handle %d: (index %u), timestamp 0x%16.16llx\n",
resp->stream_handle,
stream->seq[stream->seq_index].sequence, ts);
- stream->seq_index = (stream->seq_index + 1)
- % IPU6_ISYS_MAX_PARALLEL_SOF;
+ stream->seq_index =
+ (stream->seq_index + 1) % IPU_ISYS_MAX_PARALLEL_SOF;
break;
case IPU6_FW_ISYS_RESP_TYPE_FRAME_EOF:
ipu6_isys_csi2_eof_event_by_stream(stream);
diff --git a/drivers/media/pci/intel/ipu6/ipu6-isys.h b/drivers/media/pci/intel/ipu6/ipu6-isys.h
index f488e782c26e..1e90d0e64967 100644
--- a/drivers/media/pci/intel/ipu6/ipu6-isys.h
+++ b/drivers/media/pci/intel/ipu6/ipu6-isys.h
@@ -134,7 +134,7 @@ struct ipu6_isys {
u32 isr_csi2_bits;
u32 csi2_rx_ctrl_cached;
spinlock_t streams_lock;
- struct ipu6_isys_stream streams[IPU6_ISYS_MAX_STREAMS];
+ struct ipu_isys_stream streams[IPU6_ISYS_MAX_STREAMS];
int streams_ref_count[IPU6_ISYS_MAX_STREAMS];
void *fwcom;
u32 phy_termcal_val;
@@ -175,7 +175,7 @@ struct isys_fw_msgs {
dma_addr_t dma_addr;
};
-struct isys_fw_msgs *ipu6_get_fw_msg_buf(struct ipu6_isys_stream *stream);
+struct isys_fw_msgs *ipu6_get_fw_msg_buf(struct ipu_isys_stream *stream);
void ipu6_put_fw_msg_buf(struct ipu6_isys *isys, uintptr_t data);
void ipu6_cleanup_fw_msg_bufs(struct ipu6_isys *isys);
--
2.34.1
^ permalink raw reply related [flat|nested] 8+ messages in thread
* Re: [PATCH v3 0/5] media: intel/ipu6: continue on ipu7 code sharing preparation
2025-05-02 15:44 [PATCH v3 0/5] media: intel/ipu6: continue on ipu7 code sharing preparation Stanislaw Gruszka
` (4 preceding siblings ...)
2025-05-02 15:44 ` [PATCH v3 5/5] media: intel/ipu6: Rename common structures Stanislaw Gruszka
@ 2025-05-05 8:13 ` Sakari Ailus
2025-05-09 4:25 ` Stanislaw Gruszka
5 siblings, 1 reply; 8+ messages in thread
From: Sakari Ailus @ 2025-05-05 8:13 UTC (permalink / raw)
To: Stanislaw Gruszka; +Cc: linux-media, Bingbu Cao
Hi Stanislaw,
On Fri, May 02, 2025 at 05:44:41PM +0200, Stanislaw Gruszka wrote:
> Cleanups and code sharing preparation with ipu7 driver.
>
> This is on top of:
> https://git.linuxtv.org/sailus/media_tree.git/log/?h=devel
> Plus:
> https://lore.kernel.org/linux-media/20250317073856.162147-1-stanislaw.gruszka@linux.intel.com/
> https://lore.kernel.org/linux-media/20250428161643.321617-1-stanislaw.gruszka@linux.intel.com/#t
Thanks for these. I've applied patches from 1 to 3 for now.
Going forward, could you post cleanups and reorganising the code into
common bits in separate sets? It'll be easier to see where this is going
when all related patches are in the same set. Cleanups and fixes we can
merge earlier on anyway.
Thanks.
--
Kind regards,
Sakari Ailus
^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: [PATCH v3 0/5] media: intel/ipu6: continue on ipu7 code sharing preparation
2025-05-05 8:13 ` [PATCH v3 0/5] media: intel/ipu6: continue on ipu7 code sharing preparation Sakari Ailus
@ 2025-05-09 4:25 ` Stanislaw Gruszka
0 siblings, 0 replies; 8+ messages in thread
From: Stanislaw Gruszka @ 2025-05-09 4:25 UTC (permalink / raw)
To: Sakari Ailus; +Cc: linux-media, Bingbu Cao
Hi Sakari,
On Mon, May 05, 2025 at 08:13:02AM +0000, Sakari Ailus wrote:
> Hi Stanislaw,
>
> On Fri, May 02, 2025 at 05:44:41PM +0200, Stanislaw Gruszka wrote:
> > Cleanups and code sharing preparation with ipu7 driver.
> >
> > This is on top of:
> > https://git.linuxtv.org/sailus/media_tree.git/log/?h=devel
> > Plus:
> > https://lore.kernel.org/linux-media/20250317073856.162147-1-stanislaw.gruszka@linux.intel.com/
> > https://lore.kernel.org/linux-media/20250428161643.321617-1-stanislaw.gruszka@linux.intel.com/#t
>
> Thanks for these. I've applied patches from 1 to 3 for now.
>
> Going forward, could you post cleanups and reorganising the code into
> common bits in separate sets?
I don't know what can be cleaned up before I start modifying the code.
And since I change a lot of code during refactoring, changing patches order
and separate the changes is not that easy, I would prefer to do this.
> It'll be easier to see where this is going
> when all related patches are in the same set. Cleanups and fixes we can
> merge earlier on anyway.
I can post bigger sets.
Regards
Stanislaw
^ permalink raw reply [flat|nested] 8+ messages in thread
end of thread, other threads:[~2025-05-09 4:25 UTC | newest]
Thread overview: 8+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2025-05-02 15:44 [PATCH v3 0/5] media: intel/ipu6: continue on ipu7 code sharing preparation Stanislaw Gruszka
2025-05-02 15:44 ` [PATCH v3 1/5] media: intel/ipu6: Remove pin_ready function pointer Stanislaw Gruszka
2025-05-02 15:44 ` [PATCH v3 2/5] media: intel/ipu6: Remove line_align Stanislaw Gruszka
2025-05-02 15:44 ` [PATCH v3 3/5] media: intel/ipu6: Change deprecated lock comment Stanislaw Gruszka
2025-05-02 15:44 ` [PATCH v3 4/5] media: intel/ipu6: Move common structures definitions to ipu-isys.h Stanislaw Gruszka
2025-05-02 15:44 ` [PATCH v3 5/5] media: intel/ipu6: Rename common structures Stanislaw Gruszka
2025-05-05 8:13 ` [PATCH v3 0/5] media: intel/ipu6: continue on ipu7 code sharing preparation Sakari Ailus
2025-05-09 4:25 ` Stanislaw Gruszka
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox