Deleted Added
full compact
solo.c (65644) solo.c (66012)
1/*
2 * Copyright (c) 1999 Cameron Grant <gandalf@vilnya.demon.co.uk>
3 *
4 * Redistribution and use in source and binary forms, with or without
5 * modification, are permitted provided that the following conditions
6 * are met:
7 * 1. Redistributions of source code must retain the above copyright
8 * notice, this list of conditions and the following disclaimer.

--- 8 unchanged lines hidden (view full) ---

17 * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
18 * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
19 * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
20 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
21 * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
22 * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
23 * SUCH DAMAGE.
24 *
1/*
2 * Copyright (c) 1999 Cameron Grant <gandalf@vilnya.demon.co.uk>
3 *
4 * Redistribution and use in source and binary forms, with or without
5 * modification, are permitted provided that the following conditions
6 * are met:
7 * 1. Redistributions of source code must retain the above copyright
8 * notice, this list of conditions and the following disclaimer.

--- 8 unchanged lines hidden (view full) ---

17 * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
18 * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
19 * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
20 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
21 * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
22 * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
23 * SUCH DAMAGE.
24 *
25 * $FreeBSD: head/sys/dev/sound/pci/solo.c 65644 2000-09-09 19:21:04Z cg $
25 * $FreeBSD: head/sys/dev/sound/pci/solo.c 66012 2000-09-17 23:46:32Z cg $
26 */
27
28#include <dev/sound/pcm/sound.h>
29
30#include <pci/pcireg.h>
31#include <pci/pcivar.h>
32
33#include <dev/sound/isa/sb.h>

--- 5 unchanged lines hidden (view full) ---

39/* if defined, playback always uses the 2nd channel and full duplex works */
40#undef ESS18XX_DUPLEX
41
42/* more accurate clocks and split audio1/audio2 rates */
43#define ESS18XX_NEWSPEED
44
45/* channel interface for ESS */
46static void *esschan_init(void *devinfo, snd_dbuf *b, pcm_channel *c, int dir);
26 */
27
28#include <dev/sound/pcm/sound.h>
29
30#include <pci/pcireg.h>
31#include <pci/pcivar.h>
32
33#include <dev/sound/isa/sb.h>

--- 5 unchanged lines hidden (view full) ---

39/* if defined, playback always uses the 2nd channel and full duplex works */
40#undef ESS18XX_DUPLEX
41
42/* more accurate clocks and split audio1/audio2 rates */
43#define ESS18XX_NEWSPEED
44
45/* channel interface for ESS */
46static void *esschan_init(void *devinfo, snd_dbuf *b, pcm_channel *c, int dir);
47static int esschan_setdir(void *data, int dir);
48static int esschan_setformat(void *data, u_int32_t format);
49static int esschan_setspeed(void *data, u_int32_t speed);
50static int esschan_setblocksize(void *data, u_int32_t blocksize);
51static int esschan_trigger(void *data, int go);
52static int esschan_getptr(void *data);
53static pcmchan_caps *esschan_getcaps(void *data);
54
55static u_int32_t ess_playfmt[] = {

--- 934 unchanged lines hidden (view full) ---

990 ess_release_resources(sc, dev);
991 return ENXIO;
992}
993
994static int
995ess_detach(device_t dev)
996{
997 int r;
47static int esschan_setformat(void *data, u_int32_t format);
48static int esschan_setspeed(void *data, u_int32_t speed);
49static int esschan_setblocksize(void *data, u_int32_t blocksize);
50static int esschan_trigger(void *data, int go);
51static int esschan_getptr(void *data);
52static pcmchan_caps *esschan_getcaps(void *data);
53
54static u_int32_t ess_playfmt[] = {

--- 934 unchanged lines hidden (view full) ---

989 ess_release_resources(sc, dev);
990 return ENXIO;
991}
992
993static int
994ess_detach(device_t dev)
995{
996 int r;
998 struct sc_info *sc;
997 struct ess_info *sc;
999
1000 r = pcm_unregister(dev);
1001 if (r)
1002 return r;
1003
1004 sc = pcm_getdevinfo(dev);
1005 ess_release_resources(sc, dev);
1006 return 0;

--- 23 unchanged lines hidden ---
998
999 r = pcm_unregister(dev);
1000 if (r)
1001 return r;
1002
1003 sc = pcm_getdevinfo(dev);
1004 ess_release_resources(sc, dev);
1005 return 0;

--- 23 unchanged lines hidden ---