mirror of
https://github.com/hardkernel/linux.git
synced 2026-06-07 03:15:31 +09:00
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:
@@ -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;
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user