Home | History | Annotate | Download | only in pci
History log of /src/sys/dev/pci/trm.c
RevisionDateAuthorComments
 1.44  09-Feb-2024  andvar fix spelling mistakes, mainly in comments and log messages.
 1.43  07-Aug-2021  thorpej Merge thorpej-cfargs2.
 1.42  24-Apr-2021  thorpej branches: 1.42.8;
Merge thorpej-cfargs branch:

Simplify and make extensible the config_search() / config_found() /
config_attach() interfaces: rather than having different variants for
which arguments you want pass along, just have a single call that
takes a variadic list of tag-value arguments.

Adjust all call sites:
- Simplify wherever possible; don't pass along arguments that aren't
actually needed.
- Don't be explicit about what interface attribute is attaching if
the device only has one. (More simplification.)
- Add a config_probe() function to be used in indirect configuiration
situations, making is visibly easier to see when indirect config is
in play, and allowing for future change in semantics. (As of now,
this is just a wrapper around config_match(), but that is an
implementation detail.)

Remove unnecessary or redundant interface attributes where they're not
needed.

There are currently 5 "cfargs" defined:
- CFARG_SUBMATCH (submatch function for direct config)
- CFARG_SEARCH (search function for indirect config)
- CFARG_IATTR (interface attribte)
- CFARG_LOCATORS (locators array)
- CFARG_DEVHANDLE (devhandle_t - wraps OFW, ACPI, etc. handles)

...and a sentinel value CFARG_EOL.

Add some extra sanity checking to ensure that interface attributes
aren't ambiguous.

Use CFARG_DEVHANDLE in MI FDT, OFW, and ACPI code, and macppc and shark
ports to associate those device handles with device_t instance. This
will trickle trough to more places over time (need back-end for pre-OFW
Sun OBP; any others?).
 1.41  10-Nov-2019  chs branches: 1.41.10;
in many device attach paths, allocate memory with M_WAITOK instead of M_NOWAIT
and remove code to handle failures that can no longer happen.
 1.40  09-Dec-2018  jdolecek use pci_intr_establish_xname() everywhere
 1.39  09-Feb-2017  macallan branches: 1.39.12; 1.39.14;
fix tpyo
 1.38  09-Feb-2017  macallan make fallback to PIO actually work properly
 1.37  07-Jul-2016  msaitoh branches: 1.37.2; 1.37.4;
KNF. Remove extra spaces. No functional change.
 1.36  29-Mar-2014  christos branches: 1.36.6;
make pci_intr_string and eisa_intr_string take a buffer and a length
instead of relying in local static storage.
 1.35  24-Nov-2013  bouyer XS_NOERROR | XS_RESET doens't make sense, XS_RESET is what is wanted here.
Pointed out by Edgar Fu�
 1.34  15-Sep-2013  martin Remove unused variables
 1.33  10-May-2012  macallan branches: 1.33.2; 1.33.4;
use MMIO if available
 1.32  13-Nov-2010  uebayasi branches: 1.32.8; 1.32.12;
Don't pull in the whole uvm(9) API to access only PAGE_SIZE and
some other constants. These are provided by sys/param.h now.
 1.31  27-Jul-2010  jakllsch printf() size_t with 'z' format modifier in debug code.
 1.30  14-May-2008  tsutsui branches: 1.30.18; 1.30.20;
Normalize my licenses.
 1.29  12-Apr-2008  tsutsui branches: 1.29.2; 1.29.4; 1.29.6;
Split device_t/softc, with misc cosmetics.
 1.28  10-Apr-2008  cegger use aprint_*_dev and device_xname
 1.27  19-Oct-2007  ad branches: 1.27.16;
machine/{bus,cpu,intr}.h -> sys/{bus,cpu,intr}.h
 1.26  04-Mar-2007  christos branches: 1.26.2; 1.26.14; 1.26.16; 1.26.20;
