Defined in 1 files as a function:

Referenced in 1 files:

Smatch caller information:

drivers/i2c/busses/i2c-img-scb.c img_i2c_atomic_op() -> img_i2c_switch_mode()

Type Parameter Key Value
PARAM_VALUE 0 i2c 4096-ptr_max
PARAM_VALUE 0 i2c->mode 2
PARAM_VALUE 1 mode 1
DATA_SOURCE 0 i2c $0
STR_LEN 0 i2c->adap.name (-1)
PREEMPT_ADD
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL
HOST_DATA 0 i2c->line_status 0-u32max
LOCK2 0 &i2c->lock
HALF_LOCKED2 &desc->request_mutex
HALF_LOCKED2 _T->lock
HALF_LOCKED2 flags
TYPE_LOCK (struct img_i2c)->lock

drivers/i2c/busses/i2c-img-scb.c img_i2c_atomic_start() -> img_i2c_switch_mode()

Type Parameter Key Value
PARAM_VALUE 0 i2c 4096-ptr_max
PARAM_VALUE 0 i2c->mode 0-4,6,8-u32max
PARAM_VALUE 1 mode 2
BUF_SIZE 0 i2c s32min-(-2),1-s32max
BUF_SIZE 0 i2c s32min-(-2),1-s32max
DATA_SOURCE 0 i2c $0
PREEMPT_ADD
NOCHECK_CALL
UNITS 0 i2c unit_byte
LOCK2 flags
LOCK2 0 &i2c->lock
TYPE_LOCK (struct img_i2c)->lock

drivers/i2c/busses/i2c-img-scb.c img_i2c_complete_transaction() -> img_i2c_switch_mode()

Type Parameter Key Value
PARAM_VALUE 0 i2c 4096-ptr_max
PARAM_VALUE 1 mode 0
DATA_SOURCE 0 i2c $0
PREEMPT_ADD
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL
HOST_DATA 0 i2c->line_status 0-u32max
LOCK2 0 &i2c->lock
HALF_LOCKED2 &desc->request_mutex
HALF_LOCKED2 _T->lock
HALF_LOCKED2 flags
HALF_LOCKED2 irq
TYPE_LOCK (struct img_i2c)->lock

drivers/i2c/busses/i2c-img-scb.c img_i2c_isr() -> img_i2c_switch_mode()

Type Parameter Key Value
PARAM_VALUE 0 i2c 4096-ptr_max
PARAM_VALUE 1 mode 6
DATA_SOURCE 0 i2c $1
BIT_INFO 0 i2c->line_status 0x0,0xffffbfff
PREEMPT_ADD <- disables preempt
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL
HOST_DATA 0 i2c->line_status 0-u32max
LOCK2 0 &i2c->lock
HALF_LOCKED2 &desc->request_mutex
HALF_LOCKED2 flags
TYPE_LOCK (struct img_i2c)->lock

drivers/i2c/busses/i2c-img-scb.c img_i2c_isr() -> img_i2c_switch_mode()

Type Parameter Key Value
PARAM_VALUE 0 i2c 4096-ptr_max
PARAM_VALUE 0 i2c->int_enable 0,65584,98352,262144,658996
PARAM_VALUE 0 i2c->line_status 0
PARAM_VALUE 0 i2c->mode 0
PARAM_VALUE 1 mode 5
DATA_SOURCE 0 i2c $1
PREEMPT_ADD <- disables preempt
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL
LOCK2 0 &i2c->lock
HALF_LOCKED2 &desc->request_mutex
HALF_LOCKED2 flags
TYPE_LOCK (struct img_i2c)->lock

drivers/i2c/busses/i2c-img-scb.c img_i2c_probe() -> img_i2c_switch_mode()

Type Parameter Key Value
PARAM_VALUE 0 i2c 4096-ptr_max
PARAM_VALUE 1 mode 0
BUF_SIZE 0 i2c 2696
BUF_SIZE 0 i2c->adap.algo 56
BUF_SIZE 0 i2c->adap.dev.parent 1616
BUF_SIZE 0 i2c->scb_clk (-1),1-s32max
BUF_SIZE 0 i2c->sys_clk (-1),1-s32max
DATA_SOURCE 0 i2c r devm_kzalloc
STR_LEN 0 i2c->adap.name 47
MEM_ZERO 0 i2c
MEM_ZERO 0 i2c->adap.dev.bus
MEM_ZERO 0 i2c->adap.dev.class
MEM_ZERO 0 i2c->adap.dev.cma_area
MEM_ZERO 0 i2c->adap.dev.dma_io_tlb_mem
MEM_ZERO 0 i2c->adap.dev.dma_mask
MEM_ZERO 0 i2c->adap.dev.dma_mem
MEM_ZERO 0 i2c->adap.dev.dma_ops
MEM_ZERO 0 i2c->adap.dev.dma_parms
MEM_ZERO 0 i2c->adap.dev.dma_range_map
MEM_ZERO 0 i2c->adap.dev.driver
MEM_ZERO 0 i2c->adap.dev.em_pd
MEM_ZERO 0 i2c->adap.dev.flags
MEM_ZERO 0 i2c->adap.dev.fwnode
MEM_ZERO 0 i2c->adap.dev.groups
MEM_ZERO 0 i2c->adap.dev.init_name
MEM_ZERO 0 i2c->adap.dev.iommu
MEM_ZERO 0 i2c->adap.dev.iommu_group
MEM_ZERO 0 i2c->adap.dev.p
MEM_ZERO 0 i2c->adap.dev.physical_location
MEM_ZERO 0 i2c->adap.dev.pins
MEM_ZERO 0 i2c->adap.dev.platform_data
MEM_ZERO 0 i2c->adap.dev.pm_domain
MEM_ZERO 0 i2c->adap.dev.release
MEM_ZERO 0 i2c->adap.dev.type
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL
NO_OVERFLOW_SIMPLE 0 i2c->adap.name

