msm: camera: core : Validate the dev name during the node ioctl handler
Validate the context device name with node name. If device name is not matching return the error. Change-Id: I8dee4e6f64e17b0d1e486077a2c8b0df562a702e Signed-off-by: Rishabh Jain <risjai@codeaurora.org>
This commit is contained in:

committed by
Gerrit - the friendly Code Review server

parent
396a4cc576
commit
40047f58df
@@ -519,7 +519,7 @@ int cam_context_init(struct cam_context *ctx,
|
|||||||
mutex_init(&ctx->sync_mutex);
|
mutex_init(&ctx->sync_mutex);
|
||||||
spin_lock_init(&ctx->lock);
|
spin_lock_init(&ctx->lock);
|
||||||
|
|
||||||
ctx->dev_name = dev_name;
|
strlcpy(ctx->dev_name, dev_name, CAM_CTX_DEV_NAME_MAX_LENGTH);
|
||||||
ctx->dev_id = dev_id;
|
ctx->dev_id = dev_id;
|
||||||
ctx->ctx_id = ctx_id;
|
ctx->ctx_id = ctx_id;
|
||||||
ctx->last_flush_req = 0;
|
ctx->last_flush_req = 0;
|
||||||
|
@@ -1,6 +1,6 @@
|
|||||||
/* SPDX-License-Identifier: GPL-2.0-only */
|
/* SPDX-License-Identifier: GPL-2.0-only */
|
||||||
/*
|
/*
|
||||||
* Copyright (c) 2017-2018, The Linux Foundation. All rights reserved.
|
* Copyright (c) 2017-2019, The Linux Foundation. All rights reserved.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#ifndef _CAM_CONTEXT_H_
|
#ifndef _CAM_CONTEXT_H_
|
||||||
@@ -15,6 +15,9 @@
|
|||||||
/* Forward declarations */
|
/* Forward declarations */
|
||||||
struct cam_context;
|
struct cam_context;
|
||||||
|
|
||||||
|
/* max device name string length*/
|
||||||
|
#define CAM_CTX_DEV_NAME_MAX_LENGTH 20
|
||||||
|
|
||||||
/* max request number */
|
/* max request number */
|
||||||
#define CAM_CTX_REQ_MAX 20
|
#define CAM_CTX_REQ_MAX 20
|
||||||
#define CAM_CTX_CFG_MAX 20
|
#define CAM_CTX_CFG_MAX 20
|
||||||
@@ -177,7 +180,7 @@ struct cam_ctx_ops {
|
|||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
struct cam_context {
|
struct cam_context {
|
||||||
const char *dev_name;
|
char dev_name[CAM_CTX_DEV_NAME_MAX_LENGTH];
|
||||||
uint64_t dev_id;
|
uint64_t dev_id;
|
||||||
uint32_t ctx_id;
|
uint32_t ctx_id;
|
||||||
struct list_head list;
|
struct list_head list;
|
||||||
|
@@ -27,7 +27,7 @@ static void cam_node_print_ctx_state(
|
|||||||
spin_lock_bh(&ctx->lock);
|
spin_lock_bh(&ctx->lock);
|
||||||
CAM_INFO(CAM_CORE,
|
CAM_INFO(CAM_CORE,
|
||||||
"[%s][%d] : state=%d, refcount=%d, active_req_list=%d, pending_req_list=%d, wait_req_list=%d, free_req_list=%d",
|
"[%s][%d] : state=%d, refcount=%d, active_req_list=%d, pending_req_list=%d, wait_req_list=%d, free_req_list=%d",
|
||||||
ctx->dev_name ? ctx->dev_name : "null",
|
ctx->dev_name,
|
||||||
i, ctx->state,
|
i, ctx->state,
|
||||||
atomic_read(&(ctx->refcount.refcount.refs)),
|
atomic_read(&(ctx->refcount.refcount.refs)),
|
||||||
list_empty(&ctx->active_req_list),
|
list_empty(&ctx->active_req_list),
|
||||||
@@ -148,6 +148,12 @@ static int __cam_node_handle_acquire_hw_v1(struct cam_node *node,
|
|||||||
return -EINVAL;
|
return -EINVAL;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (strcmp(node->name, ctx->dev_name)) {
|
||||||
|
CAM_ERR(CAM_CORE, "node name %s dev name:%s not matching",
|
||||||
|
node->name, ctx->dev_name);
|
||||||
|
return -EINVAL;
|
||||||
|
}
|
||||||
|
|
||||||
rc = cam_context_handle_acquire_hw(ctx, acquire);
|
rc = cam_context_handle_acquire_hw(ctx, acquire);
|
||||||
if (rc) {
|
if (rc) {
|
||||||
CAM_ERR(CAM_CORE, "Acquire device failed for node %s",
|
CAM_ERR(CAM_CORE, "Acquire device failed for node %s",
|
||||||
@@ -226,6 +232,12 @@ static int __cam_node_handle_start_dev(struct cam_node *node,
|
|||||||
return -EINVAL;
|
return -EINVAL;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (strcmp(node->name, ctx->dev_name)) {
|
||||||
|
CAM_ERR(CAM_CORE, "node name %s dev name:%s not matching",
|
||||||
|
node->name, ctx->dev_name);
|
||||||
|
return -EINVAL;
|
||||||
|
}
|
||||||
|
|
||||||
rc = cam_context_handle_start_dev(ctx, start);
|
rc = cam_context_handle_start_dev(ctx, start);
|
||||||
if (rc)
|
if (rc)
|
||||||
CAM_ERR(CAM_CORE, "Start failure for node %s", node->name);
|
CAM_ERR(CAM_CORE, "Start failure for node %s", node->name);
|
||||||
@@ -259,6 +271,12 @@ static int __cam_node_handle_stop_dev(struct cam_node *node,
|
|||||||
return -EINVAL;
|
return -EINVAL;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (strcmp(node->name, ctx->dev_name)) {
|
||||||
|
CAM_ERR(CAM_CORE, "node name %s dev name:%s not matching",
|
||||||
|
node->name, ctx->dev_name);
|
||||||
|
return -EINVAL;
|
||||||
|
}
|
||||||
|
|
||||||
rc = cam_context_handle_stop_dev(ctx, stop);
|
rc = cam_context_handle_stop_dev(ctx, stop);
|
||||||
if (rc)
|
if (rc)
|
||||||
CAM_ERR(CAM_CORE, "Stop failure for node %s", node->name);
|
CAM_ERR(CAM_CORE, "Stop failure for node %s", node->name);
|
||||||
@@ -292,6 +310,12 @@ static int __cam_node_handle_config_dev(struct cam_node *node,
|
|||||||
return -EINVAL;
|
return -EINVAL;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (strcmp(node->name, ctx->dev_name)) {
|
||||||
|
CAM_ERR(CAM_CORE, "node name %s dev name:%s not matching",
|
||||||
|
node->name, ctx->dev_name);
|
||||||
|
return -EINVAL;
|
||||||
|
}
|
||||||
|
|
||||||
rc = cam_context_handle_config_dev(ctx, config);
|
rc = cam_context_handle_config_dev(ctx, config);
|
||||||
if (rc)
|
if (rc)
|
||||||
CAM_ERR(CAM_CORE, "Config failure for node %s", node->name);
|
CAM_ERR(CAM_CORE, "Config failure for node %s", node->name);
|
||||||
@@ -325,6 +349,12 @@ static int __cam_node_handle_flush_dev(struct cam_node *node,
|
|||||||
return -EINVAL;
|
return -EINVAL;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (strcmp(node->name, ctx->dev_name)) {
|
||||||
|
CAM_ERR(CAM_CORE, "node name %s dev name:%s not matching",
|
||||||
|
node->name, ctx->dev_name);
|
||||||
|
return -EINVAL;
|
||||||
|
}
|
||||||
|
|
||||||
rc = cam_context_handle_flush_dev(ctx, flush);
|
rc = cam_context_handle_flush_dev(ctx, flush);
|
||||||
if (rc)
|
if (rc)
|
||||||
CAM_ERR(CAM_CORE, "Flush failure for node %s", node->name);
|
CAM_ERR(CAM_CORE, "Flush failure for node %s", node->name);
|
||||||
@@ -358,6 +388,12 @@ static int __cam_node_handle_release_dev(struct cam_node *node,
|
|||||||
return -EINVAL;
|
return -EINVAL;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (strcmp(node->name, ctx->dev_name)) {
|
||||||
|
CAM_ERR(CAM_CORE, "node name %s dev name:%s not matching",
|
||||||
|
node->name, ctx->dev_name);
|
||||||
|
return -EINVAL;
|
||||||
|
}
|
||||||
|
|
||||||
if (ctx->state > CAM_CTX_UNINIT && ctx->state < CAM_CTX_STATE_MAX) {
|
if (ctx->state > CAM_CTX_UNINIT && ctx->state < CAM_CTX_STATE_MAX) {
|
||||||
rc = cam_context_handle_release_dev(ctx, release);
|
rc = cam_context_handle_release_dev(ctx, release);
|
||||||
if (rc)
|
if (rc)
|
||||||
@@ -413,6 +449,12 @@ static int __cam_node_handle_release_hw_v1(struct cam_node *node,
|
|||||||
return -EINVAL;
|
return -EINVAL;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (strcmp(node->name, ctx->dev_name)) {
|
||||||
|
CAM_ERR(CAM_CORE, "node name %s dev name:%s not matching",
|
||||||
|
node->name, ctx->dev_name);
|
||||||
|
return -EINVAL;
|
||||||
|
}
|
||||||
|
|
||||||
rc = cam_context_handle_release_hw(ctx, release);
|
rc = cam_context_handle_release_hw(ctx, release);
|
||||||
if (rc)
|
if (rc)
|
||||||
CAM_ERR(CAM_CORE, "context release failed node %s", node->name);
|
CAM_ERR(CAM_CORE, "context release failed node %s", node->name);
|
||||||
|
@@ -1,6 +1,6 @@
|
|||||||
/* SPDX-License-Identifier: GPL-2.0-only */
|
/* SPDX-License-Identifier: GPL-2.0-only */
|
||||||
/*
|
/*
|
||||||
* Copyright (c) 2017-2018, The Linux Foundation. All rights reserved.
|
* Copyright (c) 2017-2019, The Linux Foundation. All rights reserved.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#ifndef _CAM_NODE_H_
|
#ifndef _CAM_NODE_H_
|
||||||
@@ -11,7 +11,6 @@
|
|||||||
#include "cam_hw_mgr_intf.h"
|
#include "cam_hw_mgr_intf.h"
|
||||||
#include "cam_req_mgr_interface.h"
|
#include "cam_req_mgr_interface.h"
|
||||||
|
|
||||||
#define CAM_NODE_NAME_LENGTH_MAX 256
|
|
||||||
|
|
||||||
#define CAM_NODE_STATE_UNINIT 0
|
#define CAM_NODE_STATE_UNINIT 0
|
||||||
#define CAM_NODE_STATE_INIT 1
|
#define CAM_NODE_STATE_INIT 1
|
||||||
@@ -31,7 +30,7 @@
|
|||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
struct cam_node {
|
struct cam_node {
|
||||||
char name[CAM_NODE_NAME_LENGTH_MAX];
|
char name[CAM_CTX_DEV_NAME_MAX_LENGTH];
|
||||||
uint32_t state;
|
uint32_t state;
|
||||||
|
|
||||||
/* context pool */
|
/* context pool */
|
||||||
|
@@ -1,6 +1,6 @@
|
|||||||
// SPDX-License-Identifier: GPL-2.0-only
|
// SPDX-License-Identifier: GPL-2.0-only
|
||||||
/*
|
/*
|
||||||
* Copyright (c) 2017-2018, The Linux Foundation. All rights reserved.
|
* Copyright (c) 2017-2019, The Linux Foundation. All rights reserved.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#include <linux/module.h>
|
#include <linux/module.h>
|
||||||
@@ -10,7 +10,7 @@
|
|||||||
#include "cam_fd_context.h"
|
#include "cam_fd_context.h"
|
||||||
#include "cam_trace.h"
|
#include "cam_trace.h"
|
||||||
|
|
||||||
static const char fd_dev_name[] = "fd";
|
static const char fd_dev_name[] = "cam-fd";
|
||||||
|
|
||||||
/* Functions in Available state */
|
/* Functions in Available state */
|
||||||
static int __cam_fd_ctx_acquire_dev_in_available(struct cam_context *ctx,
|
static int __cam_fd_ctx_acquire_dev_in_available(struct cam_context *ctx,
|
||||||
|
@@ -20,7 +20,7 @@
|
|||||||
#include "cam_debug_util.h"
|
#include "cam_debug_util.h"
|
||||||
#include "cam_packet_util.h"
|
#include "cam_packet_util.h"
|
||||||
|
|
||||||
static const char icp_dev_name[] = "icp";
|
static const char icp_dev_name[] = "cam-icp";
|
||||||
|
|
||||||
static int cam_icp_context_dump_active_request(void *data, unsigned long iova,
|
static int cam_icp_context_dump_active_request(void *data, unsigned long iova,
|
||||||
uint32_t buf_info)
|
uint32_t buf_info)
|
||||||
|
@@ -20,7 +20,7 @@
|
|||||||
#include "cam_isp_context.h"
|
#include "cam_isp_context.h"
|
||||||
#include "cam_common_util.h"
|
#include "cam_common_util.h"
|
||||||
|
|
||||||
static const char isp_dev_name[] = "isp";
|
static const char isp_dev_name[] = "cam-isp";
|
||||||
|
|
||||||
#define INC_STATE_MONITOR_HEAD(head) \
|
#define INC_STATE_MONITOR_HEAD(head) \
|
||||||
(atomic64_add_return(1, head) % \
|
(atomic64_add_return(1, head) % \
|
||||||
|
@@ -14,7 +14,7 @@
|
|||||||
#include "cam_debug_util.h"
|
#include "cam_debug_util.h"
|
||||||
#include "cam_packet_util.h"
|
#include "cam_packet_util.h"
|
||||||
|
|
||||||
static const char jpeg_dev_name[] = "jpeg";
|
static const char jpeg_dev_name[] = "cam-jpeg";
|
||||||
|
|
||||||
static int cam_jpeg_context_dump_active_request(void *data, unsigned long iova,
|
static int cam_jpeg_context_dump_active_request(void *data, unsigned long iova,
|
||||||
uint32_t buf_info)
|
uint32_t buf_info)
|
||||||
|
@@ -1,6 +1,6 @@
|
|||||||
// SPDX-License-Identifier: GPL-2.0-only
|
// SPDX-License-Identifier: GPL-2.0-only
|
||||||
/*
|
/*
|
||||||
* Copyright (c) 2017-2018, The Linux Foundation. All rights reserved.
|
* Copyright (c) 2017-2019, The Linux Foundation. All rights reserved.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#include <linux/module.h>
|
#include <linux/module.h>
|
||||||
@@ -9,7 +9,7 @@
|
|||||||
#include "cam_debug_util.h"
|
#include "cam_debug_util.h"
|
||||||
#include "cam_lrme_context.h"
|
#include "cam_lrme_context.h"
|
||||||
|
|
||||||
static const char lrme_dev_name[] = "lrme";
|
static const char lrme_dev_name[] = "cam-lrme";
|
||||||
|
|
||||||
static int __cam_lrme_ctx_acquire_dev_in_available(struct cam_context *ctx,
|
static int __cam_lrme_ctx_acquire_dev_in_available(struct cam_context *ctx,
|
||||||
struct cam_acquire_dev_cmd *cmd)
|
struct cam_acquire_dev_cmd *cmd)
|
||||||
|
@@ -25,6 +25,7 @@
|
|||||||
#include "cam_sensor_util.h"
|
#include "cam_sensor_util.h"
|
||||||
#include "cam_soc_util.h"
|
#include "cam_soc_util.h"
|
||||||
#include "cam_debug_util.h"
|
#include "cam_debug_util.h"
|
||||||
|
#include "cam_context.h"
|
||||||
|
|
||||||
#define NUM_MASTERS 2
|
#define NUM_MASTERS 2
|
||||||
#define NUM_QUEUES 2
|
#define NUM_QUEUES 2
|
||||||
@@ -83,6 +84,7 @@ struct intf_params {
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* struct cam_actuator_ctrl_t
|
* struct cam_actuator_ctrl_t
|
||||||
|
* @device_name: Device name
|
||||||
* @i2c_driver: I2C device info
|
* @i2c_driver: I2C device info
|
||||||
* @pdev: Platform device
|
* @pdev: Platform device
|
||||||
* @cci_i2c_master: I2C structure
|
* @cci_i2c_master: I2C structure
|
||||||
@@ -98,10 +100,10 @@ struct intf_params {
|
|||||||
* @i2c_data: I2C register settings structure
|
* @i2c_data: I2C register settings structure
|
||||||
* @act_info: Sensor query cap structure
|
* @act_info: Sensor query cap structure
|
||||||
* @of_node: Node ptr
|
* @of_node: Node ptr
|
||||||
* @device_name: Device name
|
|
||||||
* @last_flush_req: Last request to flush
|
* @last_flush_req: Last request to flush
|
||||||
*/
|
*/
|
||||||
struct cam_actuator_ctrl_t {
|
struct cam_actuator_ctrl_t {
|
||||||
|
char device_name[CAM_CTX_DEV_NAME_MAX_LENGTH];
|
||||||
struct i2c_driver *i2c_driver;
|
struct i2c_driver *i2c_driver;
|
||||||
enum cci_i2c_master_t cci_i2c_master;
|
enum cci_i2c_master_t cci_i2c_master;
|
||||||
enum cci_device_num cci_num;
|
enum cci_device_num cci_num;
|
||||||
@@ -116,7 +118,6 @@ struct cam_actuator_ctrl_t {
|
|||||||
struct i2c_data_settings i2c_data;
|
struct i2c_data_settings i2c_data;
|
||||||
struct cam_actuator_query_cap act_info;
|
struct cam_actuator_query_cap act_info;
|
||||||
struct intf_params bridge_intf;
|
struct intf_params bridge_intf;
|
||||||
char device_name[20];
|
|
||||||
uint32_t last_flush_req;
|
uint32_t last_flush_req;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@@ -8,5 +8,6 @@ ccflags-y += -I$(srctree)/techpack/camera/drivers/cam_sensor_module/cam_sensor_u
|
|||||||
ccflags-y += -I$(srctree)/techpack/camera/drivers/cam_sensor_module/cam_cci
|
ccflags-y += -I$(srctree)/techpack/camera/drivers/cam_sensor_module/cam_cci
|
||||||
ccflags-y += -I$(srctree)/techpack/camera/drivers/cam_req_mgr
|
ccflags-y += -I$(srctree)/techpack/camera/drivers/cam_req_mgr
|
||||||
ccflags-y += -I$(srctree)/techpack/camera/drivers/cam_smmu/
|
ccflags-y += -I$(srctree)/techpack/camera/drivers/cam_smmu/
|
||||||
|
ccflags-y += -I$(srctree)/techpack/camera/drivers/cam_core
|
||||||
|
|
||||||
obj-$(CONFIG_SPECTRA_CAMERA) += cam_csiphy_soc.o cam_csiphy_dev.o cam_csiphy_core.o
|
obj-$(CONFIG_SPECTRA_CAMERA) += cam_csiphy_soc.o cam_csiphy_dev.o cam_csiphy_core.o
|
||||||
|
@@ -26,6 +26,7 @@
|
|||||||
#include <cam_cpas_api.h>
|
#include <cam_cpas_api.h>
|
||||||
#include "cam_soc_util.h"
|
#include "cam_soc_util.h"
|
||||||
#include "cam_debug_util.h"
|
#include "cam_debug_util.h"
|
||||||
|
#include "cam_context.h"
|
||||||
|
|
||||||
#define MAX_CSIPHY 6
|
#define MAX_CSIPHY 6
|
||||||
#define MAX_DPHY_DATA_LN 4
|
#define MAX_DPHY_DATA_LN 4
|
||||||
@@ -235,6 +236,7 @@ struct cam_csiphy_param {
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* struct csiphy_device
|
* struct csiphy_device
|
||||||
|
* @device_name: Device name
|
||||||
* @pdev: Platform device
|
* @pdev: Platform device
|
||||||
* @irq: Interrupt structure
|
* @irq: Interrupt structure
|
||||||
* @base: Base address
|
* @base: Base address
|
||||||
@@ -263,6 +265,7 @@ struct cam_csiphy_param {
|
|||||||
* @csiphy_cpas_cp_reg_mask: CP reg mask for phy instance
|
* @csiphy_cpas_cp_reg_mask: CP reg mask for phy instance
|
||||||
*/
|
*/
|
||||||
struct csiphy_device {
|
struct csiphy_device {
|
||||||
|
char device_name[CAM_CTX_DEV_NAME_MAX_LENGTH];
|
||||||
struct mutex mutex;
|
struct mutex mutex;
|
||||||
uint32_t hw_version;
|
uint32_t hw_version;
|
||||||
enum cam_csiphy_state csiphy_state;
|
enum cam_csiphy_state csiphy_state;
|
||||||
@@ -282,7 +285,6 @@ struct csiphy_device {
|
|||||||
uint32_t clk_lane;
|
uint32_t clk_lane;
|
||||||
uint32_t acquire_count;
|
uint32_t acquire_count;
|
||||||
uint32_t start_dev_count;
|
uint32_t start_dev_count;
|
||||||
char device_name[20];
|
|
||||||
uint32_t is_acquired_dev_combo_mode;
|
uint32_t is_acquired_dev_combo_mode;
|
||||||
struct cam_hw_soc_info soc_info;
|
struct cam_hw_soc_info soc_info;
|
||||||
uint32_t cpas_handle;
|
uint32_t cpas_handle;
|
||||||
|
@@ -8,4 +8,6 @@ ccflags-y += -I$(srctree)/techpack/camera/drivers/cam_sensor_module/cam_sensor_u
|
|||||||
ccflags-y += -I$(srctree)/techpack/camera/drivers/cam_req_mgr
|
ccflags-y += -I$(srctree)/techpack/camera/drivers/cam_req_mgr
|
||||||
ccflags-y += -I$(srctree)/techpack/camera/drivers/cam_sensor_module/cam_cci
|
ccflags-y += -I$(srctree)/techpack/camera/drivers/cam_sensor_module/cam_cci
|
||||||
ccflags-y += -I$(srctree)/techpack/camera/drivers/cam_smmu/
|
ccflags-y += -I$(srctree)/techpack/camera/drivers/cam_smmu/
|
||||||
|
ccflags-y += -I$(srctree)/techpack/camera/drivers/cam_core
|
||||||
|
|
||||||
obj-$(CONFIG_SPECTRA_CAMERA) += cam_eeprom_dev.o cam_eeprom_core.o cam_eeprom_soc.o
|
obj-$(CONFIG_SPECTRA_CAMERA) += cam_eeprom_dev.o cam_eeprom_core.o cam_eeprom_soc.o
|
||||||
|
@@ -22,6 +22,7 @@
|
|||||||
#include <cam_subdev.h>
|
#include <cam_subdev.h>
|
||||||
#include <cam_sensor.h>
|
#include <cam_sensor.h>
|
||||||
#include "cam_soc_util.h"
|
#include "cam_soc_util.h"
|
||||||
|
#include "cam_context.h"
|
||||||
|
|
||||||
#define DEFINE_MSM_MUTEX(mutexname) \
|
#define DEFINE_MSM_MUTEX(mutexname) \
|
||||||
static struct mutex mutexname = __MUTEX_INITIALIZER(mutexname)
|
static struct mutex mutexname = __MUTEX_INITIALIZER(mutexname)
|
||||||
@@ -152,6 +153,7 @@ struct eebin_info {
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* struct cam_eeprom_ctrl_t - EEPROM control structure
|
* struct cam_eeprom_ctrl_t - EEPROM control structure
|
||||||
|
* @device_name : Device name
|
||||||
* @pdev : platform device
|
* @pdev : platform device
|
||||||
* @spi : spi device
|
* @spi : spi device
|
||||||
* @eeprom_mutex : eeprom mutex
|
* @eeprom_mutex : eeprom mutex
|
||||||
@@ -170,6 +172,7 @@ struct eebin_info {
|
|||||||
* @eebin_info : EEBIN address, size info
|
* @eebin_info : EEBIN address, size info
|
||||||
*/
|
*/
|
||||||
struct cam_eeprom_ctrl_t {
|
struct cam_eeprom_ctrl_t {
|
||||||
|
char device_name[CAM_CTX_DEV_NAME_MAX_LENGTH];
|
||||||
struct platform_device *pdev;
|
struct platform_device *pdev;
|
||||||
struct spi_device *spi;
|
struct spi_device *spi;
|
||||||
struct mutex eeprom_mutex;
|
struct mutex eeprom_mutex;
|
||||||
@@ -184,7 +187,6 @@ struct cam_eeprom_ctrl_t {
|
|||||||
enum cam_eeprom_state cam_eeprom_state;
|
enum cam_eeprom_state cam_eeprom_state;
|
||||||
bool userspace_probe;
|
bool userspace_probe;
|
||||||
struct cam_eeprom_memory_block_t cal_data;
|
struct cam_eeprom_memory_block_t cal_data;
|
||||||
char device_name[20];
|
|
||||||
uint16_t is_multimodule_mode;
|
uint16_t is_multimodule_mode;
|
||||||
struct i2c_settings_array wr_settings;
|
struct i2c_settings_array wr_settings;
|
||||||
struct eebin_info eebin_info;
|
struct eebin_info eebin_info;
|
||||||
|
@@ -379,6 +379,8 @@ static int cam_flash_init_subdev(struct cam_flash_ctrl *fctrl)
|
|||||||
{
|
{
|
||||||
int rc = 0;
|
int rc = 0;
|
||||||
|
|
||||||
|
strlcpy(fctrl->device_name, CAM_FLASH_NAME,
|
||||||
|
sizeof(fctrl->device_name));
|
||||||
fctrl->v4l2_dev_str.internal_ops =
|
fctrl->v4l2_dev_str.internal_ops =
|
||||||
&cam_flash_internal_ops;
|
&cam_flash_internal_ops;
|
||||||
fctrl->v4l2_dev_str.ops = &cam_flash_subdev_ops;
|
fctrl->v4l2_dev_str.ops = &cam_flash_subdev_ops;
|
||||||
|
@@ -28,6 +28,7 @@
|
|||||||
#include "cam_debug_util.h"
|
#include "cam_debug_util.h"
|
||||||
#include "cam_sensor_io.h"
|
#include "cam_sensor_io.h"
|
||||||
#include "cam_flash_core.h"
|
#include "cam_flash_core.h"
|
||||||
|
#include "cam_context.h"
|
||||||
|
|
||||||
#define CAMX_FLASH_DEV_NAME "cam-flash-dev"
|
#define CAMX_FLASH_DEV_NAME "cam-flash-dev"
|
||||||
|
|
||||||
@@ -153,6 +154,7 @@ struct cam_flash_func_tbl {
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* struct cam_flash_ctrl
|
* struct cam_flash_ctrl
|
||||||
|
* @device_name : Device name
|
||||||
* @soc_info : Soc related information
|
* @soc_info : Soc related information
|
||||||
* @pdev : Platform device
|
* @pdev : Platform device
|
||||||
* @per_frame[] : Per_frame setting array
|
* @per_frame[] : Per_frame setting array
|
||||||
@@ -179,6 +181,7 @@ struct cam_flash_func_tbl {
|
|||||||
* @last_flush_req : last request to flush
|
* @last_flush_req : last request to flush
|
||||||
*/
|
*/
|
||||||
struct cam_flash_ctrl {
|
struct cam_flash_ctrl {
|
||||||
|
char device_name[CAM_CTX_DEV_NAME_MAX_LENGTH];
|
||||||
struct cam_hw_soc_info soc_info;
|
struct cam_hw_soc_info soc_info;
|
||||||
struct platform_device *pdev;
|
struct platform_device *pdev;
|
||||||
struct cam_sensor_power_ctrl_t power_info;
|
struct cam_sensor_power_ctrl_t power_info;
|
||||||
|
@@ -8,5 +8,6 @@ ccflags-y += -I$(srctree)/techpack/camera/drivers/cam_sensor_module/cam_res_mgr
|
|||||||
ccflags-y += -I$(srctree)/techpack/camera/drivers/cam_sensor_module/cam_sensor_utils
|
ccflags-y += -I$(srctree)/techpack/camera/drivers/cam_sensor_module/cam_sensor_utils
|
||||||
ccflags-y += -I$(srctree)/techpack/camera/drivers/cam_req_mgr
|
ccflags-y += -I$(srctree)/techpack/camera/drivers/cam_req_mgr
|
||||||
ccflags-y += -I$(srctree)/techpack/camera/drivers/cam_sensor_module/cam_cci
|
ccflags-y += -I$(srctree)/techpack/camera/drivers/cam_sensor_module/cam_cci
|
||||||
|
ccflags-y += -I$(srctree)/techpack/camera/drivers/cam_core/
|
||||||
|
|
||||||
obj-$(CONFIG_SPECTRA_CAMERA) += cam_ois_dev.o cam_ois_core.o cam_ois_soc.o
|
obj-$(CONFIG_SPECTRA_CAMERA) += cam_ois_dev.o cam_ois_core.o cam_ois_soc.o
|
||||||
|
@@ -1,6 +1,6 @@
|
|||||||
/* SPDX-License-Identifier: GPL-2.0-only */
|
/* SPDX-License-Identifier: GPL-2.0-only */
|
||||||
/*
|
/*
|
||||||
* Copyright (c) 2017-2018, The Linux Foundation. All rights reserved.
|
* Copyright (c) 2017-2019, The Linux Foundation. All rights reserved.
|
||||||
*/
|
*/
|
||||||
#ifndef _CAM_OIS_DEV_H_
|
#ifndef _CAM_OIS_DEV_H_
|
||||||
#define _CAM_OIS_DEV_H_
|
#define _CAM_OIS_DEV_H_
|
||||||
@@ -20,6 +20,7 @@
|
|||||||
#include <cam_mem_mgr.h>
|
#include <cam_mem_mgr.h>
|
||||||
#include <cam_subdev.h>
|
#include <cam_subdev.h>
|
||||||
#include "cam_soc_util.h"
|
#include "cam_soc_util.h"
|
||||||
|
#include "cam_context.h"
|
||||||
|
|
||||||
#define DEFINE_MSM_MUTEX(mutexname) \
|
#define DEFINE_MSM_MUTEX(mutexname) \
|
||||||
static struct mutex mutexname = __MUTEX_INITIALIZER(mutexname)
|
static struct mutex mutexname = __MUTEX_INITIALIZER(mutexname)
|
||||||
@@ -83,6 +84,7 @@ struct cam_ois_intf_params {
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* struct cam_ois_ctrl_t - OIS ctrl private data
|
* struct cam_ois_ctrl_t - OIS ctrl private data
|
||||||
|
* @device_name : ois device_name
|
||||||
* @pdev : platform device
|
* @pdev : platform device
|
||||||
* @ois_mutex : ois mutex
|
* @ois_mutex : ois mutex
|
||||||
* @soc_info : ois soc related info
|
* @soc_info : ois soc related info
|
||||||
@@ -95,7 +97,6 @@ struct cam_ois_intf_params {
|
|||||||
* @i2c_calib_data : ois i2c calib settings
|
* @i2c_calib_data : ois i2c calib settings
|
||||||
* @ois_device_type : ois device type
|
* @ois_device_type : ois device type
|
||||||
* @cam_ois_state : ois_device_state
|
* @cam_ois_state : ois_device_state
|
||||||
* @ois_name : ois name
|
|
||||||
* @ois_fw_flag : flag for firmware download
|
* @ois_fw_flag : flag for firmware download
|
||||||
* @is_ois_calib : flag for Calibration data
|
* @is_ois_calib : flag for Calibration data
|
||||||
* @opcode : ois opcode
|
* @opcode : ois opcode
|
||||||
@@ -103,6 +104,7 @@ struct cam_ois_intf_params {
|
|||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
struct cam_ois_ctrl_t {
|
struct cam_ois_ctrl_t {
|
||||||
|
char device_name[CAM_CTX_DEV_NAME_MAX_LENGTH];
|
||||||
struct platform_device *pdev;
|
struct platform_device *pdev;
|
||||||
struct mutex ois_mutex;
|
struct mutex ois_mutex;
|
||||||
struct cam_hw_soc_info soc_info;
|
struct cam_hw_soc_info soc_info;
|
||||||
@@ -116,7 +118,6 @@ struct cam_ois_ctrl_t {
|
|||||||
struct i2c_settings_array i2c_mode_data;
|
struct i2c_settings_array i2c_mode_data;
|
||||||
enum msm_camera_device_type_t ois_device_type;
|
enum msm_camera_device_type_t ois_device_type;
|
||||||
enum cam_ois_state cam_ois_state;
|
enum cam_ois_state cam_ois_state;
|
||||||
char device_name[20];
|
|
||||||
char ois_name[32];
|
char ois_name[32];
|
||||||
uint8_t ois_fw_flag;
|
uint8_t ois_fw_flag;
|
||||||
uint8_t is_ois_calib;
|
uint8_t is_ois_calib;
|
||||||
|
@@ -23,6 +23,7 @@
|
|||||||
#include <cam_subdev.h>
|
#include <cam_subdev.h>
|
||||||
#include <cam_sensor_io.h>
|
#include <cam_sensor_io.h>
|
||||||
#include "cam_debug_util.h"
|
#include "cam_debug_util.h"
|
||||||
|
#include "cam_context.h"
|
||||||
|
|
||||||
#define NUM_MASTERS 2
|
#define NUM_MASTERS 2
|
||||||
#define NUM_QUEUES 2
|
#define NUM_QUEUES 2
|
||||||
@@ -65,6 +66,7 @@ struct intf_params {
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* struct cam_sensor_ctrl_t: Camera control structure
|
* struct cam_sensor_ctrl_t: Camera control structure
|
||||||
|
* @device_name: Sensor device name
|
||||||
* @pdev: Platform device
|
* @pdev: Platform device
|
||||||
* @cam_sensor_mutex: Sensor mutex
|
* @cam_sensor_mutex: Sensor mutex
|
||||||
* @sensordata: Sensor board Information
|
* @sensordata: Sensor board Information
|
||||||
@@ -80,7 +82,6 @@ struct intf_params {
|
|||||||
* @i2c_data: Sensor I2C register settings
|
* @i2c_data: Sensor I2C register settings
|
||||||
* @sensor_info: Sensor query cap structure
|
* @sensor_info: Sensor query cap structure
|
||||||
* @bridge_intf: Bridge interface structure
|
* @bridge_intf: Bridge interface structure
|
||||||
* @device_name: Sensor device structure
|
|
||||||
* @streamon_count: Count to hold the number of times stream on called
|
* @streamon_count: Count to hold the number of times stream on called
|
||||||
* @streamoff_count: Count to hold the number of times stream off called
|
* @streamoff_count: Count to hold the number of times stream off called
|
||||||
* @bob_reg_index: Hold to BoB regulator index
|
* @bob_reg_index: Hold to BoB regulator index
|
||||||
@@ -89,6 +90,7 @@ struct intf_params {
|
|||||||
* @pipeline_delay: Sensor pipeline delay
|
* @pipeline_delay: Sensor pipeline delay
|
||||||
*/
|
*/
|
||||||
struct cam_sensor_ctrl_t {
|
struct cam_sensor_ctrl_t {
|
||||||
|
char device_name[CAM_CTX_DEV_NAME_MAX_LENGTH];
|
||||||
struct platform_device *pdev;
|
struct platform_device *pdev;
|
||||||
struct cam_hw_soc_info soc_info;
|
struct cam_hw_soc_info soc_info;
|
||||||
struct mutex cam_sensor_mutex;
|
struct mutex cam_sensor_mutex;
|
||||||
@@ -106,7 +108,6 @@ struct cam_sensor_ctrl_t {
|
|||||||
struct i2c_data_settings i2c_data;
|
struct i2c_data_settings i2c_data;
|
||||||
struct cam_sensor_query_cap sensor_info;
|
struct cam_sensor_query_cap sensor_info;
|
||||||
struct intf_params bridge_intf;
|
struct intf_params bridge_intf;
|
||||||
char device_name[20];
|
|
||||||
uint32_t streamon_count;
|
uint32_t streamon_count;
|
||||||
uint32_t streamoff_count;
|
uint32_t streamoff_count;
|
||||||
int bob_reg_index;
|
int bob_reg_index;
|
||||||
|
Reference in New Issue
Block a user