Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit c5ad262b authored by Linux Build Service Account's avatar Linux Build Service Account Committed by Gerrit - the friendly Code Review server
Browse files

Merge "msm: camera: avoid race condition while configuring ping pong buffer"

parents 0a4bed50 89610654
Loading
Loading
Loading
Loading
+2 −1
Original line number Diff line number Diff line
/* Copyright (c) 2013-2016, The Linux Foundation. All rights reserved.
/* Copyright (c) 2013-2017, The Linux Foundation. All rights reserved.
 *
 * This program is free software; you can redistribute it and/or modify
 * it under the terms of the GNU General Public License version 2 and
@@ -499,6 +499,7 @@ static int vfe_probe(struct platform_device *pdev)
	vfe_parent_dev->common_sd->common_data = &vfe_common_data;
	memset(&vfe_common_data, 0, sizeof(vfe_common_data));
	spin_lock_init(&vfe_common_data.common_dev_data_lock);
	spin_lock_init(&vfe_common_data.common_dev_axi_lock);

	of_property_read_u32(pdev->dev.of_node,
		"num_child", &vfe_parent_dev->num_hw_sd);
+1 −0
Original line number Diff line number Diff line
@@ -682,6 +682,7 @@ struct master_slave_resource_info {

struct msm_vfe_common_dev_data {
	spinlock_t common_dev_data_lock;
	spinlock_t common_dev_axi_lock;
	struct dual_vfe_resource *dual_vfe_res;
	struct master_slave_resource_info ms_resource;
};
+4 −8
Original line number Diff line number Diff line
@@ -1890,10 +1890,8 @@ static int msm_isp_cfg_ping_pong_address(struct vfe_device *vfe_dev,
			for (vfe_id = 0; vfe_id < MAX_VFE; vfe_id++) {
				if (vfe_id != vfe_dev->pdev->id)
					spin_lock_irqsave(
						&dual_vfe_res->
						axi_data[vfe_id]->
						stream_info[stream_idx].
						lock, flags);
						&vfe_dev->common_data->
						common_dev_axi_lock, flags);

				if (buf)
					vfe_dev->hw_info->vfe_ops.axi_ops.
@@ -1922,10 +1920,8 @@ static int msm_isp_cfg_ping_pong_address(struct vfe_device *vfe_dev,
				}
				if (vfe_id != vfe_dev->pdev->id)
					spin_unlock_irqrestore(
						&dual_vfe_res->
						axi_data[vfe_id]->
						stream_info[stream_idx].
						lock, flags);
						&vfe_dev->common_data->
						common_dev_axi_lock, flags);
			}
		} else {
			if (buf)