drivers/i2c/busses/i2c-img-scb.c img_i2c_raw_atomic_delay_handler() -> img_i2c_switch_mode()

Type Parameter Key Value
PARAM_VALUE 0 i2c 4096-ptr_max
PARAM_VALUE 0 i2c->line_status 0
PARAM_VALUE 0 i2c->mode 1
PARAM_VALUE 1 mode 2
DATA_SOURCE 0 i2c $0
PREEMPT_ADD
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL
LOCK2 0 &i2c->lock
HALF_LOCKED2 &desc->request_mutex
HALF_LOCKED2 _T->lock
HALF_LOCKED2 flags
TYPE_LOCK (struct img_i2c)->lock

drivers/i2c/busses/i2c-img-scb.c img_i2c_read() -> img_i2c_switch_mode()

Type Parameter Key Value
PARAM_VALUE 0 i2c 4096-ptr_max
PARAM_VALUE 0 i2c->mode 0-4,6,8-u32max
PARAM_VALUE 1 mode 3
BUF_SIZE 0 i2c s32min-(-2),1-s32max
BUF_SIZE 0 i2c s32min-(-2),1-s32max
DATA_SOURCE 0 i2c $0
PREEMPT_ADD
NOCHECK_CALL
UNITS 0 i2c unit_byte
LOCK2 flags
LOCK2 0 &i2c->lock
TYPE_LOCK (struct img_i2c)->lock

drivers/i2c/busses/i2c-img-scb.c img_i2c_reset_start() -> img_i2c_switch_mode()

Type Parameter Key Value
PARAM_VALUE 0 i2c 4096-ptr_max
PARAM_VALUE 1 mode 4
BUF_SIZE 0 i2c s32min-(-1),1-s32max
BUF_SIZE 0 i2c s32min-(-1),1-s32max
BUF_SIZE 0 i2c->adap.algo (-1),56
BUF_SIZE 0 i2c->adap.dev.parent (-1),1616
BUF_SIZE 0 i2c->scb_clk (-1),1-s32max
BUF_SIZE 0 i2c->sys_clk (-1),1-s32max
DATA_SOURCE 0 i2c $0
STR_LEN 0 i2c->adap.name (-1),47
PREEMPT_ADD
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL
UNITS 0 i2c unit_byte
LOCK2 flags
LOCK2 0 &i2c->lock
TYPE_LOCK (struct img_i2c)->lock

drivers/i2c/busses/i2c-img-scb.c img_i2c_stop_start() -> img_i2c_switch_mode()

Type Parameter Key Value
PARAM_VALUE 0 i2c 4096-ptr_max
PARAM_VALUE 0 i2c->mode 3
PARAM_VALUE 1 mode 4
DATA_SOURCE 0 i2c $0
PREEMPT_ADD
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL
HOST_DATA 0 i2c->line_status 0-u32max
LOCK2 0 &i2c->lock
HALF_LOCKED2 &desc->request_mutex
HALF_LOCKED2 _T->lock
HALF_LOCKED2 flags
TYPE_LOCK (struct img_i2c)->lock

drivers/i2c/busses/i2c-img-scb.c img_i2c_suspend() -> img_i2c_switch_mode()

Type Parameter Key Value
PARAM_VALUE 1 mode 7
BUF_SIZE 0 i2c s32min-(-2),1-s32max
BUF_SIZE 0 i2c s32min-(-2),1-s32max
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL
UNITS 0 i2c unit_byte

drivers/i2c/busses/i2c-img-scb.c img_i2c_write() -> img_i2c_switch_mode()

Type Parameter Key Value
PARAM_VALUE 0 i2c 4096-ptr_max
PARAM_VALUE 0 i2c->mode 0-4,6,8-u32max
PARAM_VALUE 1 mode 3
BUF_SIZE 0 i2c s32min-(-2),1-s32max
BUF_SIZE 0 i2c s32min-(-2),1-s32max
DATA_SOURCE 0 i2c $0
PREEMPT_ADD
NOCHECK_CALL
UNITS 0 i2c unit_byte
LOCK2 flags
LOCK2 0 &i2c->lock
TYPE_LOCK (struct img_i2c)->lock