Commit Graph

264 Commits

Author SHA1 Message Date
martin
de956cbcda Only use one interrupt handler for both status changes and pcmcia IO
intterupts. No more races between the two interrupt handlers, without any
locking, and the driver becomes a bit simpler too.

Use the last bit of the config flags to select between the first and the
second sbus interrupt level the firmware has assigned to us.
2002-10-10 22:23:16 +00:00
thorpej
b75a007d9f Add trailing ; to CFATTACH_DECL. 2002-10-02 16:51:16 +00:00
uwe
909a73ae25 Add missing args to CFATTACH_DECL. 2002-10-01 19:15:45 +00:00
thorpej
239b192ca3 Use CFATTACH_DECL(). 2002-09-30 23:07:07 +00:00
thorpej
f818766afe Declare all cfattach structures const. 2002-09-27 20:31:45 +00:00
provos
0f09ed48a5 remove trailing \n in panic(). approved perry. 2002-09-27 15:35:29 +00:00
thorpej
d7067078a4 Compare the driver name against "ledma", rather than looking for
&ledma_ca.
2002-09-27 05:07:09 +00:00
thorpej
d1ad2ac4f2 Rather than referencing the cfdriver directly in the cfdata entries,
instead use a string naming the driver.  The cfdriver is then looked
up in a list which is built at run-time.
2002-09-27 02:24:06 +00:00
mycroft
04f09a4b0c Additional fixes to make 16 targets work on FAS366. 2002-09-25 05:19:20 +00:00
ad
60c69eb3f1 Squash some bugs. 2002-09-18 18:42:06 +00:00
ad
ca0ac2c78c Driver for the Sun ZX/Leo framebuffer. This would be called leo, but the
amiga port already has a driver by that name.
2002-09-13 14:03:52 +00:00
tsutsui
48bddc7728 bus_dmamap_load() can't take BUS_DMA_COHERENT flag. 2002-09-12 16:01:06 +00:00
gehenna
77a6b82b27 Merge the gehenna-devsw branch into the trunk.
This merge changes the device switch tables from static array to
dynamically generated by config(8).

- All device switches is defined as a constant structure in device drivers.

- The new grammer ``device-major'' is introduced to ``files''.

	device-major <prefix> char <num> [block <num>] [<rules>]

- All device major numbers must be listed up in port dependent majors.<arch>
  by using this grammer.

- Added the new naming convention.
  The name of the device switch must be <prefix>_[bc]devsw for auto-generation
  of device switch tables.

- The backward compatibility of loading block/character device
  switch by LKM framework is broken. This is necessary to convert
  from block/character device major to device name in runtime and vice versa.

- The restriction to assign device major by LKM is completely removed.
  We don't need to reserve LKM entries for dynamic loading of device switch.

- In compile time, device major numbers list is packed into the kernel and
  the LKM framework will refer it to assign device major number dynamically.
2002-09-06 13:18:43 +00:00
martin
a9cd647f4d Adapt to recent sbusvar.h changes.
Use a slightly less conservative timing configuration.
2002-09-04 16:17:52 +00:00
martin
e7856d0f2a Adapt to sbusvar.h changes. 2002-09-04 16:12:23 +00:00
thorpej
90817e313c Use the structures defined in bsd_openprom.h for "reg", "range",
and "intr" properties, rather than having identical-except-for-names
sbus_* and iommu_* versions.
2002-08-23 02:53:10 +00:00
soren
5db905460e CG3 on at least the Classic doesn't have a "model" name, so fake one. 2002-08-03 00:59:00 +00:00
mrg
ec69f2b1fd fix a bug introduced in rev 1.19:
- finish bus_space-ification of cs4231_sbus_trigger_input().

this stops recording on the sbus cs4231 from crashing.
2002-07-16 11:48:45 +00:00
lukem
06de426449 SIMPLEQ rototill:
- implement SIMPLEQ_REMOVE(head, elm, type, field).  whilst it's O(n),
  this mirrors the functionality of SLIST_REMOVE() (the other
  singly-linked list type) and FreeBSD's STAILQ_REMOVE()
