// SPDX-License-Identifier: GPL-2.0-or-later /* * Adaptec AAC series RAID controller driver * (c) Copyright 2001 Red Hat Inc. * * based on the old aacraid driver that is.. * Adaptec aacraid device driver for Linux. * * Copyright (c) 2000-2010 Adaptec, Inc. * 2010-2015 PMC-Sierra, Inc. ([email protected]) * 2016-2017 Microsemi Corp. ([email protected]) * * Module Name: * dpcsup.c * * Abstract: All DPC processing routines for the cyclone board occur here. */ #include <linux/kernel.h> #include <linux/init.h> #include <linux/types.h> #include <linux/spinlock.h> #include <linux/slab.h> #include <linux/completion.h> #include <linux/blkdev.h> #include "aacraid.h" /** * aac_response_normal - Handle command replies * @q: Queue to read from * * This DPC routine will be run when the adapter interrupts us to let us * know there is a response on our normal priority queue. We will pull off * all QE there are and wake up all the waiters before exiting. We will * take a spinlock out on the queue before operating on it. */ unsigned int aac_response_normal(struct aac_queue * q) { … } /** * aac_command_normal - handle commands * @q: queue to process * * This DPC routine will be queued when the adapter interrupts us to * let us know there is a command on our normal priority queue. We will * pull off all QE there are and wake up all the waiters before exiting. * We will take a spinlock out on the queue before operating on it. */ unsigned int aac_command_normal(struct aac_queue *q) { … } /* * * aac_aif_callback * @context: the context set in the fib - here it is scsi cmd * @fibptr: pointer to the fib * * Handles the AIFs - new method (SRC) * */ static void aac_aif_callback(void *context, struct fib * fibptr) { … } /* * aac_intr_normal - Handle command replies * @dev: Device * @index: completion reference * * This DPC routine will be run when the adapter interrupts us to let us * know there is a response on our normal priority queue. We will pull off * all QE there are and wake up all the waiters before exiting. */ unsigned int aac_intr_normal(struct aac_dev *dev, u32 index, int isAif, int isFastResponse, struct hw_fib *aif_fib) { … }