Kill caddr_t; there will be some MI fallout, but it will be fixed shortly.
 1.25  16-Nov-2006  christos branches: 1.25.4;
__unused removal on arguments; approved by core.
 1.24  12-Oct-2006  christos - sprinkle __unused on function decls.
- fix a couple of unused bugs
- no more -Wno-unused for i386
 1.23  22-May-2006  christos branches: 1.23.6; 1.23.8;
add void casts.
 1.22  11-Apr-2006  rpaulo branches: 1.22.2;
Coverity ID 2440: in trm_timeout(), check if srb and xs are NULL
before trying to dereference them.
 1.21  11-Dec-2005  christos branches: 1.21.4; 1.21.6; 1.21.8; 1.21.10; 1.21.12;
merge ktrace-lwp.
 1.20  30-May-2005  christos branches: 1.20.2;
- const poisoning
- avoid variable shadowing.
 1.19  16-Apr-2005  bouyer Move epprom settings checks to the right place, so that sync/wide nego is
started based on the eeprom values and adapter capabilities.
Avoid the driver to negotiate wide transfers with a wide drive connected
to a non-wide capable controller.
Problem reported and fix tested by Dan LaBell on netbsd-help.
 1.18  27-Feb-2005  perry branches: 1.18.2;
nuke trailing whitespace
 1.17  21-Feb-2005  thorpej Part 1 of a cleanup pass over the SCSI subsystem. The aim is to name
everything "scsi_*", since we really are talking about the SCSI command
set, ATAPI transport not withstanding. Improve the names of many structures,
and prepend "SCSI_" onto all SCSI command opcodes. Place items described
by the SCSI Primary Commands document into scsi_spc.h.
 1.16  02-Jan-2005  tsutsui branches: 1.16.2; 1.16.4;
u_intNN_t -> uintNN_t
 1.15  25-Sep-2004  tsutsui Use ANSI function decls.
 1.14  30-Oct-2003  simonb branches: 1.14.4;
Remove some assigned-to but otherwise unused variables.
 1.13  02-Oct-2002  thorpej branches: 1.13.6;
Add trailing ; to CFATTACH_DECL.
 1.12  30-Sep-2002  thorpej Use CFATTACH_DECL().
 1.11  27-Sep-2002  thorpej Declare all cfattach structures const.
 1.10  05-Apr-2002  bouyer branches: 1.10.4;
Implement mstohz() as discussed on tech-kern, and use it in SCSI drivers
to convert xs->timeout to callout() parameter.
 1.9  05-Apr-2002  mjacob Fix:

...trm.c:578: warning: too many arguments for format

problem.
 1.8  13-Mar-2002  wiz Fix some typos in comments.
 1.7  06-Mar-2002  tsutsui Major overhaul of trm(4) driver:
- Change structures for each device to make them more suitable with
our scsipi mid-layer.
- Use ADAPTER_REQ_SET_XFER_MODE callback.
- Cleanup misc functions/structures/style.

XXX Tagged queuieng support is disabled for now.
XXX Maybe we should have common library of the scsi protocol engine
XXX to share it among all other drivers..
 1.6  16-Dec-2001  tsutsui branches: 1.6.2;
malloc() + memset() -> malloc() with M_ZERO flag
 1.5  18-Nov-2001  tsutsui Misc cleanups:
- correct trm_clock_period[] value
- pass BUS_DMA_{READ,WRITE,STREAMING} to bus_dmamap_load() as appropriate
- make sure to call bus_dmamap_unload() even after request sense
- saved srb params on request sense do not seem to be used,
so remove them from struct trm_srb
- handle target status more properly in trm_srb_done() and no need
to handle error retry in lower driver layer
- fix some comments

XXX Maybe need more cleanup around TQING for MI SCSI callback..
 1.4  13-Nov-2001  lukem branches: 1.4.2;
add RCSID
 1.3  11-Nov-2001  tsutsui branches: 1.3.2;
- Fix some bogus comments.
- Add a missed splx(s) in error case.
 1.2  04-Nov-2001  tsutsui Fix a couple of bugs:
- make sure to allocate memory for sc_tempsrb properly.
- correct links of SRB queue in trm_link_srb().
Now trm driver works on arc.
 1.1  03-Nov-2001  tsutsui Add a driver for the Tekram DC-395U/UW/F and DC-315/U SCSI host adapters,
which have the Tekram TRM-S1040 ASIC.
This driver is written by Rui-Xiang Guo <rxg@ms25.url.com.tw>,
and a number of cosmetic changes by me.
Tested on i386 by the author, and on macppc and sparc64 by me.

XXX On arc, kernel got panic in ltsleep() called from scsipi_execute_xs(),
XXX but I'm not sure what is wrong...
 1.3.2.2  12-Nov-2001  thorpej Sync the thorpej-mips-cache branch with -current.
 1.3.2.1  11-Nov-2001  thorpej file trm.c was added on branch thorpej-mips-cache on 2001-11-12 21:18:21 +0000
 1.4.2.6  18-Oct-2002  nathanw Catch up to -current.
 1.4.2.5  17-Apr-2002  nathanw Catch up to -current.
 1.4.2.4  01-Apr-2002  nathanw Catch up to -current.
(CVS: It's not just a program. It's an adventure!)
 1.4.2.3  08-Jan-2002  nathanw Catch up to -current.
 1.4.2.2  14-Nov-2001  nathanw Catch up to -current.
 1.4.2.1  13-Nov-2001  nathanw file trm.c was added on branch nathanw_sa on 2001-11-14 19:15:31 +0000
 1.6.2.5  10-Oct-2002  jdolecek sync kqueue with -current; this includes merge of gehenna-devsw branch,
