Home | History | Annotate | Download | only in dev
History log of /src/sys/arch/mac68k/dev/adb.c
RevisionDateAuthorComments
 1.62  18-Sep-2024  nat The delay is only required for machines with built-in floppy drives.

I doubt the vibration from an external drive on the Duos would affect adb
before it attaches.
 1.61  18-Sep-2024  nat Use attach delay only on affected machines.

It is only required for machines with built-in trackballs.

Requested by rin@.
 1.60  14-Sep-2024  nat Allow a few seconds for adb devices to settle.

The spin up of the floppy drive motor would cause a crash on my PowerBook
when adb was attached.
 1.59  07-Aug-2021  thorpej branches: 1.59.12;
Merge thorpej-cfargs2.
 1.58  24-Apr-2021  thorpej branches: 1.58.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.57  19-Oct-2018  martin branches: 1.57.14;
#ifdef DIAGNOSTIC should not cause functional differences (even if
minor or cosmetic)
 1.56  18-Oct-2014  snj branches: 1.56.18; 1.56.20;
src is too big these days to tolerate superfluous apostrophes. It's
"its", people!
 1.55  27-Oct-2012  chs split device_t/softc for all remaining drivers.
replace "struct device *" with "device_t".
use device_xname(), device_unit(), etc.
 1.54  06-Jun-2011  matt branches: 1.54.2; 1.54.12;
