Defined in 1 files as a function:

Referenced in 1 files:

Smatch caller information:

drivers/dma/dw/core.c dwc_dostart_first_queued() -> dwc_first_active()

Type Parameter Key Value
PARAM_VALUE 0 dwc 4096-ptr_max
PARAM_VALUE 0 dwc->active_list.next 4096-ptr_max
CAPPED_DATA 0 &dwc->queue 1
DATA_SOURCE 0 dwc $0
PARAM_COMPARE 0 &dwc->queue != $0->queue.next
PREEMPT_ADD
RX_PATH
TASK_NOT_RUNNING
LOCK2 flags
LOCK2 0 &dwc->lock
TYPE_LOCK (struct dw_dma_chan)->lock

drivers/dma/dw/core.c dwc_get_residue_and_status() -> dwc_first_active()

Type Parameter Key Value
PARAM_VALUE 0 dwc 4096-ptr_max
DATA_SOURCE 0 dwc $0
PREEMPT_ADD <- disables preempt
TASK_NOT_RUNNING
LOCK2 flags
LOCK2 0 &dwc->lock
HALF_LOCKED2 &dcmi->irqlock
HALF_LOCKED2 &host->io_mutex
HALF_LOCKED2 &host->lock
HALF_LOCKED2 &info->lock
HALF_LOCKED2 &pcdev->lock
HALF_LOCKED2 &port->lock
HALF_LOCKED2 &up->port.lock
HALF_LOCKED2 flags
HALF_LOCKED2 irq
TYPE_LOCK (struct dw_dma_chan)->lock

drivers/dma/dw/core.c dwc_handle_error() -> dwc_first_active()

Type Parameter Key Value
PARAM_VALUE 0 dwc 4096-ptr_max
DATA_SOURCE 0 dwc $1
PREEMPT_ADD <- disables preempt
RX_PATH
TASK_NOT_RUNNING
LOCK2 flags
LOCK2 0 &dwc->lock
HALF_LOCKED2 bh
TYPE_LOCK (struct dw_dma_chan)->lock

drivers/dma/dw/core.c dwc_handle_error() -> dwc_first_active()

Type Parameter Key Value
PARAM_VALUE 0 dwc 4096-ptr_max
CAPPED_DATA 0 &dwc->active_list 1
DATA_SOURCE 0 dwc $1
PARAM_COMPARE 0 &dwc->active_list != $0->active_list.next
PREEMPT_ADD <- disables preempt
RX_PATH
TASK_NOT_RUNNING
LOCK2 flags
LOCK2 0 &dwc->lock
HALF_LOCKED2 bh
TYPE_LOCK (struct dw_dma_chan)->lock

drivers/dma/dw/core.c dwc_scan_descriptors() -> dwc_first_active()

Type Parameter Key Value
PARAM_VALUE 0 dwc 4096-ptr_max
DATA_SOURCE 0 dwc $1
PREEMPT_ADD <- disables preempt
RX_PATH
TASK_NOT_RUNNING
LOCK2 flags
LOCK2 0 &dwc->lock
TYPE_LOCK (struct dw_dma_chan)->lock