Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

upgrade IPU6 driver to 25ww04_release #102

Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
6 changes: 6 additions & 0 deletions drivers/media/i2c/ti960-des.c
Original file line number Diff line number Diff line change
Expand Up @@ -1610,6 +1610,12 @@ static int ti960_register_subdev(struct ti960 *va)
}

va->link_freq = v4l2_ctrl_find(&va->ctrl_handler, V4L2_CID_LINK_FREQ);
if (va->link_freq == NULL) {
dev_err(va->sd.dev,
"Failed to find ctrl V4L2_CID_LINK_FREQ!\n");
ret = -EINVAL;
goto failed_out;
}
switch (va->pdata->link_freq_mbps) {
case 1600:
__v4l2_ctrl_s_ctrl(va->link_freq, TI960_MIPI_1600MBPS);
Expand Down
13 changes: 5 additions & 8 deletions drivers/media/pci/intel/ipu-isys-queue.c
Original file line number Diff line number Diff line change
Expand Up @@ -653,7 +653,6 @@ static void return_buffers(struct ipu_isys_queue *aq,
enum vb2_buffer_state state)
{
struct ipu_isys_video *av = ipu_isys_queue_to_video(aq);
int reset_needed = 0;
unsigned long flags;

spin_lock_irqsave(&aq->lock, flags);
Expand Down Expand Up @@ -683,6 +682,11 @@ static void return_buffers(struct ipu_isys_queue *aq,
* returned from isys) if there are still buffers queued in active
* queue. We have to clean up places a bit.
*/
if (!list_empty(&aq->active)) {
mutex_lock(&av->isys->mutex);
av->isys->reset_needed = true;
mutex_unlock(&av->isys->mutex);
}
while (!list_empty(&aq->active)) {
struct ipu_isys_buffer *ib = list_first_entry(&aq->active,
struct
Expand All @@ -701,16 +705,9 @@ static void return_buffers(struct ipu_isys_queue *aq,
vb->index);

spin_lock_irqsave(&aq->lock, flags);
reset_needed = 1;
}

spin_unlock_irqrestore(&aq->lock, flags);

if (reset_needed) {
mutex_lock(&av->isys->mutex);
av->isys->reset_needed = true;
mutex_unlock(&av->isys->mutex);
}
}

static int __start_streaming(struct vb2_queue *q, unsigned int count)
Expand Down
22 changes: 0 additions & 22 deletions drivers/media/pci/intel/ipu-isys-video.c
Original file line number Diff line number Diff line change
Expand Up @@ -1355,28 +1355,6 @@ ipu_isys_prepare_fw_cfg_default(struct ipu_isys_video *av,
pin_info->error_handling_enable = false;
break;
case IPU_FW_ISYS_PIN_TYPE_RAW_SOC:
if (av->compression) {
type_index = IPU_FW_ISYS_VC1_SENSOR_DATA;
pin_info->sensor_type
= isys->sensor_types[type_index]++;
pin_info->snoopable = false;
pin_info->error_handling_enable = false;
type = isys->sensor_types[type_index];
if (type > isys->sensor_info.vc1_data_end)
isys->sensor_types[type_index] =
isys->sensor_info.vc1_data_start;
} else {
type_index = IPU_FW_ISYS_VC1_SENSOR_DATA;
pin_info->sensor_type
= isys->sensor_types[type_index]++;
pin_info->snoopable = false;
pin_info->error_handling_enable = false;
type = isys->sensor_types[type_index];
if (type > isys->sensor_info.vc1_data_end)
isys->sensor_types[type_index] =
isys->sensor_info.vc1_data_start;
}
break;
case IPU_FW_ISYS_PIN_TYPE_MIPI:
type_index = IPU_FW_ISYS_VC1_SENSOR_DATA;
pin_info->sensor_type = isys->sensor_types[type_index]++;
Expand Down