aboutsummaryrefslogtreecommitdiffstats
path: root/include/sound
diff options
context:
space:
mode:
Diffstat (limited to 'include/sound')
-rw-r--r--include/sound/ac97_codec.h8
-rw-r--r--include/sound/asound.h16
-rw-r--r--include/sound/control.h2
-rw-r--r--include/sound/core.h3
-rw-r--r--include/sound/emu10k1.h42
-rw-r--r--include/sound/gus.h23
-rw-r--r--include/sound/hdspm.h131
-rw-r--r--include/sound/pcm.h32
-rw-r--r--include/sound/seq_midi_event.h2
-rw-r--r--include/sound/seq_virmidi.h1
-rw-r--r--include/sound/timer.h2
-rw-r--r--include/sound/version.h4
12 files changed, 196 insertions, 70 deletions
diff --git a/include/sound/ac97_codec.h b/include/sound/ac97_codec.h
index 2433e279e071..1309c12b8f71 100644
--- a/include/sound/ac97_codec.h
+++ b/include/sound/ac97_codec.h
@@ -437,6 +437,7 @@ struct snd_ac97_build_ops {
437 void (*suspend) (ac97_t *ac97); 437 void (*suspend) (ac97_t *ac97);
438 void (*resume) (ac97_t *ac97); 438 void (*resume) (ac97_t *ac97);
439#endif 439#endif
440 void (*update_jacks) (ac97_t *ac97); /* for jack-sharing */
440}; 441};
441 442
442struct _snd_ac97_bus_ops { 443struct _snd_ac97_bus_ops {
@@ -516,6 +517,9 @@ struct _snd_ac97 {
516 } ad18xx; 517 } ad18xx;
517 unsigned int dev_flags; /* device specific */ 518 unsigned int dev_flags; /* device specific */
518 } spec; 519 } spec;
520 /* jack-sharing info */
521 unsigned char indep_surround;
522 unsigned char channel_mode;
519}; 523};
520 524
521/* conditions */ 525/* conditions */
@@ -569,8 +573,8 @@ enum {
569}; 573};
570 574
571struct ac97_quirk { 575struct ac97_quirk {
572 unsigned short vendor; /* PCI vendor id */ 576 unsigned short subvendor; /* PCI subsystem vendor id */
573 unsigned short device; /* PCI device id */ 577 unsigned short subdevice; /* PCI sybsystem device id */
574 unsigned short mask; /* device id bit mask, 0 = accept all */ 578 unsigned short mask; /* device id bit mask, 0 = accept all */
575 unsigned int codec_id; /* codec id (if any), 0 = accept all */ 579 unsigned int codec_id; /* codec id (if any), 0 = accept all */
576 const char *name; /* name shown as info */ 580 const char *name; /* name shown as info */
diff --git a/include/sound/asound.h b/include/sound/asound.h
index a4d149f34541..9974f83cca44 100644
--- a/include/sound/asound.h
+++ b/include/sound/asound.h
@@ -113,9 +113,10 @@ enum sndrv_hwdep_iface {
113 SNDRV_HWDEP_IFACE_BLUETOOTH, /* Bluetooth audio */ 113 SNDRV_HWDEP_IFACE_BLUETOOTH, /* Bluetooth audio */
114 SNDRV_HWDEP_IFACE_USX2Y_PCM, /* Tascam US122, US224 & US428 rawusb pcm */ 114 SNDRV_HWDEP_IFACE_USX2Y_PCM, /* Tascam US122, US224 & US428 rawusb pcm */
115 SNDRV_HWDEP_IFACE_PCXHR, /* Digigram PCXHR */ 115 SNDRV_HWDEP_IFACE_PCXHR, /* Digigram PCXHR */
116 SNDRV_HWDEP_IFACE_SB_RC, /* SB Extigy/Audigy2NX remote control */
116 117
117 /* Don't forget to change the following: */ 118 /* Don't forget to change the following: */
118 SNDRV_HWDEP_IFACE_LAST = SNDRV_HWDEP_IFACE_PCXHR 119 SNDRV_HWDEP_IFACE_LAST = SNDRV_HWDEP_IFACE_SB_RC
119}; 120};
120 121
121struct sndrv_hwdep_info { 122struct sndrv_hwdep_info {
@@ -344,7 +345,7 @@ enum sndrv_pcm_hw_param {
344 SNDRV_PCM_HW_PARAM_LAST_INTERVAL = SNDRV_PCM_HW_PARAM_TICK_TIME 345 SNDRV_PCM_HW_PARAM_LAST_INTERVAL = SNDRV_PCM_HW_PARAM_TICK_TIME
345}; 346};
346 347
347#define SNDRV_PCM_HW_PARAMS_RUNTIME (1<<0) 348#define SNDRV_PCM_HW_PARAMS_NORESAMPLE (1<<0) /* avoid rate resampling */
348 349
349struct sndrv_interval { 350struct sndrv_interval {
350 unsigned int min, max; 351 unsigned int min, max;
@@ -559,7 +560,7 @@ enum {
559 * Timer section - /dev/snd/timer 560 * Timer section - /dev/snd/timer
560 */ 561 */
561 562
562#define SNDRV_TIMER_VERSION SNDRV_PROTOCOL_VERSION(2, 0, 2) 563#define SNDRV_TIMER_VERSION SNDRV_PROTOCOL_VERSION(2, 0, 4)
563 564
564enum sndrv_timer_class { 565enum sndrv_timer_class {
565 SNDRV_TIMER_CLASS_NONE = -1, 566 SNDRV_TIMER_CLASS_NONE = -1,
@@ -672,10 +673,11 @@ enum {
672 SNDRV_TIMER_IOCTL_INFO = _IOR('T', 0x11, struct sndrv_timer_info), 673 SNDRV_TIMER_IOCTL_INFO = _IOR('T', 0x11, struct sndrv_timer_info),
673 SNDRV_TIMER_IOCTL_PARAMS = _IOW('T', 0x12, struct sndrv_timer_params), 674 SNDRV_TIMER_IOCTL_PARAMS = _IOW('T', 0x12, struct sndrv_timer_params),
674 SNDRV_TIMER_IOCTL_STATUS = _IOR('T', 0x14, struct sndrv_timer_status), 675 SNDRV_TIMER_IOCTL_STATUS = _IOR('T', 0x14, struct sndrv_timer_status),
675 SNDRV_TIMER_IOCTL_START = _IO('T', 0x20), 676 /* The following four ioctls are changed since 1.0.9 due to confliction */
676 SNDRV_TIMER_IOCTL_STOP = _IO('T', 0x21), 677 SNDRV_TIMER_IOCTL_START = _IO('T', 0xa0),
677 SNDRV_TIMER_IOCTL_CONTINUE = _IO('T', 0x22), 678 SNDRV_TIMER_IOCTL_STOP = _IO('T', 0xa1),
678 SNDRV_TIMER_IOCTL_PAUSE = _IO('T', 0x23), 679 SNDRV_TIMER_IOCTL_CONTINUE = _IO('T', 0xa2),
680 SNDRV_TIMER_IOCTL_PAUSE = _IO('T', 0xa3),
679}; 681};
680 682
681struct sndrv_timer_read { 683struct sndrv_timer_read {
diff --git a/include/sound/control.h b/include/sound/control.h
index 7b9444cd02f4..ef7903c7a327 100644
--- a/include/sound/control.h
+++ b/include/sound/control.h
@@ -106,7 +106,7 @@ typedef int (*snd_kctl_ioctl_func_t) (snd_card_t * card,
106void snd_ctl_notify(snd_card_t * card, unsigned int mask, snd_ctl_elem_id_t * id); 106void snd_ctl_notify(snd_card_t * card, unsigned int mask, snd_ctl_elem_id_t * id);
107 107
108snd_kcontrol_t *snd_ctl_new(snd_kcontrol_t * kcontrol, unsigned int access); 108snd_kcontrol_t *snd_ctl_new(snd_kcontrol_t * kcontrol, unsigned int access);
109snd_kcontrol_t *snd_ctl_new1(snd_kcontrol_new_t * kcontrolnew, void * private_data); 109snd_kcontrol_t *snd_ctl_new1(const snd_kcontrol_new_t * kcontrolnew, void * private_data);
110void snd_ctl_free_one(snd_kcontrol_t * kcontrol); 110void snd_ctl_free_one(snd_kcontrol_t * kcontrol);
111int snd_ctl_add(snd_card_t * card, snd_kcontrol_t * kcontrol); 111int snd_ctl_add(snd_card_t * card, snd_kcontrol_t * kcontrol);
112int snd_ctl_remove(snd_card_t * card, snd_kcontrol_t * kcontrol); 112int snd_ctl_remove(snd_card_t * card, snd_kcontrol_t * kcontrol);
diff --git a/include/sound/core.h b/include/sound/core.h
index 9117c23e3a01..f8c4ef0aa352 100644
--- a/include/sound/core.h
+++ b/include/sound/core.h
@@ -292,6 +292,7 @@ void *snd_hidden_kcalloc(size_t n, size_t size, int flags);
292void snd_hidden_kfree(const void *obj); 292void snd_hidden_kfree(const void *obj);
293void *snd_hidden_vmalloc(unsigned long size); 293void *snd_hidden_vmalloc(unsigned long size);
294void snd_hidden_vfree(void *obj); 294void snd_hidden_vfree(void *obj);
295char *snd_hidden_kstrdup(const char *s, int flags);
295#define kmalloc(size, flags) snd_hidden_kmalloc(size, flags) 296#define kmalloc(size, flags) snd_hidden_kmalloc(size, flags)
296#define kcalloc(n, size, flags) snd_hidden_kcalloc(n, size, flags) 297#define kcalloc(n, size, flags) snd_hidden_kcalloc(n, size, flags)
297#define kfree(obj) snd_hidden_kfree(obj) 298#define kfree(obj) snd_hidden_kfree(obj)
@@ -301,6 +302,7 @@ void snd_hidden_vfree(void *obj);
301#define vmalloc_nocheck(size) snd_wrapper_vmalloc(size) 302#define vmalloc_nocheck(size) snd_wrapper_vmalloc(size)
302#define kfree_nocheck(obj) snd_wrapper_kfree(obj) 303#define kfree_nocheck(obj) snd_wrapper_kfree(obj)
303#define vfree_nocheck(obj) snd_wrapper_vfree(obj) 304#define vfree_nocheck(obj) snd_wrapper_vfree(obj)
305#define kstrdup(s, flags) snd_hidden_kstrdup(s, flags)
304#else 306#else
305#define snd_memory_init() /*NOP*/ 307#define snd_memory_init() /*NOP*/
306#define snd_memory_done() /*NOP*/ 308#define snd_memory_done() /*NOP*/
@@ -311,7 +313,6 @@ void snd_hidden_vfree(void *obj);
311#define kfree_nocheck(obj) kfree(obj) 313#define kfree_nocheck(obj) kfree(obj)
312#define vfree_nocheck(obj) vfree(obj) 314#define vfree_nocheck(obj) vfree(obj)
313#endif 315#endif
314char *snd_kmalloc_strdup(const char *string, int flags);
315int copy_to_user_fromio(void __user *dst, const volatile void __iomem *src, size_t count); 316int copy_to_user_fromio(void __user *dst, const volatile void __iomem *src, size_t count);
316int copy_from_user_toio(volatile void __iomem *dst, const void __user *src, size_t count); 317int copy_from_user_toio(volatile void __iomem *dst, const void __user *src, size_t count);
317 318
diff --git a/include/sound/emu10k1.h b/include/sound/emu10k1.h
index 43b6786abae5..c50b91958ff9 100644
--- a/include/sound/emu10k1.h
+++ b/include/sound/emu10k1.h
@@ -83,7 +83,8 @@
83#define IPR 0x08 /* Global interrupt pending register */ 83#define IPR 0x08 /* Global interrupt pending register */
84 /* Clear pending interrupts by writing a 1 to */ 84 /* Clear pending interrupts by writing a 1 to */
85 /* the relevant bits and zero to the other bits */ 85 /* the relevant bits and zero to the other bits */
86 86#define IPR_P16V 0x80000000 /* Bit set when the CA0151 P16V chip wishes
87 to interrupt */
87#define IPR_GPIOMSG 0x20000000 /* GPIO message interrupt (RE'd, still not sure 88#define IPR_GPIOMSG 0x20000000 /* GPIO message interrupt (RE'd, still not sure
88 which INTE bits enable it) */ 89 which INTE bits enable it) */
89 90
@@ -746,6 +747,7 @@
746 /* Assumes sample lock */ 747 /* Assumes sample lock */
747 748
748/* These three bitfields apply to CDSRCS, GPSRCS, and (except as noted) ZVSRCS. */ 749/* These three bitfields apply to CDSRCS, GPSRCS, and (except as noted) ZVSRCS. */
750#define SRCS_SPDIFVALID 0x04000000 /* SPDIF stream valid */
749#define SRCS_SPDIFLOCKED 0x02000000 /* SPDIF stream locked */ 751#define SRCS_SPDIFLOCKED 0x02000000 /* SPDIF stream locked */
750#define SRCS_RATELOCKED 0x01000000 /* Sample rate locked */ 752#define SRCS_RATELOCKED 0x01000000 /* Sample rate locked */
751#define SRCS_ESTSAMPLERATE 0x0007ffff /* Do not modify this field. */ 753#define SRCS_ESTSAMPLERATE 0x0007ffff /* Do not modify this field. */
@@ -803,10 +805,26 @@
803#define A_FXWC2 0x75 /* Selects 0x9f-0x80 for FX recording */ 805#define A_FXWC2 0x75 /* Selects 0x9f-0x80 for FX recording */
804 806
805#define A_SPDIF_SAMPLERATE 0x76 /* Set the sample rate of SPDIF output */ 807#define A_SPDIF_SAMPLERATE 0x76 /* Set the sample rate of SPDIF output */
806#define A_SPDIF_RATE_MASK 0x000000c0 808#define A_SAMPLE_RATE 0x76 /* Various sample rate settings. */
809#define A_SAMPLE_RATE_NOT_USED 0x0ffc111e /* Bits that are not used and cannot be set. */
810#define A_SAMPLE_RATE_UNKNOWN 0xf0030001 /* Bits that can be set, but have unknown use. */
811#define A_SPDIF_RATE_MASK 0x000000e0 /* Any other values for rates, just use 48000 */
807#define A_SPDIF_48000 0x00000000 812#define A_SPDIF_48000 0x00000000
808#define A_SPDIF_44100 0x00000080 813#define A_SPDIF_192000 0x00000020
809#define A_SPDIF_96000 0x00000040 814#define A_SPDIF_96000 0x00000040
815#define A_SPDIF_44100 0x00000080
816
817#define A_I2S_CAPTURE_RATE_MASK 0x00000e00 /* This sets the capture PCM rate, but it is */
818#define A_I2S_CAPTURE_48000 0x00000000 /* unclear if this sets the ADC rate as well. */
819#define A_I2S_CAPTURE_192000 0x00000200
820#define A_I2S_CAPTURE_96000 0x00000400
821#define A_I2S_CAPTURE_44100 0x00000800
822
823#define A_PCM_RATE_MASK 0x0000e000 /* This sets the playback PCM rate on the P16V */
824#define A_PCM_48000 0x00000000
825#define A_PCM_192000 0x00002000
826#define A_PCM_96000 0x00004000
827#define A_PCM_44100 0x00008000
810 828
811/* 0x77,0x78,0x79 "something i2s-related" - default to 0x01080000 on my audigy 2 ZS --rlrevell */ 829/* 0x77,0x78,0x79 "something i2s-related" - default to 0x01080000 on my audigy 2 ZS --rlrevell */
812/* 0x7a, 0x7b - lookup tables */ 830/* 0x7a, 0x7b - lookup tables */
@@ -1039,28 +1057,28 @@ typedef struct {
1039 u32 vendor; 1057 u32 vendor;
1040 u32 device; 1058 u32 device;
1041 u32 subsystem; 1059 u32 subsystem;
1060 unsigned char revision;
1042 unsigned char emu10k1_chip; /* Original SB Live. Not SB Live 24bit. */ 1061 unsigned char emu10k1_chip; /* Original SB Live. Not SB Live 24bit. */
1043 unsigned char emu10k2_chip; /* Audigy 1 or Audigy 2. */ 1062 unsigned char emu10k2_chip; /* Audigy 1 or Audigy 2. */
1044 unsigned char ca0102_chip; /* Audigy 1 or Audigy 2. Not SB Audigy 2 Value. */ 1063 unsigned char ca0102_chip; /* Audigy 1 or Audigy 2. Not SB Audigy 2 Value. */
1045 unsigned char ca0108_chip; /* Audigy 2 Value */ 1064 unsigned char ca0108_chip; /* Audigy 2 Value */
1046 unsigned char ca0151_chip; /* P16V */ 1065 unsigned char ca0151_chip; /* P16V */
1047 unsigned char spk71; /* Has 7.1 speakers */ 1066 unsigned char spk71; /* Has 7.1 speakers */
1067 unsigned char sblive51; /* SBLive! 5.1 - extout 0x11 -> center, 0x12 -> lfe */
1048 unsigned char spdif_bug; /* Has Spdif phasing bug */ 1068 unsigned char spdif_bug; /* Has Spdif phasing bug */
1049 unsigned char ac97_chip; /* Has an AC97 chip */ 1069 unsigned char ac97_chip; /* Has an AC97 chip */
1050 unsigned char ecard; /* APS EEPROM */ 1070 unsigned char ecard; /* APS EEPROM */
1051 char * driver; 1071 const char *driver;
1052 char * name; 1072 const char *name;
1073 const char *id; /* for backward compatibility - can be NULL if not needed */
1053} emu_chip_details_t; 1074} emu_chip_details_t;
1054 1075
1055struct _snd_emu10k1 { 1076struct _snd_emu10k1 {
1056 int irq; 1077 int irq;
1057 1078
1058 unsigned long port; /* I/O port number */ 1079 unsigned long port; /* I/O port number */
1059 unsigned int APS: 1, /* APS flag */ 1080 unsigned int tos_link: 1, /* tos link detected */
1060 no_ac97: 1, /* no AC'97 */ 1081 rear_ac97: 1; /* rear channels are on AC'97 */
1061 tos_link: 1, /* tos link detected */
1062 rear_ac97: 1, /* rear channels are on AC'97 */
1063 spk71:1; /* 7.1 configuration (Audigy 2 ZS) */
1064 const emu_chip_details_t *card_capabilities; /* Contains profile of card capabilities */ 1082 const emu_chip_details_t *card_capabilities; /* Contains profile of card capabilities */
1065 unsigned int audigy; /* is Audigy? */ 1083 unsigned int audigy; /* is Audigy? */
1066 unsigned int revision; /* chip revision */ 1084 unsigned int revision; /* chip revision */
@@ -1109,7 +1127,10 @@ struct _snd_emu10k1 {
1109 1127
1110 emu10k1_voice_t voices[NUM_G]; 1128 emu10k1_voice_t voices[NUM_G];
1111 emu10k1_voice_t p16v_voices[4]; 1129 emu10k1_voice_t p16v_voices[4];
1130 emu10k1_voice_t p16v_capture_voice;
1112 int p16v_device_offset; 1131 int p16v_device_offset;
1132 u32 p16v_capture_source;
1133 u32 p16v_capture_channel;
1113 emu10k1_pcm_mixer_t pcm_mixer[32]; 1134 emu10k1_pcm_mixer_t pcm_mixer[32];
1114 emu10k1_pcm_mixer_t efx_pcm_mixer[NUM_EFX_PLAYBACK]; 1135 emu10k1_pcm_mixer_t efx_pcm_mixer[NUM_EFX_PLAYBACK];
1115 snd_kcontrol_t *ctl_send_routing; 1136 snd_kcontrol_t *ctl_send_routing;
@@ -1453,7 +1474,6 @@ int snd_emu10k1_fx8010_unregister_irq_handler(emu10k1_t *emu,
1453#endif 1474#endif
1454 1475
1455typedef struct { 1476typedef struct {
1456 unsigned int card; /* card type */
1457 unsigned int internal_tram_size; /* in samples */ 1477 unsigned int internal_tram_size; /* in samples */
1458 unsigned int external_tram_size; /* in samples */ 1478 unsigned int external_tram_size; /* in samples */
1459 char fxbus_names[16][32]; /* names of FXBUSes */ 1479 char fxbus_names[16][32]; /* names of FXBUSes */
diff --git a/include/sound/gus.h b/include/sound/gus.h
index 8b6287a6fff5..b4b461ca173d 100644
--- a/include/sound/gus.h
+++ b/include/sound/gus.h
@@ -526,9 +526,6 @@ extern void snd_gf1_adlib_write(snd_gus_card_t * gus, unsigned char reg, unsigne
526extern void snd_gf1_dram_addr(snd_gus_card_t * gus, unsigned int addr); 526extern void snd_gf1_dram_addr(snd_gus_card_t * gus, unsigned int addr);
527extern void snd_gf1_poke(snd_gus_card_t * gus, unsigned int addr, unsigned char data); 527extern void snd_gf1_poke(snd_gus_card_t * gus, unsigned int addr, unsigned char data);
528extern unsigned char snd_gf1_peek(snd_gus_card_t * gus, unsigned int addr); 528extern unsigned char snd_gf1_peek(snd_gus_card_t * gus, unsigned int addr);
529extern void snd_gf1_pokew(snd_gus_card_t * gus, unsigned int addr, unsigned short data);
530extern unsigned short snd_gf1_peekw(snd_gus_card_t * gus, unsigned int addr);
531extern void snd_gf1_dram_setmem(snd_gus_card_t * gus, unsigned int addr, unsigned short value, unsigned int count);
532extern void snd_gf1_write_addr(snd_gus_card_t * gus, unsigned char reg, unsigned int addr, short w_16bit); 529extern void snd_gf1_write_addr(snd_gus_card_t * gus, unsigned char reg, unsigned int addr, short w_16bit);
533extern unsigned int snd_gf1_read_addr(snd_gus_card_t * gus, unsigned char reg, short w_16bit); 530extern unsigned int snd_gf1_read_addr(snd_gus_card_t * gus, unsigned char reg, short w_16bit);
534extern void snd_gf1_i_ctrl_stop(snd_gus_card_t * gus, unsigned char reg); 531extern void snd_gf1_i_ctrl_stop(snd_gus_card_t * gus, unsigned char reg);
@@ -544,9 +541,6 @@ extern inline unsigned short snd_gf1_i_read16(snd_gus_card_t * gus, unsigned cha
544{ 541{
545 return snd_gf1_i_look16(gus, reg | 0x80); 542 return snd_gf1_i_look16(gus, reg | 0x80);
546} 543}
547extern void snd_gf1_i_adlib_write(snd_gus_card_t * gus, unsigned char reg, unsigned char data);
548extern void snd_gf1_i_write_addr(snd_gus_card_t * gus, unsigned char reg, unsigned int addr, short w_16bit);
549extern unsigned int snd_gf1_i_read_addr(snd_gus_card_t * gus, unsigned char reg, short w_16bit);
550 544
551extern void snd_gf1_select_active_voices(snd_gus_card_t * gus); 545extern void snd_gf1_select_active_voices(snd_gus_card_t * gus);
552 546
@@ -580,10 +574,6 @@ extern void snd_gf1_lfo_command(snd_gus_card_t * gus, int voice, unsigned char *
580 574
581void snd_gf1_mem_lock(snd_gf1_mem_t * alloc, int xup); 575void snd_gf1_mem_lock(snd_gf1_mem_t * alloc, int xup);
582int snd_gf1_mem_xfree(snd_gf1_mem_t * alloc, snd_gf1_mem_block_t * block); 576int snd_gf1_mem_xfree(snd_gf1_mem_t * alloc, snd_gf1_mem_block_t * block);
583snd_gf1_mem_block_t *snd_gf1_mem_look(snd_gf1_mem_t * alloc,
584 unsigned int address);
585snd_gf1_mem_block_t *snd_gf1_mem_share(snd_gf1_mem_t * alloc,
586 unsigned int *share_id);
587snd_gf1_mem_block_t *snd_gf1_mem_alloc(snd_gf1_mem_t * alloc, int owner, 577snd_gf1_mem_block_t *snd_gf1_mem_alloc(snd_gf1_mem_t * alloc, int owner,
588 char *name, int size, int w_16, 578 char *name, int size, int w_16,
589 int align, unsigned int *share_id); 579 int align, unsigned int *share_id);
@@ -608,23 +598,13 @@ int snd_gf1_dma_transfer_block(snd_gus_card_t * gus,
608/* gus_volume.c */ 598/* gus_volume.c */
609 599
610unsigned short snd_gf1_lvol_to_gvol_raw(unsigned int vol); 600unsigned short snd_gf1_lvol_to_gvol_raw(unsigned int vol);
611unsigned int snd_gf1_gvol_to_lvol_raw(unsigned short gf1_vol);
612unsigned int snd_gf1_calc_ramp_rate(snd_gus_card_t * gus,
613 unsigned short start,
614 unsigned short end,
615 unsigned int us);
616unsigned short snd_gf1_translate_freq(snd_gus_card_t * gus, unsigned int freq2); 601unsigned short snd_gf1_translate_freq(snd_gus_card_t * gus, unsigned int freq2);
617unsigned short snd_gf1_compute_pitchbend(unsigned short pitchbend, unsigned short sens);
618unsigned short snd_gf1_compute_freq(unsigned int freq,
619 unsigned int rate,
620 unsigned short mix_rate);
621 602
622/* gus_reset.c */ 603/* gus_reset.c */
623 604
624void snd_gf1_set_default_handlers(snd_gus_card_t * gus, unsigned int what); 605void snd_gf1_set_default_handlers(snd_gus_card_t * gus, unsigned int what);
625void snd_gf1_smart_stop_voice(snd_gus_card_t * gus, unsigned short voice); 606void snd_gf1_smart_stop_voice(snd_gus_card_t * gus, unsigned short voice);
626void snd_gf1_stop_voice(snd_gus_card_t * gus, unsigned short voice); 607void snd_gf1_stop_voice(snd_gus_card_t * gus, unsigned short voice);
627void snd_gf1_clear_voices(snd_gus_card_t * gus, unsigned short v_min, unsigned short v_max);
628void snd_gf1_stop_voices(snd_gus_card_t * gus, unsigned short v_min, unsigned short v_max); 608void snd_gf1_stop_voices(snd_gus_card_t * gus, unsigned short v_min, unsigned short v_max);
629snd_gus_voice_t *snd_gf1_alloc_voice(snd_gus_card_t * gus, int type, int client, int port); 609snd_gus_voice_t *snd_gf1_alloc_voice(snd_gus_card_t * gus, int type, int client, int port);
630void snd_gf1_free_voice(snd_gus_card_t * gus, snd_gus_voice_t *voice); 610void snd_gf1_free_voice(snd_gus_card_t * gus, snd_gus_voice_t *voice);
@@ -641,9 +621,6 @@ int snd_gf1_pcm_new(snd_gus_card_t * gus, int pcm_dev, int control_index, snd_pc
641 621
642#ifdef CONFIG_SND_DEBUG 622#ifdef CONFIG_SND_DEBUG
643extern void snd_gf1_print_voice_registers(snd_gus_card_t * gus); 623extern void snd_gf1_print_voice_registers(snd_gus_card_t * gus);
644extern void snd_gf1_print_global_registers(snd_gus_card_t * gus);
645extern void snd_gf1_print_setup_registers(snd_gus_card_t * gus);
646extern void snd_gf1_peek_print_block(snd_gus_card_t * gus, unsigned int addr, int count, int w_16bit);
647#endif 624#endif
648 625
649/* gus.c */ 626/* gus.c */
diff --git a/include/sound/hdspm.h b/include/sound/hdspm.h
new file mode 100644
index 000000000000..c34427ccd0b3
--- /dev/null
+++ b/include/sound/hdspm.h
@@ -0,0 +1,131 @@
1#ifndef __SOUND_HDSPM_H /* -*- linux-c -*- */
2#define __SOUND_HDSPM_H
3/*
4 * Copyright (C) 2003 Winfried Ritsch (IEM)
5 * based on hdsp.h from Thomas Charbonnel (thomas@undata.org)
6 *
7 *
8 * This program is free software; you can redistribute it and/or modify
9 * it under the terms of the GNU General Public License as published by
10 * the Free Software Foundation; either version 2 of the License, or
11 * (at your option) any later version.
12 *
13 * This program is distributed in the hope that it will be useful,
14 * but WITHOUT ANY WARRANTY; without even the implied warranty of
15 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
16 * GNU General Public License for more details.
17 *
18 * You should have received a copy of the GNU General Public License
19 * along with this program; if not, write to the Free Software
20 * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
21 */
22
23/* Maximum channels is 64 even on 56Mode you have 64playbacks to matrix */
24#define HDSPM_MAX_CHANNELS 64
25
26/* -------------------- IOCTL Peak/RMS Meters -------------------- */
27
28typedef struct _snd_hdspm_peak_rms hdspm_peak_rms_t;
29
30/* peam rms level structure like we get from hardware
31
32 maybe in future we can memory map it so I just copy it
33 to user on ioctl call now an dont change anything
34 rms are made out of low and high values
35 where (long) ????_rms = (????_rms_l >> 8) + ((????_rms_h & 0xFFFFFF00)<<24)
36 (i asume so from the code)
37*/
38
39struct _snd_hdspm_peak_rms {
40
41 unsigned int level_offset[1024];
42
43 unsigned int input_peak[64];
44 unsigned int playback_peak[64];
45 unsigned int output_peak[64];
46 unsigned int xxx_peak[64]; /* not used */
47
48 unsigned int reserved[256]; /* not used */
49
50 unsigned int input_rms_l[64];
51 unsigned int playback_rms_l[64];
52 unsigned int output_rms_l[64];
53 unsigned int xxx_rms_l[64]; /* not used */
54
55 unsigned int input_rms_h[64];
56 unsigned int playback_rms_h[64];
57 unsigned int output_rms_h[64];
58 unsigned int xxx_rms_h[64]; /* not used */
59};
60
61struct sndrv_hdspm_peak_rms_ioctl {
62 hdspm_peak_rms_t *peak;
63};
64
65/* use indirect access due to the limit of ioctl bit size */
66#define SNDRV_HDSPM_IOCTL_GET_PEAK_RMS _IOR('H', 0x40, struct sndrv_hdspm_peak_rms_ioctl)
67
68/* ------------ CONFIG block IOCTL ---------------------- */
69
70typedef struct _snd_hdspm_config_info hdspm_config_info_t;
71
72struct _snd_hdspm_config_info {
73 unsigned char pref_sync_ref;
74 unsigned char wordclock_sync_check;
75 unsigned char madi_sync_check;
76 unsigned int system_sample_rate;
77 unsigned int autosync_sample_rate;
78 unsigned char system_clock_mode;
79 unsigned char clock_source;
80 unsigned char autosync_ref;
81 unsigned char line_out;
82 unsigned int passthru;
83 unsigned int analog_out;
84};
85
86#define SNDRV_HDSPM_IOCTL_GET_CONFIG_INFO _IOR('H', 0x41, hdspm_config_info_t)
87
88
89/* get Soundcard Version */
90
91typedef struct _snd_hdspm_version hdspm_version_t;
92
93struct _snd_hdspm_version {
94 unsigned short firmware_rev;
95};
96
97#define SNDRV_HDSPM_IOCTL_GET_VERSION _IOR('H', 0x43, hdspm_version_t)
98
99
100/* ------------- get Matrix Mixer IOCTL --------------- */
101
102/* MADI mixer: 64inputs+64playback in 64outputs = 8192 => *4Byte = 32768 Bytes */
103
104/* organisation is 64 channelfader in a continous memory block */
105/* equivalent to hardware definition, maybe for future feature of mmap of them */
106/* each of 64 outputs has 64 infader and 64 outfader:
107 Ins to Outs mixer[out].in[in], Outstreams to Outs mixer[out].pb[pb] */
108
109#define HDSPM_MIXER_CHANNELS HDSPM_MAX_CHANNELS
110
111typedef struct _snd_hdspm_channelfader snd_hdspm_channelfader_t;
112
113struct _snd_hdspm_channelfader {
114 unsigned int in[HDSPM_MIXER_CHANNELS];
115 unsigned int pb[HDSPM_MIXER_CHANNELS];
116};
117
118typedef struct _snd_hdspm_mixer hdspm_mixer_t;
119
120struct _snd_hdspm_mixer {
121 snd_hdspm_channelfader_t ch[HDSPM_MIXER_CHANNELS];
122};
123
124struct sndrv_hdspm_mixer_ioctl {
125 hdspm_mixer_t *mixer;
126};
127
128/* use indirect access due to the limit of ioctl bit size */
129#define SNDRV_HDSPM_IOCTL_GET_MIXER _IOR('H', 0x44, struct sndrv_hdspm_mixer_ioctl)
130
131#endif /* __SOUND_HDSPM_H */
diff --git a/include/sound/pcm.h b/include/sound/pcm.h
index 53fc04d75bad..d935417575b5 100644
--- a/include/sound/pcm.h
+++ b/include/sound/pcm.h
@@ -848,23 +848,6 @@ int snd_interval_ratnum(snd_interval_t *i,
848 848
849void _snd_pcm_hw_params_any(snd_pcm_hw_params_t *params); 849void _snd_pcm_hw_params_any(snd_pcm_hw_params_t *params);
850void _snd_pcm_hw_param_setempty(snd_pcm_hw_params_t *params, snd_pcm_hw_param_t var); 850void _snd_pcm_hw_param_setempty(snd_pcm_hw_params_t *params, snd_pcm_hw_param_t var);
851int snd_pcm_hw_param_min(snd_pcm_substream_t *substream,
852 snd_pcm_hw_params_t *params,
853 snd_pcm_hw_param_t var,
854 unsigned int val, int *dir);
855int snd_pcm_hw_param_max(snd_pcm_substream_t *substream,
856 snd_pcm_hw_params_t *params,
857 snd_pcm_hw_param_t var,
858 unsigned int val, int *dir);
859int snd_pcm_hw_param_setinteger(snd_pcm_substream_t *substream,
860 snd_pcm_hw_params_t *params,
861 snd_pcm_hw_param_t var);
862int snd_pcm_hw_param_first(snd_pcm_substream_t *substream,
863 snd_pcm_hw_params_t *params,
864 snd_pcm_hw_param_t var, int *dir);
865int snd_pcm_hw_param_last(snd_pcm_substream_t *substream,
866 snd_pcm_hw_params_t *params,
867 snd_pcm_hw_param_t var, int *dir);
868int snd_pcm_hw_param_near(snd_pcm_substream_t *substream, 851int snd_pcm_hw_param_near(snd_pcm_substream_t *substream,
869 snd_pcm_hw_params_t *params, 852 snd_pcm_hw_params_t *params,
870 snd_pcm_hw_param_t var, 853 snd_pcm_hw_param_t var,
@@ -876,7 +859,6 @@ int snd_pcm_hw_param_set(snd_pcm_substream_t *pcm,
876int snd_pcm_hw_params_choose(snd_pcm_substream_t *substream, snd_pcm_hw_params_t *params); 859int snd_pcm_hw_params_choose(snd_pcm_substream_t *substream, snd_pcm_hw_params_t *params);
877 860
878int snd_pcm_hw_refine(snd_pcm_substream_t *substream, snd_pcm_hw_params_t *params); 861int snd_pcm_hw_refine(snd_pcm_substream_t *substream, snd_pcm_hw_params_t *params);
879int snd_pcm_hw_params(snd_pcm_substream_t *substream, snd_pcm_hw_params_t *params);
880 862
881int snd_pcm_hw_constraints_init(snd_pcm_substream_t *substream); 863int snd_pcm_hw_constraints_init(snd_pcm_substream_t *substream);
882int snd_pcm_hw_constraints_complete(snd_pcm_substream_t *substream); 864int snd_pcm_hw_constraints_complete(snd_pcm_substream_t *substream);
@@ -922,8 +904,22 @@ int snd_pcm_format_unsigned(snd_pcm_format_t format);
922int snd_pcm_format_linear(snd_pcm_format_t format); 904int snd_pcm_format_linear(snd_pcm_format_t format);
923int snd_pcm_format_little_endian(snd_pcm_format_t format); 905int snd_pcm_format_little_endian(snd_pcm_format_t format);
924int snd_pcm_format_big_endian(snd_pcm_format_t format); 906int snd_pcm_format_big_endian(snd_pcm_format_t format);
907/**
908 * snd_pcm_format_cpu_endian - Check the PCM format is CPU-endian
909 * @format: the format to check
910 *
911 * Returns 1 if the given PCM format is CPU-endian, 0 if
912 * opposite, or a negative error code if endian not specified.
913 */
914/* int snd_pcm_format_cpu_endian(snd_pcm_format_t format); */
915#ifdef SNDRV_LITTLE_ENDIAN
916#define snd_pcm_format_cpu_endian snd_pcm_format_little_endian
917#else
918#define snd_pcm_format_cpu_endian snd_pcm_format_big_endian
919#endif
925int snd_pcm_format_width(snd_pcm_format_t format); /* in bits */ 920int snd_pcm_format_width(snd_pcm_format_t format); /* in bits */
926int snd_pcm_format_physical_width(snd_pcm_format_t format); /* in bits */ 921int snd_pcm_format_physical_width(snd_pcm_format_t format); /* in bits */
922ssize_t snd_pcm_format_size(snd_pcm_format_t format, size_t samples);
927const unsigned char *snd_pcm_format_silence_64(snd_pcm_format_t format); 923const unsigned char *snd_pcm_format_silence_64(snd_pcm_format_t format);
928int snd_pcm_format_set_silence(snd_pcm_format_t format, void *buf, unsigned int frames); 924int snd_pcm_format_set_silence(snd_pcm_format_t format, void *buf, unsigned int frames);
929snd_pcm_format_t snd_pcm_build_linear_format(int width, int unsignd, int big_endian); 925snd_pcm_format_t snd_pcm_build_linear_format(int width, int unsignd, int big_endian);
diff --git a/include/sound/seq_midi_event.h b/include/sound/seq_midi_event.h
index 4357cac07500..8857e2bd31a5 100644
--- a/include/sound/seq_midi_event.h
+++ b/include/sound/seq_midi_event.h
@@ -41,9 +41,7 @@ struct snd_midi_event_t {
41}; 41};
42 42
43int snd_midi_event_new(int bufsize, snd_midi_event_t **rdev); 43int snd_midi_event_new(int bufsize, snd_midi_event_t **rdev);
44int snd_midi_event_resize_buffer(snd_midi_event_t *dev, int bufsize);
45void snd_midi_event_free(snd_midi_event_t *dev); 44void snd_midi_event_free(snd_midi_event_t *dev);
46void snd_midi_event_init(snd_midi_event_t *dev);
47void snd_midi_event_reset_encode(snd_midi_event_t *dev); 45void snd_midi_event_reset_encode(snd_midi_event_t *dev);
48void snd_midi_event_reset_decode(snd_midi_event_t *dev); 46void snd_midi_event_reset_decode(snd_midi_event_t *dev);
49void snd_midi_event_no_status(snd_midi_event_t *dev, int on); 47void snd_midi_event_no_status(snd_midi_event_t *dev, int on);
diff --git a/include/sound/seq_virmidi.h b/include/sound/seq_virmidi.h
index cf4e2388103f..1ad27e859af3 100644
--- a/include/sound/seq_virmidi.h
+++ b/include/sound/seq_virmidi.h
@@ -79,6 +79,5 @@ struct _snd_virmidi_dev {
79#define SNDRV_VIRMIDI_SEQ_DISPATCH 2 79#define SNDRV_VIRMIDI_SEQ_DISPATCH 2
80 80
81int snd_virmidi_new(snd_card_t *card, int device, snd_rawmidi_t **rrmidi); 81int snd_virmidi_new(snd_card_t *card, int device, snd_rawmidi_t **rrmidi);
82int snd_virmidi_receive(snd_rawmidi_t *rmidi, snd_seq_event_t *ev);
83 82
84#endif /* __SOUND_SEQ_VIRMIDI */ 83#endif /* __SOUND_SEQ_VIRMIDI */
diff --git a/include/sound/timer.h b/include/sound/timer.h
index 57fde990606e..1898511a0f38 100644
--- a/include/sound/timer.h
+++ b/include/sound/timer.h
@@ -152,6 +152,4 @@ extern int snd_timer_pause(snd_timer_instance_t * timeri);
152 152
153extern void snd_timer_interrupt(snd_timer_t * timer, unsigned long ticks_left); 153extern void snd_timer_interrupt(snd_timer_t * timer, unsigned long ticks_left);
154 154
155extern unsigned int snd_timer_system_resolution(void);
156
157#endif /* __SOUND_TIMER_H */ 155#endif /* __SOUND_TIMER_H */
diff --git a/include/sound/version.h b/include/sound/version.h
index 98b4230778ed..46acfa8c9988 100644
--- a/include/sound/version.h
+++ b/include/sound/version.h
@@ -1,3 +1,3 @@
1/* include/version.h. Generated by configure. */ 1/* include/version.h. Generated by configure. */
2#define CONFIG_SND_VERSION "1.0.9rc2" 2#define CONFIG_SND_VERSION "1.0.9"
3#define CONFIG_SND_DATE " (Thu Mar 24 10:33:39 2005 UTC)" 3#define CONFIG_SND_DATE " (Sun May 29 07:31:02 2005 UTC)"