different meanings for read and write.
This fixes 48kHz playback to SPDIF.
- Fix the problem where the SPDIF output voltage setting (0.5V, 5V)
was swapped. The default value is changed from 0.5V to 5V, which
correctly selects 5V (so the default physical behavior is unchanged).
Should fix PRs kern/16047 and kern/16817
(but not tested since I don't have other SPDIF hardware to test with).
Approved by tshiozak.
malloc types into a structure, a pointer to which is passed around,
instead of an int constant. Allow the limit to be adjusted when the
malloc type is defined, or with a function call, as suggested by
Jonathan Stone.
o Implement SPDIF selection/monitoring function.
Now, say, playback to both analog output and SPDIF is possible.
o Implement support of AUX input, MIC preamp and MIC recording gain.
o L-R selection of record source doesn't seem to work on cmpci.
Therefore, the *.swap mixer functions are and deleted.
o Following SB mixer registers don't exist on cmpci, and they are removed.
input gain, output gain, AGC, equalization (bass, treble)
o Other mixer changes, including
inputs.XXX.mute -> (deleted)
outputs.XXX.mute -> inputs.XXX.mute
inputs.pc_speaker -> inputs.speaker
spdif.* -> reorganized to spdif.input.*, spdif.output.*
o Current status:
I have tested these and confirmed to work fine.
- Output and recording from Line-in, AUX, CD and MIC analog inputs,
- Output and recording from FM synthesizer,
- Output from PC speaker input,
- Output wave playback.
- SPDIF (44.1kHz) input selection (#1, #2 (6ch version only),
wave to spdin), phase selection, monitoring and recording,
- SPDIF (44.1kHz) playback, through (SPDIF in to SPDIF out)
and monitoring.
I haven't tested these but may work.
- SPDIF 48kHz input and output,
- Full-duplex operation,
- Recording wave output.
I don't think these are working.
- Legacy (wave + FM synthesizer) to SPDIF output (and the monitoring),
- Exchanging front and rear outputs,
- Surround.
These are not implemented.
- 4ch / 6ch support,
- Joystick port support.
- Add mpu at cmpci attachment.
- Fix panic during attach on alpha.
- Change register of SPDIF input phase (but undocumented, either).
- Change code for mixer initialization.
- Return 1, not 0, when an interrupt is processed.
More changes to the mixer are pending....
pci_attach_args *" instead of from four separate parameters which in
all cases were extracted from the same "struct pci_attach_args".
This both simplifies the driver api, and allows for alternate PCI
interrupt mapping schemes, such as one using the tables described in
the Intel Multiprocessor Spec which describe interrupt wirings for
devices behind pci-pci bridges based on the device's location rather
the bridge's location.
Tested on alpha and i386; welcome to 1.5Q
"off_t" and the return value is a "paddr_t" to allow mappings
at offsets past 2^31 bytes. Somewhat inspired by FreeBSD, which
only changed the offset to a "vm_offset_t".
Includes updates for the i386, pc532 and sh3 mmmmap from Jason Thorpe.