Changeset View
Standalone View
sys/dev/aacraid/aacraid_var.h
Context not available. | |||||
#define AAC_DRIVER_MAJOR_VERSION 3 | #define AAC_DRIVER_MAJOR_VERSION 3 | ||||
#define AAC_DRIVER_MINOR_VERSION 2 | #define AAC_DRIVER_MINOR_VERSION 2 | ||||
#define AAC_DRIVER_BUGFIX_LEVEL 5 | #define AAC_DRIVER_BUGFIX_LEVEL 10 | ||||
#define AAC_DRIVER_TYPE AAC_TYPE_RELEASE | #define AAC_DRIVER_TYPE AAC_TYPE_RELEASE | ||||
#ifndef AAC_DRIVER_BUILD | #ifndef AAC_DRIVER_BUILD | ||||
Context not available. | |||||
u_int32_t aac_feature_bits; /* feature bits from suppl. info */ | u_int32_t aac_feature_bits; /* feature bits from suppl. info */ | ||||
u_int32_t aac_support_opt2; /* supp. options from suppl. info */ | u_int32_t aac_support_opt2; /* supp. options from suppl. info */ | ||||
u_int32_t aac_max_aif; /* max. AIF count */ | u_int32_t aac_max_aif; /* max. AIF count */ | ||||
u_int32_t doorbell_mask; /* for IOP reset */ | |||||
u_int32_t aac_max_msix; /* max. MSI-X vectors */ | u_int32_t aac_max_msix; /* max. MSI-X vectors */ | ||||
u_int32_t aac_vector_cap; /* MSI-X vector capab.*/ | u_int32_t aac_vector_cap; /* MSI-X vector capab.*/ | ||||
int msi_enabled; /* MSI/MSI-X enabled */ | int msi_enabled; /* MSI/MSI-X enabled */ | ||||
int msi_tupelo; | |||||
imp: This needs a comment. It kinda sorta seems like it duplicates msi_enabled, but it kinda doesn't… | |||||
Done Inline ActionsAccording to Prasad: "msi_tupelo" is used for ARC series 6 controller which initially did not support MSI interrupt, later support was added with only one MSI interrupt. Basically it means it supports only MSI interrupt. where as "msi_enabled" indicates that it supports both MSI and MSI-X interrupt based on the System Config. this is usually used for Series 7 & 8 ARC controller. scott.benesh_microsemi.com: According to Prasad:
"msi_tupelo" is used for ARC series 6 controller which initially did not… | |||||
Done Inline ActionsSo adding a comment /* Series 6 support for single MSI interrupt. */ after msi_tupelo would answer my concern here nicely I think. thanks for the explanation. imp: So adding a comment /* Series 6 support for single MSI interrupt. */ after msi_tupelo would… | |||||
Not Done Inline ActionsWould it make better sense to always treat MSI as having a single vector, rename msi_enabled as msix_enabled, and rename msi_tupelo to msi_enabled? You could then flag the Gen6 behavior as a quirk in the device table in aacraid_pci.c . scottl: Would it make better sense to always treat MSI as having a single vector, rename msi_enabled as… | |||||
#define AAC_CAM_TARGET_WILDCARD ~0 | #define AAC_CAM_TARGET_WILDCARD ~0 | ||||
void (*cam_rescan_cb)(struct aac_softc *, uint32_t, | void (*cam_rescan_cb)(struct aac_softc *, uint32_t, | ||||
uint32_t); | uint32_t); | ||||
Context not available. |
This needs a comment. It kinda sorta seems like it duplicates msi_enabled, but it kinda doesn't in all cases. It's weird and after studying the code for a bit, I'm still at a loss to understand why it's needed (apart from "to work" which is unsatisfying an answer). msi_enabled appears to be overloaded for a few other things, but it's unclear why from reading the code w/o firmware interface docs.