- remove the unnecessary elm arg from SIMPLEQ_REMOVE_HEAD().
  this mirrors the functionality of SLIST_REMOVE_HEAD() (the other
  singly-linked list type) and FreeBSD's STAILQ_REMOVE_HEAD()
- remove notes about SIMPLEQ not supporting arbitrary element removal
- use SIMPLEQ_FOREACH() instead of home-grown for loops
- use SIMPLEQ_EMPTY() appropriately
- use SIMPLEQ_*() instead of accessing sqh_first,sqh_last,sqe_next directly
- reorder manual page; be consistent about how the types are listed
- other minor cleanups
2002-06-01 23:50:52 +00:00
wiz
f7d76b1062 bcmp -> memcmp. 2002-05-22 16:03:14 +00:00
mjacob
7aac86133e Pointy hat to me on the last delta. 2002-05-18 00:48:11 +00:00
mjacob
a14da6673f Replicate change that Matt Thomas made in isp_pci- if we get ENOMEM/EAGAIN
in bus_dmamap_load, return CMD_EAGAIN rather than just make the command dead.
2002-05-17 19:06:24 +00:00
pk
082991d03a cs4231_sbus_regdump(): add missing ')' 2002-03-27 16:03:52 +00:00
darrenr
9074b14439 Merge in the patch (PR kern/15963) to provide unaccelerated 24bit support
for the S24.
2002-03-27 10:14:17 +00:00
martin
642b1a7163 Remove dummy_splraise() - it is not needed according to Paul Kranenburg.
We may revisit this once a general interrupt queuing mechanism is
available and we can avoid calling the pcmcia cards interrupt handler at
an exsessive IPL.
2002-03-25 09:02:54 +00:00
eeh
85c03d9775 Properly bus_space_*=ify this so it uses accessors. 2002-03-21 00:25:41 +00:00
eeh
943373dde4 Use bus_space_vaddr(). 2002-03-21 00:18:36 +00:00
eeh
86ff330657 Fixup attachment code to use sbus_promaddr_to_handle() and not specify
BUS_SPACE_MAP_LINEAR.
2002-03-21 00:16:15 +00:00
eeh
87eac0acc3 Use bus_space_vaddr(). 2002-03-20 20:41:35 +00:00
eeh
686c857e16 Get rid of unnecessary BUS_SPACE_MAP_LINEAR. 2002-03-20 20:39:15 +00:00
eeh
fbce8217dd Oops. Missing semicolon. 2002-03-20 19:32:42 +00:00
eeh
8ccad96d54 Add sbus_promaddr_to_handle() to convert a prom address to a bus_space_handle_t. 2002-03-20 18:39:44 +00:00
eeh
8ea2c88ec2 Clean up bus space a bit. XXX is sc_buffer ever actually used after it's
mapped in?
2002-03-20 17:59:16 +00:00
eeh
ddbdd7fa41 Don't use BUS_SPACE_MAP_LINEAR if you don't need to. 2002-03-20 17:57:33 +00:00
eeh
ef4ff79f61 Use bus_space_vaddr() correctly. (XXX do we really need this?) 2002-03-20 17:52:41 +00:00
eeh
e0866470d8 Use bus_space_vaddr() correctly. Ugh. 2002-03-20 17:34:23 +00:00
atatat
31144d9976 Convert ioctl code to use EPASSTHROUGH instead of -1 or ENOTTY for
indicating an unhandled "command".  ERESTART is -1, which can lead to
confusion.  ERESTART has been moved to -3 and EPASSTHROUGH has been
placed at -4.  No ioctl code should now return -1 anywhere.  The
ioctl() system call is now properly restartable.
2002-03-17 19:40:26 +00:00
eeh
5f84db4b34 Get rid of bus_type_t. 2002-03-15 07:00:34 +00:00
uwe
a05702eaac Rework the driver to add EBus DMA support and improve APC DMA support.
Audio-related stuff is left almost intact.

