Replace callout_stop with callout_halt

In order to call callout_destroy for a callout safely, we have to ensure
the function of the callout is not running and pending. To do so, we should
use callout_halt, not callout_stop.

In this case, we need to pass an interlock to callout_halt to wait for
the callout complete. And also we make sure that SME_CALLOUT_INITIALIZED
is unset before calling callout_halt to prevent the callout from calling
callout_schedule. This is the same as what we did in sys/netinet6/mld6.c@1.61.

Reviewed by riastradh@.
deal with quirk in Ingenic UARTs
( they have a bit in the FIFO control register which turns the entire
  port off if not set )
initial support for CI20 / Ingenic JZ4780
not much there yet, it loads, attaches a serial port and you can drop into
ddb
Do not define LINUX_EDEADLK more than once.
- Add MII flow control support
- Set "disable jabber" and "auto padding/CRC stripping" bits in MAC conf
- Write intr mask to intr mask register, not status
- Setup both TX and RX burst modes
- Setup both TX and RX store & forward modes
- Correct an issue with the "end" descriptor passed to dwc_gmac_txdesc_sync
  in dwc_gmac_tx_intr

ok martin@
Drop casts in favour of expressions that actually give the right
pointer.
Move all PCI/AGP code back to drmkms_pci module where it belongs.
use --disable-shared on m68000 for mknative.
regenerate mknative files for m68000 now that the build actually completes.

this includes a hack matt@ found -- remove -fPIC from libgcc's defs.mk, i
have not yet figured out how to stop confgiure adding it.
Fix copy and pasto in #ident
Replace void * cast with proper __UNVOLATILE.
Preserve const.
Provide the timeout argument to ahci_exec_fis in ms. Use 1ms delays
when we are not allowed to sleep, full ticks otherwise.

Bump the timeout for reset to 100ms, 10ms is not enough on the
Cubietruck.
Replace very question pointer games to override const, mark the member
writeable when inside the guts of the library.
Since the netpgpverify rewrite to have no external pre-requisites, the
output format for signatures has changed cosmetically (mainly
whitespace changes).  Re-format all the test cases so that the tests
now pass again with the new output format:

	Tests root: /usr/tests/usr.bin/netpgpverify

	t_netpgpverify (1/1): 2 test cases
	    netpgpverify_dsa: [0.261980s] Passed.
	    netpgpverify_rsa: [0.237469s] Passed.
	[0.509571s]

	Summary for 1 test programs:
	    2 passed test cases.
	    0 failed test cases.
	    0 expected failed test cases.
	    0 skipped test cases.
avoid shadowed variable