video: rockchip: vehicle: adapt driver to kernel-6.1

Signed-off-by: Jianwei Fan <jianwei.fan@rock-chips.com>
Change-Id: Id20446f4ea33ceb9e22b62fd1a7e787c91f73529
This commit is contained in:
Jianwei Fan
2024-01-23 11:43:38 +00:00
committed by 范建威
parent 05f1106b6f
commit 7adb104bed
3 changed files with 32 additions and 42 deletions

View File

@@ -15,7 +15,7 @@
static int vehicle_debug;
#define VEHICLE_DG(format, ...) do { \
if (vehicle_debug) \
pr_info("%s %s(%d): " format, __func__, __LINE__, ## __VA_ARGS__); \
pr_info("%s(%d): " format, __func__, __LINE__, ## __VA_ARGS__); \
} while (0)
#define VEHICLE_DGERR(format, ...) \
@@ -43,6 +43,29 @@ enum {
CIF_OUTPUT_FORMAT_420 = 1,
};
/* Serial flags */
/* CSI-2 D-PHY number of data lanes. */
#define V4L2_MBUS_CSI2_1_LANE BIT(0)
#define V4L2_MBUS_CSI2_2_LANE BIT(1)
#define V4L2_MBUS_CSI2_3_LANE BIT(2)
#define V4L2_MBUS_CSI2_4_LANE BIT(3)
/* CSI-2 Virtual Channel identifiers. */
#define V4L2_MBUS_CSI2_CHANNEL_0 BIT(4)
#define V4L2_MBUS_CSI2_CHANNEL_1 BIT(5)
#define V4L2_MBUS_CSI2_CHANNEL_2 BIT(6)
#define V4L2_MBUS_CSI2_CHANNEL_3 BIT(7)
/* Clock non-continuous mode support. */
#define V4L2_MBUS_CSI2_CONTINUOUS_CLOCK BIT(8)
#define V4L2_MBUS_CSI2_LANES (V4L2_MBUS_CSI2_1_LANE | \
V4L2_MBUS_CSI2_2_LANE | \
V4L2_MBUS_CSI2_3_LANE | \
V4L2_MBUS_CSI2_4_LANE)
#define V4L2_MBUS_CSI2_CHANNELS (V4L2_MBUS_CSI2_CHANNEL_0 | \
V4L2_MBUS_CSI2_CHANNEL_1 | \
V4L2_MBUS_CSI2_CHANNEL_2 | \
V4L2_MBUS_CSI2_CHANNEL_3)
struct vehicle_cfg {
/* output */
int width;

View File

@@ -4515,7 +4515,7 @@ static void vehicle_csi2_err_print_work(struct work_struct *work)
pr_err("mipi_csi2: ERR%d:0x%x %s\n", err_state->err_num,
err_state->err_val, err_state->err_str);
if (err_state->err_num == 1)
pr_info("mipi_csi2: err_stat:0x%x\n", err_state->err_stat);
pr_info("mipi_csi2: err_stat:0x%lx\n", err_state->err_stat);
}
static irqreturn_t vehicle_csirx_irq1(int irq, void *data)

View File