* support audiocs at ebus playback and capture
    tested on krups and u5 (thanks, martin)
* make first attempt at supporting audiocs at sbus capture
* nb: full-duplex is not tested
* while here, fix CSAUDIO_MONITOR_MUTE to be of CSAUDIO_MONITOR_CLASS
    i.e. outputs.monitor.mute -> monitor.monitor.mute

Ok by pk, eeh.
2002-03-12 04:48:28 +00:00
pk
f61bdee8e7 Get rid of `bus_type_t' and use BUS_ADDR() (in sbus_bus_map()) to construct
a `bus_addr_t' to pass on to bus_space_map().

Drop `va' argument from sbus_bus_map(); it should not be used by MI Sbus
drivers.
2002-03-11 16:00:55 +00:00
martin
e41836739f Remove another old debug message.
Return the real mapping size in *_mem_map and *_io_map.
Minor cleanup.
2002-03-10 16:18:44 +00:00
martin
dfbd0bc7b8 Shuffle around some initialization code a bit.
Configure power supply on VPP1 at 5V when powering up a socket.
Get rid of stray interrupts.
Make the driver quiet for normal operation when not in debugging mode.

This makes ray0 at nell0 actually work when compiled with RAY_USE_AMEM=1.
2002-03-08 21:33:43 +00:00
frueauf
089f361f5b Make this work after it got broken a year ago in r1.15 (pasto?):
In qeattach() sc->sc_rb.rb_dmabase needs to be set after the buffer got
loaded via bus_dmamem_map(), not before.

Fixes my own pr kern/15817.
2002-03-06 19:10:58 +00:00
simonb
64c7743a05 Don't "extern int cold;" - this is in <sys/kernel.h>. 2002-03-04 02:19:07 +00:00
martin
42172d9f1c Try to configure timing correctly.
Get rid of some ad hoc debuging printfs.
2002-03-03 22:47:28 +00:00
martin
ba6fe47ae9 Simplify the way the hardware windows are mapped and adapt the pcmcia
chipset functions acordingly. Initialize timing registers (for now to
the slowest possible setting).

Add some debug output. XXX - clean this up.

This is not ready for prime time, but I can attach ray0 and wi0 now in my
LX.
2002-03-01 10:02:38 +00:00
mjacob
91f80cf3fc Implement F/W crashdumps for 2200 && 2300 cards (kernel compile option).
Distinguish between 2312 and 2300 cards (they *are* different). Enable
RIO (Reduced Interrupt Operation) for the LVD cards (hey- I've seen
batched completions of the 30 commands at a time with this,....)...

If we get a Port Logout on local loop topologies, we have to force the
f/w to log back in. The easiest way (for us) to do this is to force
a LIP. This also will wake up the disk that probably just had a f/w crash.

Implement mailbox 'continuations'- this allows interrupts to re-drive
a mailbox command if it's one that just essentially repeats the previous
mailbox command (e.g., f/w download). This saves a boatload of sleep/wakeup
twitches.

If we're not a 2300 and we're about to return with a 'bogus interrupt'- check
the semaphore register to be non-zero at all and outgoing mailbox 0- this
seems to be where some of the lost ISP1080 commands came from.
2002-02-21 22:32:40 +00:00
darrenr
1ff5e232ba add missing #include for SUN4 options 2002-02-03 05:53:28 +00:00
pk
6c51c2d3f4 Support for the ` Magma 2+1HS Sp' (from mouse on port-sparc):
- add sbus node name field to board info structure
2002-01-22 17:00:47 +00:00
pk
d29b3f6d0c Support for the ` Magma 2+1HS Sp' (from mouse on port-sparc):
- allow for sbus node name matching
	- get clock frequency from prom property.
2002-01-22 16:59:30 +00:00