CFATTACH_DECL(..., sizeof(struct device), -> CFATTACH_DECL_NEW(..., 0
struct device * -> device_t
struct cfdata * -> cfdata_t
use bool when appropriate
 1.53  01-Nov-2009  snj branches: 1.53.4; 1.53.10;
Drop 3rd and 4th clauses. Approved by Brad Grantham (copyright holder).
 1.52  03-Apr-2008  scottr branches: 1.52.4;
Factor out ADB spin-wait timeout loop, and use it for synchronous
operations to access the PRAM RTC, etc. in the IIsi and Cuda cases.
Thanks to Martin Husemann for pointing out the flaw.

This is a slightly more thorough workaround for the issue Martin found
in PR 37611, as it affected more than just adb_read_date_time().
 1.51  03-Dec-2007  ad branches: 1.51.14;
Interrupt handling changes, in discussion since February:

- Reduce available SPL levels for hardware devices to none, vm, sched, high.
- Acquire kernel_lock only for interrupts at IPL_VM.
- Implement threaded soft interrupts.
 1.50  08-Mar-2007  tsutsui branches: 1.50.2; 1.50.18; 1.50.20; 1.50.26;
MI softintr(9)'fy.
Probably problematic, but LC630 is running at single user.
 1.49  24-Dec-2005  perry branches: 1.49.26;
bare asm -> __asm
 1.48  11-Dec-2005  christos merge ktrace-lwp.
 1.47  16-Jun-2005  jmc branches: 1.47.2;
Fixes for volatile problems
 1.46  15-Jan-2005  chs de-__P, remove register, ansify, b* -> mem*.
 1.45  15-Jul-2003  lukem __KERNEL_RCSID()
 1.44  01-Jan-2003  thorpej branches: 1.44.2;
Use aprint_normal() in cfprint routines.
 1.43  02-Oct-2002  thorpej Use CFATTACH_DECL().
 1.42  27-Sep-2002  thorpej Declare all cfattach structures const.
 1.41  20-Nov-2001  chs prepare for ELF:
- add "%" prefix to register names in assembly code.
- use _C_LABEL() where necessary.
- use packed structures where necessary to match the old ABI.
 1.40  15-Nov-2000  scottr branches: 1.40.4; 1.40.8;
The Cuda-based ADB hardware has the ability to queue some commands and
return control to the main CPU before completing the ADB transaction.
Double the adb_op_sync() timeout as a result. Fixes PR 11310.
 1.39  27-Sep-2000  scottr Now that we do collision detection and assign all ADB devices to distinct
addresses, it makes sense to print the actual address of the device rather
than the original address. The latter is useful to distinguish the type
of device only, so we maintain that data internally (as we always have).

This closes PR 10557 from Dave Huang.
 1.38  19-Sep-2000  scottr Ken'ichi Ishizaka discovered that some devices, e.g. the A3 Mouse, don't
respond in the allotted time if they're told to TALK immediately after
completing a LISTEN command. Experimentation with adb_op_sync() yielded
consistent results when the timeout was increased from the documented
6900 usec to 8000 usec, so we'll make that change here.

(Accurate and complete documentation of the hardware sure would help...)
 1.37  03-Jul-2000  scottr Stabilize ADB support for some non-Apple ADB peripherals. This is the
second (and final) part of the fix for PR 10086. (There are no longer
any infinite-wait busy loops in the ADB driver!)
 1.36  18-Jun-2000  scottr branches: 1.36.2;
Revert debug-related bogon that snuck in (no change in functionality).
 1.35  19-Mar-2000  scottr branches: 1.35.2;
The MRG and direct ADB drivers were inconsistent in how they worked with
a serial console; the direct driver didn't care, but the MRG driver
wouldn't probe ADB when using a serial console. Remove the check from
the MRG version of the code to resolve this difference.
 1.34  14-Feb-2000  scottr Merge wscons work onto the main development branch.
 1.33  28-Nov-1999  scottr Don't use the plural form of the word "target" if there is only one!
 1.32  07-Nov-1999  scottr Garbage collect adb_initted.
 1.31  07-Nov-1999  scottr We want adb_polling set regardless of whether we're using the MRG driver.
 1.30  07-Nov-1999  scottr ite_polling -> adb_polling
 1.29  05-Nov-1999  scottr Defer ADB configuration until interrupts are (normally) enabled.
 1.28  05-Nov-1999  scottr An aesthetic change to autoconfig output to complement Colin Wood's
change to macrom.c in June.
 1.27  11-Feb-1999  ender branches: 1.27.2; 1.27.4; 1.27.10; 1.27.12; 1.27.16;
o Change various attach arg and softc datatypes to ints.
o Use explicit typecasts when interfacing with MRG data

Should fix port-mac68k/6839. Patch supplied by
Frederick Bruckman <fb@enteract.com>
 1.26  26-Oct-1998  scottr Make it compile for MRG_ADB kernels.
 1.25  23-Oct-1998  ender New ADB "bus" interface:
o Separate ms and kbd drivers
o aed device for compatibility
o debug message cleanup in hardware direct support (from scottr)
 1.24  11-Aug-1998  briggs Patch from Takashi NAKAMURA <QZM00427@nifty.ne.jp> to support the
Contour 3-button mouse from the Contour Design Corp.
It looks like a Microspeed mouse.
 1.23  13-Apr-1998  scottr Make type explicit for egcs, from Erik Bertelsen in PR 5288.
 1.22  27-Mar-1998  scottr Don't map Opt-{1,2,3} to mouse buttons unless the ALTXBUTTONS option is
specified. (Doing so breaks German keyboards!) Fixes PR 4929.
 1.21  23-Feb-1998  scottr Mostly KNF. There's still a bunch of ugly comments and some problems
with long lines, but this is at least a big step in the right direction.
 1.20  21-Feb-1998  scottr Unify ADB options and place them all into opt_adb.h. Provide a knob to
enable ADB debugging messages if ADB_DEBUG is configured.
 1.19  12-Jan-1998  thorpej Update for changes to config.
 1.18  26-Nov-1997  scottr Don't attempt to open the ADB device if it hasn't been initialized.
Also, don't allow more than one instance to be configured.
 1.17  11-Aug-1997  scottr Make #include directives consistent. All MD headers are of the form:

#include <mac68k/{dev,mac68k}/foo.h>
 1.16  25-Jul-1997  scottr branches: 1.16.2;
Add option-{1,2,3} as an alternative to option-{,left,right} for mouse
button emulation. From SUNAGAWA Keiki <kei_sun@ba2.so-net.or.jp> in
PR 3887.
 1.15  16-Jun-1997  scottr Add support for Mouse Systems A3 mouse. From Colin Wood.
 1.14  08-Apr-1997  scottr Updates from John Wittkoski for new ADB driver.
 1.13  16-Dec-1996  scottr Convert all foo_match() functions to use a `struct cfdata *' for their
second argument. The NuBus autoconfig code had to be reorganized as a
result of this, and looks much more like a directly-attached bus now.
These changes eliminate __BROKEN_INDIRECT_CONFIG.
 1.12  13-Oct-1996  christos backout previous kprintf change
 1.11  11-Oct-1996  christos printf -> kprintf, sprintf -> ksprintf
 1.10  14-Sep-1996  scottr - Implement poll(2)
- Convert splhigh() -> spladb()
- Guard references to adb_evq_tail and adb_evq_len!
 1.9  05-May-1996  briggs Fix typo in last.
 1.8  05-May-1996  briggs MicroSpeed mouse support from Taras Ivanenko <ivanenko@ctpa03.mit.edu>.
Also some updates to actually used #defined constants instead of numeric
constants.
 1.7  05-May-1996  briggs Prototype for -Wall -Wstrict-prototypes -Wmissing-prototypes -Wno-uninitialized
Also change the device probing scheme to use something a bit more rational.
A current side-effect is that nubus cards are double-mapped. I expect
to fix that shortly.
Also change splclock() to block everything but serial hardware interrupts.
 1.6  17-Mar-1996  thorpej New device attachment scheme:

- split softc size and match/attach out from cfdriver into
a new struct cfattach.

- new "attach" directive for files.*. May specify the name of
the cfattach structure, so that devices may be easily attached
to parents with different autoconfiguration semantics.
 1.5  01-Nov-1995  briggs port-mac/1707: mac68k mouse drag problems with Cmd+arrow keys
from Ken Nakata <kenn@remus.rutgers.edu>
 1.4  03-Sep-1995  briggs branches: 1.4.2;
Add support for Extended Apple Mouse Protocol from
Ken Nakata <kenn@remus.rutgers.edu>.
 1.3  30-Jun-1995  briggs Option key fix from Ken Nakata (kenn@remus.rutgers.edu).
 1.2  21-Apr-1995  briggs First pass of KNFication. Needs more.
 1.1  03-Dec-1994  briggs Mac ROM Glue changes from grantham@tenon.com.
 1.4.2.1  02-Nov-1995  briggs from HEAD; patch from Ken Nakata to allow mouse movement when using keyboard
mouse buttons.
 1.16.2.1  23-Aug-1997  thorpej Update marc-pcmcia branch from trunk.
 1.27.16.1  27-Dec-1999  wrstuden Pull up to last week's -current.
 1.27.12.1  15-Nov-1999  fvdl Sync with -current
 1.27.10.2  22-Nov-2000  bouyer Sync with HEAD.
 1.27.10.1  20-Nov-2000  bouyer Update thorpej_scsipi to -current as of a month ago
A i386 GENERIC kernel compiles without the siop, ahc and bha drivers
(will be updated later). i386 IDE/ATAPI and ncr work, as well as
sparc/esp_sbus. alpha should work as well (untested yet).
siop, ahc and bha will be updated once I've updated the branch to current
-current, as well as machine-dependant code.
 1.27.4.2  29-Nov-1999  he Pull up revision 1.33 (requested by scottr):
Use correct English when reporting the number of ADB target(s).
 1.27.4.1  21-Nov-1999  he Pull up revisions 1.28,1.30-1.32 (via patch, requested by sr):
Clean up the ADB driver, and eliminate duplicate keystrokes under
heavy load, fixing PR#7870.
 1.27.2.4  13-Feb-2000  scottr itevar.h is gone.
 1.27.2.3  28-Nov-1999  scottr Sync with main branch.
 1.27.2.2  09-Nov-1999  scottr Sync with main branch.
 1.27.2.1  05-Mar-1999  scottr checkpoint: input side code should work. no output side yet.
 1.35.2.1  22-Jun-2000  minoura Sync w/ netbsd-1-5-base.
 1.36.2.2  15-Nov-2000  tv Pullup 1.40 [scottr]:
The Cuda-based ADB hardware has the ability to queue some commands and
return control to the main CPU before completing the ADB transaction.
Double the adb_op_sync() timeout as a result. Fixes PR 11310.
 1.36.2.1  21-Sep-2000  scottr Pull up revs 1.37 and 1.38 from scottr:
Stabilize ADB support for some non-Apple ADB peripherals.
 1.40.8.3  03-Jan-2003  thorpej Sync with HEAD.
 1.40.8.2  18-Oct-2002  nathanw Catch up to -current.
 1.40.8.1  08-Jan-2002  nathanw Catch up to -current.
 1.40.4.2  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.40.4.1  10-Jan-2002  thorpej Sync kqueue branch with -current.
 1.44.2.5  10-Nov-2005  skrll Sync with HEAD. Here we go again...
 1.44.2.4  17-Jan-2005  skrll Sync with HEAD.
 1.44.2.3  21-Sep-2004  skrll Fix the sync with head I botched.
 1.44.2.2  18-Sep-2004  skrll Sync with HEAD.
 1.44.2.1  03-Aug-2004  skrll Sync with HEAD
 1.47.2.3  07-Dec-2007  yamt sync with head
 1.47.2.2  03-Sep-2007  yamt sync with head.
 1.47.2.1  21-Jun-2006  yamt sync with head.
 1.49.26.1  12-Mar-2007  rmind Sync with HEAD.
 1.50.26.1  08-Dec-2007  mjf Sync with HEAD.
 1.50.20.1  09-Jan-2008  matt sync with HEAD
 1.50.18.1  09-Dec-2007  jmcneill Sync with HEAD.
 1.50.2.1  03-Dec-2007  ad Sync with HEAD.
 1.51.14.1  03-Apr-2008  mjf Sync with HEAD.
 1.52.4.1  11-Mar-2010  yamt sync with head
 1.53.10.1  23-Jun-2011  cherry Catchup with rmind-uvmplock merge.
 1.53.4.1  12-Jun-2011  rmind sync with head
 1.54.12.2  03-Dec-2017  jdolecek update from HEAD
 1.54.12.1  20-Nov-2012  tls Resync to 2012-11-19 00:00:00 UTC
 1.54.2.1  30-Oct-2012  yamt sync with head
 1.56.20.1  10-Jun-2019  christos Sync with HEAD
 1.56.18.1  20-Oct-2018  pgoyette Sync with head
 1.57.14.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.58.8.1  04-Aug-2021  thorpej Adapt to CFARGS().
 1.59.12.1  02-Aug-2025  perseant Sync with HEAD

RSS XML Feed