@@ -724,7 +724,6 @@ static int rk_flinger_rga_scaler(struct flinger *flinger,
if (!file_ready) {
int frame_len = src_buffer->src.w * src_buffer->src.h * 3 / 2;
char path[128] = {0};
mm_segment_t fs;
VEHICLE_DG("save vop frame(%d) frame_len(%d)\n",
frame_count++, frame_len);
@@ -735,13 +734,8 @@ static int rk_flinger_rga_scaler(struct flinger *flinger,
VEHICLE_DGERR(" %s filp_open failed!\n", path);
file_ready = false;
} else {
fs = get_fs();
set_fs(KERNEL_DS);
vfs_write(filep,
(unsigned char __user *)(src_buffer->vir_addr),
frame_len, &pos);
kernel_write(filep, src_buffer->vir_addr, frame_len, &pos);
filp_close(filep, NULL);
set_fs(fs);
VEHICLE_INFO(" %s file saved ok!\n", path);
file_ready = true;
}
@@ -761,7 +755,6 @@ static int rk_flinger_rga_scaler(struct flinger *flinger,
/* NV12 */
int frame_len = dst_buffer->src.w * dst_buffer->src.h * 3 / 2;
char path[128] = {0};
mm_segment_t fs;
VEHICLE_DG("save vop frame(%d) frame_len(%d)\n",
frame_count++, frame_len);
@@ -772,13 +765,8 @@ static int rk_flinger_rga_scaler(struct flinger *flinger,
VEHICLE_DGERR(" %s filp_open failed!\n", path);
file_ready = false;
} else {
fs = get_fs();
set_fs(KERNEL_DS);
vfs_write(filep,
(unsigned char __user *)(dst_buffer->vir_addr),
frame_len, &pos);
kernel_write(filep, dst_buffer->vir_addr, frame_len, &pos);
filp_close(filep, NULL);
set_fs(fs);
VEHICLE_INFO(" %s file saved ok!\n", path);
file_ready = true;
}
@@ -1006,7 +994,6 @@ static int rk_flinger_rga_render(struct flinger *flinger,
if (!file_ready) {
int frame_len = dst_buffer->src.w * dst_buffer->src.h * 3 / 2;//NV12
char path[128] = {0};
mm_segment_t fs;
VEHICLE_DG("save vop frame(%d) frame_len(%d)\n",
frame_count++, frame_len);
@@ -1017,13 +1004,8 @@ static int rk_flinger_rga_render(struct flinger *flinger,
VEHICLE_DGERR(" %s filp_open failed!\n", path);
file_ready = false;
} else {
fs = get_fs();
set_fs(KERNEL_DS);
vfs_write(filep,
(unsigned char __user *)(dst_buffer->vir_addr),
frame_len, &pos);
kernel_write(filep, dst_buffer->vir_addr, frame_len, &pos);
filp_close(filep, NULL);
set_fs(fs);
VEHICLE_INFO(" %s file saved ok!\n", path);
file_ready = true;
}
@@ -1075,7 +1057,6 @@ static void rk_drm_vehicle_commit(struct flinger *flinger, struct graphic_buffer
int frame_len = buffer->drm_buffer->width *
buffer->drm_buffer->height * 3 / 2;//NV12
char path[128] = {0};
mm_segment_t fs;
VEHICLE_DG("save vop frame(%d) frame_len(%d)\n",
frame_count++, frame_len);
@@ -1087,13 +1068,9 @@ static void rk_drm_vehicle_commit(struct flinger *flinger, struct graphic_buffer
VEHICLE_DGERR(" %s filp_open failed!\n", path);
file_ready = false;
} else {
fs = get_fs();
set_fs(KERNEL_DS);
vfs_write(filep,
(unsigned char __user *)(buffer->drm_buffer->vir_addr[0]),
frame_len, &pos);
kernel_write(filep,
buffer->drm_buffer->vir_addr[0], frame_len, &pos);
filp_close(filep, NULL);
set_fs(fs);
VEHICLE_INFO(" %s file saved ok!\n", path);
file_ready = true;
}
@@ -1149,7 +1126,6 @@ static int rk_flinger_vop_show(struct flinger *flinger,
if (!file_ready) {
int frame_len = buffer->src.w * buffer->src.h * 3 / 2;//NV12
char path[128] = {0};
mm_segment_t fs;
VEHICLE_DG("save vop frame(%d) frame_len(%d)\n",
frame_count++, frame_len);
@@ -1160,13 +1136,8 @@ static int rk_flinger_vop_show(struct flinger *flinger,
VEHICLE_DGERR(" %s filp_open failed!\n", path);
file_ready = false;
} else {
fs = get_fs();
set_fs(KERNEL_DS);
vfs_write(filep,
(unsigned char __user *)(buffer->vir_addr),
frame_len, &pos);
kernel_write(filep, buffer->vir_addr, frame_len, &pos);
filp_close(filep, NULL);
set_fs(fs);
VEHICLE_INFO(" %s file saved ok!\n", path);
file_ready = true;
}
@@ -1275,7 +1246,6 @@ try_again:
//nv12 frame_len=w*h*3/2
int frame_len = src_buffer->src.w * src_buffer->src.h * 3 / 2;
char path[128] = {0};
mm_segment_t fs;
VEHICLE_DG("save vop frame(%d) frame_len(%d)\n",
frame_count++, frame_len);
@@ -1286,11 +1256,8 @@ try_again:
VEHICLE_DGERR(" %s filp_open failed!\n", path);
file_ready = false;
} else {
fs = get_fs();
set_fs(KERNEL_DS);
vfs_write(filep, src_buffer->vir_addr, frame_len, &pos);
kernel_write(filep, src_buffer->vir_addr, frame_len, &pos);
filp_close(filep, NULL);
set_fs(fs);
VEHICLE_INFO(" %s file saved ok!\n", path);
file_ready = true;
}