merge of i386 MP branch, and part of autoconf rototil work
 1.6.2.4  23-Jun-2002  jdolecek catch up with -current on kqueue branch
 1.6.2.3  16-Mar-2002  jdolecek Catch up with -current.
 1.6.2.2  10-Jan-2002  thorpej Sync kqueue branch with -current.
 1.6.2.1  16-Dec-2001  thorpej file trm.c was added on branch kqueue on 2002-01-10 19:57:07 +0000
 1.10.4.1  16-Apr-2005  tron Pull up revision 1.19 (requested by bouyer in ticket #5751):
Move epprom settings checks to the right place, so that sync/wide nego is
started based on the eeprom values and adapter capabilities.
Avoid the driver to negotiate wide transfers with a wide drive connected
to a non-wide capable controller.
Problem reported and fix tested by Dan LaBell on netbsd-help.
 1.13.6.7  10-Nov-2005  skrll Sync with HEAD. Here we go again...
 1.13.6.6  04-Mar-2005  skrll Sync with HEAD.

Hi Perry!
 1.13.6.5  17-Jan-2005  skrll Sync with HEAD.
 1.13.6.4  19-Oct-2004  skrll Sync with HEAD
 1.13.6.3  21-Sep-2004  skrll Fix the sync with head I botched.
 1.13.6.2  18-Sep-2004  skrll Sync with HEAD.
 1.13.6.1  03-Aug-2004  skrll Sync with HEAD
 1.14.4.1  16-Apr-2005  tron Pull up revision 1.19 (requested by bouyer in ticket #1429):
Move epprom settings checks to the right place, so that sync/wide nego is
started based on the eeprom values and adapter capabilities.
Avoid the driver to negotiate wide transfers with a wide drive connected
to a non-wide capable controller.
Problem reported and fix tested by Dan LaBell on netbsd-help.
 1.16.4.1  19-Mar-2005  yamt sync with head. xen and whitespace. xen part is not finished.
 1.16.2.1  29-Apr-2005  kent sync with -current
 1.18.2.1  16-Apr-2005  tron Pull up revision 1.19 (requested by bouyer in ticket #159):
Move epprom settings checks to the right place, so that sync/wide nego is
started based on the eeprom values and adapter capabilities.
Avoid the driver to negotiate wide transfers with a wide drive connected
to a non-wide capable controller.
Problem reported and fix tested by Dan LaBell on netbsd-help.
 1.20.2.4  27-Oct-2007  yamt sync with head.
 1.20.2.3  03-Sep-2007  yamt sync with head.
 1.20.2.2  30-Dec-2006  yamt sync with head.
 1.20.2.1  21-Jun-2006  yamt sync with head.
 1.21.12.1  24-May-2006  tron Merge 2006-05-24 NetBSD-current into the "peter-altq" branch.
 1.21.10.1  19-Apr-2006  elad sync with head.
 1.21.8.1  24-May-2006  yamt sync with head.
 1.21.6.2  01-Jun-2006  kardel Sync with head.
 1.21.6.1  22-Apr-2006  simonb Sync with head.
 1.21.4.1  09-Sep-2006  rpaulo sync with head
 1.22.2.1  19-Jun-2006  chap Sync with head.
 1.23.8.2  10-Dec-2006  yamt sync with head.
 1.23.8.1  22-Oct-2006  yamt sync with head
 1.23.6.1  18-Nov-2006  ad Sync with head.
 1.25.4.1  12-Mar-2007  rmind Sync with HEAD.
 1.26.20.1  25-Oct-2007  bouyer Sync with HEAD.
 1.26.16.1  06-Nov-2007  matt sync with HEAD
 1.26.14.1  26-Oct-2007  joerg Sync with HEAD.

Follow the merge of pmap.c on i386 and amd64 and move
pmap_init_tmp_pgtbl into arch/x86/x86/pmap.c. Modify the ACPI wakeup
code to restore CR4 before jumping back into kernel space as the large
page option might cover that.
 1.26.2.1  23-Oct-2007  ad Sync with head.
 1.27.16.1  02-Jun-2008  mjf Sync with HEAD.
 1.29.6.1  23-Jun-2008  wrstuden Sync w/ -current. 34 merge conflicts to follow.
 1.29.4.2  11-Aug-2010  yamt sync with head.
 1.29.4.1  16-May-2008  yamt sync with head.
 1.29.2.1  18-May-2008  yamt sync with head.
 1.30.20.1  05-Mar-2011  rmind sync with head
 1.30.18.1  17-Aug-2010  uebayasi Sync with HEAD.
 1.32.12.1  02-Jun-2012  mrg sync to latest -current.
 1.32.8.2  22-May-2014  yamt sync with head.

for a reference, the tree before this commit was tagged
as yamt-pagecache-tag8.

this commit was splitted into small chunks to avoid
a limitation of cvs. ("Protocol error: too many arguments")
 1.32.8.1  23-May-2012  yamt sync with head.
 1.33.4.1  18-May-2014  rmind sync with head
 1.33.2.2  03-Dec-2017  jdolecek update from HEAD
 1.33.2.1  20-Aug-2014  tls Rebase to HEAD as of a few days ago.
 1.36.6.2  28-Aug-2017  skrll Sync with HEAD
 1.36.6.1  09-Jul-2016  skrll Sync with HEAD
 1.37.4.1  21-Apr-2017  bouyer Sync with HEAD
 1.37.2.1  20-Mar-2017  pgoyette Sync with HEAD
 1.39.14.2  13-Apr-2020  martin Mostly merge changes from HEAD upto 20200411
 1.39.14.1  10-Jun-2019  christos Sync with HEAD
 1.39.12.1  26-Dec-2018  pgoyette Sync with HEAD, resolve a few conflicts
 1.41.10.1  21-Mar-2021  thorpej Give config_found() the same variadic arguments treatment as
config_search(). This commit only adds the CFARG_EOL sentinel
to the existing config_found() calls. Conversion of config_found_sm_loc()
and config_found_ia() call sites will be in subsequent commits.
 1.42.8.1  04-Aug-2021  thorpej Adapt to CFARGS().

RSS XML Feed