linux/drivers/scsi/elx/efct/efct_driver.c

// SPDX-License-Identifier: GPL-2.0
/*
 * Copyright (C) 2021 Broadcom. All Rights Reserved. The term
 * “Broadcom” refers to Broadcom Inc. and/or its subsidiaries.
 */

#include "efct_driver.h"

#include "efct_hw.h"
#include "efct_unsol.h"
#include "efct_scsi.h"

LIST_HEAD();

static int logmask;
module_param(logmask, int, 0444);
MODULE_PARM_DESC();

static struct libefc_function_template efct_libefc_templ =;

static int
efct_device_init(void)
{}

static void
efct_device_shutdown(void)
{}

static void *
efct_device_alloc(u32 nid)
{}

static void
efct_teardown_msix(struct efct *efct)
{}

static int
efct_efclib_config(struct efct *efct, struct libefc_function_template *tt)
{}

static int efct_request_firmware_update(struct efct *efct);

static const char*
efct_pci_model(u16 device)
{}

static int
efct_device_attach(struct efct *efct)
{}

static int
efct_device_detach(struct efct *efct)
{}

static void
efct_fw_write_cb(int status, u32 actual_write_length,
		 u32 change_status, void *arg)
{}

static int
efct_firmware_write(struct efct *efct, const u8 *buf, size_t buf_len,
		    u8 *change_status)
{}

static int
efct_fw_reset(struct efct *efct)
{}

static int
efct_request_firmware_update(struct efct *efct)
{}

static void
efct_device_free(struct efct *efct)
{}

static int
efct_device_interrupts_required(struct efct *efct)
{}

static irqreturn_t
efct_intr_thread(int irq, void *handle)
{}

static irqreturn_t
efct_intr_msix(int irq, void *handle)
{}

static int
efct_setup_msix(struct efct *efct, u32 num_intrs)
{}

static struct pci_device_id efct_pci_table[] =;

static int
efct_pci_probe(struct pci_dev *pdev, const struct pci_device_id *ent)
{}

static void
efct_pci_remove(struct pci_dev *pdev)
{}

static void
efct_device_prep_for_reset(struct efct *efct, struct pci_dev *pdev)
{}

static void
efct_device_prep_for_recover(struct efct *efct)
{}

/**
 * efct_pci_io_error_detected - method for handling PCI I/O error
 * @pdev: pointer to PCI device.
 * @state: the current PCI connection state.
 *
 * This routine is registered to the PCI subsystem for error handling. This
 * function is called by the PCI subsystem after a PCI bus error affecting
 * this device has been detected. When this routine is invoked, it dispatches
 * device error detected handling routine, which will perform the proper
 * error detected operation.
 *
 * Return codes
 * PCI_ERS_RESULT_NEED_RESET - need to reset before recovery
 * PCI_ERS_RESULT_DISCONNECT - device could not be recovered
 */
static pci_ers_result_t
efct_pci_io_error_detected(struct pci_dev *pdev, pci_channel_state_t state)
{}

static pci_ers_result_t
efct_pci_io_slot_reset(struct pci_dev *pdev)
{}

static void
efct_pci_io_resume(struct pci_dev *pdev)
{}

MODULE_DEVICE_TABLE(pci, efct_pci_table);

static struct pci_error_handlers efct_pci_err_handler =;

static struct pci_driver efct_pci_driver =;

static
int __init efct_init(void)
{}

static void __exit efct_exit(void)
{}

module_init();
module_exit(efct_exit);
MODULE_VERSION();
MODULE_DESCRIPTION();
MODULE_LICENSE();
MODULE_AUTHOR();