diff options
author | Adrian Chadd <adrian@FreeBSD.org> | 2016-04-19 15:56:39 +0000 |
---|---|---|
committer | Adrian Chadd <adrian@FreeBSD.org> | 2016-04-19 15:56:39 +0000 |
commit | 36e4410ab0aa435639556b39dac37fb9f90cd962 (patch) | |
tree | 719fc09d561193dbb55ff9d9b8ca4bcba654f7ae /sys/dev/bhnd/bhndb/bhndb_pci.c | |
parent | 386fb140a6ffdae9b5229269456897816809fbf3 (diff) | |
download | src-36e4410ab0aa435639556b39dac37fb9f90cd962.tar.gz src-36e4410ab0aa435639556b39dac37fb9f90cd962.zip |
[bhnd] Standardize bhnd device tables and quirk matching.
This add a bhnd device table mechanism that standardizes matching of
devices on the bhnd(4) bus, discovery of device quirk flags, and should
be pluggable into the new PNPINFO machinery.
Submitted by: Landon Fuller <landonf@landonf.org>
Differential Revision: https://reviews.freebsd.org/D5759
Notes
Notes:
svn path=/head/; revision=298278
Diffstat (limited to 'sys/dev/bhnd/bhndb/bhndb_pci.c')
-rw-r--r-- | sys/dev/bhnd/bhndb/bhndb_pci.c | 74 |
1 files changed, 39 insertions, 35 deletions
diff --git a/sys/dev/bhnd/bhndb/bhndb_pci.c b/sys/dev/bhnd/bhndb/bhndb_pci.c index dd11c1249273..cc15ddeeb7ff 100644 --- a/sys/dev/bhnd/bhndb/bhndb_pci.c +++ b/sys/dev/bhnd/bhndb/bhndb_pci.c @@ -111,56 +111,60 @@ static const struct bhndb_pci_id *bhndb_pci_find_core_id( */ static const struct bhndb_pci_id bhndb_pci_ids[] = { /* PCI */ - BHNDB_PCI_ID(PCI, - BHND_QUIRK_HWREV_GTE (0, - BHNDB_PCI_QUIRK_EXT_CLOCK_GATING | - BHNDB_PCI_QUIRK_SBTOPCI2_PREF_BURST), + { BHND_COREID_PCI, BHND_PCI_REGFMT_PCI, + (struct bhnd_device_quirk[]) { + { BHND_HWREV_GTE (0), + BHNDB_PCI_QUIRK_EXT_CLOCK_GATING | + BHNDB_PCI_QUIRK_SBTOPCI2_PREF_BURST }, - BHND_QUIRK_HWREV_RANGE (0, 5, - BHNDB_PCI_QUIRK_SBINTVEC), + { BHND_HWREV_RANGE (0, 5), + BHNDB_PCI_QUIRK_SBINTVEC }, - BHND_QUIRK_HWREV_GTE (11, - BHNDB_PCI_QUIRK_SBTOPCI2_READMULTI | - BHNDB_PCI_QUIRK_CLKRUN_DSBL), + { BHND_HWREV_GTE (11), + BHNDB_PCI_QUIRK_SBTOPCI2_READMULTI | + BHNDB_PCI_QUIRK_CLKRUN_DSBL }, - BHND_QUIRK_HWREV_END - ), + BHND_DEVICE_QUIRK_END + } + }, /* PCI Gen 1 */ - BHNDB_PCI_ID(PCIE, - BHND_QUIRK_HWREV_EQ (0, - BHNDB_PCIE_QUIRK_SDR9_L0s_HANG), + { BHND_COREID_PCIE, BHND_PCI_REGFMT_PCIE, + (struct bhnd_device_quirk[]) { + { BHND_HWREV_EQ (0), + BHNDB_PCIE_QUIRK_SDR9_L0s_HANG }, - BHND_QUIRK_HWREV_RANGE (0, 1, - BHNDB_PCIE_QUIRK_UR_STATUS_FIX), + { BHND_HWREV_RANGE (0, 1), + BHNDB_PCIE_QUIRK_UR_STATUS_FIX }, - BHND_QUIRK_HWREV_EQ (1, - BHNDB_PCIE_QUIRK_PCIPM_REQEN), + { BHND_HWREV_EQ (1), + BHNDB_PCIE_QUIRK_PCIPM_REQEN }, - BHND_QUIRK_HWREV_RANGE (3, 5, - BHNDB_PCIE_QUIRK_ASPM_OVR | - BHNDB_PCIE_QUIRK_SDR9_POLARITY | - BHNDB_PCIE_QUIRK_SDR9_NO_FREQRETRY), + { BHND_HWREV_RANGE (3, 5), + BHNDB_PCIE_QUIRK_ASPM_OVR | + BHNDB_PCIE_QUIRK_SDR9_POLARITY | + BHNDB_PCIE_QUIRK_SDR9_NO_FREQRETRY }, - BHND_QUIRK_HWREV_LTE (6, - BHNDB_PCIE_QUIRK_L1_IDLE_THRESH), + { BHND_HWREV_LTE (6), + BHNDB_PCIE_QUIRK_L1_IDLE_THRESH }, - BHND_QUIRK_HWREV_GTE (6, - BHNDB_PCIE_QUIRK_SPROM_L23_PCI_RESET), + { BHND_HWREV_GTE (6), + BHNDB_PCIE_QUIRK_SPROM_L23_PCI_RESET }, - BHND_QUIRK_HWREV_EQ (7, - BHNDB_PCIE_QUIRK_SERDES_NOPLLDOWN), + { BHND_HWREV_EQ (7), + BHNDB_PCIE_QUIRK_SERDES_NOPLLDOWN }, - BHND_QUIRK_HWREV_GTE (8, - BHNDB_PCIE_QUIRK_L1_TIMER_PERF), + { BHND_HWREV_GTE (8), + BHNDB_PCIE_QUIRK_L1_TIMER_PERF }, - BHND_QUIRK_HWREV_GTE (10, - BHNDB_PCIE_QUIRK_SD_C22_EXTADDR), + { BHND_HWREV_GTE (10), + BHNDB_PCIE_QUIRK_SD_C22_EXTADDR }, - BHND_QUIRK_HWREV_END - ), + BHND_DEVICE_QUIRK_END + } + }, - { BHND_COREID_INVALID, BHND_PCI_REGFMT_PCI, NULL } + { BHND_COREID_INVALID, BHND_PCI_REGFMT_PCI } }; |