Deleted Added
full compact
es137x.c (119287) es137x.c (119548)
1/*
2 * Support the ENSONIQ AudioPCI board and Creative Labs SoundBlaster PCI
3 * boards based on the ES1370, ES1371 and ES1373 chips.
4 *
5 * Copyright (c) 1999 Russell Cattelan <cattelan@thebarn.com>
6 * Copyright (c) 1999 Cameron Grant <gandalf@vilnya.demon.co.uk>
7 * Copyright (c) 1998 by Joachim Kuebart. All rights reserved.
8 *

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

54
55#include <dev/pci/pcireg.h>
56#include <dev/pci/pcivar.h>
57
58#include <sys/sysctl.h>
59
60#include "mixer_if.h"
61
1/*
2 * Support the ENSONIQ AudioPCI board and Creative Labs SoundBlaster PCI
3 * boards based on the ES1370, ES1371 and ES1373 chips.
4 *
5 * Copyright (c) 1999 Russell Cattelan <cattelan@thebarn.com>
6 * Copyright (c) 1999 Cameron Grant <gandalf@vilnya.demon.co.uk>
7 * Copyright (c) 1998 by Joachim Kuebart. All rights reserved.
8 *

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

54
55#include <dev/pci/pcireg.h>
56#include <dev/pci/pcivar.h>
57
58#include <sys/sysctl.h>
59
60#include "mixer_if.h"
61
62SND_DECLARE_FILE("$FreeBSD: head/sys/dev/sound/pci/es137x.c 119287 2003-08-22 07:08:17Z imp $");
62SND_DECLARE_FILE("$FreeBSD: head/sys/dev/sound/pci/es137x.c 119548 2003-08-29 03:27:26Z orion $");
63
64static int debug = 0;
65SYSCTL_INT(_debug, OID_AUTO, es_debug, CTLFLAG_RW, &debug, 0, "");
66
67#define MEM_MAP_REG 0x14
68
69/* PCI IDs of supported chips */
70#define ES1370_PCI_ID 0x50001274
71#define ES1371_PCI_ID 0x13711274
72#define ES1371_PCI_ID2 0x13713274
73#define CT5880_PCI_ID 0x58801274
63
64static int debug = 0;
65SYSCTL_INT(_debug, OID_AUTO, es_debug, CTLFLAG_RW, &debug, 0, "");
66
67#define MEM_MAP_REG 0x14
68
69/* PCI IDs of supported chips */
70#define ES1370_PCI_ID 0x50001274
71#define ES1371_PCI_ID 0x13711274
72#define ES1371_PCI_ID2 0x13713274
73#define CT5880_PCI_ID 0x58801274
74#define CT4730_PCI_ID 0x89381102
74
75#define ES1371REV_ES1371_A 0x02
76#define ES1371REV_ES1371_B 0x09
77
78#define ES1371REV_ES1373_8 0x08
79#define ES1371REV_ES1373_A 0x04
80#define ES1371REV_ES1373_B 0x06
81
82#define ES1371REV_CT5880_A 0x07
83
84#define CT5880REV_CT5880_C 0x02
85#define CT5880REV_CT5880_D 0x03
86#define CT5880REV_CT5880_E 0x04
87
75
76#define ES1371REV_ES1371_A 0x02
77#define ES1371REV_ES1371_B 0x09
78
79#define ES1371REV_ES1373_8 0x08
80#define ES1371REV_ES1373_A 0x04
81#define ES1371REV_ES1373_B 0x06
82
83#define ES1371REV_CT5880_A 0x07
84
85#define CT5880REV_CT5880_C 0x02
86#define CT5880REV_CT5880_D 0x03
87#define CT5880REV_CT5880_E 0x04
88
89#define CT4730REV_CT4730_A 0x00
90
88#define ES_DEFAULT_BUFSZ 4096
89
90/* device private data */
91struct es_info;
92
93struct es_chinfo {
94 struct es_info *parent;
95 struct pcm_channel *channel;

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

500 es->num = 0;
501 es->ctrl = 0;
502 es->sctrl = 0;
503 /* initialize the chips */
504 if ((devid == ES1371_PCI_ID && revid == ES1371REV_ES1373_8) ||
505 (devid == ES1371_PCI_ID && revid == ES1371REV_CT5880_A) ||
506 (devid == CT5880_PCI_ID && revid == CT5880REV_CT5880_C) ||
507 (devid == CT5880_PCI_ID && revid == CT5880REV_CT5880_D) ||
91#define ES_DEFAULT_BUFSZ 4096
92
93/* device private data */
94struct es_info;
95
96struct es_chinfo {
97 struct es_info *parent;
98 struct pcm_channel *channel;

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

503 es->num = 0;
504 es->ctrl = 0;
505 es->sctrl = 0;
506 /* initialize the chips */
507 if ((devid == ES1371_PCI_ID && revid == ES1371REV_ES1373_8) ||
508 (devid == ES1371_PCI_ID && revid == ES1371REV_CT5880_A) ||
509 (devid == CT5880_PCI_ID && revid == CT5880REV_CT5880_C) ||
510 (devid == CT5880_PCI_ID && revid == CT5880REV_CT5880_D) ||
508 (devid == CT5880_PCI_ID && revid == CT5880REV_CT5880_E)) {
511 (devid == CT5880_PCI_ID && revid == CT5880REV_CT5880_E) ||
512 (devid == CT4730_PCI_ID)) {
509 bus_space_write_4(es->st, es->sh, ES1370_REG_STATUS, 0x20000000);
510 DELAY(20000);
511 if (debug > 0) device_printf(dev, "ac97 2.1 enabled\n");
512 } else { /* pre ac97 2.1 card */
513 bus_space_write_4(es->st, es->sh, ES1370_REG_CONTROL, es->ctrl);
514 if (debug > 0) device_printf(dev, "ac97 pre-2.1 enabled\n");
515 }
516 bus_space_write_4(es->st, es->sh, ES1370_REG_SERIAL_CONTROL, es->sctrl);

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

786 return 0;
787 }
788
789 case ES1371_PCI_ID2:
790 device_set_desc(dev, "Strange AudioPCI ES1371-? (vid=3274)");
791 device_printf(dev, "unknown revision %d -- please report to cg@freebsd.org\n", pci_get_revid(dev));
792 return 0;
793
513 bus_space_write_4(es->st, es->sh, ES1370_REG_STATUS, 0x20000000);
514 DELAY(20000);
515 if (debug > 0) device_printf(dev, "ac97 2.1 enabled\n");
516 } else { /* pre ac97 2.1 card */
517 bus_space_write_4(es->st, es->sh, ES1370_REG_CONTROL, es->ctrl);
518 if (debug > 0) device_printf(dev, "ac97 pre-2.1 enabled\n");
519 }
520 bus_space_write_4(es->st, es->sh, ES1370_REG_SERIAL_CONTROL, es->sctrl);

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

790 return 0;
791 }
792
793 case ES1371_PCI_ID2:
794 device_set_desc(dev, "Strange AudioPCI ES1371-? (vid=3274)");
795 device_printf(dev, "unknown revision %d -- please report to cg@freebsd.org\n", pci_get_revid(dev));
796 return 0;
797
798 case CT4730_PCI_ID:
799 switch(pci_get_revid(dev)) {
800 case CT4730REV_CT4730_A:
801 device_set_desc(dev, "Creative SB AudioPCI CT4730");
802 return 0;
803 default:
804 device_set_desc(dev, "Creative SB AudioPCI CT4730-?");
805 device_printf(dev, "unknown revision %d -- please report to cg@freebsd.org\n", pci_get_revid(dev));
806 return 0;
807 }
808
794 case CT5880_PCI_ID:
795 switch(pci_get_revid(dev)) {
796 case CT5880REV_CT5880_C:
797 device_set_desc(dev, "Creative CT5880-C");
798 return 0;
799
800 case CT5880REV_CT5880_D:
801 device_set_desc(dev, "Creative CT5880-D");

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

863 device_printf(dev, "unable to map register space\n");
864 goto bad;
865 }
866
867 es->bufsz = pcm_getbuffersize(dev, 4096, ES_DEFAULT_BUFSZ, 65536);
868
869 if (pci_get_devid(dev) == ES1371_PCI_ID ||
870 pci_get_devid(dev) == ES1371_PCI_ID2 ||
809 case CT5880_PCI_ID:
810 switch(pci_get_revid(dev)) {
811 case CT5880REV_CT5880_C:
812 device_set_desc(dev, "Creative CT5880-C");
813 return 0;
814
815 case CT5880REV_CT5880_D:
816 device_set_desc(dev, "Creative CT5880-D");

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

878 device_printf(dev, "unable to map register space\n");
879 goto bad;
880 }
881
882 es->bufsz = pcm_getbuffersize(dev, 4096, ES_DEFAULT_BUFSZ, 65536);
883
884 if (pci_get_devid(dev) == ES1371_PCI_ID ||
885 pci_get_devid(dev) == ES1371_PCI_ID2 ||
871 pci_get_devid(dev) == CT5880_PCI_ID) {
886 pci_get_devid(dev) == CT5880_PCI_ID ||
887 pci_get_devid(dev) == CT4730_PCI_ID) {
872 if(-1 == es1371_init(es, dev)) {
873 device_printf(dev, "unable to initialize the card\n");
874 goto bad;
875 }
876 codec = AC97_CREATE(dev, es, es1371_ac97);
877 if (codec == NULL) goto bad;
878 /* our init routine does everything for us */
879 /* set to NULL; flag mixer_init not to run the ac97_init */

--- 90 unchanged lines hidden ---
888 if(-1 == es1371_init(es, dev)) {
889 device_printf(dev, "unable to initialize the card\n");
890 goto bad;
891 }
892 codec = AC97_CREATE(dev, es, es1371_ac97);
893 if (codec == NULL) goto bad;
894 /* our init routine does everything for us */
895 /* set to NULL; flag mixer_init not to run the ac97_init */

--- 90 unchanged lines hidden ---