diff options
| -rw-r--r-- | include/sound/pcm-indirect.h | 28 | ||||
| -rw-r--r-- | include/sound/pcm.h | 477 | ||||
| -rw-r--r-- | include/sound/pcm_params.h | 86 | ||||
| -rw-r--r-- | sound/core/pcm.c | 214 | ||||
| -rw-r--r-- | sound/core/pcm_compat.c | 110 | ||||
| -rw-r--r-- | sound/core/pcm_lib.c | 320 | ||||
| -rw-r--r-- | sound/core/pcm_memory.c | 45 | ||||
| -rw-r--r-- | sound/core/pcm_misc.c | 2 | ||||
| -rw-r--r-- | sound/core/pcm_native.c | 623 | ||||
| -rw-r--r-- | sound/core/pcm_timer.c | 30 |
10 files changed, 983 insertions, 952 deletions
diff --git a/include/sound/pcm-indirect.h b/include/sound/pcm-indirect.h index 31fa7a54508a..7003d7702e26 100644 --- a/include/sound/pcm-indirect.h +++ b/include/sound/pcm-indirect.h | |||
| @@ -24,7 +24,7 @@ | |||
| 24 | 24 | ||
| 25 | #include <sound/pcm.h> | 25 | #include <sound/pcm.h> |
| 26 | 26 | ||
| 27 | typedef struct sndrv_pcm_indirect { | 27 | struct snd_pcm_indirect { |
| 28 | unsigned int hw_buffer_size; /* Byte size of hardware buffer */ | 28 | unsigned int hw_buffer_size; /* Byte size of hardware buffer */ |
| 29 | unsigned int hw_queue_size; /* Max queue size of hw buffer (0 = buffer size) */ | 29 | unsigned int hw_queue_size; /* Max queue size of hw buffer (0 = buffer size) */ |
| 30 | unsigned int hw_data; /* Offset to next dst (or src) in hw ring buffer */ | 30 | unsigned int hw_data; /* Offset to next dst (or src) in hw ring buffer */ |
| @@ -35,20 +35,20 @@ typedef struct sndrv_pcm_indirect { | |||
| 35 | unsigned int sw_io; /* Current software pointer in bytes */ | 35 | unsigned int sw_io; /* Current software pointer in bytes */ |
| 36 | int sw_ready; /* Bytes ready to be transferred to/from hw */ | 36 | int sw_ready; /* Bytes ready to be transferred to/from hw */ |
| 37 | snd_pcm_uframes_t appl_ptr; /* Last seen appl_ptr */ | 37 | snd_pcm_uframes_t appl_ptr; /* Last seen appl_ptr */ |
| 38 | } snd_pcm_indirect_t; | 38 | }; |
| 39 | 39 | ||
| 40 | typedef void (*snd_pcm_indirect_copy_t)(snd_pcm_substream_t *substream, | 40 | typedef void (*snd_pcm_indirect_copy_t)(struct snd_pcm_substream *substream, |
| 41 | snd_pcm_indirect_t *rec, size_t bytes); | 41 | struct snd_pcm_indirect *rec, size_t bytes); |
| 42 | 42 | ||
| 43 | /* | 43 | /* |
| 44 | * helper function for playback ack callback | 44 | * helper function for playback ack callback |
| 45 | */ | 45 | */ |
| 46 | static inline void | 46 | static inline void |
| 47 | snd_pcm_indirect_playback_transfer(snd_pcm_substream_t *substream, | 47 | snd_pcm_indirect_playback_transfer(struct snd_pcm_substream *substream, |
| 48 | snd_pcm_indirect_t *rec, | 48 | struct snd_pcm_indirect *rec, |
| 49 | snd_pcm_indirect_copy_t copy) | 49 | snd_pcm_indirect_copy_t copy) |
| 50 | { | 50 | { |
| 51 | snd_pcm_runtime_t *runtime = substream->runtime; | 51 | struct snd_pcm_runtime *runtime = substream->runtime; |
| 52 | snd_pcm_uframes_t appl_ptr = runtime->control->appl_ptr; | 52 | snd_pcm_uframes_t appl_ptr = runtime->control->appl_ptr; |
| 53 | snd_pcm_sframes_t diff = appl_ptr - rec->appl_ptr; | 53 | snd_pcm_sframes_t diff = appl_ptr - rec->appl_ptr; |
| 54 | int qsize; | 54 | int qsize; |
| @@ -89,8 +89,8 @@ snd_pcm_indirect_playback_transfer(snd_pcm_substream_t *substream, | |||
| 89 | * ptr = current byte pointer | 89 | * ptr = current byte pointer |
| 90 | */ | 90 | */ |
| 91 | static inline snd_pcm_uframes_t | 91 | static inline snd_pcm_uframes_t |
| 92 | snd_pcm_indirect_playback_pointer(snd_pcm_substream_t *substream, | 92 | snd_pcm_indirect_playback_pointer(struct snd_pcm_substream *substream, |
| 93 | snd_pcm_indirect_t *rec, unsigned int ptr) | 93 | struct snd_pcm_indirect *rec, unsigned int ptr) |
| 94 | { | 94 | { |
| 95 | int bytes = ptr - rec->hw_io; | 95 | int bytes = ptr - rec->hw_io; |
| 96 | if (bytes < 0) | 96 | if (bytes < 0) |
| @@ -110,11 +110,11 @@ snd_pcm_indirect_playback_pointer(snd_pcm_substream_t *substream, | |||
| 110 | * helper function for capture ack callback | 110 | * helper function for capture ack callback |
| 111 | */ | 111 | */ |
| 112 | static inline void | 112 | static inline void |
| 113 | snd_pcm_indirect_capture_transfer(snd_pcm_substream_t *substream, | 113 | snd_pcm_indirect_capture_transfer(struct snd_pcm_substream *substream, |
| 114 | snd_pcm_indirect_t *rec, | 114 | struct snd_pcm_indirect *rec, |
| 115 | snd_pcm_indirect_copy_t copy) | 115 | snd_pcm_indirect_copy_t copy) |
| 116 | { | 116 | { |
| 117 | snd_pcm_runtime_t *runtime = substream->runtime; | 117 | struct snd_pcm_runtime *runtime = substream->runtime; |
| 118 | snd_pcm_uframes_t appl_ptr = runtime->control->appl_ptr; | 118 | snd_pcm_uframes_t appl_ptr = runtime->control->appl_ptr; |
| 119 | snd_pcm_sframes_t diff = appl_ptr - rec->appl_ptr; | 119 | snd_pcm_sframes_t diff = appl_ptr - rec->appl_ptr; |
| 120 | 120 | ||
| @@ -154,8 +154,8 @@ snd_pcm_indirect_capture_transfer(snd_pcm_substream_t *substream, | |||
| 154 | * ptr = current byte pointer | 154 | * ptr = current byte pointer |
| 155 | */ | 155 | */ |
| 156 | static inline snd_pcm_uframes_t | 156 | static inline snd_pcm_uframes_t |
| 157 | snd_pcm_indirect_capture_pointer(snd_pcm_substream_t *substream, | 157 | snd_pcm_indirect_capture_pointer(struct snd_pcm_substream *substream, |
| 158 | snd_pcm_indirect_t *rec, unsigned int ptr) | 158 | struct snd_pcm_indirect *rec, unsigned int ptr) |
| 159 | { | 159 | { |
| 160 | int qsize; | 160 | int qsize; |
| 161 | int bytes = ptr - rec->hw_io; | 161 | int bytes = ptr - rec->hw_io; |
diff --git a/include/sound/pcm.h b/include/sound/pcm.h index acc4fa9d5abe..7e77c0add80a 100644 --- a/include/sound/pcm.h +++ b/include/sound/pcm.h | |||
| @@ -28,36 +28,9 @@ | |||
| 28 | #include <linux/poll.h> | 28 | #include <linux/poll.h> |
| 29 | #include <linux/bitops.h> | 29 | #include <linux/bitops.h> |
| 30 | 30 | ||
| 31 | typedef sndrv_pcm_uframes_t snd_pcm_uframes_t; | ||
| 32 | typedef sndrv_pcm_sframes_t snd_pcm_sframes_t; | ||
| 33 | typedef enum sndrv_pcm_class snd_pcm_class_t; | ||
| 34 | typedef enum sndrv_pcm_subclass snd_pcm_subclass_t; | ||
| 35 | typedef enum sndrv_pcm_stream snd_pcm_stream_t; | ||
| 36 | typedef enum sndrv_pcm_access snd_pcm_access_t; | ||
| 37 | typedef enum sndrv_pcm_format snd_pcm_format_t; | ||
| 38 | typedef enum sndrv_pcm_subformat snd_pcm_subformat_t; | ||
| 39 | typedef enum sndrv_pcm_state snd_pcm_state_t; | ||
| 40 | typedef union sndrv_pcm_sync_id snd_pcm_sync_id_t; | ||
| 41 | typedef struct sndrv_pcm_info snd_pcm_info_t; | ||
| 42 | typedef enum sndrv_pcm_hw_param snd_pcm_hw_param_t; | ||
| 43 | typedef struct sndrv_pcm_hw_params snd_pcm_hw_params_t; | ||
| 44 | typedef enum sndrv_pcm_start snd_pcm_start_t; | ||
| 45 | typedef enum sndrv_pcm_xrun snd_pcm_xrun_t; | ||
| 46 | typedef enum sndrv_pcm_tstamp snd_pcm_tstamp_t; | ||
| 47 | typedef struct sndrv_pcm_sw_params snd_pcm_sw_params_t; | ||
| 48 | typedef struct sndrv_pcm_channel_info snd_pcm_channel_info_t; | ||
| 49 | typedef struct sndrv_pcm_status snd_pcm_status_t; | ||
| 50 | typedef struct sndrv_pcm_mmap_status snd_pcm_mmap_status_t; | ||
| 51 | typedef struct sndrv_pcm_mmap_control snd_pcm_mmap_control_t; | ||
| 52 | typedef struct sndrv_mask snd_mask_t; | ||
| 53 | typedef struct snd_sg_buf snd_pcm_sgbuf_t; | ||
| 54 | |||
| 55 | #define snd_pcm_substream_chip(substream) ((substream)->private_data) | 31 | #define snd_pcm_substream_chip(substream) ((substream)->private_data) |
| 56 | #define snd_pcm_chip(pcm) ((pcm)->private_data) | 32 | #define snd_pcm_chip(pcm) ((pcm)->private_data) |
| 57 | 33 | ||
| 58 | typedef struct _snd_pcm_file snd_pcm_file_t; | ||
| 59 | typedef struct _snd_pcm_runtime snd_pcm_runtime_t; | ||
| 60 | |||
| 61 | #if defined(CONFIG_SND_PCM_OSS) || defined(CONFIG_SND_PCM_OSS_MODULE) | 34 | #if defined(CONFIG_SND_PCM_OSS) || defined(CONFIG_SND_PCM_OSS_MODULE) |
| 62 | #include "pcm_oss.h" | 35 | #include "pcm_oss.h" |
| 63 | #endif | 36 | #endif |
| @@ -66,7 +39,7 @@ typedef struct _snd_pcm_runtime snd_pcm_runtime_t; | |||
| 66 | * Hardware (lowlevel) section | 39 | * Hardware (lowlevel) section |
| 67 | */ | 40 | */ |
| 68 | 41 | ||
| 69 | typedef struct _snd_pcm_hardware { | 42 | struct snd_pcm_hardware { |
| 70 | unsigned int info; /* SNDRV_PCM_INFO_* */ | 43 | unsigned int info; /* SNDRV_PCM_INFO_* */ |
| 71 | u64 formats; /* SNDRV_PCM_FMTBIT_* */ | 44 | u64 formats; /* SNDRV_PCM_FMTBIT_* */ |
| 72 | unsigned int rates; /* SNDRV_PCM_RATE_* */ | 45 | unsigned int rates; /* SNDRV_PCM_RATE_* */ |
| @@ -80,26 +53,29 @@ typedef struct _snd_pcm_hardware { | |||
| 80 | unsigned int periods_min; /* min # of periods */ | 53 | unsigned int periods_min; /* min # of periods */ |
| 81 | unsigned int periods_max; /* max # of periods */ | 54 | unsigned int periods_max; /* max # of periods */ |
| 82 | size_t fifo_size; /* fifo size in bytes */ | 55 | size_t fifo_size; /* fifo size in bytes */ |
| 83 | } snd_pcm_hardware_t; | 56 | }; |
| 84 | 57 | ||
| 85 | typedef struct _snd_pcm_ops { | 58 | struct snd_pcm_ops { |
| 86 | int (*open)(snd_pcm_substream_t *substream); | 59 | int (*open)(struct snd_pcm_substream *substream); |
| 87 | int (*close)(snd_pcm_substream_t *substream); | 60 | int (*close)(struct snd_pcm_substream *substream); |
| 88 | int (*ioctl)(snd_pcm_substream_t * substream, | 61 | int (*ioctl)(struct snd_pcm_substream * substream, |
| 89 | unsigned int cmd, void *arg); | 62 | unsigned int cmd, void *arg); |
| 90 | int (*hw_params)(snd_pcm_substream_t * substream, snd_pcm_hw_params_t * params); | 63 | int (*hw_params)(struct snd_pcm_substream *substream, |
| 91 | int (*hw_free)(snd_pcm_substream_t *substream); | 64 | struct snd_pcm_hw_params *params); |
| 92 | int (*prepare)(snd_pcm_substream_t * substream); | 65 | int (*hw_free)(struct snd_pcm_substream *substream); |
| 93 | int (*trigger)(snd_pcm_substream_t * substream, int cmd); | 66 | int (*prepare)(struct snd_pcm_substream *substream); |
| 94 | snd_pcm_uframes_t (*pointer)(snd_pcm_substream_t * substream); | 67 | int (*trigger)(struct snd_pcm_substream *substream, int cmd); |
| 95 | int (*copy)(snd_pcm_substream_t *substream, int channel, snd_pcm_uframes_t pos, | 68 | snd_pcm_uframes_t (*pointer)(struct snd_pcm_substream *substream); |
| 69 | int (*copy)(struct snd_pcm_substream *substream, int channel, | ||
| 70 | snd_pcm_uframes_t pos, | ||
| 96 | void __user *buf, snd_pcm_uframes_t count); | 71 | void __user *buf, snd_pcm_uframes_t count); |
| 97 | int (*silence)(snd_pcm_substream_t *substream, int channel, | 72 | int (*silence)(struct snd_pcm_substream *substream, int channel, |
| 98 | snd_pcm_uframes_t pos, snd_pcm_uframes_t count); | 73 | snd_pcm_uframes_t pos, snd_pcm_uframes_t count); |
| 99 | struct page *(*page)(snd_pcm_substream_t *substream, unsigned long offset); | 74 | struct page *(*page)(struct snd_pcm_substream *substream, |
| 100 | int (*mmap)(snd_pcm_substream_t *substream, struct vm_area_struct *vma); | 75 | unsigned long offset); |
| 101 | int (*ack)(snd_pcm_substream_t *substream); | 76 | int (*mmap)(struct snd_pcm_substream *substream, struct vm_area_struct *vma); |
| 102 | } snd_pcm_ops_t; | 77 | int (*ack)(struct snd_pcm_substream *substream); |
| 78 | }; | ||
| 103 | 79 | ||
| 104 | /* | 80 | /* |
| 105 | * | 81 | * |
| @@ -212,17 +188,16 @@ typedef struct _snd_pcm_ops { | |||
| 212 | #define SNDRV_PCM_FMTBIT_IEC958_SUBFRAME SNDRV_PCM_FMTBIT_IEC958_SUBFRAME_BE | 188 | #define SNDRV_PCM_FMTBIT_IEC958_SUBFRAME SNDRV_PCM_FMTBIT_IEC958_SUBFRAME_BE |
| 213 | #endif | 189 | #endif |
| 214 | 190 | ||
| 215 | struct _snd_pcm_file { | 191 | struct snd_pcm_file { |
| 216 | snd_pcm_substream_t * substream; | 192 | struct snd_pcm_substream *substream; |
| 217 | struct _snd_pcm_file * next; | 193 | struct snd_pcm_file *next; |
| 218 | }; | 194 | }; |
| 219 | 195 | ||
| 220 | typedef struct _snd_pcm_hw_rule snd_pcm_hw_rule_t; | 196 | struct snd_pcm_hw_rule; |
| 197 | typedef int (*snd_pcm_hw_rule_func_t)(struct snd_pcm_hw_params *params, | ||
| 198 | struct snd_pcm_hw_rule *rule); | ||
| 221 | 199 | ||
| 222 | typedef int (*snd_pcm_hw_rule_func_t)(snd_pcm_hw_params_t *params, | 200 | struct snd_pcm_hw_rule { |
| 223 | snd_pcm_hw_rule_t *rule); | ||
| 224 | |||
| 225 | struct _snd_pcm_hw_rule { | ||
| 226 | unsigned int cond; | 201 | unsigned int cond; |
| 227 | snd_pcm_hw_rule_func_t func; | 202 | snd_pcm_hw_rule_func_t func; |
| 228 | int var; | 203 | int var; |
| @@ -230,57 +205,57 @@ struct _snd_pcm_hw_rule { | |||
| 230 | void *private; | 205 | void *private; |
| 231 | }; | 206 | }; |
| 232 | 207 | ||
| 233 | typedef struct _snd_pcm_hw_constraints { | 208 | struct snd_pcm_hw_constraints { |
| 234 | snd_mask_t masks[SNDRV_PCM_HW_PARAM_LAST_MASK - | 209 | struct snd_mask masks[SNDRV_PCM_HW_PARAM_LAST_MASK - |
| 235 | SNDRV_PCM_HW_PARAM_FIRST_MASK + 1]; | 210 | SNDRV_PCM_HW_PARAM_FIRST_MASK + 1]; |
| 236 | snd_interval_t intervals[SNDRV_PCM_HW_PARAM_LAST_INTERVAL - | 211 | struct snd_interval intervals[SNDRV_PCM_HW_PARAM_LAST_INTERVAL - |
| 237 | SNDRV_PCM_HW_PARAM_FIRST_INTERVAL + 1]; | 212 | SNDRV_PCM_HW_PARAM_FIRST_INTERVAL + 1]; |
| 238 | unsigned int rules_num; | 213 | unsigned int rules_num; |
| 239 | unsigned int rules_all; | 214 | unsigned int rules_all; |
| 240 | snd_pcm_hw_rule_t *rules; | 215 | struct snd_pcm_hw_rule *rules; |
| 241 | } snd_pcm_hw_constraints_t; | 216 | }; |
| 242 | 217 | ||
| 243 | static inline snd_mask_t *constrs_mask(snd_pcm_hw_constraints_t *constrs, | 218 | static inline struct snd_mask *constrs_mask(struct snd_pcm_hw_constraints *constrs, |
| 244 | snd_pcm_hw_param_t var) | 219 | snd_pcm_hw_param_t var) |
| 245 | { | 220 | { |
| 246 | return &constrs->masks[var - SNDRV_PCM_HW_PARAM_FIRST_MASK]; | 221 | return &constrs->masks[var - SNDRV_PCM_HW_PARAM_FIRST_MASK]; |
| 247 | } | 222 | } |
| 248 | 223 | ||
| 249 | static inline snd_interval_t *constrs_interval(snd_pcm_hw_constraints_t *constrs, | 224 | static inline struct snd_interval *constrs_interval(struct snd_pcm_hw_constraints *constrs, |
| 250 | snd_pcm_hw_param_t var) | 225 | snd_pcm_hw_param_t var) |
| 251 | { | 226 | { |
| 252 | return &constrs->intervals[var - SNDRV_PCM_HW_PARAM_FIRST_INTERVAL]; | 227 | return &constrs->intervals[var - SNDRV_PCM_HW_PARAM_FIRST_INTERVAL]; |
| 253 | } | 228 | } |
| 254 | 229 | ||
| 255 | typedef struct { | 230 | struct snd_ratnum { |
| 256 | unsigned int num; | 231 | unsigned int num; |
| 257 | unsigned int den_min, den_max, den_step; | 232 | unsigned int den_min, den_max, den_step; |
| 258 | } ratnum_t; | 233 | }; |
| 259 | 234 | ||
| 260 | typedef struct { | 235 | struct snd_ratden { |
| 261 | unsigned int num_min, num_max, num_step; | 236 | unsigned int num_min, num_max, num_step; |
| 262 | unsigned int den; | 237 | unsigned int den; |
| 263 | } ratden_t; | 238 | }; |
| 264 | 239 | ||
| 265 | typedef struct { | 240 | struct snd_pcm_hw_constraint_ratnums { |
| 266 | int nrats; | 241 | int nrats; |
| 267 | ratnum_t *rats; | 242 | struct snd_ratnum *rats; |
| 268 | } snd_pcm_hw_constraint_ratnums_t; | 243 | }; |
| 269 | 244 | ||
| 270 | typedef struct { | 245 | struct snd_pcm_hw_constraint_ratdens { |
| 271 | int nrats; | 246 | int nrats; |
| 272 | ratden_t *rats; | 247 | struct snd_ratden *rats; |
| 273 | } snd_pcm_hw_constraint_ratdens_t; | 248 | }; |
| 274 | 249 | ||
| 275 | typedef struct { | 250 | struct snd_pcm_hw_constraint_list { |
| 276 | unsigned int count; | 251 | unsigned int count; |
| 277 | unsigned int *list; | 252 | unsigned int *list; |
| 278 | unsigned int mask; | 253 | unsigned int mask; |
| 279 | } snd_pcm_hw_constraint_list_t; | 254 | }; |
| 280 | 255 | ||
| 281 | struct _snd_pcm_runtime { | 256 | struct snd_pcm_runtime { |
| 282 | /* -- Status -- */ | 257 | /* -- Status -- */ |
| 283 | snd_pcm_substream_t *trigger_master; | 258 | struct snd_pcm_substream *trigger_master; |
| 284 | struct timespec trigger_tstamp; /* trigger timestamp */ | 259 | struct timespec trigger_tstamp; /* trigger timestamp */ |
| 285 | int overrange; | 260 | int overrange; |
| 286 | snd_pcm_uframes_t avail_max; | 261 | snd_pcm_uframes_t avail_max; |
| @@ -306,7 +281,7 @@ struct _snd_pcm_runtime { | |||
| 306 | unsigned int rate_den; | 281 | unsigned int rate_den; |
| 307 | 282 | ||
| 308 | /* -- SW params -- */ | 283 | /* -- SW params -- */ |
| 309 | snd_pcm_tstamp_t tstamp_mode; /* mmap timestamp is updated */ | 284 | int tstamp_mode; /* mmap timestamp is updated */ |
| 310 | unsigned int period_step; | 285 | unsigned int period_step; |
| 311 | unsigned int sleep_min; /* min ticks to sleep */ | 286 | unsigned int sleep_min; /* min ticks to sleep */ |
| 312 | snd_pcm_uframes_t xfer_align; /* xfer size need to be a multiple */ | 287 | snd_pcm_uframes_t xfer_align; /* xfer size need to be a multiple */ |
| @@ -320,11 +295,11 @@ struct _snd_pcm_runtime { | |||
| 320 | snd_pcm_uframes_t silence_start; /* starting pointer to silence area */ | 295 | snd_pcm_uframes_t silence_start; /* starting pointer to silence area */ |
| 321 | snd_pcm_uframes_t silence_filled; /* size filled with silence */ | 296 | snd_pcm_uframes_t silence_filled; /* size filled with silence */ |
| 322 | 297 | ||
| 323 | snd_pcm_sync_id_t sync; /* hardware synchronization ID */ | 298 | union snd_pcm_sync_id sync; /* hardware synchronization ID */ |
| 324 | 299 | ||
| 325 | /* -- mmap -- */ | 300 | /* -- mmap -- */ |
| 326 | volatile snd_pcm_mmap_status_t *status; | 301 | volatile struct snd_pcm_mmap_status *status; |
| 327 | volatile snd_pcm_mmap_control_t *control; | 302 | volatile struct snd_pcm_mmap_control *control; |
| 328 | atomic_t mmap_count; | 303 | atomic_t mmap_count; |
| 329 | 304 | ||
| 330 | /* -- locking / scheduling -- */ | 305 | /* -- locking / scheduling -- */ |
| @@ -334,15 +309,15 @@ struct _snd_pcm_runtime { | |||
| 334 | 309 | ||
| 335 | /* -- private section -- */ | 310 | /* -- private section -- */ |
| 336 | void *private_data; | 311 | void *private_data; |
| 337 | void (*private_free)(snd_pcm_runtime_t *runtime); | 312 | void (*private_free)(struct snd_pcm_runtime *runtime); |
| 338 | 313 | ||
| 339 | /* -- hardware description -- */ | 314 | /* -- hardware description -- */ |
| 340 | snd_pcm_hardware_t hw; | 315 | struct snd_pcm_hardware hw; |
| 341 | snd_pcm_hw_constraints_t hw_constraints; | 316 | struct snd_pcm_hw_constraints hw_constraints; |
| 342 | 317 | ||
| 343 | /* -- interrupt callbacks -- */ | 318 | /* -- interrupt callbacks -- */ |
| 344 | void (*transfer_ack_begin)(snd_pcm_substream_t *substream); | 319 | void (*transfer_ack_begin)(struct snd_pcm_substream *substream); |
| 345 | void (*transfer_ack_end)(snd_pcm_substream_t *substream); | 320 | void (*transfer_ack_end)(struct snd_pcm_substream *substream); |
| 346 | 321 | ||
| 347 | /* -- timer -- */ | 322 | /* -- timer -- */ |
| 348 | unsigned int timer_resolution; /* timer resolution */ | 323 | unsigned int timer_resolution; /* timer resolution */ |
| @@ -356,19 +331,19 @@ struct _snd_pcm_runtime { | |||
| 356 | 331 | ||
| 357 | #if defined(CONFIG_SND_PCM_OSS) || defined(CONFIG_SND_PCM_OSS_MODULE) | 332 | #if defined(CONFIG_SND_PCM_OSS) || defined(CONFIG_SND_PCM_OSS_MODULE) |
| 358 | /* -- OSS things -- */ | 333 | /* -- OSS things -- */ |
| 359 | snd_pcm_oss_runtime_t oss; | 334 | struct snd_pcm_oss_runtime oss; |
| 360 | #endif | 335 | #endif |
| 361 | }; | 336 | }; |
| 362 | 337 | ||
| 363 | typedef struct _snd_pcm_group { /* keep linked substreams */ | 338 | struct snd_pcm_group { /* keep linked substreams */ |
| 364 | spinlock_t lock; | 339 | spinlock_t lock; |
| 365 | struct list_head substreams; | 340 | struct list_head substreams; |
| 366 | int count; | 341 | int count; |
| 367 | } snd_pcm_group_t; | 342 | }; |
| 368 | 343 | ||
| 369 | struct _snd_pcm_substream { | 344 | struct snd_pcm_substream { |
| 370 | snd_pcm_t *pcm; | 345 | struct snd_pcm *pcm; |
| 371 | snd_pcm_str_t *pstr; | 346 | struct snd_pcm_str *pstr; |
| 372 | void *private_data; /* copied from pcm->private_data */ | 347 | void *private_data; /* copied from pcm->private_data */ |
| 373 | int number; | 348 | int number; |
| 374 | char name[32]; /* substream name */ | 349 | char name[32]; /* substream name */ |
| @@ -378,32 +353,32 @@ struct _snd_pcm_substream { | |||
| 378 | unsigned int dma_buf_id; | 353 | unsigned int dma_buf_id; |
| 379 | size_t dma_max; | 354 | size_t dma_max; |
| 380 | /* -- hardware operations -- */ | 355 | /* -- hardware operations -- */ |
| 381 | snd_pcm_ops_t *ops; | 356 | struct snd_pcm_ops *ops; |
| 382 | /* -- runtime information -- */ | 357 | /* -- runtime information -- */ |
| 383 | snd_pcm_runtime_t *runtime; | 358 | struct snd_pcm_runtime *runtime; |
| 384 | /* -- timer section -- */ | 359 | /* -- timer section -- */ |
| 385 | snd_timer_t *timer; /* timer */ | 360 | struct snd_timer *timer; /* timer */ |
| 386 | unsigned timer_running: 1; /* time is running */ | 361 | unsigned timer_running: 1; /* time is running */ |
| 387 | spinlock_t timer_lock; | 362 | spinlock_t timer_lock; |
| 388 | /* -- next substream -- */ | 363 | /* -- next substream -- */ |
| 389 | snd_pcm_substream_t *next; | 364 | struct snd_pcm_substream *next; |
| 390 | /* -- linked substreams -- */ | 365 | /* -- linked substreams -- */ |
| 391 | struct list_head link_list; /* linked list member */ | 366 | struct list_head link_list; /* linked list member */ |
| 392 | snd_pcm_group_t self_group; /* fake group for non linked substream (with substream lock inside) */ | 367 | struct snd_pcm_group self_group; /* fake group for non linked substream (with substream lock inside) */ |
| 393 | snd_pcm_group_t *group; /* pointer to current group */ | 368 | struct snd_pcm_group *group; /* pointer to current group */ |
| 394 | /* -- assigned files -- */ | 369 | /* -- assigned files -- */ |
| 395 | snd_pcm_file_t *file; | 370 | struct snd_pcm_file *file; |
| 396 | struct file *ffile; | 371 | struct file *ffile; |
| 397 | #if defined(CONFIG_SND_PCM_OSS) || defined(CONFIG_SND_PCM_OSS_MODULE) | 372 | #if defined(CONFIG_SND_PCM_OSS) || defined(CONFIG_SND_PCM_OSS_MODULE) |
| 398 | /* -- OSS things -- */ | 373 | /* -- OSS things -- */ |
| 399 | snd_pcm_oss_substream_t oss; | 374 | struct snd_pcm_oss_substream oss; |
| 400 | #endif | 375 | #endif |
| 401 | snd_info_entry_t *proc_root; | 376 | struct snd_info_entry *proc_root; |
| 402 | snd_info_entry_t *proc_info_entry; | 377 | struct snd_info_entry *proc_info_entry; |
| 403 | snd_info_entry_t *proc_hw_params_entry; | 378 | struct snd_info_entry *proc_hw_params_entry; |
| 404 | snd_info_entry_t *proc_sw_params_entry; | 379 | struct snd_info_entry *proc_sw_params_entry; |
| 405 | snd_info_entry_t *proc_status_entry; | 380 | struct snd_info_entry *proc_status_entry; |
| 406 | snd_info_entry_t *proc_prealloc_entry; | 381 | struct snd_info_entry *proc_prealloc_entry; |
| 407 | /* misc flags */ | 382 | /* misc flags */ |
| 408 | unsigned int no_mmap_ctrl: 1; | 383 | unsigned int no_mmap_ctrl: 1; |
| 409 | }; | 384 | }; |
| @@ -415,65 +390,65 @@ struct _snd_pcm_substream { | |||
| 415 | #endif | 390 | #endif |
| 416 | 391 | ||
| 417 | 392 | ||
| 418 | struct _snd_pcm_str { | 393 | struct snd_pcm_str { |
| 419 | int stream; /* stream (direction) */ | 394 | int stream; /* stream (direction) */ |
| 420 | snd_pcm_t *pcm; | 395 | struct snd_pcm *pcm; |
| 421 | /* -- substreams -- */ | 396 | /* -- substreams -- */ |
| 422 | unsigned int substream_count; | 397 | unsigned int substream_count; |
| 423 | unsigned int substream_opened; | 398 | unsigned int substream_opened; |
| 424 | snd_pcm_substream_t *substream; | 399 | struct snd_pcm_substream *substream; |
| 425 | #if defined(CONFIG_SND_PCM_OSS) || defined(CONFIG_SND_PCM_OSS_MODULE) | 400 | #if defined(CONFIG_SND_PCM_OSS) || defined(CONFIG_SND_PCM_OSS_MODULE) |
| 426 | /* -- OSS things -- */ | 401 | /* -- OSS things -- */ |
| 427 | snd_pcm_oss_stream_t oss; | 402 | struct snd_pcm_oss_stream oss; |
| 428 | #endif | 403 | #endif |
| 429 | snd_pcm_file_t *files; | 404 | struct snd_pcm_file *files; |
| 430 | snd_minor_t *reg; | 405 | struct snd_minor *reg; |
| 431 | snd_info_entry_t *proc_root; | 406 | struct snd_info_entry *proc_root; |
| 432 | snd_info_entry_t *proc_info_entry; | 407 | struct snd_info_entry *proc_info_entry; |
| 433 | #ifdef CONFIG_SND_DEBUG | 408 | #ifdef CONFIG_SND_DEBUG |
| 434 | unsigned int xrun_debug; /* 0 = disabled, 1 = verbose, 2 = stacktrace */ | 409 | unsigned int xrun_debug; /* 0 = disabled, 1 = verbose, 2 = stacktrace */ |
| 435 | snd_info_entry_t *proc_xrun_debug_entry; | 410 | struct snd_info_entry *proc_xrun_debug_entry; |
| 436 | #endif | 411 | #endif |
| 437 | }; | 412 | }; |
| 438 | 413 | ||
| 439 | struct _snd_pcm { | 414 | struct snd_pcm { |
| 440 | snd_card_t *card; | 415 | struct snd_card *card; |
| 441 | unsigned int device; /* device number */ | 416 | unsigned int device; /* device number */ |
| 442 | unsigned int info_flags; | 417 | unsigned int info_flags; |
| 443 | unsigned short dev_class; | 418 | unsigned short dev_class; |
| 444 | unsigned short dev_subclass; | 419 | unsigned short dev_subclass; |
| 445 | char id[64]; | 420 | char id[64]; |
| 446 | char name[80]; | 421 | char name[80]; |
| 447 | snd_pcm_str_t streams[2]; | 422 | struct snd_pcm_str streams[2]; |
| 448 | struct semaphore open_mutex; | 423 | struct semaphore open_mutex; |
| 449 | wait_queue_head_t open_wait; | 424 | wait_queue_head_t open_wait; |
| 450 | void *private_data; | 425 | void *private_data; |
| 451 | void (*private_free) (snd_pcm_t *pcm); | 426 | void (*private_free) (struct snd_pcm *pcm); |
| 452 | #if defined(CONFIG_SND_PCM_OSS) || defined(CONFIG_SND_PCM_OSS_MODULE) | 427 | #if defined(CONFIG_SND_PCM_OSS) || defined(CONFIG_SND_PCM_OSS_MODULE) |
| 453 | snd_pcm_oss_t oss; | 428 | struct snd_pcm_oss oss; |
| 454 | #endif | 429 | #endif |
| 455 | }; | 430 | }; |
| 456 | 431 | ||
| 457 | typedef struct _snd_pcm_notify { | 432 | struct snd_pcm_notify { |
| 458 | int (*n_register) (snd_pcm_t * pcm); | 433 | int (*n_register) (struct snd_pcm * pcm); |
| 459 | int (*n_disconnect) (snd_pcm_t * pcm); | 434 | int (*n_disconnect) (struct snd_pcm * pcm); |
| 460 | int (*n_unregister) (snd_pcm_t * pcm); | 435 | int (*n_unregister) (struct snd_pcm * pcm); |
| 461 | struct list_head list; | 436 | struct list_head list; |
| 462 | } snd_pcm_notify_t; | 437 | }; |
| 463 | 438 | ||
| 464 | /* | 439 | /* |
| 465 | * Registering | 440 | * Registering |
| 466 | */ | 441 | */ |
| 467 | 442 | ||
| 468 | extern snd_pcm_t *snd_pcm_devices[]; | 443 | extern struct snd_pcm *snd_pcm_devices[]; |
| 469 | extern snd_minor_t snd_pcm_reg[2]; | 444 | extern struct snd_minor snd_pcm_reg[2]; |
| 470 | 445 | ||
| 471 | int snd_pcm_new(snd_card_t * card, char *id, int device, | 446 | int snd_pcm_new(struct snd_card *card, char *id, int device, |
| 472 | int playback_count, int capture_count, | 447 | int playback_count, int capture_count, |
| 473 | snd_pcm_t **rpcm); | 448 | struct snd_pcm **rpcm); |
| 474 | int snd_pcm_new_stream(snd_pcm_t *pcm, int stream, int substream_count); | 449 | int snd_pcm_new_stream(struct snd_pcm *pcm, int stream, int substream_count); |
| 475 | 450 | ||
| 476 | int snd_pcm_notify(snd_pcm_notify_t *notify, int nfree); | 451 | int snd_pcm_notify(struct snd_pcm_notify *notify, int nfree); |
| 477 | 452 | ||
| 478 | /* | 453 | /* |
| 479 | * Native I/O | 454 | * Native I/O |
| @@ -481,24 +456,26 @@ int snd_pcm_notify(snd_pcm_notify_t *notify, int nfree); | |||
| 481 | 456 | ||
| 482 | extern rwlock_t snd_pcm_link_rwlock; | 457 | extern rwlock_t snd_pcm_link_rwlock; |
| 483 | 458 | ||
| 484 | int snd_pcm_info(snd_pcm_substream_t * substream, snd_pcm_info_t *info); | 459 | int snd_pcm_info(struct snd_pcm_substream *substream, struct snd_pcm_info *info); |
| 485 | int snd_pcm_info_user(snd_pcm_substream_t * substream, snd_pcm_info_t __user *info); | 460 | int snd_pcm_info_user(struct snd_pcm_substream *substream, |
| 486 | int snd_pcm_status(snd_pcm_substream_t * substream, snd_pcm_status_t *status); | 461 | struct snd_pcm_info __user *info); |
| 487 | int snd_pcm_prepare(snd_pcm_substream_t *substream); | 462 | int snd_pcm_status(struct snd_pcm_substream *substream, |
| 488 | int snd_pcm_start(snd_pcm_substream_t *substream); | 463 | struct snd_pcm_status *status); |
| 489 | int snd_pcm_stop(snd_pcm_substream_t *substream, int status); | 464 | int snd_pcm_prepare(struct snd_pcm_substream *substream); |
| 490 | int snd_pcm_drain_done(snd_pcm_substream_t *substream); | 465 | int snd_pcm_start(struct snd_pcm_substream *substream); |
| 466 | int snd_pcm_stop(struct snd_pcm_substream *substream, int status); | ||
| 467 | int snd_pcm_drain_done(struct snd_pcm_substream *substream); | ||
| 491 | #ifdef CONFIG_PM | 468 | #ifdef CONFIG_PM |
| 492 | int snd_pcm_suspend(snd_pcm_substream_t *substream); | 469 | int snd_pcm_suspend(struct snd_pcm_substream *substream); |
| 493 | int snd_pcm_suspend_all(snd_pcm_t *pcm); | 470 | int snd_pcm_suspend_all(struct snd_pcm *pcm); |
| 494 | #endif | 471 | #endif |
| 495 | int snd_pcm_kernel_playback_ioctl(snd_pcm_substream_t *substream, unsigned int cmd, void *arg); | 472 | int snd_pcm_kernel_playback_ioctl(struct snd_pcm_substream *substream, unsigned int cmd, void *arg); |
| 496 | int snd_pcm_kernel_capture_ioctl(snd_pcm_substream_t *substream, unsigned int cmd, void *arg); | 473 | int snd_pcm_kernel_capture_ioctl(struct snd_pcm_substream *substream, unsigned int cmd, void *arg); |
| 497 | int snd_pcm_kernel_ioctl(snd_pcm_substream_t *substream, unsigned int cmd, void *arg); | 474 | int snd_pcm_kernel_ioctl(struct snd_pcm_substream *substream, unsigned int cmd, void *arg); |
| 498 | int snd_pcm_open_substream(snd_pcm_t *pcm, int stream, snd_pcm_substream_t **rsubstream); | 475 | int snd_pcm_open_substream(struct snd_pcm *pcm, int stream, struct snd_pcm_substream **rsubstream); |
| 499 | void snd_pcm_release_substream(snd_pcm_substream_t *substream); | 476 | void snd_pcm_release_substream(struct snd_pcm_substream *substream); |
| 500 | void snd_pcm_vma_notify_data(void *client, void *data); | 477 | void snd_pcm_vma_notify_data(void *client, void *data); |
| 501 | int snd_pcm_mmap_data(snd_pcm_substream_t *substream, struct file *file, struct vm_area_struct *area); | 478 | int snd_pcm_mmap_data(struct snd_pcm_substream *substream, struct file *file, struct vm_area_struct *area); |
| 502 | 479 | ||
| 503 | #if BITS_PER_LONG >= 64 | 480 | #if BITS_PER_LONG >= 64 |
| 504 | 481 | ||
| @@ -578,30 +555,30 @@ static inline void div64_32(u_int64_t *n, u_int32_t div, u_int32_t *rem) | |||
| 578 | * PCM library | 555 | * PCM library |
| 579 | */ | 556 | */ |
| 580 | 557 | ||
| 581 | static inline int snd_pcm_stream_linked(snd_pcm_substream_t *substream) | 558 | static inline int snd_pcm_stream_linked(struct snd_pcm_substream *substream) |
| 582 | { | 559 | { |
| 583 | return substream->group != &substream->self_group; | 560 | return substream->group != &substream->self_group; |
| 584 | } | 561 | } |
| 585 | 562 | ||
| 586 | static inline void snd_pcm_stream_lock(snd_pcm_substream_t *substream) | 563 | static inline void snd_pcm_stream_lock(struct snd_pcm_substream *substream) |
| 587 | { | 564 | { |
| 588 | read_lock(&snd_pcm_link_rwlock); | 565 | read_lock(&snd_pcm_link_rwlock); |
| 589 | spin_lock(&substream->self_group.lock); | 566 | spin_lock(&substream->self_group.lock); |
| 590 | } | 567 | } |
| 591 | 568 | ||
| 592 | static inline void snd_pcm_stream_unlock(snd_pcm_substream_t *substream) | 569 | static inline void snd_pcm_stream_unlock(struct snd_pcm_substream *substream) |
| 593 | { | 570 | { |
| 594 | spin_unlock(&substream->self_group.lock); | 571 | spin_unlock(&substream->self_group.lock); |
| 595 | read_unlock(&snd_pcm_link_rwlock); | 572 | read_unlock(&snd_pcm_link_rwlock); |
| 596 | } | 573 | } |
| 597 | 574 | ||
| 598 | static inline void snd_pcm_stream_lock_irq(snd_pcm_substream_t *substream) | 575 | static inline void snd_pcm_stream_lock_irq(struct snd_pcm_substream *substream) |
| 599 | { | 576 | { |
| 600 | read_lock_irq(&snd_pcm_link_rwlock); | 577 | read_lock_irq(&snd_pcm_link_rwlock); |
| 601 | spin_lock(&substream->self_group.lock); | 578 | spin_lock(&substream->self_group.lock); |
| 602 | } | 579 | } |
| 603 | 580 | ||
| 604 | static inline void snd_pcm_stream_unlock_irq(snd_pcm_substream_t *substream) | 581 | static inline void snd_pcm_stream_unlock_irq(struct snd_pcm_substream *substream) |
| 605 | { | 582 | { |
| 606 | spin_unlock(&substream->self_group.lock); | 583 | spin_unlock(&substream->self_group.lock); |
| 607 | read_unlock_irq(&snd_pcm_link_rwlock); | 584 | read_unlock_irq(&snd_pcm_link_rwlock); |
| @@ -623,56 +600,56 @@ do { \ | |||
| 623 | list_for_each(pos, &substream->group->substreams) | 600 | list_for_each(pos, &substream->group->substreams) |
| 624 | 601 | ||
| 625 | #define snd_pcm_group_substream_entry(pos) \ | 602 | #define snd_pcm_group_substream_entry(pos) \ |
| 626 | list_entry(pos, snd_pcm_substream_t, link_list) | 603 | list_entry(pos, struct snd_pcm_substream, link_list) |
| 627 | 604 | ||
| 628 | static inline int snd_pcm_running(snd_pcm_substream_t *substream) | 605 | static inline int snd_pcm_running(struct snd_pcm_substream *substream) |
| 629 | { | 606 | { |
| 630 | return (substream->runtime->status->state == SNDRV_PCM_STATE_RUNNING || | 607 | return (substream->runtime->status->state == SNDRV_PCM_STATE_RUNNING || |
| 631 | (substream->runtime->status->state == SNDRV_PCM_STATE_DRAINING && | 608 | (substream->runtime->status->state == SNDRV_PCM_STATE_DRAINING && |
| 632 | substream->stream == SNDRV_PCM_STREAM_PLAYBACK)); | 609 | substream->stream == SNDRV_PCM_STREAM_PLAYBACK)); |
| 633 | } | 610 | } |
| 634 | 611 | ||
| 635 | static inline ssize_t bytes_to_samples(snd_pcm_runtime_t *runtime, ssize_t size) | 612 | static inline ssize_t bytes_to_samples(struct snd_pcm_runtime *runtime, ssize_t size) |
| 636 | { | 613 | { |
| 637 | return size * 8 / runtime->sample_bits; | 614 | return size * 8 / runtime->sample_bits; |
| 638 | } | 615 | } |
| 639 | 616 | ||
| 640 | static inline snd_pcm_sframes_t bytes_to_frames(snd_pcm_runtime_t *runtime, ssize_t size) | 617 | static inline snd_pcm_sframes_t bytes_to_frames(struct snd_pcm_runtime *runtime, ssize_t size) |
| 641 | { | 618 | { |
| 642 | return size * 8 / runtime->frame_bits; | 619 | return size * 8 / runtime->frame_bits; |
| 643 | } | 620 | } |
| 644 | 621 | ||
| 645 | static inline ssize_t samples_to_bytes(snd_pcm_runtime_t *runtime, ssize_t size) | 622 | static inline ssize_t samples_to_bytes(struct snd_pcm_runtime *runtime, ssize_t size) |
| 646 | { | 623 | { |
| 647 | return size * runtime->sample_bits / 8; | 624 | return size * runtime->sample_bits / 8; |
| 648 | } | 625 | } |
| 649 | 626 | ||
| 650 | static inline ssize_t frames_to_bytes(snd_pcm_runtime_t *runtime, snd_pcm_sframes_t size) | 627 | static inline ssize_t frames_to_bytes(struct snd_pcm_runtime *runtime, snd_pcm_sframes_t size) |
| 651 | { | 628 | { |
| 652 | return size * runtime->frame_bits / 8; | 629 | return size * runtime->frame_bits / 8; |
| 653 | } | 630 | } |
| 654 | 631 | ||
| 655 | static inline int frame_aligned(snd_pcm_runtime_t *runtime, ssize_t bytes) | 632 | static inline int frame_aligned(struct snd_pcm_runtime *runtime, ssize_t bytes) |
| 656 | { | 633 | { |
| 657 | return bytes % runtime->byte_align == 0; | 634 | return bytes % runtime->byte_align == 0; |
| 658 | } | 635 | } |
| 659 | 636 | ||
| 660 | static inline size_t snd_pcm_lib_buffer_bytes(snd_pcm_substream_t *substream) | 637 | static inline size_t snd_pcm_lib_buffer_bytes(struct snd_pcm_substream *substream) |
| 661 | { | 638 | { |
| 662 | snd_pcm_runtime_t *runtime = substream->runtime; | 639 | struct snd_pcm_runtime *runtime = substream->runtime; |
| 663 | return frames_to_bytes(runtime, runtime->buffer_size); | 640 | return frames_to_bytes(runtime, runtime->buffer_size); |
| 664 | } | 641 | } |
| 665 | 642 | ||
| 666 | static inline size_t snd_pcm_lib_period_bytes(snd_pcm_substream_t *substream) | 643 | static inline size_t snd_pcm_lib_period_bytes(struct snd_pcm_substream *substream) |
| 667 | { | 644 | { |
| 668 | snd_pcm_runtime_t *runtime = substream->runtime; | 645 | struct snd_pcm_runtime *runtime = substream->runtime; |
| 669 | return frames_to_bytes(runtime, runtime->period_size); | 646 | return frames_to_bytes(runtime, runtime->period_size); |
| 670 | } | 647 | } |
| 671 | 648 | ||
| 672 | /* | 649 | /* |
| 673 | * result is: 0 ... (boundary - 1) | 650 | * result is: 0 ... (boundary - 1) |
| 674 | */ | 651 | */ |
| 675 | static inline snd_pcm_uframes_t snd_pcm_playback_avail(snd_pcm_runtime_t *runtime) | 652 | static inline snd_pcm_uframes_t snd_pcm_playback_avail(struct snd_pcm_runtime *runtime) |
| 676 | { | 653 | { |
| 677 | snd_pcm_sframes_t avail = runtime->status->hw_ptr + runtime->buffer_size - runtime->control->appl_ptr; | 654 | snd_pcm_sframes_t avail = runtime->status->hw_ptr + runtime->buffer_size - runtime->control->appl_ptr; |
| 678 | if (avail < 0) | 655 | if (avail < 0) |
| @@ -685,7 +662,7 @@ static inline snd_pcm_uframes_t snd_pcm_playback_avail(snd_pcm_runtime_t *runtim | |||
| 685 | /* | 662 | /* |
| 686 | * result is: 0 ... (boundary - 1) | 663 | * result is: 0 ... (boundary - 1) |
| 687 | */ | 664 | */ |
| 688 | static inline snd_pcm_uframes_t snd_pcm_capture_avail(snd_pcm_runtime_t *runtime) | 665 | static inline snd_pcm_uframes_t snd_pcm_capture_avail(struct snd_pcm_runtime *runtime) |
| 689 | { | 666 | { |
| 690 | snd_pcm_sframes_t avail = runtime->status->hw_ptr - runtime->control->appl_ptr; | 667 | snd_pcm_sframes_t avail = runtime->status->hw_ptr - runtime->control->appl_ptr; |
| 691 | if (avail < 0) | 668 | if (avail < 0) |
| @@ -693,12 +670,12 @@ static inline snd_pcm_uframes_t snd_pcm_capture_avail(snd_pcm_runtime_t *runtime | |||
| 693 | return avail; | 670 | return avail; |
| 694 | } | 671 | } |
| 695 | 672 | ||
| 696 | static inline snd_pcm_sframes_t snd_pcm_playback_hw_avail(snd_pcm_runtime_t *runtime) | 673 | static inline snd_pcm_sframes_t snd_pcm_playback_hw_avail(struct snd_pcm_runtime *runtime) |
| 697 | { | 674 | { |
| 698 | return runtime->buffer_size - snd_pcm_playback_avail(runtime); | 675 | return runtime->buffer_size - snd_pcm_playback_avail(runtime); |
| 699 | } | 676 | } |
| 700 | 677 | ||
| 701 | static inline snd_pcm_sframes_t snd_pcm_capture_hw_avail(snd_pcm_runtime_t *runtime) | 678 | static inline snd_pcm_sframes_t snd_pcm_capture_hw_avail(struct snd_pcm_runtime *runtime) |
| 702 | { | 679 | { |
| 703 | return runtime->buffer_size - snd_pcm_capture_avail(runtime); | 680 | return runtime->buffer_size - snd_pcm_capture_avail(runtime); |
| 704 | } | 681 | } |
| @@ -711,9 +688,9 @@ static inline snd_pcm_sframes_t snd_pcm_capture_hw_avail(snd_pcm_runtime_t *runt | |||
| 711 | * | 688 | * |
| 712 | * Returns non-zero if available, or zero if not. | 689 | * Returns non-zero if available, or zero if not. |
| 713 | */ | 690 | */ |
| 714 | static inline int snd_pcm_playback_ready(snd_pcm_substream_t *substream) | 691 | static inline int snd_pcm_playback_ready(struct snd_pcm_substream *substream) |
| 715 | { | 692 | { |
| 716 | snd_pcm_runtime_t *runtime = substream->runtime; | 693 | struct snd_pcm_runtime *runtime = substream->runtime; |
| 717 | return snd_pcm_playback_avail(runtime) >= runtime->control->avail_min; | 694 | return snd_pcm_playback_avail(runtime) >= runtime->control->avail_min; |
| 718 | } | 695 | } |
| 719 | 696 | ||
| @@ -725,9 +702,9 @@ static inline int snd_pcm_playback_ready(snd_pcm_substream_t *substream) | |||
| 725 | * | 702 | * |
| 726 | * Returns non-zero if available, or zero if not. | 703 | * Returns non-zero if available, or zero if not. |
| 727 | */ | 704 | */ |
| 728 | static inline int snd_pcm_capture_ready(snd_pcm_substream_t *substream) | 705 | static inline int snd_pcm_capture_ready(struct snd_pcm_substream *substream) |
| 729 | { | 706 | { |
| 730 | snd_pcm_runtime_t *runtime = substream->runtime; | 707 | struct snd_pcm_runtime *runtime = substream->runtime; |
| 731 | return snd_pcm_capture_avail(runtime) >= runtime->control->avail_min; | 708 | return snd_pcm_capture_avail(runtime) >= runtime->control->avail_min; |
| 732 | } | 709 | } |
| 733 | 710 | ||
| @@ -740,9 +717,9 @@ static inline int snd_pcm_capture_ready(snd_pcm_substream_t *substream) | |||
| 740 | * | 717 | * |
| 741 | * Returns non-zero if exists, or zero if not. | 718 | * Returns non-zero if exists, or zero if not. |
| 742 | */ | 719 | */ |
| 743 | static inline int snd_pcm_playback_data(snd_pcm_substream_t *substream) | 720 | static inline int snd_pcm_playback_data(struct snd_pcm_substream *substream) |
| 744 | { | 721 | { |
| 745 | snd_pcm_runtime_t *runtime = substream->runtime; | 722 | struct snd_pcm_runtime *runtime = substream->runtime; |
| 746 | 723 | ||
| 747 | if (runtime->stop_threshold >= runtime->boundary) | 724 | if (runtime->stop_threshold >= runtime->boundary) |
| 748 | return 1; | 725 | return 1; |
| @@ -757,9 +734,9 @@ static inline int snd_pcm_playback_data(snd_pcm_substream_t *substream) | |||
| 757 | * | 734 | * |
| 758 | * Returns non-zero if empty, or zero if not. | 735 | * Returns non-zero if empty, or zero if not. |
| 759 | */ | 736 | */ |
| 760 | static inline int snd_pcm_playback_empty(snd_pcm_substream_t *substream) | 737 | static inline int snd_pcm_playback_empty(struct snd_pcm_substream *substream) |
| 761 | { | 738 | { |
| 762 | snd_pcm_runtime_t *runtime = substream->runtime; | 739 | struct snd_pcm_runtime *runtime = substream->runtime; |
| 763 | return snd_pcm_playback_avail(runtime) >= runtime->buffer_size; | 740 | return snd_pcm_playback_avail(runtime) >= runtime->buffer_size; |
| 764 | } | 741 | } |
| 765 | 742 | ||
| @@ -771,14 +748,14 @@ static inline int snd_pcm_playback_empty(snd_pcm_substream_t *substream) | |||
| 771 | * | 748 | * |
| 772 | * Returns non-zero if empty, or zero if not. | 749 | * Returns non-zero if empty, or zero if not. |
| 773 | */ | 750 | */ |
| 774 | static inline int snd_pcm_capture_empty(snd_pcm_substream_t *substream) | 751 | static inline int snd_pcm_capture_empty(struct snd_pcm_substream *substream) |
| 775 | { | 752 | { |
| 776 | snd_pcm_runtime_t *runtime = substream->runtime; | 753 | struct snd_pcm_runtime *runtime = substream->runtime; |
| 777 | return snd_pcm_capture_avail(runtime) == 0; | 754 | return snd_pcm_capture_avail(runtime) == 0; |
| 778 | } | 755 | } |
| 779 | 756 | ||
| 780 | static inline void snd_pcm_trigger_done(snd_pcm_substream_t *substream, | 757 | static inline void snd_pcm_trigger_done(struct snd_pcm_substream *substream, |
| 781 | snd_pcm_substream_t *master) | 758 | struct snd_pcm_substream *master) |
| 782 | { | 759 | { |
| 783 | substream->runtime->trigger_master = master; | 760 | substream->runtime->trigger_master = master; |
| 784 | } | 761 | } |
| @@ -795,28 +772,28 @@ static inline int hw_is_interval(int var) | |||
| 795 | var <= SNDRV_PCM_HW_PARAM_LAST_INTERVAL; | 772 | var <= SNDRV_PCM_HW_PARAM_LAST_INTERVAL; |
| 796 | } | 773 | } |
| 797 | 774 | ||
| 798 | static inline snd_mask_t *hw_param_mask(snd_pcm_hw_params_t *params, | 775 | static inline struct snd_mask *hw_param_mask(struct snd_pcm_hw_params *params, |
| 799 | snd_pcm_hw_param_t var) | 776 | snd_pcm_hw_param_t var) |
| 800 | { | 777 | { |
| 801 | return ¶ms->masks[var - SNDRV_PCM_HW_PARAM_FIRST_MASK]; | 778 | return ¶ms->masks[var - SNDRV_PCM_HW_PARAM_FIRST_MASK]; |
| 802 | } | 779 | } |
| 803 | 780 | ||
| 804 | static inline snd_interval_t *hw_param_interval(snd_pcm_hw_params_t *params, | 781 | static inline struct snd_interval *hw_param_interval(struct snd_pcm_hw_params *params, |
| 805 | snd_pcm_hw_param_t var) | 782 | snd_pcm_hw_param_t var) |
| 806 | { | 783 | { |
| 807 | return ¶ms->intervals[var - SNDRV_PCM_HW_PARAM_FIRST_INTERVAL]; | 784 | return ¶ms->intervals[var - SNDRV_PCM_HW_PARAM_FIRST_INTERVAL]; |
| 808 | } | 785 | } |
| 809 | 786 | ||
| 810 | static inline const snd_mask_t *hw_param_mask_c(const snd_pcm_hw_params_t *params, | 787 | static inline const struct snd_mask *hw_param_mask_c(const struct snd_pcm_hw_params *params, |
| 811 | snd_pcm_hw_param_t var) | 788 | snd_pcm_hw_param_t var) |
| 812 | { | 789 | { |
| 813 | return (const snd_mask_t *)hw_param_mask((snd_pcm_hw_params_t*) params, var); | 790 | return (const struct snd_mask *)hw_param_mask((struct snd_pcm_hw_params*) params, var); |
| 814 | } | 791 | } |
| 815 | 792 | ||
| 816 | static inline const snd_interval_t *hw_param_interval_c(const snd_pcm_hw_params_t *params, | 793 | static inline const struct snd_interval *hw_param_interval_c(const struct snd_pcm_hw_params *params, |
| 817 | snd_pcm_hw_param_t var) | 794 | snd_pcm_hw_param_t var) |
| 818 | { | 795 | { |
| 819 | return (const snd_interval_t *)hw_param_interval((snd_pcm_hw_params_t*) params, var); | 796 | return (const struct snd_interval *)hw_param_interval((struct snd_pcm_hw_params*) params, var); |
| 820 | } | 797 | } |
| 821 | 798 | ||
| 822 | #define params_access(p) snd_mask_min(hw_param_mask((p), SNDRV_PCM_HW_PARAM_ACCESS)) | 799 | #define params_access(p) snd_mask_min(hw_param_mask((p), SNDRV_PCM_HW_PARAM_ACCESS)) |
| @@ -832,66 +809,66 @@ static inline const snd_interval_t *hw_param_interval_c(const snd_pcm_hw_params_ | |||
| 832 | #define params_tick_time(p) hw_param_interval((p), SNDRV_PCM_HW_PARAM_TICK_TIME)->min | 809 | #define params_tick_time(p) hw_param_interval((p), SNDRV_PCM_HW_PARAM_TICK_TIME)->min |
| 833 | 810 | ||
| 834 | 811 | ||
| 835 | int snd_interval_refine(snd_interval_t *i, const snd_interval_t *v); | 812 | int snd_interval_refine(struct snd_interval *i, const struct snd_interval *v); |
| 836 | void snd_interval_mul(const snd_interval_t *a, const snd_interval_t *b, snd_interval_t *c); | 813 | void snd_interval_mul(const struct snd_interval *a, const struct snd_interval *b, struct snd_interval *c); |
| 837 | void snd_interval_div(const snd_interval_t *a, const snd_interval_t *b, snd_interval_t *c); | 814 | void snd_interval_div(const struct snd_interval *a, const struct snd_interval *b, struct snd_interval *c); |
| 838 | void snd_interval_muldivk(const snd_interval_t *a, const snd_interval_t *b, | 815 | void snd_interval_muldivk(const struct snd_interval *a, const struct snd_interval *b, |
| 839 | unsigned int k, snd_interval_t *c); | 816 | unsigned int k, struct snd_interval *c); |
| 840 | void snd_interval_mulkdiv(const snd_interval_t *a, unsigned int k, | 817 | void snd_interval_mulkdiv(const struct snd_interval *a, unsigned int k, |
| 841 | const snd_interval_t *b, snd_interval_t *c); | 818 | const struct snd_interval *b, struct snd_interval *c); |
| 842 | int snd_interval_list(snd_interval_t *i, unsigned int count, unsigned int *list, unsigned int mask); | 819 | int snd_interval_list(struct snd_interval *i, unsigned int count, unsigned int *list, unsigned int mask); |
| 843 | int snd_interval_ratnum(snd_interval_t *i, | 820 | int snd_interval_ratnum(struct snd_interval *i, |
| 844 | unsigned int rats_count, ratnum_t *rats, | 821 | unsigned int rats_count, struct snd_ratnum *rats, |
| 845 | unsigned int *nump, unsigned int *denp); | 822 | unsigned int *nump, unsigned int *denp); |
| 846 | 823 | ||
| 847 | void _snd_pcm_hw_params_any(snd_pcm_hw_params_t *params); | 824 | void _snd_pcm_hw_params_any(struct snd_pcm_hw_params *params); |
| 848 | void _snd_pcm_hw_param_setempty(snd_pcm_hw_params_t *params, snd_pcm_hw_param_t var); | 825 | void _snd_pcm_hw_param_setempty(struct snd_pcm_hw_params *params, snd_pcm_hw_param_t var); |
| 849 | int snd_pcm_hw_param_near(snd_pcm_substream_t *substream, | 826 | int snd_pcm_hw_param_near(struct snd_pcm_substream *substream, |
| 850 | snd_pcm_hw_params_t *params, | 827 | struct snd_pcm_hw_params *params, |
| 851 | snd_pcm_hw_param_t var, | 828 | snd_pcm_hw_param_t var, |
| 852 | unsigned int val, int *dir); | 829 | unsigned int val, int *dir); |
| 853 | int snd_pcm_hw_param_set(snd_pcm_substream_t *pcm, | 830 | int snd_pcm_hw_param_set(struct snd_pcm_substream *pcm, |
| 854 | snd_pcm_hw_params_t *params, | 831 | struct snd_pcm_hw_params *params, |
| 855 | snd_pcm_hw_param_t var, | 832 | snd_pcm_hw_param_t var, |
| 856 | unsigned int val, int dir); | 833 | unsigned int val, int dir); |
| 857 | int snd_pcm_hw_params_choose(snd_pcm_substream_t *substream, snd_pcm_hw_params_t *params); | 834 | int snd_pcm_hw_params_choose(struct snd_pcm_substream *substream, struct snd_pcm_hw_params *params); |
| 858 | 835 | ||
| 859 | int snd_pcm_hw_refine(snd_pcm_substream_t *substream, snd_pcm_hw_params_t *params); | 836 | int snd_pcm_hw_refine(struct snd_pcm_substream *substream, struct snd_pcm_hw_params *params); |
| 860 | 837 | ||
| 861 | int snd_pcm_hw_constraints_init(snd_pcm_substream_t *substream); | 838 | int snd_pcm_hw_constraints_init(struct snd_pcm_substream *substream); |
| 862 | int snd_pcm_hw_constraints_complete(snd_pcm_substream_t *substream); | 839 | int snd_pcm_hw_constraints_complete(struct snd_pcm_substream *substream); |
| 863 | 840 | ||
| 864 | int snd_pcm_hw_constraint_mask(snd_pcm_runtime_t *runtime, snd_pcm_hw_param_t var, | 841 | int snd_pcm_hw_constraint_mask(struct snd_pcm_runtime *runtime, snd_pcm_hw_param_t var, |
| 865 | u_int32_t mask); | 842 | u_int32_t mask); |
| 866 | int snd_pcm_hw_constraint_mask64(snd_pcm_runtime_t *runtime, snd_pcm_hw_param_t var, | 843 | int snd_pcm_hw_constraint_mask64(struct snd_pcm_runtime *runtime, snd_pcm_hw_param_t var, |
| 867 | u_int64_t mask); | 844 | u_int64_t mask); |
| 868 | int snd_pcm_hw_constraint_minmax(snd_pcm_runtime_t *runtime, snd_pcm_hw_param_t var, | 845 | int snd_pcm_hw_constraint_minmax(struct snd_pcm_runtime *runtime, snd_pcm_hw_param_t var, |
| 869 | unsigned int min, unsigned int max); | 846 | unsigned int min, unsigned int max); |
| 870 | int snd_pcm_hw_constraint_integer(snd_pcm_runtime_t *runtime, snd_pcm_hw_param_t var); | 847 | int snd_pcm_hw_constraint_integer(struct snd_pcm_runtime *runtime, snd_pcm_hw_param_t var); |
| 871 | int snd_pcm_hw_constraint_list(snd_pcm_runtime_t *runtime, | 848 | int snd_pcm_hw_constraint_list(struct snd_pcm_runtime *runtime, |
| 872 | unsigned int cond, | 849 | unsigned int cond, |
| 873 | snd_pcm_hw_param_t var, | 850 | snd_pcm_hw_param_t var, |
| 874 | snd_pcm_hw_constraint_list_t *l); | 851 | struct snd_pcm_hw_constraint_list *l); |
| 875 | int snd_pcm_hw_constraint_ratnums(snd_pcm_runtime_t *runtime, | 852 | int snd_pcm_hw_constraint_ratnums(struct snd_pcm_runtime *runtime, |
| 876 | unsigned int cond, | 853 | unsigned int cond, |
| 877 | snd_pcm_hw_param_t var, | 854 | snd_pcm_hw_param_t var, |
| 878 | snd_pcm_hw_constraint_ratnums_t *r); | 855 | struct snd_pcm_hw_constraint_ratnums *r); |
| 879 | int snd_pcm_hw_constraint_ratdens(snd_pcm_runtime_t *runtime, | 856 | int snd_pcm_hw_constraint_ratdens(struct snd_pcm_runtime *runtime, |
| 880 | unsigned int cond, | 857 | unsigned int cond, |
| 881 | snd_pcm_hw_param_t var, | 858 | snd_pcm_hw_param_t var, |
| 882 | snd_pcm_hw_constraint_ratdens_t *r); | 859 | struct snd_pcm_hw_constraint_ratdens *r); |
| 883 | int snd_pcm_hw_constraint_msbits(snd_pcm_runtime_t *runtime, | 860 | int snd_pcm_hw_constraint_msbits(struct snd_pcm_runtime *runtime, |
| 884 | unsigned int cond, | 861 | unsigned int cond, |
| 885 | unsigned int width, | 862 | unsigned int width, |
| 886 | unsigned int msbits); | 863 | unsigned int msbits); |
| 887 | int snd_pcm_hw_constraint_step(snd_pcm_runtime_t *runtime, | 864 | int snd_pcm_hw_constraint_step(struct snd_pcm_runtime *runtime, |
| 888 | unsigned int cond, | 865 | unsigned int cond, |
| 889 | snd_pcm_hw_param_t var, | 866 | snd_pcm_hw_param_t var, |
| 890 | unsigned long step); | 867 | unsigned long step); |
| 891 | int snd_pcm_hw_constraint_pow2(snd_pcm_runtime_t *runtime, | 868 | int snd_pcm_hw_constraint_pow2(struct snd_pcm_runtime *runtime, |
| 892 | unsigned int cond, | 869 | unsigned int cond, |
| 893 | snd_pcm_hw_param_t var); | 870 | snd_pcm_hw_param_t var); |
| 894 | int snd_pcm_hw_rule_add(snd_pcm_runtime_t *runtime, | 871 | int snd_pcm_hw_rule_add(struct snd_pcm_runtime *runtime, |
| 895 | unsigned int cond, | 872 | unsigned int cond, |
| 896 | int var, | 873 | int var, |
| 897 | snd_pcm_hw_rule_func_t func, void *private, | 874 | snd_pcm_hw_rule_func_t func, void *private, |
| @@ -925,37 +902,37 @@ int snd_pcm_format_set_silence(snd_pcm_format_t format, void *buf, unsigned int | |||
| 925 | snd_pcm_format_t snd_pcm_build_linear_format(int width, int unsignd, int big_endian); | 902 | snd_pcm_format_t snd_pcm_build_linear_format(int width, int unsignd, int big_endian); |
| 926 | const char *snd_pcm_format_name(snd_pcm_format_t format); | 903 | const char *snd_pcm_format_name(snd_pcm_format_t format); |
| 927 | 904 | ||
| 928 | void snd_pcm_set_ops(snd_pcm_t * pcm, int direction, snd_pcm_ops_t *ops); | 905 | void snd_pcm_set_ops(struct snd_pcm * pcm, int direction, struct snd_pcm_ops *ops); |
| 929 | void snd_pcm_set_sync(snd_pcm_substream_t * substream); | 906 | void snd_pcm_set_sync(struct snd_pcm_substream *substream); |
| 930 | int snd_pcm_lib_interleave_len(snd_pcm_substream_t *substream); | 907 | int snd_pcm_lib_interleave_len(struct snd_pcm_substream *substream); |
| 931 | int snd_pcm_lib_ioctl(snd_pcm_substream_t *substream, | 908 | int snd_pcm_lib_ioctl(struct snd_pcm_substream *substream, |
| 932 | unsigned int cmd, void *arg); | 909 | unsigned int cmd, void *arg); |
| 933 | int snd_pcm_update_hw_ptr(snd_pcm_substream_t *substream); | 910 | int snd_pcm_update_hw_ptr(struct snd_pcm_substream *substream); |
| 934 | int snd_pcm_playback_xrun_check(snd_pcm_substream_t *substream); | 911 | int snd_pcm_playback_xrun_check(struct snd_pcm_substream *substream); |
| 935 | int snd_pcm_capture_xrun_check(snd_pcm_substream_t *substream); | 912 | int snd_pcm_capture_xrun_check(struct snd_pcm_substream *substream); |
| 936 | int snd_pcm_playback_xrun_asap(snd_pcm_substream_t *substream); | 913 | int snd_pcm_playback_xrun_asap(struct snd_pcm_substream *substream); |
| 937 | int snd_pcm_capture_xrun_asap(snd_pcm_substream_t *substream); | 914 | int snd_pcm_capture_xrun_asap(struct snd_pcm_substream *substream); |
| 938 | void snd_pcm_playback_silence(snd_pcm_substream_t *substream, snd_pcm_uframes_t new_hw_ptr); | 915 | void snd_pcm_playback_silence(struct snd_pcm_substream *substream, snd_pcm_uframes_t new_hw_ptr); |
| 939 | void snd_pcm_tick_prepare(snd_pcm_substream_t *substream); | 916 | void snd_pcm_tick_prepare(struct snd_pcm_substream *substream); |
| 940 | void snd_pcm_tick_set(snd_pcm_substream_t *substream, unsigned long ticks); | 917 | void snd_pcm_tick_set(struct snd_pcm_substream *substream, unsigned long ticks); |
| 941 | void snd_pcm_tick_elapsed(snd_pcm_substream_t *substream); | 918 | void snd_pcm_tick_elapsed(struct snd_pcm_substream *substream); |
| 942 | void snd_pcm_period_elapsed(snd_pcm_substream_t *substream); | 919 | void snd_pcm_period_elapsed(struct snd_pcm_substream *substream); |
| 943 | snd_pcm_sframes_t snd_pcm_lib_write(snd_pcm_substream_t *substream, | 920 | snd_pcm_sframes_t snd_pcm_lib_write(struct snd_pcm_substream *substream, |
| 944 | const void __user *buf, | 921 | const void __user *buf, |
| 945 | snd_pcm_uframes_t frames); | 922 | snd_pcm_uframes_t frames); |
| 946 | snd_pcm_sframes_t snd_pcm_lib_read(snd_pcm_substream_t *substream, | 923 | snd_pcm_sframes_t snd_pcm_lib_read(struct snd_pcm_substream *substream, |
| 947 | void __user *buf, snd_pcm_uframes_t frames); | 924 | void __user *buf, snd_pcm_uframes_t frames); |
| 948 | snd_pcm_sframes_t snd_pcm_lib_writev(snd_pcm_substream_t *substream, | 925 | snd_pcm_sframes_t snd_pcm_lib_writev(struct snd_pcm_substream *substream, |
| 949 | void __user **bufs, snd_pcm_uframes_t frames); | 926 | void __user **bufs, snd_pcm_uframes_t frames); |
| 950 | snd_pcm_sframes_t snd_pcm_lib_readv(snd_pcm_substream_t *substream, | 927 | snd_pcm_sframes_t snd_pcm_lib_readv(struct snd_pcm_substream *substream, |
| 951 | void __user **bufs, snd_pcm_uframes_t frames); | 928 | void __user **bufs, snd_pcm_uframes_t frames); |
| 952 | 929 | ||
| 953 | int snd_pcm_limit_hw_rates(snd_pcm_runtime_t *runtime); | 930 | int snd_pcm_limit_hw_rates(struct snd_pcm_runtime *runtime); |
| 954 | 931 | ||
| 955 | static inline void snd_pcm_set_runtime_buffer(snd_pcm_substream_t *substream, | 932 | static inline void snd_pcm_set_runtime_buffer(struct snd_pcm_substream *substream, |
| 956 | struct snd_dma_buffer *bufp) | 933 | struct snd_dma_buffer *bufp) |
| 957 | { | 934 | { |
| 958 | snd_pcm_runtime_t *runtime = substream->runtime; | 935 | struct snd_pcm_runtime *runtime = substream->runtime; |
| 959 | if (bufp) { | 936 | if (bufp) { |
| 960 | runtime->dma_buffer_p = bufp; | 937 | runtime->dma_buffer_p = bufp; |
| 961 | runtime->dma_area = bufp->area; | 938 | runtime->dma_area = bufp->area; |
| @@ -973,47 +950,47 @@ static inline void snd_pcm_set_runtime_buffer(snd_pcm_substream_t *substream, | |||
| 973 | * Timer interface | 950 | * Timer interface |
| 974 | */ | 951 | */ |
| 975 | 952 | ||
| 976 | void snd_pcm_timer_resolution_change(snd_pcm_substream_t *substream); | 953 | void snd_pcm_timer_resolution_change(struct snd_pcm_substream *substream); |
| 977 | void snd_pcm_timer_init(snd_pcm_substream_t * substream); | 954 | void snd_pcm_timer_init(struct snd_pcm_substream *substream); |
| 978 | void snd_pcm_timer_done(snd_pcm_substream_t * substream); | 955 | void snd_pcm_timer_done(struct snd_pcm_substream *substream); |
| 979 | 956 | ||
| 980 | /* | 957 | /* |
| 981 | * Memory | 958 | * Memory |
| 982 | */ | 959 | */ |
| 983 | 960 | ||
| 984 | int snd_pcm_lib_preallocate_free(snd_pcm_substream_t *substream); | 961 | int snd_pcm_lib_preallocate_free(struct snd_pcm_substream *substream); |
| 985 | int snd_pcm_lib_preallocate_free_for_all(snd_pcm_t *pcm); | 962 | int snd_pcm_lib_preallocate_free_for_all(struct snd_pcm *pcm); |
| 986 | int snd_pcm_lib_preallocate_pages(snd_pcm_substream_t *substream, | 963 | int snd_pcm_lib_preallocate_pages(struct snd_pcm_substream *substream, |
| 987 | int type, struct device *data, | 964 | int type, struct device *data, |
| 988 | size_t size, size_t max); | 965 | size_t size, size_t max); |
| 989 | int snd_pcm_lib_preallocate_pages_for_all(snd_pcm_t *pcm, | 966 | int snd_pcm_lib_preallocate_pages_for_all(struct snd_pcm *pcm, |
| 990 | int type, void *data, | 967 | int type, void *data, |
| 991 | size_t size, size_t max); | 968 | size_t size, size_t max); |
| 992 | int snd_pcm_lib_malloc_pages(snd_pcm_substream_t *substream, size_t size); | 969 | int snd_pcm_lib_malloc_pages(struct snd_pcm_substream *substream, size_t size); |
| 993 | int snd_pcm_lib_free_pages(snd_pcm_substream_t *substream); | 970 | int snd_pcm_lib_free_pages(struct snd_pcm_substream *substream); |
| 994 | 971 | ||
| 995 | #define snd_pcm_substream_sgbuf(substream) ((substream)->runtime->dma_buffer_p->private_data) | 972 | #define snd_pcm_substream_sgbuf(substream) ((substream)->runtime->dma_buffer_p->private_data) |
| 996 | #define snd_pcm_sgbuf_pages(size) snd_sgbuf_aligned_pages(size) | 973 | #define snd_pcm_sgbuf_pages(size) snd_sgbuf_aligned_pages(size) |
| 997 | #define snd_pcm_sgbuf_get_addr(sgbuf,ofs) snd_sgbuf_get_addr(sgbuf,ofs) | 974 | #define snd_pcm_sgbuf_get_addr(sgbuf,ofs) snd_sgbuf_get_addr(sgbuf,ofs) |
| 998 | struct page *snd_pcm_sgbuf_ops_page(snd_pcm_substream_t *substream, unsigned long offset); | 975 | struct page *snd_pcm_sgbuf_ops_page(struct snd_pcm_substream *substream, unsigned long offset); |
| 999 | 976 | ||
| 1000 | /* handle mmap counter - PCM mmap callback should handle this counter properly */ | 977 | /* handle mmap counter - PCM mmap callback should handle this counter properly */ |
| 1001 | static inline void snd_pcm_mmap_data_open(struct vm_area_struct *area) | 978 | static inline void snd_pcm_mmap_data_open(struct vm_area_struct *area) |
| 1002 | { | 979 | { |
| 1003 | snd_pcm_substream_t *substream = (snd_pcm_substream_t *)area->vm_private_data; | 980 | struct snd_pcm_substream *substream = (struct snd_pcm_substream *)area->vm_private_data; |
| 1004 | atomic_inc(&substream->runtime->mmap_count); | 981 | atomic_inc(&substream->runtime->mmap_count); |
| 1005 | } | 982 | } |
| 1006 | 983 | ||
| 1007 | static inline void snd_pcm_mmap_data_close(struct vm_area_struct *area) | 984 | static inline void snd_pcm_mmap_data_close(struct vm_area_struct *area) |
| 1008 | { | 985 | { |
| 1009 | snd_pcm_substream_t *substream = (snd_pcm_substream_t *)area->vm_private_data; | 986 | struct snd_pcm_substream *substream = (struct snd_pcm_substream *)area->vm_private_data; |
| 1010 | atomic_dec(&substream->runtime->mmap_count); | 987 | atomic_dec(&substream->runtime->mmap_count); |
| 1011 | } | 988 | } |
| 1012 | 989 | ||
| 1013 | /* mmap for io-memory area */ | 990 | /* mmap for io-memory area */ |
| 1014 | #if defined(CONFIG_X86) || defined(CONFIG_PPC) || defined(CONFIG_ALPHA) | 991 | #if defined(CONFIG_X86) || defined(CONFIG_PPC) || defined(CONFIG_ALPHA) |
| 1015 | #define SNDRV_PCM_INFO_MMAP_IOMEM SNDRV_PCM_INFO_MMAP | 992 | #define SNDRV_PCM_INFO_MMAP_IOMEM SNDRV_PCM_INFO_MMAP |
| 1016 | int snd_pcm_lib_mmap_iomem(snd_pcm_substream_t *substream, struct vm_area_struct *area); | 993 | int snd_pcm_lib_mmap_iomem(struct snd_pcm_substream *substream, struct vm_area_struct *area); |
| 1017 | #else | 994 | #else |
| 1018 | #define SNDRV_PCM_INFO_MMAP_IOMEM 0 | 995 | #define SNDRV_PCM_INFO_MMAP_IOMEM 0 |
| 1019 | #define snd_pcm_lib_mmap_iomem NULL | 996 | #define snd_pcm_lib_mmap_iomem NULL |
diff --git a/include/sound/pcm_params.h b/include/sound/pcm_params.h index 60b0e92e26f3..fb18aef77341 100644 --- a/include/sound/pcm_params.h +++ b/include/sound/pcm_params.h | |||
| @@ -22,17 +22,17 @@ | |||
| 22 | * | 22 | * |
| 23 | */ | 23 | */ |
| 24 | 24 | ||
| 25 | extern int snd_pcm_hw_param_mask(snd_pcm_substream_t *pcm, snd_pcm_hw_params_t *params, | 25 | extern int snd_pcm_hw_param_mask(struct snd_pcm_substream *pcm, struct snd_pcm_hw_params *params, |
| 26 | snd_pcm_hw_param_t var, const snd_mask_t *val); | 26 | snd_pcm_hw_param_t var, const struct snd_mask *val); |
| 27 | extern unsigned int snd_pcm_hw_param_value_min(const snd_pcm_hw_params_t *params, | 27 | extern unsigned int snd_pcm_hw_param_value_min(const struct snd_pcm_hw_params *params, |
| 28 | snd_pcm_hw_param_t var, int *dir); | 28 | snd_pcm_hw_param_t var, int *dir); |
| 29 | extern unsigned int snd_pcm_hw_param_value_max(const snd_pcm_hw_params_t *params, | 29 | extern unsigned int snd_pcm_hw_param_value_max(const struct snd_pcm_hw_params *params, |
| 30 | snd_pcm_hw_param_t var, int *dir); | 30 | snd_pcm_hw_param_t var, int *dir); |
| 31 | extern int _snd_pcm_hw_param_min(snd_pcm_hw_params_t *params, | 31 | extern int _snd_pcm_hw_param_min(struct snd_pcm_hw_params *params, |
| 32 | snd_pcm_hw_param_t var, unsigned int val, int dir); | 32 | snd_pcm_hw_param_t var, unsigned int val, int dir); |
| 33 | extern int _snd_pcm_hw_param_setinteger(snd_pcm_hw_params_t *params, | 33 | extern int _snd_pcm_hw_param_setinteger(struct snd_pcm_hw_params *params, |
| 34 | snd_pcm_hw_param_t var); | 34 | snd_pcm_hw_param_t var); |
| 35 | extern int _snd_pcm_hw_param_set(snd_pcm_hw_params_t *params, | 35 | extern int _snd_pcm_hw_param_set(struct snd_pcm_hw_params *params, |
| 36 | snd_pcm_hw_param_t var, unsigned int val, int dir); | 36 | snd_pcm_hw_param_t var, unsigned int val, int dir); |
| 37 | 37 | ||
| 38 | /* To share the same code we have alsa-lib */ | 38 | /* To share the same code we have alsa-lib */ |
| @@ -71,20 +71,20 @@ INLINE unsigned int ld2(u_int32_t v) | |||
| 71 | 71 | ||
| 72 | INLINE size_t snd_mask_sizeof(void) | 72 | INLINE size_t snd_mask_sizeof(void) |
| 73 | { | 73 | { |
| 74 | return sizeof(snd_mask_t); | 74 | return sizeof(struct snd_mask); |
| 75 | } | 75 | } |
| 76 | 76 | ||
| 77 | INLINE void snd_mask_none(snd_mask_t *mask) | 77 | INLINE void snd_mask_none(struct snd_mask *mask) |
| 78 | { | 78 | { |
| 79 | memset(mask, 0, sizeof(*mask)); | 79 | memset(mask, 0, sizeof(*mask)); |
| 80 | } | 80 | } |
| 81 | 81 | ||
| 82 | INLINE void snd_mask_any(snd_mask_t *mask) | 82 | INLINE void snd_mask_any(struct snd_mask *mask) |
| 83 | { | 83 | { |
| 84 | memset(mask, 0xff, SNDRV_MASK_SIZE * sizeof(u_int32_t)); | 84 | memset(mask, 0xff, SNDRV_MASK_SIZE * sizeof(u_int32_t)); |
| 85 | } | 85 | } |
| 86 | 86 | ||
| 87 | INLINE int snd_mask_empty(const snd_mask_t *mask) | 87 | INLINE int snd_mask_empty(const struct snd_mask *mask) |
| 88 | { | 88 | { |
| 89 | int i; | 89 | int i; |
| 90 | for (i = 0; i < SNDRV_MASK_SIZE; i++) | 90 | for (i = 0; i < SNDRV_MASK_SIZE; i++) |
| @@ -93,7 +93,7 @@ INLINE int snd_mask_empty(const snd_mask_t *mask) | |||
| 93 | return 1; | 93 | return 1; |
| 94 | } | 94 | } |
| 95 | 95 | ||
| 96 | INLINE unsigned int snd_mask_min(const snd_mask_t *mask) | 96 | INLINE unsigned int snd_mask_min(const struct snd_mask *mask) |
| 97 | { | 97 | { |
| 98 | int i; | 98 | int i; |
| 99 | assert(!snd_mask_empty(mask)); | 99 | assert(!snd_mask_empty(mask)); |
| @@ -104,7 +104,7 @@ INLINE unsigned int snd_mask_min(const snd_mask_t *mask) | |||
| 104 | return 0; | 104 | return 0; |
| 105 | } | 105 | } |
| 106 | 106 | ||
| 107 | INLINE unsigned int snd_mask_max(const snd_mask_t *mask) | 107 | INLINE unsigned int snd_mask_max(const struct snd_mask *mask) |
| 108 | { | 108 | { |
| 109 | int i; | 109 | int i; |
| 110 | assert(!snd_mask_empty(mask)); | 110 | assert(!snd_mask_empty(mask)); |
| @@ -115,19 +115,19 @@ INLINE unsigned int snd_mask_max(const snd_mask_t *mask) | |||
| 115 | return 0; | 115 | return 0; |
| 116 | } | 116 | } |
| 117 | 117 | ||
| 118 | INLINE void snd_mask_set(snd_mask_t *mask, unsigned int val) | 118 | INLINE void snd_mask_set(struct snd_mask *mask, unsigned int val) |
| 119 | { | 119 | { |
| 120 | assert(val <= SNDRV_MASK_BITS); | 120 | assert(val <= SNDRV_MASK_BITS); |
| 121 | mask->bits[MASK_OFS(val)] |= MASK_BIT(val); | 121 | mask->bits[MASK_OFS(val)] |= MASK_BIT(val); |
| 122 | } | 122 | } |
| 123 | 123 | ||
| 124 | INLINE void snd_mask_reset(snd_mask_t *mask, unsigned int val) | 124 | INLINE void snd_mask_reset(struct snd_mask *mask, unsigned int val) |
| 125 | { | 125 | { |
| 126 | assert(val <= SNDRV_MASK_BITS); | 126 | assert(val <= SNDRV_MASK_BITS); |
| 127 | mask->bits[MASK_OFS(val)] &= ~MASK_BIT(val); | 127 | mask->bits[MASK_OFS(val)] &= ~MASK_BIT(val); |
| 128 | } | 128 | } |
| 129 | 129 | ||
| 130 | INLINE void snd_mask_set_range(snd_mask_t *mask, unsigned int from, unsigned int to) | 130 | INLINE void snd_mask_set_range(struct snd_mask *mask, unsigned int from, unsigned int to) |
| 131 | { | 131 | { |
| 132 | unsigned int i; | 132 | unsigned int i; |
| 133 | assert(to <= SNDRV_MASK_BITS && from <= to); | 133 | assert(to <= SNDRV_MASK_BITS && from <= to); |
| @@ -135,7 +135,7 @@ INLINE void snd_mask_set_range(snd_mask_t *mask, unsigned int from, unsigned int | |||
| 135 | mask->bits[MASK_OFS(i)] |= MASK_BIT(i); | 135 | mask->bits[MASK_OFS(i)] |= MASK_BIT(i); |
| 136 | } | 136 | } |
| 137 | 137 | ||
| 138 | INLINE void snd_mask_reset_range(snd_mask_t *mask, unsigned int from, unsigned int to) | 138 | INLINE void snd_mask_reset_range(struct snd_mask *mask, unsigned int from, unsigned int to) |
| 139 | { | 139 | { |
| 140 | unsigned int i; | 140 | unsigned int i; |
| 141 | assert(to <= SNDRV_MASK_BITS && from <= to); | 141 | assert(to <= SNDRV_MASK_BITS && from <= to); |
| @@ -143,7 +143,7 @@ INLINE void snd_mask_reset_range(snd_mask_t *mask, unsigned int from, unsigned i | |||
| 143 | mask->bits[MASK_OFS(i)] &= ~MASK_BIT(i); | 143 | mask->bits[MASK_OFS(i)] &= ~MASK_BIT(i); |
| 144 | } | 144 | } |
| 145 | 145 | ||
| 146 | INLINE void snd_mask_leave(snd_mask_t *mask, unsigned int val) | 146 | INLINE void snd_mask_leave(struct snd_mask *mask, unsigned int val) |
| 147 | { | 147 | { |
| 148 | unsigned int v; | 148 | unsigned int v; |
| 149 | assert(val <= SNDRV_MASK_BITS); | 149 | assert(val <= SNDRV_MASK_BITS); |
| @@ -152,30 +152,30 @@ INLINE void snd_mask_leave(snd_mask_t *mask, unsigned int val) | |||
| 152 | mask->bits[MASK_OFS(val)] = v; | 152 | mask->bits[MASK_OFS(val)] = v; |
| 153 | } | 153 | } |
| 154 | 154 | ||
| 155 | INLINE void snd_mask_intersect(snd_mask_t *mask, const snd_mask_t *v) | 155 | INLINE void snd_mask_intersect(struct snd_mask *mask, const struct snd_mask *v) |
| 156 | { | 156 | { |
| 157 | int i; | 157 | int i; |
| 158 | for (i = 0; i < SNDRV_MASK_SIZE; i++) | 158 | for (i = 0; i < SNDRV_MASK_SIZE; i++) |
| 159 | mask->bits[i] &= v->bits[i]; | 159 | mask->bits[i] &= v->bits[i]; |
| 160 | } | 160 | } |
| 161 | 161 | ||
| 162 | INLINE int snd_mask_eq(const snd_mask_t *mask, const snd_mask_t *v) | 162 | INLINE int snd_mask_eq(const struct snd_mask *mask, const struct snd_mask *v) |
| 163 | { | 163 | { |
| 164 | return ! memcmp(mask, v, SNDRV_MASK_SIZE * sizeof(u_int32_t)); | 164 | return ! memcmp(mask, v, SNDRV_MASK_SIZE * sizeof(u_int32_t)); |
| 165 | } | 165 | } |
| 166 | 166 | ||
| 167 | INLINE void snd_mask_copy(snd_mask_t *mask, const snd_mask_t *v) | 167 | INLINE void snd_mask_copy(struct snd_mask *mask, const struct snd_mask *v) |
| 168 | { | 168 | { |
| 169 | *mask = *v; | 169 | *mask = *v; |
| 170 | } | 170 | } |
| 171 | 171 | ||
| 172 | INLINE int snd_mask_test(const snd_mask_t *mask, unsigned int val) | 172 | INLINE int snd_mask_test(const struct snd_mask *mask, unsigned int val) |
| 173 | { | 173 | { |
| 174 | assert(val <= SNDRV_MASK_BITS); | 174 | assert(val <= SNDRV_MASK_BITS); |
| 175 | return mask->bits[MASK_OFS(val)] & MASK_BIT(val); | 175 | return mask->bits[MASK_OFS(val)] & MASK_BIT(val); |
| 176 | } | 176 | } |
| 177 | 177 | ||
| 178 | INLINE int snd_mask_single(const snd_mask_t *mask) | 178 | INLINE int snd_mask_single(const struct snd_mask *mask) |
| 179 | { | 179 | { |
| 180 | int i, c = 0; | 180 | int i, c = 0; |
| 181 | assert(!snd_mask_empty(mask)); | 181 | assert(!snd_mask_empty(mask)); |
| @@ -191,9 +191,9 @@ INLINE int snd_mask_single(const snd_mask_t *mask) | |||
| 191 | return 1; | 191 | return 1; |
| 192 | } | 192 | } |
| 193 | 193 | ||
| 194 | INLINE int snd_mask_refine(snd_mask_t *mask, const snd_mask_t *v) | 194 | INLINE int snd_mask_refine(struct snd_mask *mask, const struct snd_mask *v) |
| 195 | { | 195 | { |
| 196 | snd_mask_t old; | 196 | struct snd_mask old; |
| 197 | assert(!snd_mask_empty(mask)); | 197 | assert(!snd_mask_empty(mask)); |
| 198 | snd_mask_copy(&old, mask); | 198 | snd_mask_copy(&old, mask); |
| 199 | snd_mask_intersect(mask, v); | 199 | snd_mask_intersect(mask, v); |
| @@ -202,7 +202,7 @@ INLINE int snd_mask_refine(snd_mask_t *mask, const snd_mask_t *v) | |||
| 202 | return !snd_mask_eq(mask, &old); | 202 | return !snd_mask_eq(mask, &old); |
| 203 | } | 203 | } |
| 204 | 204 | ||
| 205 | INLINE int snd_mask_refine_first(snd_mask_t *mask) | 205 | INLINE int snd_mask_refine_first(struct snd_mask *mask) |
| 206 | { | 206 | { |
| 207 | assert(!snd_mask_empty(mask)); | 207 | assert(!snd_mask_empty(mask)); |
| 208 | if (snd_mask_single(mask)) | 208 | if (snd_mask_single(mask)) |
| @@ -211,7 +211,7 @@ INLINE int snd_mask_refine_first(snd_mask_t *mask) | |||
| 211 | return 1; | 211 | return 1; |
| 212 | } | 212 | } |
| 213 | 213 | ||
| 214 | INLINE int snd_mask_refine_last(snd_mask_t *mask) | 214 | INLINE int snd_mask_refine_last(struct snd_mask *mask) |
| 215 | { | 215 | { |
| 216 | assert(!snd_mask_empty(mask)); | 216 | assert(!snd_mask_empty(mask)); |
| 217 | if (snd_mask_single(mask)) | 217 | if (snd_mask_single(mask)) |
| @@ -220,7 +220,7 @@ INLINE int snd_mask_refine_last(snd_mask_t *mask) | |||
| 220 | return 1; | 220 | return 1; |
| 221 | } | 221 | } |
| 222 | 222 | ||
| 223 | INLINE int snd_mask_refine_min(snd_mask_t *mask, unsigned int val) | 223 | INLINE int snd_mask_refine_min(struct snd_mask *mask, unsigned int val) |
| 224 | { | 224 | { |
| 225 | assert(!snd_mask_empty(mask)); | 225 | assert(!snd_mask_empty(mask)); |
| 226 | if (snd_mask_min(mask) >= val) | 226 | if (snd_mask_min(mask) >= val) |
| @@ -231,7 +231,7 @@ INLINE int snd_mask_refine_min(snd_mask_t *mask, unsigned int val) | |||
| 231 | return 1; | 231 | return 1; |
| 232 | } | 232 | } |
| 233 | 233 | ||
| 234 | INLINE int snd_mask_refine_max(snd_mask_t *mask, unsigned int val) | 234 | INLINE int snd_mask_refine_max(struct snd_mask *mask, unsigned int val) |
| 235 | { | 235 | { |
| 236 | assert(!snd_mask_empty(mask)); | 236 | assert(!snd_mask_empty(mask)); |
| 237 | if (snd_mask_max(mask) <= val) | 237 | if (snd_mask_max(mask) <= val) |
| @@ -242,7 +242,7 @@ INLINE int snd_mask_refine_max(snd_mask_t *mask, unsigned int val) | |||
| 242 | return 1; | 242 | return 1; |
| 243 | } | 243 | } |
| 244 | 244 | ||
| 245 | INLINE int snd_mask_refine_set(snd_mask_t *mask, unsigned int val) | 245 | INLINE int snd_mask_refine_set(struct snd_mask *mask, unsigned int val) |
| 246 | { | 246 | { |
| 247 | int changed; | 247 | int changed; |
| 248 | assert(!snd_mask_empty(mask)); | 248 | assert(!snd_mask_empty(mask)); |
| @@ -253,13 +253,13 @@ INLINE int snd_mask_refine_set(snd_mask_t *mask, unsigned int val) | |||
| 253 | return changed; | 253 | return changed; |
| 254 | } | 254 | } |
| 255 | 255 | ||
| 256 | INLINE int snd_mask_value(const snd_mask_t *mask) | 256 | INLINE int snd_mask_value(const struct snd_mask *mask) |
| 257 | { | 257 | { |
| 258 | assert(!snd_mask_empty(mask)); | 258 | assert(!snd_mask_empty(mask)); |
| 259 | return snd_mask_min(mask); | 259 | return snd_mask_min(mask); |
| 260 | } | 260 | } |
| 261 | 261 | ||
| 262 | INLINE void snd_interval_any(snd_interval_t *i) | 262 | INLINE void snd_interval_any(struct snd_interval *i) |
| 263 | { | 263 | { |
| 264 | i->min = 0; | 264 | i->min = 0; |
| 265 | i->openmin = 0; | 265 | i->openmin = 0; |
| @@ -269,42 +269,42 @@ INLINE void snd_interval_any(snd_interval_t *i) | |||
| 269 | i->empty = 0; | 269 | i->empty = 0; |
| 270 | } | 270 | } |
| 271 | 271 | ||
| 272 | INLINE void snd_interval_none(snd_interval_t *i) | 272 | INLINE void snd_interval_none(struct snd_interval *i) |
| 273 | { | 273 | { |
| 274 | i->empty = 1; | 274 | i->empty = 1; |
| 275 | } | 275 | } |
| 276 | 276 | ||
| 277 | INLINE int snd_interval_checkempty(const snd_interval_t *i) | 277 | INLINE int snd_interval_checkempty(const struct snd_interval *i) |
| 278 | { | 278 | { |
| 279 | return (i->min > i->max || | 279 | return (i->min > i->max || |
| 280 | (i->min == i->max && (i->openmin || i->openmax))); | 280 | (i->min == i->max && (i->openmin || i->openmax))); |
| 281 | } | 281 | } |
| 282 | 282 | ||
| 283 | INLINE int snd_interval_empty(const snd_interval_t *i) | 283 | INLINE int snd_interval_empty(const struct snd_interval *i) |
| 284 | { | 284 | { |
| 285 | return i->empty; | 285 | return i->empty; |
| 286 | } | 286 | } |
| 287 | 287 | ||
| 288 | INLINE int snd_interval_single(const snd_interval_t *i) | 288 | INLINE int snd_interval_single(const struct snd_interval *i) |
| 289 | { | 289 | { |
| 290 | assert(!snd_interval_empty(i)); | 290 | assert(!snd_interval_empty(i)); |
| 291 | return (i->min == i->max || | 291 | return (i->min == i->max || |
| 292 | (i->min + 1 == i->max && i->openmax)); | 292 | (i->min + 1 == i->max && i->openmax)); |
| 293 | } | 293 | } |
| 294 | 294 | ||
| 295 | INLINE int snd_interval_value(const snd_interval_t *i) | 295 | INLINE int snd_interval_value(const struct snd_interval *i) |
| 296 | { | 296 | { |
| 297 | assert(snd_interval_single(i)); | 297 | assert(snd_interval_single(i)); |
| 298 | return i->min; | 298 | return i->min; |
| 299 | } | 299 | } |
| 300 | 300 | ||
| 301 | INLINE int snd_interval_min(const snd_interval_t *i) | 301 | INLINE int snd_interval_min(const struct snd_interval *i) |
| 302 | { | 302 | { |
| 303 | assert(!snd_interval_empty(i)); | 303 | assert(!snd_interval_empty(i)); |
| 304 | return i->min; | 304 | return i->min; |
| 305 | } | 305 | } |
| 306 | 306 | ||
| 307 | INLINE int snd_interval_max(const snd_interval_t *i) | 307 | INLINE int snd_interval_max(const struct snd_interval *i) |
| 308 | { | 308 | { |
| 309 | unsigned int v; | 309 | unsigned int v; |
| 310 | assert(!snd_interval_empty(i)); | 310 | assert(!snd_interval_empty(i)); |
| @@ -314,18 +314,18 @@ INLINE int snd_interval_max(const snd_interval_t *i) | |||
| 314 | return v; | 314 | return v; |
| 315 | } | 315 | } |
| 316 | 316 | ||
| 317 | INLINE int snd_interval_test(const snd_interval_t *i, unsigned int val) | 317 | INLINE int snd_interval_test(const struct snd_interval *i, unsigned int val) |
| 318 | { | 318 | { |
| 319 | return !((i->min > val || (i->min == val && i->openmin) || | 319 | return !((i->min > val || (i->min == val && i->openmin) || |
| 320 | i->max < val || (i->max == val && i->openmax))); | 320 | i->max < val || (i->max == val && i->openmax))); |
| 321 | } | 321 | } |
| 322 | 322 | ||
| 323 | INLINE void snd_interval_copy(snd_interval_t *d, const snd_interval_t *s) | 323 | INLINE void snd_interval_copy(struct snd_interval *d, const struct snd_interval *s) |
| 324 | { | 324 | { |
| 325 | *d = *s; | 325 | *d = *s; |
| 326 | } | 326 | } |
| 327 | 327 | ||
| 328 | INLINE int snd_interval_setinteger(snd_interval_t *i) | 328 | INLINE int snd_interval_setinteger(struct snd_interval *i) |
| 329 | { | 329 | { |
| 330 | if (i->integer) | 330 | if (i->integer) |
| 331 | return 0; | 331 | return 0; |
| @@ -335,7 +335,7 @@ INLINE int snd_interval_setinteger(snd_interval_t *i) | |||
| 335 | return 1; | 335 | return 1; |
| 336 | } | 336 | } |
| 337 | 337 | ||
| 338 | INLINE int snd_interval_eq(const snd_interval_t *i1, const snd_interval_t *i2) | 338 | INLINE int snd_interval_eq(const struct snd_interval *i1, const struct snd_interval *i2) |
| 339 | { | 339 | { |
| 340 | if (i1->empty) | 340 | if (i1->empty) |
| 341 | return i2->empty; | 341 | return i2->empty; |
diff --git a/sound/core/pcm.c b/sound/core/pcm.c index 184e74b75ba9..59c995bbf15b 100644 --- a/sound/core/pcm.c +++ b/sound/core/pcm.c | |||
| @@ -33,18 +33,18 @@ MODULE_AUTHOR("Jaroslav Kysela <perex@suse.cz>, Abramo Bagnara <abramo@alsa-proj | |||
| 33 | MODULE_DESCRIPTION("Midlevel PCM code for ALSA."); | 33 | MODULE_DESCRIPTION("Midlevel PCM code for ALSA."); |
| 34 | MODULE_LICENSE("GPL"); | 34 | MODULE_LICENSE("GPL"); |
| 35 | 35 | ||
| 36 | snd_pcm_t *snd_pcm_devices[SNDRV_CARDS * SNDRV_PCM_DEVICES]; | 36 | struct snd_pcm *snd_pcm_devices[SNDRV_CARDS * SNDRV_PCM_DEVICES]; |
| 37 | static LIST_HEAD(snd_pcm_notify_list); | 37 | static LIST_HEAD(snd_pcm_notify_list); |
| 38 | static DECLARE_MUTEX(register_mutex); | 38 | static DECLARE_MUTEX(register_mutex); |
| 39 | 39 | ||
| 40 | static int snd_pcm_free(snd_pcm_t *pcm); | 40 | static int snd_pcm_free(struct snd_pcm *pcm); |
| 41 | static int snd_pcm_dev_free(snd_device_t *device); | 41 | static int snd_pcm_dev_free(struct snd_device *device); |
| 42 | static int snd_pcm_dev_register(snd_device_t *device); | 42 | static int snd_pcm_dev_register(struct snd_device *device); |
| 43 | static int snd_pcm_dev_disconnect(snd_device_t *device); | 43 | static int snd_pcm_dev_disconnect(struct snd_device *device); |
| 44 | static int snd_pcm_dev_unregister(snd_device_t *device); | 44 | static int snd_pcm_dev_unregister(struct snd_device *device); |
| 45 | 45 | ||
| 46 | static int snd_pcm_control_ioctl(snd_card_t * card, | 46 | static int snd_pcm_control_ioctl(struct snd_card *card, |
| 47 | snd_ctl_file_t * control, | 47 | struct snd_ctl_file *control, |
| 48 | unsigned int cmd, unsigned long arg) | 48 | unsigned int cmd, unsigned long arg) |
| 49 | { | 49 | { |
| 50 | unsigned int tmp; | 50 | unsigned int tmp; |
| @@ -71,13 +71,13 @@ static int snd_pcm_control_ioctl(snd_card_t * card, | |||
| 71 | } | 71 | } |
| 72 | case SNDRV_CTL_IOCTL_PCM_INFO: | 72 | case SNDRV_CTL_IOCTL_PCM_INFO: |
| 73 | { | 73 | { |
| 74 | snd_pcm_info_t __user *info; | 74 | struct snd_pcm_info __user *info; |
| 75 | unsigned int device, subdevice; | 75 | unsigned int device, subdevice; |
| 76 | snd_pcm_stream_t stream; | 76 | int stream; |
| 77 | snd_pcm_t *pcm; | 77 | struct snd_pcm *pcm; |
| 78 | snd_pcm_str_t *pstr; | 78 | struct snd_pcm_str *pstr; |
| 79 | snd_pcm_substream_t *substream; | 79 | struct snd_pcm_substream *substream; |
| 80 | info = (snd_pcm_info_t __user *)arg; | 80 | info = (struct snd_pcm_info __user *)arg; |
| 81 | if (get_user(device, &info->device)) | 81 | if (get_user(device, &info->device)) |
| 82 | return -EFAULT; | 82 | return -EFAULT; |
| 83 | if (device >= SNDRV_PCM_DEVICES) | 83 | if (device >= SNDRV_PCM_DEVICES) |
| @@ -200,7 +200,7 @@ static char *snd_pcm_tstamp_mode_names[] = { | |||
| 200 | TSTAMP(MMAP), | 200 | TSTAMP(MMAP), |
| 201 | }; | 201 | }; |
| 202 | 202 | ||
| 203 | static const char *snd_pcm_stream_name(snd_pcm_stream_t stream) | 203 | static const char *snd_pcm_stream_name(int stream) |
| 204 | { | 204 | { |
| 205 | snd_assert(stream <= SNDRV_PCM_STREAM_LAST, return NULL); | 205 | snd_assert(stream <= SNDRV_PCM_STREAM_LAST, return NULL); |
| 206 | return snd_pcm_stream_names[stream]; | 206 | return snd_pcm_stream_names[stream]; |
| @@ -208,23 +208,20 @@ static const char *snd_pcm_stream_name(snd_pcm_stream_t stream) | |||
| 208 | 208 | ||
| 209 | static const char *snd_pcm_access_name(snd_pcm_access_t access) | 209 | static const char *snd_pcm_access_name(snd_pcm_access_t access) |
| 210 | { | 210 | { |
| 211 | snd_assert(access <= SNDRV_PCM_ACCESS_LAST, return NULL); | ||
| 212 | return snd_pcm_access_names[access]; | 211 | return snd_pcm_access_names[access]; |
| 213 | } | 212 | } |
| 214 | 213 | ||
| 215 | const char *snd_pcm_format_name(snd_pcm_format_t format) | 214 | const char *snd_pcm_format_name(snd_pcm_format_t format) |
| 216 | { | 215 | { |
| 217 | snd_assert(format <= SNDRV_PCM_FORMAT_LAST, return NULL); | ||
| 218 | return snd_pcm_format_names[format]; | 216 | return snd_pcm_format_names[format]; |
| 219 | } | 217 | } |
| 220 | 218 | ||
| 221 | static const char *snd_pcm_subformat_name(snd_pcm_subformat_t subformat) | 219 | static const char *snd_pcm_subformat_name(snd_pcm_subformat_t subformat) |
| 222 | { | 220 | { |
| 223 | snd_assert(subformat <= SNDRV_PCM_SUBFORMAT_LAST, return NULL); | ||
| 224 | return snd_pcm_subformat_names[subformat]; | 221 | return snd_pcm_subformat_names[subformat]; |
| 225 | } | 222 | } |
| 226 | 223 | ||
| 227 | static const char *snd_pcm_tstamp_mode_name(snd_pcm_tstamp_t mode) | 224 | static const char *snd_pcm_tstamp_mode_name(int mode) |
| 228 | { | 225 | { |
| 229 | snd_assert(mode <= SNDRV_PCM_TSTAMP_LAST, return NULL); | 226 | snd_assert(mode <= SNDRV_PCM_TSTAMP_LAST, return NULL); |
| 230 | return snd_pcm_tstamp_mode_names[mode]; | 227 | return snd_pcm_tstamp_mode_names[mode]; |
| @@ -232,7 +229,6 @@ static const char *snd_pcm_tstamp_mode_name(snd_pcm_tstamp_t mode) | |||
| 232 | 229 | ||
| 233 | static const char *snd_pcm_state_name(snd_pcm_state_t state) | 230 | static const char *snd_pcm_state_name(snd_pcm_state_t state) |
| 234 | { | 231 | { |
| 235 | snd_assert(state <= SNDRV_PCM_STATE_LAST, return NULL); | ||
| 236 | return snd_pcm_state_names[state]; | 232 | return snd_pcm_state_names[state]; |
| 237 | } | 233 | } |
| 238 | 234 | ||
| @@ -268,9 +264,10 @@ static const char *snd_pcm_oss_format_name(int format) | |||
| 268 | #endif | 264 | #endif |
| 269 | 265 | ||
| 270 | #ifdef CONFIG_PROC_FS | 266 | #ifdef CONFIG_PROC_FS |
| 271 | static void snd_pcm_proc_info_read(snd_pcm_substream_t *substream, snd_info_buffer_t *buffer) | 267 | static void snd_pcm_proc_info_read(struct snd_pcm_substream *substream, |
| 268 | struct snd_info_buffer *buffer) | ||
| 272 | { | 269 | { |
| 273 | snd_pcm_info_t *info; | 270 | struct snd_pcm_info *info; |
| 274 | int err; | 271 | int err; |
| 275 | 272 | ||
| 276 | if (! substream) | 273 | if (! substream) |
| @@ -302,20 +299,25 @@ static void snd_pcm_proc_info_read(snd_pcm_substream_t *substream, snd_info_buff | |||
| 302 | kfree(info); | 299 | kfree(info); |
| 303 | } | 300 | } |
| 304 | 301 | ||
| 305 | static void snd_pcm_stream_proc_info_read(snd_info_entry_t *entry, snd_info_buffer_t *buffer) | 302 | static void snd_pcm_stream_proc_info_read(struct snd_info_entry *entry, |
| 303 | struct snd_info_buffer *buffer) | ||
| 306 | { | 304 | { |
| 307 | snd_pcm_proc_info_read(((snd_pcm_str_t *)entry->private_data)->substream, buffer); | 305 | snd_pcm_proc_info_read(((struct snd_pcm_str *)entry->private_data)->substream, |
| 306 | buffer); | ||
| 308 | } | 307 | } |
| 309 | 308 | ||
| 310 | static void snd_pcm_substream_proc_info_read(snd_info_entry_t *entry, snd_info_buffer_t *buffer) | 309 | static void snd_pcm_substream_proc_info_read(struct snd_info_entry *entry, |
| 310 | struct snd_info_buffer *buffer) | ||
| 311 | { | 311 | { |
| 312 | snd_pcm_proc_info_read((snd_pcm_substream_t *)entry->private_data, buffer); | 312 | snd_pcm_proc_info_read((struct snd_pcm_substream *)entry->private_data, |
| 313 | buffer); | ||
| 313 | } | 314 | } |
| 314 | 315 | ||
| 315 | static void snd_pcm_substream_proc_hw_params_read(snd_info_entry_t *entry, snd_info_buffer_t *buffer) | 316 | static void snd_pcm_substream_proc_hw_params_read(struct snd_info_entry *entry, |
| 317 | struct snd_info_buffer *buffer) | ||
| 316 | { | 318 | { |
| 317 | snd_pcm_substream_t *substream = (snd_pcm_substream_t *)entry->private_data; | 319 | struct snd_pcm_substream *substream = entry->private_data; |
| 318 | snd_pcm_runtime_t *runtime = substream->runtime; | 320 | struct snd_pcm_runtime *runtime = substream->runtime; |
| 319 | if (!runtime) { | 321 | if (!runtime) { |
| 320 | snd_iprintf(buffer, "closed\n"); | 322 | snd_iprintf(buffer, "closed\n"); |
| 321 | return; | 323 | return; |
| @@ -347,10 +349,11 @@ static void snd_pcm_substream_proc_hw_params_read(snd_info_entry_t *entry, snd_i | |||
| 347 | snd_pcm_stream_unlock_irq(substream); | 349 | snd_pcm_stream_unlock_irq(substream); |
| 348 | } | 350 | } |
| 349 | 351 | ||
| 350 | static void snd_pcm_substream_proc_sw_params_read(snd_info_entry_t *entry, snd_info_buffer_t *buffer) | 352 | static void snd_pcm_substream_proc_sw_params_read(struct snd_info_entry *entry, |
| 353 | struct snd_info_buffer *buffer) | ||
| 351 | { | 354 | { |
| 352 | snd_pcm_substream_t *substream = (snd_pcm_substream_t *)entry->private_data; | 355 | struct snd_pcm_substream *substream = entry->private_data; |
| 353 | snd_pcm_runtime_t *runtime = substream->runtime; | 356 | struct snd_pcm_runtime *runtime = substream->runtime; |
| 354 | if (!runtime) { | 357 | if (!runtime) { |
| 355 | snd_iprintf(buffer, "closed\n"); | 358 | snd_iprintf(buffer, "closed\n"); |
| 356 | return; | 359 | return; |
| @@ -374,11 +377,12 @@ static void snd_pcm_substream_proc_sw_params_read(snd_info_entry_t *entry, snd_i | |||
| 374 | snd_pcm_stream_unlock_irq(substream); | 377 | snd_pcm_stream_unlock_irq(substream); |
| 375 | } | 378 | } |
| 376 | 379 | ||
| 377 | static void snd_pcm_substream_proc_status_read(snd_info_entry_t *entry, snd_info_buffer_t *buffer) | 380 | static void snd_pcm_substream_proc_status_read(struct snd_info_entry *entry, |
| 381 | struct snd_info_buffer *buffer) | ||
| 378 | { | 382 | { |
| 379 | snd_pcm_substream_t *substream = (snd_pcm_substream_t *)entry->private_data; | 383 | struct snd_pcm_substream *substream = entry->private_data; |
| 380 | snd_pcm_runtime_t *runtime = substream->runtime; | 384 | struct snd_pcm_runtime *runtime = substream->runtime; |
| 381 | snd_pcm_status_t status; | 385 | struct snd_pcm_status status; |
| 382 | int err; | 386 | int err; |
| 383 | if (!runtime) { | 387 | if (!runtime) { |
| 384 | snd_iprintf(buffer, "closed\n"); | 388 | snd_iprintf(buffer, "closed\n"); |
| @@ -405,25 +409,27 @@ static void snd_pcm_substream_proc_status_read(snd_info_entry_t *entry, snd_info | |||
| 405 | #endif | 409 | #endif |
| 406 | 410 | ||
| 407 | #ifdef CONFIG_SND_DEBUG | 411 | #ifdef CONFIG_SND_DEBUG |
| 408 | static void snd_pcm_xrun_debug_read(snd_info_entry_t *entry, snd_info_buffer_t *buffer) | 412 | static void snd_pcm_xrun_debug_read(struct snd_info_entry *entry, |
| 413 | struct snd_info_buffer *buffer) | ||
| 409 | { | 414 | { |
| 410 | snd_pcm_str_t *pstr = (snd_pcm_str_t *)entry->private_data; | 415 | struct snd_pcm_str *pstr = entry->private_data; |
| 411 | snd_iprintf(buffer, "%d\n", pstr->xrun_debug); | 416 | snd_iprintf(buffer, "%d\n", pstr->xrun_debug); |
| 412 | } | 417 | } |
| 413 | 418 | ||
| 414 | static void snd_pcm_xrun_debug_write(snd_info_entry_t *entry, snd_info_buffer_t *buffer) | 419 | static void snd_pcm_xrun_debug_write(struct snd_info_entry *entry, |
| 420 | struct snd_info_buffer *buffer) | ||
| 415 | { | 421 | { |
| 416 | snd_pcm_str_t *pstr = (snd_pcm_str_t *)entry->private_data; | 422 | struct snd_pcm_str *pstr = entry->private_data; |
| 417 | char line[64]; | 423 | char line[64]; |
| 418 | if (!snd_info_get_line(buffer, line, sizeof(line))) | 424 | if (!snd_info_get_line(buffer, line, sizeof(line))) |
| 419 | pstr->xrun_debug = simple_strtoul(line, NULL, 10); | 425 | pstr->xrun_debug = simple_strtoul(line, NULL, 10); |
| 420 | } | 426 | } |
| 421 | #endif | 427 | #endif |
| 422 | 428 | ||
| 423 | static int snd_pcm_stream_proc_init(snd_pcm_str_t *pstr) | 429 | static int snd_pcm_stream_proc_init(struct snd_pcm_str *pstr) |
| 424 | { | 430 | { |
| 425 | snd_pcm_t *pcm = pstr->pcm; | 431 | struct snd_pcm *pcm = pstr->pcm; |
| 426 | snd_info_entry_t *entry; | 432 | struct snd_info_entry *entry; |
| 427 | char name[16]; | 433 | char name[16]; |
| 428 | 434 | ||
| 429 | sprintf(name, "pcm%i%c", pcm->device, | 435 | sprintf(name, "pcm%i%c", pcm->device, |
| @@ -447,7 +453,8 @@ static int snd_pcm_stream_proc_init(snd_pcm_str_t *pstr) | |||
| 447 | pstr->proc_info_entry = entry; | 453 | pstr->proc_info_entry = entry; |
| 448 | 454 | ||
| 449 | #ifdef CONFIG_SND_DEBUG | 455 | #ifdef CONFIG_SND_DEBUG |
| 450 | if ((entry = snd_info_create_card_entry(pcm->card, "xrun_debug", pstr->proc_root)) != NULL) { | 456 | if ((entry = snd_info_create_card_entry(pcm->card, "xrun_debug", |
| 457 | pstr->proc_root)) != NULL) { | ||
| 451 | entry->c.text.read_size = 64; | 458 | entry->c.text.read_size = 64; |
| 452 | entry->c.text.read = snd_pcm_xrun_debug_read; | 459 | entry->c.text.read = snd_pcm_xrun_debug_read; |
| 453 | entry->c.text.write_size = 64; | 460 | entry->c.text.write_size = 64; |
| @@ -464,7 +471,7 @@ static int snd_pcm_stream_proc_init(snd_pcm_str_t *pstr) | |||
| 464 | return 0; | 471 | return 0; |
| 465 | } | 472 | } |
| 466 | 473 | ||
| 467 | static int snd_pcm_stream_proc_done(snd_pcm_str_t *pstr) | 474 | static int snd_pcm_stream_proc_done(struct snd_pcm_str *pstr) |
| 468 | { | 475 | { |
| 469 | #ifdef CONFIG_SND_DEBUG | 476 | #ifdef CONFIG_SND_DEBUG |
| 470 | if (pstr->proc_xrun_debug_entry) { | 477 | if (pstr->proc_xrun_debug_entry) { |
| @@ -483,10 +490,10 @@ static int snd_pcm_stream_proc_done(snd_pcm_str_t *pstr) | |||
| 483 | return 0; | 490 | return 0; |
| 484 | } | 491 | } |
| 485 | 492 | ||
| 486 | static int snd_pcm_substream_proc_init(snd_pcm_substream_t *substream) | 493 | static int snd_pcm_substream_proc_init(struct snd_pcm_substream *substream) |
| 487 | { | 494 | { |
| 488 | snd_info_entry_t *entry; | 495 | struct snd_info_entry *entry; |
| 489 | snd_card_t *card; | 496 | struct snd_card *card; |
| 490 | char name[16]; | 497 | char name[16]; |
| 491 | 498 | ||
| 492 | card = substream->pcm->card; | 499 | card = substream->pcm->card; |
| @@ -540,7 +547,7 @@ static int snd_pcm_substream_proc_init(snd_pcm_substream_t *substream) | |||
| 540 | return 0; | 547 | return 0; |
| 541 | } | 548 | } |
| 542 | 549 | ||
| 543 | static int snd_pcm_substream_proc_done(snd_pcm_substream_t *substream) | 550 | static int snd_pcm_substream_proc_done(struct snd_pcm_substream *substream) |
| 544 | { | 551 | { |
| 545 | if (substream->proc_info_entry) { | 552 | if (substream->proc_info_entry) { |
| 546 | snd_info_unregister(substream->proc_info_entry); | 553 | snd_info_unregister(substream->proc_info_entry); |
| @@ -578,11 +585,11 @@ static int snd_pcm_substream_proc_done(snd_pcm_substream_t *substream) | |||
| 578 | * | 585 | * |
| 579 | * Returns zero if successful, or a negative error code on failure. | 586 | * Returns zero if successful, or a negative error code on failure. |
| 580 | */ | 587 | */ |
| 581 | int snd_pcm_new_stream(snd_pcm_t *pcm, int stream, int substream_count) | 588 | int snd_pcm_new_stream(struct snd_pcm *pcm, int stream, int substream_count) |
| 582 | { | 589 | { |
| 583 | int idx, err; | 590 | int idx, err; |
| 584 | snd_pcm_str_t *pstr = &pcm->streams[stream]; | 591 | struct snd_pcm_str *pstr = &pcm->streams[stream]; |
| 585 | snd_pcm_substream_t *substream, *prev; | 592 | struct snd_pcm_substream *substream, *prev; |
| 586 | 593 | ||
| 587 | #if defined(CONFIG_SND_PCM_OSS) || defined(CONFIG_SND_PCM_OSS_MODULE) | 594 | #if defined(CONFIG_SND_PCM_OSS) || defined(CONFIG_SND_PCM_OSS_MODULE) |
| 588 | init_MUTEX(&pstr->oss.setup_mutex); | 595 | init_MUTEX(&pstr->oss.setup_mutex); |
| @@ -642,13 +649,13 @@ int snd_pcm_new_stream(snd_pcm_t *pcm, int stream, int substream_count) | |||
| 642 | * | 649 | * |
| 643 | * Returns zero if successful, or a negative error code on failure. | 650 | * Returns zero if successful, or a negative error code on failure. |
| 644 | */ | 651 | */ |
| 645 | int snd_pcm_new(snd_card_t * card, char *id, int device, | 652 | int snd_pcm_new(struct snd_card *card, char *id, int device, |
| 646 | int playback_count, int capture_count, | 653 | int playback_count, int capture_count, |
| 647 | snd_pcm_t ** rpcm) | 654 | struct snd_pcm ** rpcm) |
| 648 | { | 655 | { |
| 649 | snd_pcm_t *pcm; | 656 | struct snd_pcm *pcm; |
| 650 | int err; | 657 | int err; |
| 651 | static snd_device_ops_t ops = { | 658 | static struct snd_device_ops ops = { |
| 652 | .dev_free = snd_pcm_dev_free, | 659 | .dev_free = snd_pcm_dev_free, |
| 653 | .dev_register = snd_pcm_dev_register, | 660 | .dev_register = snd_pcm_dev_register, |
| 654 | .dev_disconnect = snd_pcm_dev_disconnect, | 661 | .dev_disconnect = snd_pcm_dev_disconnect, |
| @@ -684,11 +691,11 @@ int snd_pcm_new(snd_card_t * card, char *id, int device, | |||
| 684 | return 0; | 691 | return 0; |
| 685 | } | 692 | } |
| 686 | 693 | ||
| 687 | static void snd_pcm_free_stream(snd_pcm_str_t * pstr) | 694 | static void snd_pcm_free_stream(struct snd_pcm_str * pstr) |
| 688 | { | 695 | { |
| 689 | snd_pcm_substream_t *substream, *substream_next; | 696 | struct snd_pcm_substream *substream, *substream_next; |
| 690 | #if defined(CONFIG_SND_PCM_OSS) || defined(CONFIG_SND_PCM_OSS_MODULE) | 697 | #if defined(CONFIG_SND_PCM_OSS) || defined(CONFIG_SND_PCM_OSS_MODULE) |
| 691 | snd_pcm_oss_setup_t *setup, *setupn; | 698 | struct snd_pcm_oss_setup *setup, *setupn; |
| 692 | #endif | 699 | #endif |
| 693 | substream = pstr->substream; | 700 | substream = pstr->substream; |
| 694 | while (substream) { | 701 | while (substream) { |
| @@ -707,7 +714,7 @@ static void snd_pcm_free_stream(snd_pcm_str_t * pstr) | |||
| 707 | #endif | 714 | #endif |
| 708 | } | 715 | } |
| 709 | 716 | ||
| 710 | static int snd_pcm_free(snd_pcm_t *pcm) | 717 | static int snd_pcm_free(struct snd_pcm *pcm) |
| 711 | { | 718 | { |
| 712 | snd_assert(pcm != NULL, return -ENXIO); | 719 | snd_assert(pcm != NULL, return -ENXIO); |
| 713 | if (pcm->private_free) | 720 | if (pcm->private_free) |
| @@ -719,26 +726,26 @@ static int snd_pcm_free(snd_pcm_t *pcm) | |||
| 719 | return 0; | 726 | return 0; |
| 720 | } | 727 | } |
| 721 | 728 | ||
| 722 | static int snd_pcm_dev_free(snd_device_t *device) | 729 | static int snd_pcm_dev_free(struct snd_device *device) |
| 723 | { | 730 | { |
| 724 | snd_pcm_t *pcm = device->device_data; | 731 | struct snd_pcm *pcm = device->device_data; |
| 725 | return snd_pcm_free(pcm); | 732 | return snd_pcm_free(pcm); |
| 726 | } | 733 | } |
| 727 | 734 | ||
| 728 | static void snd_pcm_tick_timer_func(unsigned long data) | 735 | static void snd_pcm_tick_timer_func(unsigned long data) |
| 729 | { | 736 | { |
| 730 | snd_pcm_substream_t *substream = (snd_pcm_substream_t*) data; | 737 | struct snd_pcm_substream *substream = (struct snd_pcm_substream *) data; |
| 731 | snd_pcm_tick_elapsed(substream); | 738 | snd_pcm_tick_elapsed(substream); |
| 732 | } | 739 | } |
| 733 | 740 | ||
| 734 | int snd_pcm_open_substream(snd_pcm_t *pcm, int stream, | 741 | int snd_pcm_open_substream(struct snd_pcm *pcm, int stream, |
| 735 | snd_pcm_substream_t **rsubstream) | 742 | struct snd_pcm_substream **rsubstream) |
| 736 | { | 743 | { |
| 737 | snd_pcm_str_t * pstr; | 744 | struct snd_pcm_str * pstr; |
| 738 | snd_pcm_substream_t * substream; | 745 | struct snd_pcm_substream *substream; |
| 739 | snd_pcm_runtime_t * runtime; | 746 | struct snd_pcm_runtime *runtime; |
| 740 | snd_ctl_file_t *kctl; | 747 | struct snd_ctl_file *kctl; |
| 741 | snd_card_t *card; | 748 | struct snd_card *card; |
| 742 | struct list_head *list; | 749 | struct list_head *list; |
| 743 | int prefer_subdevice = -1; | 750 | int prefer_subdevice = -1; |
| 744 | size_t size; | 751 | size_t size; |
| @@ -800,7 +807,7 @@ int snd_pcm_open_substream(snd_pcm_t *pcm, int stream, | |||
| 800 | if (runtime == NULL) | 807 | if (runtime == NULL) |
| 801 | return -ENOMEM; | 808 | return -ENOMEM; |
| 802 | 809 | ||
| 803 | size = PAGE_ALIGN(sizeof(snd_pcm_mmap_status_t)); | 810 | size = PAGE_ALIGN(sizeof(struct snd_pcm_mmap_status)); |
| 804 | runtime->status = snd_malloc_pages(size, GFP_KERNEL); | 811 | runtime->status = snd_malloc_pages(size, GFP_KERNEL); |
| 805 | if (runtime->status == NULL) { | 812 | if (runtime->status == NULL) { |
| 806 | kfree(runtime); | 813 | kfree(runtime); |
| @@ -808,10 +815,11 @@ int snd_pcm_open_substream(snd_pcm_t *pcm, int stream, | |||
| 808 | } | 815 | } |
| 809 | memset((void*)runtime->status, 0, size); | 816 | memset((void*)runtime->status, 0, size); |
| 810 | 817 | ||
| 811 | size = PAGE_ALIGN(sizeof(snd_pcm_mmap_control_t)); | 818 | size = PAGE_ALIGN(sizeof(struct snd_pcm_mmap_control)); |
| 812 | runtime->control = snd_malloc_pages(size, GFP_KERNEL); | 819 | runtime->control = snd_malloc_pages(size, GFP_KERNEL); |
| 813 | if (runtime->control == NULL) { | 820 | if (runtime->control == NULL) { |
| 814 | snd_free_pages((void*)runtime->status, PAGE_ALIGN(sizeof(snd_pcm_mmap_status_t))); | 821 | snd_free_pages((void*)runtime->status, |
| 822 | PAGE_ALIGN(sizeof(struct snd_pcm_mmap_status))); | ||
| 815 | kfree(runtime); | 823 | kfree(runtime); |
| 816 | return -ENOMEM; | 824 | return -ENOMEM; |
| 817 | } | 825 | } |
| @@ -832,30 +840,32 @@ int snd_pcm_open_substream(snd_pcm_t *pcm, int stream, | |||
| 832 | return 0; | 840 | return 0; |
| 833 | } | 841 | } |
| 834 | 842 | ||
| 835 | void snd_pcm_release_substream(snd_pcm_substream_t *substream) | 843 | void snd_pcm_release_substream(struct snd_pcm_substream *substream) |
| 836 | { | 844 | { |
| 837 | snd_pcm_runtime_t * runtime; | 845 | struct snd_pcm_runtime *runtime; |
| 838 | substream->file = NULL; | 846 | substream->file = NULL; |
| 839 | runtime = substream->runtime; | 847 | runtime = substream->runtime; |
| 840 | snd_assert(runtime != NULL, return); | 848 | snd_assert(runtime != NULL, return); |
| 841 | if (runtime->private_free != NULL) | 849 | if (runtime->private_free != NULL) |
| 842 | runtime->private_free(runtime); | 850 | runtime->private_free(runtime); |
| 843 | snd_free_pages((void*)runtime->status, PAGE_ALIGN(sizeof(snd_pcm_mmap_status_t))); | 851 | snd_free_pages((void*)runtime->status, |
| 844 | snd_free_pages((void*)runtime->control, PAGE_ALIGN(sizeof(snd_pcm_mmap_control_t))); | 852 | PAGE_ALIGN(sizeof(struct snd_pcm_mmap_status))); |
| 853 | snd_free_pages((void*)runtime->control, | ||
| 854 | PAGE_ALIGN(sizeof(struct snd_pcm_mmap_control))); | ||
| 845 | kfree(runtime->hw_constraints.rules); | 855 | kfree(runtime->hw_constraints.rules); |
| 846 | kfree(runtime); | 856 | kfree(runtime); |
| 847 | substream->runtime = NULL; | 857 | substream->runtime = NULL; |
| 848 | substream->pstr->substream_opened--; | 858 | substream->pstr->substream_opened--; |
| 849 | } | 859 | } |
| 850 | 860 | ||
| 851 | static int snd_pcm_dev_register(snd_device_t *device) | 861 | static int snd_pcm_dev_register(struct snd_device *device) |
| 852 | { | 862 | { |
| 853 | int idx, cidx, err; | 863 | int idx, cidx, err; |
| 854 | unsigned short minor; | 864 | unsigned short minor; |
| 855 | snd_pcm_substream_t *substream; | 865 | struct snd_pcm_substream *substream; |
| 856 | struct list_head *list; | 866 | struct list_head *list; |
| 857 | char str[16]; | 867 | char str[16]; |
| 858 | snd_pcm_t *pcm = device->device_data; | 868 | struct snd_pcm *pcm = device->device_data; |
| 859 | 869 | ||
| 860 | snd_assert(pcm != NULL && device != NULL, return -ENXIO); | 870 | snd_assert(pcm != NULL && device != NULL, return -ENXIO); |
| 861 | down(®ister_mutex); | 871 | down(®ister_mutex); |
| @@ -890,19 +900,19 @@ static int snd_pcm_dev_register(snd_device_t *device) | |||
| 890 | snd_pcm_timer_init(substream); | 900 | snd_pcm_timer_init(substream); |
| 891 | } | 901 | } |
| 892 | list_for_each(list, &snd_pcm_notify_list) { | 902 | list_for_each(list, &snd_pcm_notify_list) { |
| 893 | snd_pcm_notify_t *notify; | 903 | struct snd_pcm_notify *notify; |
| 894 | notify = list_entry(list, snd_pcm_notify_t, list); | 904 | notify = list_entry(list, struct snd_pcm_notify, list); |
| 895 | notify->n_register(pcm); | 905 | notify->n_register(pcm); |
| 896 | } | 906 | } |
| 897 | up(®ister_mutex); | 907 | up(®ister_mutex); |
| 898 | return 0; | 908 | return 0; |
| 899 | } | 909 | } |
| 900 | 910 | ||
| 901 | static int snd_pcm_dev_disconnect(snd_device_t *device) | 911 | static int snd_pcm_dev_disconnect(struct snd_device *device) |
| 902 | { | 912 | { |
| 903 | snd_pcm_t *pcm = device->device_data; | 913 | struct snd_pcm *pcm = device->device_data; |
| 904 | struct list_head *list; | 914 | struct list_head *list; |
| 905 | snd_pcm_substream_t *substream; | 915 | struct snd_pcm_substream *substream; |
| 906 | int idx, cidx; | 916 | int idx, cidx; |
| 907 | 917 | ||
| 908 | down(®ister_mutex); | 918 | down(®ister_mutex); |
| @@ -913,20 +923,20 @@ static int snd_pcm_dev_disconnect(snd_device_t *device) | |||
| 913 | if (substream->runtime) | 923 | if (substream->runtime) |
| 914 | substream->runtime->status->state = SNDRV_PCM_STATE_DISCONNECTED; | 924 | substream->runtime->status->state = SNDRV_PCM_STATE_DISCONNECTED; |
| 915 | list_for_each(list, &snd_pcm_notify_list) { | 925 | list_for_each(list, &snd_pcm_notify_list) { |
| 916 | snd_pcm_notify_t *notify; | 926 | struct snd_pcm_notify *notify; |
| 917 | notify = list_entry(list, snd_pcm_notify_t, list); | 927 | notify = list_entry(list, struct snd_pcm_notify, list); |
| 918 | notify->n_disconnect(pcm); | 928 | notify->n_disconnect(pcm); |
| 919 | } | 929 | } |
| 920 | up(®ister_mutex); | 930 | up(®ister_mutex); |
| 921 | return 0; | 931 | return 0; |
| 922 | } | 932 | } |
| 923 | 933 | ||
| 924 | static int snd_pcm_dev_unregister(snd_device_t *device) | 934 | static int snd_pcm_dev_unregister(struct snd_device *device) |
| 925 | { | 935 | { |
| 926 | int idx, cidx, devtype; | 936 | int idx, cidx, devtype; |
| 927 | snd_pcm_substream_t *substream; | 937 | struct snd_pcm_substream *substream; |
| 928 | struct list_head *list; | 938 | struct list_head *list; |
| 929 | snd_pcm_t *pcm = device->device_data; | 939 | struct snd_pcm *pcm = device->device_data; |
| 930 | 940 | ||
| 931 | snd_assert(pcm != NULL, return -ENXIO); | 941 | snd_assert(pcm != NULL, return -ENXIO); |
| 932 | down(®ister_mutex); | 942 | down(®ister_mutex); |
| @@ -947,15 +957,15 @@ static int snd_pcm_dev_unregister(snd_device_t *device) | |||
| 947 | snd_pcm_timer_done(substream); | 957 | snd_pcm_timer_done(substream); |
| 948 | } | 958 | } |
| 949 | list_for_each(list, &snd_pcm_notify_list) { | 959 | list_for_each(list, &snd_pcm_notify_list) { |
| 950 | snd_pcm_notify_t *notify; | 960 | struct snd_pcm_notify *notify; |
| 951 | notify = list_entry(list, snd_pcm_notify_t, list); | 961 | notify = list_entry(list, struct snd_pcm_notify, list); |
| 952 | notify->n_unregister(pcm); | 962 | notify->n_unregister(pcm); |
| 953 | } | 963 | } |
| 954 | up(®ister_mutex); | 964 | up(®ister_mutex); |
| 955 | return snd_pcm_free(pcm); | 965 | return snd_pcm_free(pcm); |
| 956 | } | 966 | } |
| 957 | 967 | ||
| 958 | int snd_pcm_notify(snd_pcm_notify_t *notify, int nfree) | 968 | int snd_pcm_notify(struct snd_pcm_notify *notify, int nfree) |
| 959 | { | 969 | { |
| 960 | int idx; | 970 | int idx; |
| 961 | 971 | ||
| @@ -984,10 +994,11 @@ int snd_pcm_notify(snd_pcm_notify_t *notify, int nfree) | |||
| 984 | * Info interface | 994 | * Info interface |
| 985 | */ | 995 | */ |
| 986 | 996 | ||
| 987 | static void snd_pcm_proc_read(snd_info_entry_t *entry, snd_info_buffer_t * buffer) | 997 | static void snd_pcm_proc_read(struct snd_info_entry *entry, |
| 998 | struct snd_info_buffer *buffer) | ||
| 988 | { | 999 | { |
| 989 | int idx; | 1000 | int idx; |
| 990 | snd_pcm_t *pcm; | 1001 | struct snd_pcm *pcm; |
| 991 | 1002 | ||
| 992 | down(®ister_mutex); | 1003 | down(®ister_mutex); |
| 993 | for (idx = 0; idx < SNDRV_CARDS * SNDRV_PCM_DEVICES; idx++) { | 1004 | for (idx = 0; idx < SNDRV_CARDS * SNDRV_PCM_DEVICES; idx++) { |
| @@ -997,9 +1008,11 @@ static void snd_pcm_proc_read(snd_info_entry_t *entry, snd_info_buffer_t * buffe | |||
| 997 | snd_iprintf(buffer, "%02i-%02i: %s : %s", idx / SNDRV_PCM_DEVICES, | 1008 | snd_iprintf(buffer, "%02i-%02i: %s : %s", idx / SNDRV_PCM_DEVICES, |
| 998 | idx % SNDRV_PCM_DEVICES, pcm->id, pcm->name); | 1009 | idx % SNDRV_PCM_DEVICES, pcm->id, pcm->name); |
| 999 | if (pcm->streams[SNDRV_PCM_STREAM_PLAYBACK].substream) | 1010 | if (pcm->streams[SNDRV_PCM_STREAM_PLAYBACK].substream) |
| 1000 | snd_iprintf(buffer, " : playback %i", pcm->streams[SNDRV_PCM_STREAM_PLAYBACK].substream_count); | 1011 | snd_iprintf(buffer, " : playback %i", |
| 1012 | pcm->streams[SNDRV_PCM_STREAM_PLAYBACK].substream_count); | ||
| 1001 | if (pcm->streams[SNDRV_PCM_STREAM_CAPTURE].substream) | 1013 | if (pcm->streams[SNDRV_PCM_STREAM_CAPTURE].substream) |
| 1002 | snd_iprintf(buffer, " : capture %i", pcm->streams[SNDRV_PCM_STREAM_CAPTURE].substream_count); | 1014 | snd_iprintf(buffer, " : capture %i", |
| 1015 | pcm->streams[SNDRV_PCM_STREAM_CAPTURE].substream_count); | ||
| 1003 | snd_iprintf(buffer, "\n"); | 1016 | snd_iprintf(buffer, "\n"); |
| 1004 | } | 1017 | } |
| 1005 | up(®ister_mutex); | 1018 | up(®ister_mutex); |
| @@ -1009,16 +1022,17 @@ static void snd_pcm_proc_read(snd_info_entry_t *entry, snd_info_buffer_t * buffe | |||
| 1009 | * ENTRY functions | 1022 | * ENTRY functions |
| 1010 | */ | 1023 | */ |
| 1011 | 1024 | ||
| 1012 | static snd_info_entry_t *snd_pcm_proc_entry = NULL; | 1025 | static struct snd_info_entry *snd_pcm_proc_entry = NULL; |
| 1013 | 1026 | ||
| 1014 | static int __init alsa_pcm_init(void) | 1027 | static int __init alsa_pcm_init(void) |
| 1015 | { | 1028 | { |
| 1016 | snd_info_entry_t *entry; | 1029 | struct snd_info_entry *entry; |
| 1017 | 1030 | ||
| 1018 | snd_ctl_register_ioctl(snd_pcm_control_ioctl); | 1031 | snd_ctl_register_ioctl(snd_pcm_control_ioctl); |
| 1019 | snd_ctl_register_ioctl_compat(snd_pcm_control_ioctl); | 1032 | snd_ctl_register_ioctl_compat(snd_pcm_control_ioctl); |
| 1020 | if ((entry = snd_info_create_module_entry(THIS_MODULE, "pcm", NULL)) != NULL) { | 1033 | if ((entry = snd_info_create_module_entry(THIS_MODULE, "pcm", NULL)) != NULL) { |
| 1021 | snd_info_set_text_ops(entry, NULL, SNDRV_CARDS * SNDRV_PCM_DEVICES * 128, snd_pcm_proc_read); | 1034 | snd_info_set_text_ops(entry, NULL, SNDRV_CARDS * SNDRV_PCM_DEVICES * 128, |
| 1035 | snd_pcm_proc_read); | ||
| 1022 | if (snd_info_register(entry) < 0) { | 1036 | if (snd_info_register(entry) < 0) { |
| 1023 | snd_info_free_entry(entry); | 1037 | snd_info_free_entry(entry); |
| 1024 | entry = NULL; | 1038 | entry = NULL; |
diff --git a/sound/core/pcm_compat.c b/sound/core/pcm_compat.c index 4b6307df846d..e5133033de5e 100644 --- a/sound/core/pcm_compat.c +++ b/sound/core/pcm_compat.c | |||
| @@ -22,7 +22,7 @@ | |||
| 22 | 22 | ||
| 23 | #include <linux/compat.h> | 23 | #include <linux/compat.h> |
| 24 | 24 | ||
| 25 | static int snd_pcm_ioctl_delay_compat(snd_pcm_substream_t *substream, | 25 | static int snd_pcm_ioctl_delay_compat(struct snd_pcm_substream *substream, |
| 26 | s32 __user *src) | 26 | s32 __user *src) |
| 27 | { | 27 | { |
| 28 | snd_pcm_sframes_t delay; | 28 | snd_pcm_sframes_t delay; |
| @@ -39,7 +39,7 @@ static int snd_pcm_ioctl_delay_compat(snd_pcm_substream_t *substream, | |||
| 39 | return err; | 39 | return err; |
| 40 | } | 40 | } |
| 41 | 41 | ||
| 42 | static int snd_pcm_ioctl_rewind_compat(snd_pcm_substream_t *substream, | 42 | static int snd_pcm_ioctl_rewind_compat(struct snd_pcm_substream *substream, |
| 43 | u32 __user *src) | 43 | u32 __user *src) |
| 44 | { | 44 | { |
| 45 | snd_pcm_uframes_t frames; | 45 | snd_pcm_uframes_t frames; |
| @@ -56,7 +56,7 @@ static int snd_pcm_ioctl_rewind_compat(snd_pcm_substream_t *substream, | |||
| 56 | return err < 0 ? err : 0; | 56 | return err < 0 ? err : 0; |
| 57 | } | 57 | } |
| 58 | 58 | ||
| 59 | static int snd_pcm_ioctl_forward_compat(snd_pcm_substream_t *substream, | 59 | static int snd_pcm_ioctl_forward_compat(struct snd_pcm_substream *substream, |
| 60 | u32 __user *src) | 60 | u32 __user *src) |
| 61 | { | 61 | { |
| 62 | snd_pcm_uframes_t frames; | 62 | snd_pcm_uframes_t frames; |
| @@ -73,12 +73,12 @@ static int snd_pcm_ioctl_forward_compat(snd_pcm_substream_t *substream, | |||
| 73 | return err < 0 ? err : 0; | 73 | return err < 0 ? err : 0; |
| 74 | } | 74 | } |
| 75 | 75 | ||
| 76 | struct sndrv_pcm_hw_params32 { | 76 | struct snd_pcm_hw_params32 { |
| 77 | u32 flags; | 77 | u32 flags; |
| 78 | struct sndrv_mask masks[SNDRV_PCM_HW_PARAM_LAST_MASK - SNDRV_PCM_HW_PARAM_FIRST_MASK + 1]; /* this must be identical */ | 78 | struct snd_mask masks[SNDRV_PCM_HW_PARAM_LAST_MASK - SNDRV_PCM_HW_PARAM_FIRST_MASK + 1]; /* this must be identical */ |
| 79 | struct sndrv_mask mres[5]; /* reserved masks */ | 79 | struct snd_mask mres[5]; /* reserved masks */ |
| 80 | struct sndrv_interval intervals[SNDRV_PCM_HW_PARAM_LAST_INTERVAL - SNDRV_PCM_HW_PARAM_FIRST_INTERVAL + 1]; | 80 | struct snd_interval intervals[SNDRV_PCM_HW_PARAM_LAST_INTERVAL - SNDRV_PCM_HW_PARAM_FIRST_INTERVAL + 1]; |
| 81 | struct sndrv_interval ires[9]; /* reserved intervals */ | 81 | struct snd_interval ires[9]; /* reserved intervals */ |
| 82 | u32 rmask; | 82 | u32 rmask; |
| 83 | u32 cmask; | 83 | u32 cmask; |
| 84 | u32 info; | 84 | u32 info; |
| @@ -89,7 +89,7 @@ struct sndrv_pcm_hw_params32 { | |||
| 89 | unsigned char reserved[64]; | 89 | unsigned char reserved[64]; |
| 90 | }; | 90 | }; |
| 91 | 91 | ||
| 92 | struct sndrv_pcm_sw_params32 { | 92 | struct snd_pcm_sw_params32 { |
| 93 | s32 tstamp_mode; | 93 | s32 tstamp_mode; |
| 94 | u32 period_step; | 94 | u32 period_step; |
| 95 | u32 sleep_min; | 95 | u32 sleep_min; |
| @@ -104,7 +104,7 @@ struct sndrv_pcm_sw_params32 { | |||
| 104 | }; | 104 | }; |
| 105 | 105 | ||
| 106 | /* recalcuate the boundary within 32bit */ | 106 | /* recalcuate the boundary within 32bit */ |
| 107 | static snd_pcm_uframes_t recalculate_boundary(snd_pcm_runtime_t *runtime) | 107 | static snd_pcm_uframes_t recalculate_boundary(struct snd_pcm_runtime *runtime) |
| 108 | { | 108 | { |
| 109 | snd_pcm_uframes_t boundary; | 109 | snd_pcm_uframes_t boundary; |
| 110 | 110 | ||
| @@ -116,10 +116,10 @@ static snd_pcm_uframes_t recalculate_boundary(snd_pcm_runtime_t *runtime) | |||
| 116 | return boundary; | 116 | return boundary; |
| 117 | } | 117 | } |
| 118 | 118 | ||
| 119 | static int snd_pcm_ioctl_sw_params_compat(snd_pcm_substream_t *substream, | 119 | static int snd_pcm_ioctl_sw_params_compat(struct snd_pcm_substream *substream, |
| 120 | struct sndrv_pcm_sw_params32 __user *src) | 120 | struct snd_pcm_sw_params32 __user *src) |
| 121 | { | 121 | { |
| 122 | snd_pcm_sw_params_t params; | 122 | struct snd_pcm_sw_params params; |
| 123 | snd_pcm_uframes_t boundary; | 123 | snd_pcm_uframes_t boundary; |
| 124 | int err; | 124 | int err; |
| 125 | 125 | ||
| @@ -149,17 +149,17 @@ static int snd_pcm_ioctl_sw_params_compat(snd_pcm_substream_t *substream, | |||
| 149 | return err; | 149 | return err; |
| 150 | } | 150 | } |
| 151 | 151 | ||
| 152 | struct sndrv_pcm_channel_info32 { | 152 | struct snd_pcm_channel_info32 { |
| 153 | u32 channel; | 153 | u32 channel; |
| 154 | u32 offset; | 154 | u32 offset; |
| 155 | u32 first; | 155 | u32 first; |
| 156 | u32 step; | 156 | u32 step; |
| 157 | }; | 157 | }; |
| 158 | 158 | ||
| 159 | static int snd_pcm_ioctl_channel_info_compat(snd_pcm_substream_t *substream, | 159 | static int snd_pcm_ioctl_channel_info_compat(struct snd_pcm_substream *substream, |
| 160 | struct sndrv_pcm_channel_info32 __user *src) | 160 | struct snd_pcm_channel_info32 __user *src) |
| 161 | { | 161 | { |
| 162 | snd_pcm_channel_info_t info; | 162 | struct snd_pcm_channel_info info; |
| 163 | int err; | 163 | int err; |
| 164 | 164 | ||
| 165 | if (get_user(info.channel, &src->channel) || | 165 | if (get_user(info.channel, &src->channel) || |
| @@ -178,7 +178,7 @@ static int snd_pcm_ioctl_channel_info_compat(snd_pcm_substream_t *substream, | |||
| 178 | return err; | 178 | return err; |
| 179 | } | 179 | } |
| 180 | 180 | ||
| 181 | struct sndrv_pcm_status32 { | 181 | struct snd_pcm_status32 { |
| 182 | s32 state; | 182 | s32 state; |
| 183 | struct compat_timespec trigger_tstamp; | 183 | struct compat_timespec trigger_tstamp; |
| 184 | struct compat_timespec tstamp; | 184 | struct compat_timespec tstamp; |
| @@ -193,10 +193,10 @@ struct sndrv_pcm_status32 { | |||
| 193 | } __attribute__((packed)); | 193 | } __attribute__((packed)); |
| 194 | 194 | ||
| 195 | 195 | ||
| 196 | static int snd_pcm_status_user_compat(snd_pcm_substream_t *substream, | 196 | static int snd_pcm_status_user_compat(struct snd_pcm_substream *substream, |
| 197 | struct sndrv_pcm_status32 __user *src) | 197 | struct snd_pcm_status32 __user *src) |
| 198 | { | 198 | { |
| 199 | snd_pcm_status_t status; | 199 | struct snd_pcm_status status; |
| 200 | int err; | 200 | int err; |
| 201 | 201 | ||
| 202 | err = snd_pcm_status(substream, &status); | 202 | err = snd_pcm_status(substream, &status); |
| @@ -221,12 +221,12 @@ static int snd_pcm_status_user_compat(snd_pcm_substream_t *substream, | |||
| 221 | } | 221 | } |
| 222 | 222 | ||
| 223 | /* both for HW_PARAMS and HW_REFINE */ | 223 | /* both for HW_PARAMS and HW_REFINE */ |
| 224 | static int snd_pcm_ioctl_hw_params_compat(snd_pcm_substream_t *substream, | 224 | static int snd_pcm_ioctl_hw_params_compat(struct snd_pcm_substream *substream, |
| 225 | int refine, | 225 | int refine, |
| 226 | struct sndrv_pcm_hw_params32 __user *data32) | 226 | struct snd_pcm_hw_params32 __user *data32) |
| 227 | { | 227 | { |
| 228 | struct sndrv_pcm_hw_params *data; | 228 | struct snd_pcm_hw_params *data; |
| 229 | snd_pcm_runtime_t *runtime; | 229 | struct snd_pcm_runtime *runtime; |
| 230 | int err; | 230 | int err; |
| 231 | 231 | ||
| 232 | if (! (runtime = substream->runtime)) | 232 | if (! (runtime = substream->runtime)) |
| @@ -265,14 +265,14 @@ static int snd_pcm_ioctl_hw_params_compat(snd_pcm_substream_t *substream, | |||
| 265 | 265 | ||
| 266 | /* | 266 | /* |
| 267 | */ | 267 | */ |
| 268 | struct sndrv_xferi32 { | 268 | struct snd_xferi32 { |
| 269 | s32 result; | 269 | s32 result; |
| 270 | u32 buf; | 270 | u32 buf; |
| 271 | u32 frames; | 271 | u32 frames; |
| 272 | }; | 272 | }; |
| 273 | 273 | ||
| 274 | static int snd_pcm_ioctl_xferi_compat(snd_pcm_substream_t *substream, | 274 | static int snd_pcm_ioctl_xferi_compat(struct snd_pcm_substream *substream, |
| 275 | int dir, struct sndrv_xferi32 __user *data32) | 275 | int dir, struct snd_xferi32 __user *data32) |
| 276 | { | 276 | { |
| 277 | compat_caddr_t buf; | 277 | compat_caddr_t buf; |
| 278 | u32 frames; | 278 | u32 frames; |
| @@ -303,7 +303,7 @@ static int snd_pcm_ioctl_xferi_compat(snd_pcm_substream_t *substream, | |||
| 303 | 303 | ||
| 304 | 304 | ||
| 305 | /* snd_xfern needs remapping of bufs */ | 305 | /* snd_xfern needs remapping of bufs */ |
| 306 | struct sndrv_xfern32 { | 306 | struct snd_xfern32 { |
| 307 | s32 result; | 307 | s32 result; |
| 308 | u32 bufs; /* this is void **; */ | 308 | u32 bufs; /* this is void **; */ |
| 309 | u32 frames; | 309 | u32 frames; |
| @@ -315,8 +315,8 @@ struct sndrv_xfern32 { | |||
| 315 | * handler there expands again the same 128 pointers on stack, so it is better | 315 | * handler there expands again the same 128 pointers on stack, so it is better |
| 316 | * to handle the function (calling pcm_readv/writev) directly in this handler. | 316 | * to handle the function (calling pcm_readv/writev) directly in this handler. |
| 317 | */ | 317 | */ |
| 318 | static int snd_pcm_ioctl_xfern_compat(snd_pcm_substream_t *substream, | 318 | static int snd_pcm_ioctl_xfern_compat(struct snd_pcm_substream *substream, |
| 319 | int dir, struct sndrv_xfern32 __user *data32) | 319 | int dir, struct snd_xfern32 __user *data32) |
| 320 | { | 320 | { |
| 321 | compat_caddr_t buf; | 321 | compat_caddr_t buf; |
| 322 | compat_caddr_t __user *bufptr; | 322 | compat_caddr_t __user *bufptr; |
| @@ -360,7 +360,7 @@ static int snd_pcm_ioctl_xfern_compat(snd_pcm_substream_t *substream, | |||
| 360 | } | 360 | } |
| 361 | 361 | ||
| 362 | 362 | ||
| 363 | struct sndrv_pcm_mmap_status32 { | 363 | struct snd_pcm_mmap_status32 { |
| 364 | s32 state; | 364 | s32 state; |
| 365 | s32 pad1; | 365 | s32 pad1; |
| 366 | u32 hw_ptr; | 366 | u32 hw_ptr; |
| @@ -368,32 +368,32 @@ struct sndrv_pcm_mmap_status32 { | |||
| 368 | s32 suspended_state; | 368 | s32 suspended_state; |
| 369 | } __attribute__((packed)); | 369 | } __attribute__((packed)); |
| 370 | 370 | ||
| 371 | struct sndrv_pcm_mmap_control32 { | 371 | struct snd_pcm_mmap_control32 { |
| 372 | u32 appl_ptr; | 372 | u32 appl_ptr; |
| 373 | u32 avail_min; | 373 | u32 avail_min; |
| 374 | }; | 374 | }; |
| 375 | 375 | ||
| 376 | struct sndrv_pcm_sync_ptr32 { | 376 | struct snd_pcm_sync_ptr32 { |
| 377 | u32 flags; | 377 | u32 flags; |
| 378 | union { | 378 | union { |
| 379 | struct sndrv_pcm_mmap_status32 status; | 379 | struct snd_pcm_mmap_status32 status; |
| 380 | unsigned char reserved[64]; | 380 | unsigned char reserved[64]; |
| 381 | } s; | 381 | } s; |
| 382 | union { | 382 | union { |
| 383 | struct sndrv_pcm_mmap_control32 control; | 383 | struct snd_pcm_mmap_control32 control; |
| 384 | unsigned char reserved[64]; | 384 | unsigned char reserved[64]; |
| 385 | } c; | 385 | } c; |
| 386 | } __attribute__((packed)); | 386 | } __attribute__((packed)); |
| 387 | 387 | ||
| 388 | static int snd_pcm_ioctl_sync_ptr_compat(snd_pcm_substream_t *substream, | 388 | static int snd_pcm_ioctl_sync_ptr_compat(struct snd_pcm_substream *substream, |
| 389 | struct sndrv_pcm_sync_ptr32 __user *src) | 389 | struct snd_pcm_sync_ptr32 __user *src) |
| 390 | { | 390 | { |
| 391 | snd_pcm_runtime_t *runtime = substream->runtime; | 391 | struct snd_pcm_runtime *runtime = substream->runtime; |
| 392 | volatile struct sndrv_pcm_mmap_status *status; | 392 | volatile struct snd_pcm_mmap_status *status; |
| 393 | volatile struct sndrv_pcm_mmap_control *control; | 393 | volatile struct snd_pcm_mmap_control *control; |
| 394 | u32 sflags; | 394 | u32 sflags; |
| 395 | struct sndrv_pcm_mmap_control scontrol; | 395 | struct snd_pcm_mmap_control scontrol; |
| 396 | struct sndrv_pcm_mmap_status sstatus; | 396 | struct snd_pcm_mmap_status sstatus; |
| 397 | snd_pcm_uframes_t boundary; | 397 | snd_pcm_uframes_t boundary; |
| 398 | int err; | 398 | int err; |
| 399 | 399 | ||
| @@ -444,26 +444,26 @@ static int snd_pcm_ioctl_sync_ptr_compat(snd_pcm_substream_t *substream, | |||
| 444 | /* | 444 | /* |
| 445 | */ | 445 | */ |
| 446 | enum { | 446 | enum { |
| 447 | SNDRV_PCM_IOCTL_HW_REFINE32 = _IOWR('A', 0x10, struct sndrv_pcm_hw_params32), | 447 | SNDRV_PCM_IOCTL_HW_REFINE32 = _IOWR('A', 0x10, struct snd_pcm_hw_params32), |
| 448 | SNDRV_PCM_IOCTL_HW_PARAMS32 = _IOWR('A', 0x11, struct sndrv_pcm_hw_params32), | 448 | SNDRV_PCM_IOCTL_HW_PARAMS32 = _IOWR('A', 0x11, struct snd_pcm_hw_params32), |
| 449 | SNDRV_PCM_IOCTL_SW_PARAMS32 = _IOWR('A', 0x13, struct sndrv_pcm_sw_params32), | 449 | SNDRV_PCM_IOCTL_SW_PARAMS32 = _IOWR('A', 0x13, struct snd_pcm_sw_params32), |
| 450 | SNDRV_PCM_IOCTL_STATUS32 = _IOR('A', 0x20, struct sndrv_pcm_status32), | 450 | SNDRV_PCM_IOCTL_STATUS32 = _IOR('A', 0x20, struct snd_pcm_status32), |
| 451 | SNDRV_PCM_IOCTL_DELAY32 = _IOR('A', 0x21, s32), | 451 | SNDRV_PCM_IOCTL_DELAY32 = _IOR('A', 0x21, s32), |
| 452 | SNDRV_PCM_IOCTL_CHANNEL_INFO32 = _IOR('A', 0x32, struct sndrv_pcm_channel_info32), | 452 | SNDRV_PCM_IOCTL_CHANNEL_INFO32 = _IOR('A', 0x32, struct snd_pcm_channel_info32), |
| 453 | SNDRV_PCM_IOCTL_REWIND32 = _IOW('A', 0x46, u32), | 453 | SNDRV_PCM_IOCTL_REWIND32 = _IOW('A', 0x46, u32), |
| 454 | SNDRV_PCM_IOCTL_FORWARD32 = _IOW('A', 0x49, u32), | 454 | SNDRV_PCM_IOCTL_FORWARD32 = _IOW('A', 0x49, u32), |
| 455 | SNDRV_PCM_IOCTL_WRITEI_FRAMES32 = _IOW('A', 0x50, struct sndrv_xferi32), | 455 | SNDRV_PCM_IOCTL_WRITEI_FRAMES32 = _IOW('A', 0x50, struct snd_xferi32), |
| 456 | SNDRV_PCM_IOCTL_READI_FRAMES32 = _IOR('A', 0x51, struct sndrv_xferi32), | 456 | SNDRV_PCM_IOCTL_READI_FRAMES32 = _IOR('A', 0x51, struct snd_xferi32), |
| 457 | SNDRV_PCM_IOCTL_WRITEN_FRAMES32 = _IOW('A', 0x52, struct sndrv_xfern32), | 457 | SNDRV_PCM_IOCTL_WRITEN_FRAMES32 = _IOW('A', 0x52, struct snd_xfern32), |
| 458 | SNDRV_PCM_IOCTL_READN_FRAMES32 = _IOR('A', 0x53, struct sndrv_xfern32), | 458 | SNDRV_PCM_IOCTL_READN_FRAMES32 = _IOR('A', 0x53, struct snd_xfern32), |
| 459 | SNDRV_PCM_IOCTL_SYNC_PTR32 = _IOWR('A', 0x23, struct sndrv_pcm_sync_ptr32), | 459 | SNDRV_PCM_IOCTL_SYNC_PTR32 = _IOWR('A', 0x23, struct snd_pcm_sync_ptr32), |
| 460 | 460 | ||
| 461 | }; | 461 | }; |
| 462 | 462 | ||
| 463 | static long snd_pcm_ioctl_compat(struct file *file, unsigned int cmd, unsigned long arg) | 463 | static long snd_pcm_ioctl_compat(struct file *file, unsigned int cmd, unsigned long arg) |
| 464 | { | 464 | { |
| 465 | snd_pcm_file_t *pcm_file; | 465 | struct snd_pcm_file *pcm_file; |
| 466 | snd_pcm_substream_t *substream; | 466 | struct snd_pcm_substream *substream; |
| 467 | void __user *argp = compat_ptr(arg); | 467 | void __user *argp = compat_ptr(arg); |
| 468 | 468 | ||
| 469 | pcm_file = file->private_data; | 469 | pcm_file = file->private_data; |
diff --git a/sound/core/pcm_lib.c b/sound/core/pcm_lib.c index 3dbf9bf2ac16..c58ec67d1cbf 100644 --- a/sound/core/pcm_lib.c +++ b/sound/core/pcm_lib.c | |||
| @@ -39,9 +39,9 @@ | |||
| 39 | * | 39 | * |
| 40 | * when runtime->silence_size >= runtime->boundary - fill processed area with silence immediately | 40 | * when runtime->silence_size >= runtime->boundary - fill processed area with silence immediately |
| 41 | */ | 41 | */ |
| 42 | void snd_pcm_playback_silence(snd_pcm_substream_t *substream, snd_pcm_uframes_t new_hw_ptr) | 42 | void snd_pcm_playback_silence(struct snd_pcm_substream *substream, snd_pcm_uframes_t new_hw_ptr) |
| 43 | { | 43 | { |
| 44 | snd_pcm_runtime_t *runtime = substream->runtime; | 44 | struct snd_pcm_runtime *runtime = substream->runtime; |
| 45 | snd_pcm_uframes_t frames, ofs, transfer; | 45 | snd_pcm_uframes_t frames, ofs, transfer; |
| 46 | 46 | ||
| 47 | if (runtime->silence_size < runtime->boundary) { | 47 | if (runtime->silence_size < runtime->boundary) { |
| @@ -128,7 +128,7 @@ void snd_pcm_playback_silence(snd_pcm_substream_t *substream, snd_pcm_uframes_t | |||
| 128 | } | 128 | } |
| 129 | } | 129 | } |
| 130 | 130 | ||
| 131 | static void xrun(snd_pcm_substream_t *substream) | 131 | static void xrun(struct snd_pcm_substream *substream) |
| 132 | { | 132 | { |
| 133 | snd_pcm_stop(substream, SNDRV_PCM_STATE_XRUN); | 133 | snd_pcm_stop(substream, SNDRV_PCM_STATE_XRUN); |
| 134 | #ifdef CONFIG_SND_DEBUG | 134 | #ifdef CONFIG_SND_DEBUG |
| @@ -143,8 +143,8 @@ static void xrun(snd_pcm_substream_t *substream) | |||
| 143 | #endif | 143 | #endif |
| 144 | } | 144 | } |
| 145 | 145 | ||
| 146 | static inline snd_pcm_uframes_t snd_pcm_update_hw_ptr_pos(snd_pcm_substream_t *substream, | 146 | static inline snd_pcm_uframes_t snd_pcm_update_hw_ptr_pos(struct snd_pcm_substream *substream, |
| 147 | snd_pcm_runtime_t *runtime) | 147 | struct snd_pcm_runtime *runtime) |
| 148 | { | 148 | { |
| 149 | snd_pcm_uframes_t pos; | 149 | snd_pcm_uframes_t pos; |
| 150 | 150 | ||
| @@ -162,8 +162,8 @@ static inline snd_pcm_uframes_t snd_pcm_update_hw_ptr_pos(snd_pcm_substream_t *s | |||
| 162 | return pos; | 162 | return pos; |
| 163 | } | 163 | } |
| 164 | 164 | ||
| 165 | static inline int snd_pcm_update_hw_ptr_post(snd_pcm_substream_t *substream, | 165 | static inline int snd_pcm_update_hw_ptr_post(struct snd_pcm_substream *substream, |
| 166 | snd_pcm_runtime_t *runtime) | 166 | struct snd_pcm_runtime *runtime) |
| 167 | { | 167 | { |
| 168 | snd_pcm_uframes_t avail; | 168 | snd_pcm_uframes_t avail; |
| 169 | 169 | ||
| @@ -185,9 +185,9 @@ static inline int snd_pcm_update_hw_ptr_post(snd_pcm_substream_t *substream, | |||
| 185 | return 0; | 185 | return 0; |
| 186 | } | 186 | } |
| 187 | 187 | ||
| 188 | static inline int snd_pcm_update_hw_ptr_interrupt(snd_pcm_substream_t *substream) | 188 | static inline int snd_pcm_update_hw_ptr_interrupt(struct snd_pcm_substream *substream) |
| 189 | { | 189 | { |
| 190 | snd_pcm_runtime_t *runtime = substream->runtime; | 190 | struct snd_pcm_runtime *runtime = substream->runtime; |
| 191 | snd_pcm_uframes_t pos; | 191 | snd_pcm_uframes_t pos; |
| 192 | snd_pcm_uframes_t new_hw_ptr, hw_ptr_interrupt; | 192 | snd_pcm_uframes_t new_hw_ptr, hw_ptr_interrupt; |
| 193 | snd_pcm_sframes_t delta; | 193 | snd_pcm_sframes_t delta; |
| @@ -232,9 +232,9 @@ static inline int snd_pcm_update_hw_ptr_interrupt(snd_pcm_substream_t *substream | |||
| 232 | } | 232 | } |
| 233 | 233 | ||
| 234 | /* CAUTION: call it with irq disabled */ | 234 | /* CAUTION: call it with irq disabled */ |
| 235 | int snd_pcm_update_hw_ptr(snd_pcm_substream_t *substream) | 235 | int snd_pcm_update_hw_ptr(struct snd_pcm_substream *substream) |
| 236 | { | 236 | { |
| 237 | snd_pcm_runtime_t *runtime = substream->runtime; | 237 | struct snd_pcm_runtime *runtime = substream->runtime; |
| 238 | snd_pcm_uframes_t pos; | 238 | snd_pcm_uframes_t pos; |
| 239 | snd_pcm_uframes_t old_hw_ptr, new_hw_ptr; | 239 | snd_pcm_uframes_t old_hw_ptr, new_hw_ptr; |
| 240 | snd_pcm_sframes_t delta; | 240 | snd_pcm_sframes_t delta; |
| @@ -281,10 +281,10 @@ int snd_pcm_update_hw_ptr(snd_pcm_substream_t *substream) | |||
| 281 | * | 281 | * |
| 282 | * Sets the given PCM operators to the pcm instance. | 282 | * Sets the given PCM operators to the pcm instance. |
| 283 | */ | 283 | */ |
| 284 | void snd_pcm_set_ops(snd_pcm_t *pcm, int direction, snd_pcm_ops_t *ops) | 284 | void snd_pcm_set_ops(struct snd_pcm *pcm, int direction, struct snd_pcm_ops *ops) |
| 285 | { | 285 | { |
| 286 | snd_pcm_str_t *stream = &pcm->streams[direction]; | 286 | struct snd_pcm_str *stream = &pcm->streams[direction]; |
| 287 | snd_pcm_substream_t *substream; | 287 | struct snd_pcm_substream *substream; |
| 288 | 288 | ||
| 289 | for (substream = stream->substream; substream != NULL; substream = substream->next) | 289 | for (substream = stream->substream; substream != NULL; substream = substream->next) |
| 290 | substream->ops = ops; | 290 | substream->ops = ops; |
| @@ -297,9 +297,9 @@ void snd_pcm_set_ops(snd_pcm_t *pcm, int direction, snd_pcm_ops_t *ops) | |||
| 297 | * | 297 | * |
| 298 | * Sets the PCM sync identifier for the card. | 298 | * Sets the PCM sync identifier for the card. |
| 299 | */ | 299 | */ |
| 300 | void snd_pcm_set_sync(snd_pcm_substream_t * substream) | 300 | void snd_pcm_set_sync(struct snd_pcm_substream *substream) |
| 301 | { | 301 | { |
| 302 | snd_pcm_runtime_t *runtime = substream->runtime; | 302 | struct snd_pcm_runtime *runtime = substream->runtime; |
| 303 | 303 | ||
| 304 | runtime->sync.id32[0] = substream->pcm->card->number; | 304 | runtime->sync.id32[0] = substream->pcm->card->number; |
| 305 | runtime->sync.id32[1] = -1; | 305 | runtime->sync.id32[1] = -1; |
| @@ -370,7 +370,7 @@ static inline unsigned int muldiv32(unsigned int a, unsigned int b, | |||
| 370 | return n; | 370 | return n; |
| 371 | } | 371 | } |
| 372 | 372 | ||
| 373 | static int snd_interval_refine_min(snd_interval_t *i, unsigned int min, int openmin) | 373 | static int snd_interval_refine_min(struct snd_interval *i, unsigned int min, int openmin) |
| 374 | { | 374 | { |
| 375 | int changed = 0; | 375 | int changed = 0; |
| 376 | assert(!snd_interval_empty(i)); | 376 | assert(!snd_interval_empty(i)); |
| @@ -395,7 +395,7 @@ static int snd_interval_refine_min(snd_interval_t *i, unsigned int min, int open | |||
| 395 | return changed; | 395 | return changed; |
| 396 | } | 396 | } |
| 397 | 397 | ||
| 398 | static int snd_interval_refine_max(snd_interval_t *i, unsigned int max, int openmax) | 398 | static int snd_interval_refine_max(struct snd_interval *i, unsigned int max, int openmax) |
| 399 | { | 399 | { |
| 400 | int changed = 0; | 400 | int changed = 0; |
| 401 | assert(!snd_interval_empty(i)); | 401 | assert(!snd_interval_empty(i)); |
| @@ -431,7 +431,7 @@ static int snd_interval_refine_max(snd_interval_t *i, unsigned int max, int open | |||
| 431 | * | 431 | * |
| 432 | * Returns non-zero if the value is changed, zero if not changed. | 432 | * Returns non-zero if the value is changed, zero if not changed. |
| 433 | */ | 433 | */ |
| 434 | int snd_interval_refine(snd_interval_t *i, const snd_interval_t *v) | 434 | int snd_interval_refine(struct snd_interval *i, const struct snd_interval *v) |
| 435 | { | 435 | { |
| 436 | int changed = 0; | 436 | int changed = 0; |
| 437 | assert(!snd_interval_empty(i)); | 437 | assert(!snd_interval_empty(i)); |
| @@ -473,7 +473,7 @@ int snd_interval_refine(snd_interval_t *i, const snd_interval_t *v) | |||
| 473 | return changed; | 473 | return changed; |
| 474 | } | 474 | } |
| 475 | 475 | ||
| 476 | static int snd_interval_refine_first(snd_interval_t *i) | 476 | static int snd_interval_refine_first(struct snd_interval *i) |
| 477 | { | 477 | { |
| 478 | assert(!snd_interval_empty(i)); | 478 | assert(!snd_interval_empty(i)); |
| 479 | if (snd_interval_single(i)) | 479 | if (snd_interval_single(i)) |
| @@ -485,7 +485,7 @@ static int snd_interval_refine_first(snd_interval_t *i) | |||
| 485 | return 1; | 485 | return 1; |
| 486 | } | 486 | } |
| 487 | 487 | ||
| 488 | static int snd_interval_refine_last(snd_interval_t *i) | 488 | static int snd_interval_refine_last(struct snd_interval *i) |
| 489 | { | 489 | { |
| 490 | assert(!snd_interval_empty(i)); | 490 | assert(!snd_interval_empty(i)); |
| 491 | if (snd_interval_single(i)) | 491 | if (snd_interval_single(i)) |
| @@ -497,9 +497,9 @@ static int snd_interval_refine_last(snd_interval_t *i) | |||
| 497 | return 1; | 497 | return 1; |
| 498 | } | 498 | } |
| 499 | 499 | ||
| 500 | static int snd_interval_refine_set(snd_interval_t *i, unsigned int val) | 500 | static int snd_interval_refine_set(struct snd_interval *i, unsigned int val) |
| 501 | { | 501 | { |
| 502 | snd_interval_t t; | 502 | struct snd_interval t; |
| 503 | t.empty = 0; | 503 | t.empty = 0; |
| 504 | t.min = t.max = val; | 504 | t.min = t.max = val; |
| 505 | t.openmin = t.openmax = 0; | 505 | t.openmin = t.openmax = 0; |
| @@ -507,7 +507,7 @@ static int snd_interval_refine_set(snd_interval_t *i, unsigned int val) | |||
| 507 | return snd_interval_refine(i, &t); | 507 | return snd_interval_refine(i, &t); |
| 508 | } | 508 | } |
| 509 | 509 | ||
| 510 | void snd_interval_mul(const snd_interval_t *a, const snd_interval_t *b, snd_interval_t *c) | 510 | void snd_interval_mul(const struct snd_interval *a, const struct snd_interval *b, struct snd_interval *c) |
| 511 | { | 511 | { |
| 512 | if (a->empty || b->empty) { | 512 | if (a->empty || b->empty) { |
| 513 | snd_interval_none(c); | 513 | snd_interval_none(c); |
| @@ -531,7 +531,7 @@ void snd_interval_mul(const snd_interval_t *a, const snd_interval_t *b, snd_inte | |||
| 531 | * | 531 | * |
| 532 | * Returns non-zero if the value is changed, zero if not changed. | 532 | * Returns non-zero if the value is changed, zero if not changed. |
| 533 | */ | 533 | */ |
| 534 | void snd_interval_div(const snd_interval_t *a, const snd_interval_t *b, snd_interval_t *c) | 534 | void snd_interval_div(const struct snd_interval *a, const struct snd_interval *b, struct snd_interval *c) |
| 535 | { | 535 | { |
| 536 | unsigned int r; | 536 | unsigned int r; |
| 537 | if (a->empty || b->empty) { | 537 | if (a->empty || b->empty) { |
| @@ -566,8 +566,8 @@ void snd_interval_div(const snd_interval_t *a, const snd_interval_t *b, snd_inte | |||
| 566 | * | 566 | * |
| 567 | * Returns non-zero if the value is changed, zero if not changed. | 567 | * Returns non-zero if the value is changed, zero if not changed. |
| 568 | */ | 568 | */ |
| 569 | void snd_interval_muldivk(const snd_interval_t *a, const snd_interval_t *b, | 569 | void snd_interval_muldivk(const struct snd_interval *a, const struct snd_interval *b, |
| 570 | unsigned int k, snd_interval_t *c) | 570 | unsigned int k, struct snd_interval *c) |
| 571 | { | 571 | { |
| 572 | unsigned int r; | 572 | unsigned int r; |
| 573 | if (a->empty || b->empty) { | 573 | if (a->empty || b->empty) { |
| @@ -597,8 +597,8 @@ void snd_interval_muldivk(const snd_interval_t *a, const snd_interval_t *b, | |||
| 597 | * | 597 | * |
| 598 | * Returns non-zero if the value is changed, zero if not changed. | 598 | * Returns non-zero if the value is changed, zero if not changed. |
| 599 | */ | 599 | */ |
| 600 | void snd_interval_mulkdiv(const snd_interval_t *a, unsigned int k, | 600 | void snd_interval_mulkdiv(const struct snd_interval *a, unsigned int k, |
| 601 | const snd_interval_t *b, snd_interval_t *c) | 601 | const struct snd_interval *b, struct snd_interval *c) |
| 602 | { | 602 | { |
| 603 | unsigned int r; | 603 | unsigned int r; |
| 604 | if (a->empty || b->empty) { | 604 | if (a->empty || b->empty) { |
| @@ -636,13 +636,13 @@ void snd_interval_mulkdiv(const snd_interval_t *a, unsigned int k, | |||
| 636 | * | 636 | * |
| 637 | * Returns non-zero if the value is changed, zero if not changed. | 637 | * Returns non-zero if the value is changed, zero if not changed. |
| 638 | */ | 638 | */ |
| 639 | int snd_interval_ratnum(snd_interval_t *i, | 639 | int snd_interval_ratnum(struct snd_interval *i, |
| 640 | unsigned int rats_count, ratnum_t *rats, | 640 | unsigned int rats_count, struct snd_ratnum *rats, |
| 641 | unsigned int *nump, unsigned int *denp) | 641 | unsigned int *nump, unsigned int *denp) |
| 642 | { | 642 | { |
| 643 | unsigned int best_num, best_diff, best_den; | 643 | unsigned int best_num, best_diff, best_den; |
| 644 | unsigned int k; | 644 | unsigned int k; |
| 645 | snd_interval_t t; | 645 | struct snd_interval t; |
| 646 | int err; | 646 | int err; |
| 647 | 647 | ||
| 648 | best_num = best_den = best_diff = 0; | 648 | best_num = best_den = best_diff = 0; |
| @@ -731,20 +731,20 @@ int snd_interval_ratnum(snd_interval_t *i, | |||
| 731 | /** | 731 | /** |
| 732 | * snd_interval_ratden - refine the interval value | 732 | * snd_interval_ratden - refine the interval value |
| 733 | * @i: interval to refine | 733 | * @i: interval to refine |
| 734 | * @rats_count: number of ratden_t | 734 | * @rats_count: number of struct ratden |
| 735 | * @rats: ratden_t array | 735 | * @rats: struct ratden array |
| 736 | * @nump: pointer to store the resultant numerator | 736 | * @nump: pointer to store the resultant numerator |
| 737 | * @denp: pointer to store the resultant denominator | 737 | * @denp: pointer to store the resultant denominator |
| 738 | * | 738 | * |
| 739 | * Returns non-zero if the value is changed, zero if not changed. | 739 | * Returns non-zero if the value is changed, zero if not changed. |
| 740 | */ | 740 | */ |
| 741 | static int snd_interval_ratden(snd_interval_t *i, | 741 | static int snd_interval_ratden(struct snd_interval *i, |
| 742 | unsigned int rats_count, ratden_t *rats, | 742 | unsigned int rats_count, struct snd_ratden *rats, |
| 743 | unsigned int *nump, unsigned int *denp) | 743 | unsigned int *nump, unsigned int *denp) |
| 744 | { | 744 | { |
| 745 | unsigned int best_num, best_diff, best_den; | 745 | unsigned int best_num, best_diff, best_den; |
| 746 | unsigned int k; | 746 | unsigned int k; |
| 747 | snd_interval_t t; | 747 | struct snd_interval t; |
| 748 | int err; | 748 | int err; |
| 749 | 749 | ||
| 750 | best_num = best_den = best_diff = 0; | 750 | best_num = best_den = best_diff = 0; |
| @@ -837,7 +837,7 @@ static int snd_interval_ratden(snd_interval_t *i, | |||
| 837 | * | 837 | * |
| 838 | * Returns non-zero if the value is changed, zero if not changed. | 838 | * Returns non-zero if the value is changed, zero if not changed. |
| 839 | */ | 839 | */ |
| 840 | int snd_interval_list(snd_interval_t *i, unsigned int count, unsigned int *list, unsigned int mask) | 840 | int snd_interval_list(struct snd_interval *i, unsigned int count, unsigned int *list, unsigned int mask) |
| 841 | { | 841 | { |
| 842 | unsigned int k; | 842 | unsigned int k; |
| 843 | int changed = 0; | 843 | int changed = 0; |
| @@ -878,7 +878,7 @@ int snd_interval_list(snd_interval_t *i, unsigned int count, unsigned int *list, | |||
| 878 | return changed; | 878 | return changed; |
| 879 | } | 879 | } |
| 880 | 880 | ||
| 881 | static int snd_interval_step(snd_interval_t *i, unsigned int min, unsigned int step) | 881 | static int snd_interval_step(struct snd_interval *i, unsigned int min, unsigned int step) |
| 882 | { | 882 | { |
| 883 | unsigned int n; | 883 | unsigned int n; |
| 884 | int changed = 0; | 884 | int changed = 0; |
| @@ -912,18 +912,18 @@ static int snd_interval_step(snd_interval_t *i, unsigned int min, unsigned int s | |||
| 912 | * | 912 | * |
| 913 | * Returns zero if successful, or a negative error code on failure. | 913 | * Returns zero if successful, or a negative error code on failure. |
| 914 | */ | 914 | */ |
| 915 | int snd_pcm_hw_rule_add(snd_pcm_runtime_t *runtime, unsigned int cond, | 915 | int snd_pcm_hw_rule_add(struct snd_pcm_runtime *runtime, unsigned int cond, |
| 916 | int var, | 916 | int var, |
| 917 | snd_pcm_hw_rule_func_t func, void *private, | 917 | snd_pcm_hw_rule_func_t func, void *private, |
| 918 | int dep, ...) | 918 | int dep, ...) |
| 919 | { | 919 | { |
| 920 | snd_pcm_hw_constraints_t *constrs = &runtime->hw_constraints; | 920 | struct snd_pcm_hw_constraints *constrs = &runtime->hw_constraints; |
| 921 | snd_pcm_hw_rule_t *c; | 921 | struct snd_pcm_hw_rule *c; |
| 922 | unsigned int k; | 922 | unsigned int k; |
| 923 | va_list args; | 923 | va_list args; |
| 924 | va_start(args, dep); | 924 | va_start(args, dep); |
| 925 | if (constrs->rules_num >= constrs->rules_all) { | 925 | if (constrs->rules_num >= constrs->rules_all) { |
| 926 | snd_pcm_hw_rule_t *new; | 926 | struct snd_pcm_hw_rule *new; |
| 927 | unsigned int new_rules = constrs->rules_all + 16; | 927 | unsigned int new_rules = constrs->rules_all + 16; |
| 928 | new = kcalloc(new_rules, sizeof(*c), GFP_KERNEL); | 928 | new = kcalloc(new_rules, sizeof(*c), GFP_KERNEL); |
| 929 | if (!new) | 929 | if (!new) |
| @@ -962,11 +962,11 @@ int snd_pcm_hw_rule_add(snd_pcm_runtime_t *runtime, unsigned int cond, | |||
| 962 | * | 962 | * |
| 963 | * Apply the constraint of the given bitmap mask to a mask parameter. | 963 | * Apply the constraint of the given bitmap mask to a mask parameter. |
| 964 | */ | 964 | */ |
| 965 | int snd_pcm_hw_constraint_mask(snd_pcm_runtime_t *runtime, snd_pcm_hw_param_t var, | 965 | int snd_pcm_hw_constraint_mask(struct snd_pcm_runtime *runtime, snd_pcm_hw_param_t var, |
| 966 | u_int32_t mask) | 966 | u_int32_t mask) |
| 967 | { | 967 | { |
| 968 | snd_pcm_hw_constraints_t *constrs = &runtime->hw_constraints; | 968 | struct snd_pcm_hw_constraints *constrs = &runtime->hw_constraints; |
| 969 | snd_mask_t *maskp = constrs_mask(constrs, var); | 969 | struct snd_mask *maskp = constrs_mask(constrs, var); |
| 970 | *maskp->bits &= mask; | 970 | *maskp->bits &= mask; |
| 971 | memset(maskp->bits + 1, 0, (SNDRV_MASK_MAX-32) / 8); /* clear rest */ | 971 | memset(maskp->bits + 1, 0, (SNDRV_MASK_MAX-32) / 8); /* clear rest */ |
| 972 | if (*maskp->bits == 0) | 972 | if (*maskp->bits == 0) |
| @@ -982,11 +982,11 @@ int snd_pcm_hw_constraint_mask(snd_pcm_runtime_t *runtime, snd_pcm_hw_param_t va | |||
| 982 | * | 982 | * |
| 983 | * Apply the constraint of the given bitmap mask to a mask parameter. | 983 | * Apply the constraint of the given bitmap mask to a mask parameter. |
| 984 | */ | 984 | */ |
| 985 | int snd_pcm_hw_constraint_mask64(snd_pcm_runtime_t *runtime, snd_pcm_hw_param_t var, | 985 | int snd_pcm_hw_constraint_mask64(struct snd_pcm_runtime *runtime, snd_pcm_hw_param_t var, |
| 986 | u_int64_t mask) | 986 | u_int64_t mask) |
| 987 | { | 987 | { |
| 988 | snd_pcm_hw_constraints_t *constrs = &runtime->hw_constraints; | 988 | struct snd_pcm_hw_constraints *constrs = &runtime->hw_constraints; |
| 989 | snd_mask_t *maskp = constrs_mask(constrs, var); | 989 | struct snd_mask *maskp = constrs_mask(constrs, var); |
| 990 | maskp->bits[0] &= (u_int32_t)mask; | 990 | maskp->bits[0] &= (u_int32_t)mask; |
| 991 | maskp->bits[1] &= (u_int32_t)(mask >> 32); | 991 | maskp->bits[1] &= (u_int32_t)(mask >> 32); |
| 992 | memset(maskp->bits + 2, 0, (SNDRV_MASK_MAX-64) / 8); /* clear rest */ | 992 | memset(maskp->bits + 2, 0, (SNDRV_MASK_MAX-64) / 8); /* clear rest */ |
| @@ -1002,9 +1002,9 @@ int snd_pcm_hw_constraint_mask64(snd_pcm_runtime_t *runtime, snd_pcm_hw_param_t | |||
| 1002 | * | 1002 | * |
| 1003 | * Apply the constraint of integer to an interval parameter. | 1003 | * Apply the constraint of integer to an interval parameter. |
| 1004 | */ | 1004 | */ |
| 1005 | int snd_pcm_hw_constraint_integer(snd_pcm_runtime_t *runtime, snd_pcm_hw_param_t var) | 1005 | int snd_pcm_hw_constraint_integer(struct snd_pcm_runtime *runtime, snd_pcm_hw_param_t var) |
| 1006 | { | 1006 | { |
| 1007 | snd_pcm_hw_constraints_t *constrs = &runtime->hw_constraints; | 1007 | struct snd_pcm_hw_constraints *constrs = &runtime->hw_constraints; |
| 1008 | return snd_interval_setinteger(constrs_interval(constrs, var)); | 1008 | return snd_interval_setinteger(constrs_interval(constrs, var)); |
| 1009 | } | 1009 | } |
| 1010 | 1010 | ||
| @@ -1017,11 +1017,11 @@ int snd_pcm_hw_constraint_integer(snd_pcm_runtime_t *runtime, snd_pcm_hw_param_t | |||
| 1017 | * | 1017 | * |
| 1018 | * Apply the min/max range constraint to an interval parameter. | 1018 | * Apply the min/max range constraint to an interval parameter. |
| 1019 | */ | 1019 | */ |
| 1020 | int snd_pcm_hw_constraint_minmax(snd_pcm_runtime_t *runtime, snd_pcm_hw_param_t var, | 1020 | int snd_pcm_hw_constraint_minmax(struct snd_pcm_runtime *runtime, snd_pcm_hw_param_t var, |
| 1021 | unsigned int min, unsigned int max) | 1021 | unsigned int min, unsigned int max) |
| 1022 | { | 1022 | { |
| 1023 | snd_pcm_hw_constraints_t *constrs = &runtime->hw_constraints; | 1023 | struct snd_pcm_hw_constraints *constrs = &runtime->hw_constraints; |
| 1024 | snd_interval_t t; | 1024 | struct snd_interval t; |
| 1025 | t.min = min; | 1025 | t.min = min; |
| 1026 | t.max = max; | 1026 | t.max = max; |
| 1027 | t.openmin = t.openmax = 0; | 1027 | t.openmin = t.openmax = 0; |
| @@ -1029,10 +1029,10 @@ int snd_pcm_hw_constraint_minmax(snd_pcm_runtime_t *runtime, snd_pcm_hw_param_t | |||
| 1029 | return snd_interval_refine(constrs_interval(constrs, var), &t); | 1029 | return snd_interval_refine(constrs_interval(constrs, var), &t); |
| 1030 | } | 1030 | } |
| 1031 | 1031 | ||
| 1032 | static int snd_pcm_hw_rule_list(snd_pcm_hw_params_t *params, | 1032 | static int snd_pcm_hw_rule_list(struct snd_pcm_hw_params *params, |
| 1033 | snd_pcm_hw_rule_t *rule) | 1033 | struct snd_pcm_hw_rule *rule) |
| 1034 | { | 1034 | { |
| 1035 | snd_pcm_hw_constraint_list_t *list = rule->private; | 1035 | struct snd_pcm_hw_constraint_list *list = rule->private; |
| 1036 | return snd_interval_list(hw_param_interval(params, rule->var), list->count, list->list, list->mask); | 1036 | return snd_interval_list(hw_param_interval(params, rule->var), list->count, list->list, list->mask); |
| 1037 | } | 1037 | } |
| 1038 | 1038 | ||
| @@ -1046,20 +1046,20 @@ static int snd_pcm_hw_rule_list(snd_pcm_hw_params_t *params, | |||
| 1046 | * | 1046 | * |
| 1047 | * Apply the list of constraints to an interval parameter. | 1047 | * Apply the list of constraints to an interval parameter. |
| 1048 | */ | 1048 | */ |
| 1049 | int snd_pcm_hw_constraint_list(snd_pcm_runtime_t *runtime, | 1049 | int snd_pcm_hw_constraint_list(struct snd_pcm_runtime *runtime, |
| 1050 | unsigned int cond, | 1050 | unsigned int cond, |
| 1051 | snd_pcm_hw_param_t var, | 1051 | snd_pcm_hw_param_t var, |
| 1052 | snd_pcm_hw_constraint_list_t *l) | 1052 | struct snd_pcm_hw_constraint_list *l) |
| 1053 | { | 1053 | { |
| 1054 | return snd_pcm_hw_rule_add(runtime, cond, var, | 1054 | return snd_pcm_hw_rule_add(runtime, cond, var, |
| 1055 | snd_pcm_hw_rule_list, l, | 1055 | snd_pcm_hw_rule_list, l, |
| 1056 | var, -1); | 1056 | var, -1); |
| 1057 | } | 1057 | } |
| 1058 | 1058 | ||
| 1059 | static int snd_pcm_hw_rule_ratnums(snd_pcm_hw_params_t *params, | 1059 | static int snd_pcm_hw_rule_ratnums(struct snd_pcm_hw_params *params, |
| 1060 | snd_pcm_hw_rule_t *rule) | 1060 | struct snd_pcm_hw_rule *rule) |
| 1061 | { | 1061 | { |
| 1062 | snd_pcm_hw_constraint_ratnums_t *r = rule->private; | 1062 | struct snd_pcm_hw_constraint_ratnums *r = rule->private; |
| 1063 | unsigned int num = 0, den = 0; | 1063 | unsigned int num = 0, den = 0; |
| 1064 | int err; | 1064 | int err; |
| 1065 | err = snd_interval_ratnum(hw_param_interval(params, rule->var), | 1065 | err = snd_interval_ratnum(hw_param_interval(params, rule->var), |
| @@ -1076,22 +1076,22 @@ static int snd_pcm_hw_rule_ratnums(snd_pcm_hw_params_t *params, | |||
| 1076 | * @runtime: PCM runtime instance | 1076 | * @runtime: PCM runtime instance |
| 1077 | * @cond: condition bits | 1077 | * @cond: condition bits |
| 1078 | * @var: hw_params variable to apply the ratnums constraint | 1078 | * @var: hw_params variable to apply the ratnums constraint |
| 1079 | * @r: ratnums_t constriants | 1079 | * @r: struct snd_ratnums constriants |
| 1080 | */ | 1080 | */ |
| 1081 | int snd_pcm_hw_constraint_ratnums(snd_pcm_runtime_t *runtime, | 1081 | int snd_pcm_hw_constraint_ratnums(struct snd_pcm_runtime *runtime, |
| 1082 | unsigned int cond, | 1082 | unsigned int cond, |
| 1083 | snd_pcm_hw_param_t var, | 1083 | snd_pcm_hw_param_t var, |
| 1084 | snd_pcm_hw_constraint_ratnums_t *r) | 1084 | struct snd_pcm_hw_constraint_ratnums *r) |
| 1085 | { | 1085 | { |
| 1086 | return snd_pcm_hw_rule_add(runtime, cond, var, | 1086 | return snd_pcm_hw_rule_add(runtime, cond, var, |
| 1087 | snd_pcm_hw_rule_ratnums, r, | 1087 | snd_pcm_hw_rule_ratnums, r, |
| 1088 | var, -1); | 1088 | var, -1); |
| 1089 | } | 1089 | } |
| 1090 | 1090 | ||
| 1091 | static int snd_pcm_hw_rule_ratdens(snd_pcm_hw_params_t *params, | 1091 | static int snd_pcm_hw_rule_ratdens(struct snd_pcm_hw_params *params, |
| 1092 | snd_pcm_hw_rule_t *rule) | 1092 | struct snd_pcm_hw_rule *rule) |
| 1093 | { | 1093 | { |
| 1094 | snd_pcm_hw_constraint_ratdens_t *r = rule->private; | 1094 | struct snd_pcm_hw_constraint_ratdens *r = rule->private; |
| 1095 | unsigned int num = 0, den = 0; | 1095 | unsigned int num = 0, den = 0; |
| 1096 | int err = snd_interval_ratden(hw_param_interval(params, rule->var), | 1096 | int err = snd_interval_ratden(hw_param_interval(params, rule->var), |
| 1097 | r->nrats, r->rats, &num, &den); | 1097 | r->nrats, r->rats, &num, &den); |
| @@ -1107,25 +1107,25 @@ static int snd_pcm_hw_rule_ratdens(snd_pcm_hw_params_t *params, | |||
| 1107 | * @runtime: PCM runtime instance | 1107 | * @runtime: PCM runtime instance |
| 1108 | * @cond: condition bits | 1108 | * @cond: condition bits |
| 1109 | * @var: hw_params variable to apply the ratdens constraint | 1109 | * @var: hw_params variable to apply the ratdens constraint |
| 1110 | * @r: ratdens_t constriants | 1110 | * @r: struct snd_ratdens constriants |
| 1111 | */ | 1111 | */ |
| 1112 | int snd_pcm_hw_constraint_ratdens(snd_pcm_runtime_t *runtime, | 1112 | int snd_pcm_hw_constraint_ratdens(struct snd_pcm_runtime *runtime, |
| 1113 | unsigned int cond, | 1113 | unsigned int cond, |
| 1114 | snd_pcm_hw_param_t var, | 1114 | snd_pcm_hw_param_t var, |
| 1115 | snd_pcm_hw_constraint_ratdens_t *r) | 1115 | struct snd_pcm_hw_constraint_ratdens *r) |
| 1116 | { | 1116 | { |
| 1117 | return snd_pcm_hw_rule_add(runtime, cond, var, | 1117 | return snd_pcm_hw_rule_add(runtime, cond, var, |
| 1118 | snd_pcm_hw_rule_ratdens, r, | 1118 | snd_pcm_hw_rule_ratdens, r, |
| 1119 | var, -1); | 1119 | var, -1); |
| 1120 | } | 1120 | } |
| 1121 | 1121 | ||
| 1122 | static int snd_pcm_hw_rule_msbits(snd_pcm_hw_params_t *params, | 1122 | static int snd_pcm_hw_rule_msbits(struct snd_pcm_hw_params *params, |
| 1123 | snd_pcm_hw_rule_t *rule) | 1123 | struct snd_pcm_hw_rule *rule) |
| 1124 | { | 1124 | { |
| 1125 | unsigned int l = (unsigned long) rule->private; | 1125 | unsigned int l = (unsigned long) rule->private; |
| 1126 | int width = l & 0xffff; | 1126 | int width = l & 0xffff; |
| 1127 | unsigned int msbits = l >> 16; | 1127 | unsigned int msbits = l >> 16; |
| 1128 | snd_interval_t *i = hw_param_interval(params, SNDRV_PCM_HW_PARAM_SAMPLE_BITS); | 1128 | struct snd_interval *i = hw_param_interval(params, SNDRV_PCM_HW_PARAM_SAMPLE_BITS); |
| 1129 | if (snd_interval_single(i) && snd_interval_value(i) == width) | 1129 | if (snd_interval_single(i) && snd_interval_value(i) == width) |
| 1130 | params->msbits = msbits; | 1130 | params->msbits = msbits; |
| 1131 | return 0; | 1131 | return 0; |
| @@ -1138,7 +1138,7 @@ static int snd_pcm_hw_rule_msbits(snd_pcm_hw_params_t *params, | |||
| 1138 | * @width: sample bits width | 1138 | * @width: sample bits width |
| 1139 | * @msbits: msbits width | 1139 | * @msbits: msbits width |
| 1140 | */ | 1140 | */ |
| 1141 | int snd_pcm_hw_constraint_msbits(snd_pcm_runtime_t *runtime, | 1141 | int snd_pcm_hw_constraint_msbits(struct snd_pcm_runtime *runtime, |
| 1142 | unsigned int cond, | 1142 | unsigned int cond, |
| 1143 | unsigned int width, | 1143 | unsigned int width, |
| 1144 | unsigned int msbits) | 1144 | unsigned int msbits) |
| @@ -1150,8 +1150,8 @@ int snd_pcm_hw_constraint_msbits(snd_pcm_runtime_t *runtime, | |||
| 1150 | SNDRV_PCM_HW_PARAM_SAMPLE_BITS, -1); | 1150 | SNDRV_PCM_HW_PARAM_SAMPLE_BITS, -1); |
| 1151 | } | 1151 | } |
| 1152 | 1152 | ||
| 1153 | static int snd_pcm_hw_rule_step(snd_pcm_hw_params_t *params, | 1153 | static int snd_pcm_hw_rule_step(struct snd_pcm_hw_params *params, |
| 1154 | snd_pcm_hw_rule_t *rule) | 1154 | struct snd_pcm_hw_rule *rule) |
| 1155 | { | 1155 | { |
| 1156 | unsigned long step = (unsigned long) rule->private; | 1156 | unsigned long step = (unsigned long) rule->private; |
| 1157 | return snd_interval_step(hw_param_interval(params, rule->var), 0, step); | 1157 | return snd_interval_step(hw_param_interval(params, rule->var), 0, step); |
| @@ -1164,7 +1164,7 @@ static int snd_pcm_hw_rule_step(snd_pcm_hw_params_t *params, | |||
| 1164 | * @var: hw_params variable to apply the step constraint | 1164 | * @var: hw_params variable to apply the step constraint |
| 1165 | * @step: step size | 1165 | * @step: step size |
| 1166 | */ | 1166 | */ |
| 1167 | int snd_pcm_hw_constraint_step(snd_pcm_runtime_t *runtime, | 1167 | int snd_pcm_hw_constraint_step(struct snd_pcm_runtime *runtime, |
| 1168 | unsigned int cond, | 1168 | unsigned int cond, |
| 1169 | snd_pcm_hw_param_t var, | 1169 | snd_pcm_hw_param_t var, |
| 1170 | unsigned long step) | 1170 | unsigned long step) |
| @@ -1174,7 +1174,7 @@ int snd_pcm_hw_constraint_step(snd_pcm_runtime_t *runtime, | |||
| 1174 | var, -1); | 1174 | var, -1); |
| 1175 | } | 1175 | } |
| 1176 | 1176 | ||
| 1177 | static int snd_pcm_hw_rule_pow2(snd_pcm_hw_params_t *params, snd_pcm_hw_rule_t *rule) | 1177 | static int snd_pcm_hw_rule_pow2(struct snd_pcm_hw_params *params, struct snd_pcm_hw_rule *rule) |
| 1178 | { | 1178 | { |
| 1179 | static int pow2_sizes[] = { | 1179 | static int pow2_sizes[] = { |
| 1180 | 1<<0, 1<<1, 1<<2, 1<<3, 1<<4, 1<<5, 1<<6, 1<<7, | 1180 | 1<<0, 1<<1, 1<<2, 1<<3, 1<<4, 1<<5, 1<<6, 1<<7, |
| @@ -1192,7 +1192,7 @@ static int snd_pcm_hw_rule_pow2(snd_pcm_hw_params_t *params, snd_pcm_hw_rule_t * | |||
| 1192 | * @cond: condition bits | 1192 | * @cond: condition bits |
| 1193 | * @var: hw_params variable to apply the power-of-2 constraint | 1193 | * @var: hw_params variable to apply the power-of-2 constraint |
| 1194 | */ | 1194 | */ |
| 1195 | int snd_pcm_hw_constraint_pow2(snd_pcm_runtime_t *runtime, | 1195 | int snd_pcm_hw_constraint_pow2(struct snd_pcm_runtime *runtime, |
| 1196 | unsigned int cond, | 1196 | unsigned int cond, |
| 1197 | snd_pcm_hw_param_t var) | 1197 | snd_pcm_hw_param_t var) |
| 1198 | { | 1198 | { |
| @@ -1202,13 +1202,12 @@ int snd_pcm_hw_constraint_pow2(snd_pcm_runtime_t *runtime, | |||
| 1202 | } | 1202 | } |
| 1203 | 1203 | ||
| 1204 | /* To use the same code we have in alsa-lib */ | 1204 | /* To use the same code we have in alsa-lib */ |
| 1205 | #define snd_pcm_t snd_pcm_substream_t | ||
| 1206 | #define assert(i) snd_assert((i), return -EINVAL) | 1205 | #define assert(i) snd_assert((i), return -EINVAL) |
| 1207 | #ifndef INT_MIN | 1206 | #ifndef INT_MIN |
| 1208 | #define INT_MIN ((int)((unsigned int)INT_MAX+1)) | 1207 | #define INT_MIN ((int)((unsigned int)INT_MAX+1)) |
| 1209 | #endif | 1208 | #endif |
| 1210 | 1209 | ||
| 1211 | static void _snd_pcm_hw_param_any(snd_pcm_hw_params_t *params, | 1210 | static void _snd_pcm_hw_param_any(struct snd_pcm_hw_params *params, |
| 1212 | snd_pcm_hw_param_t var) | 1211 | snd_pcm_hw_param_t var) |
| 1213 | { | 1212 | { |
| 1214 | if (hw_is_mask(var)) { | 1213 | if (hw_is_mask(var)) { |
| @@ -1230,7 +1229,7 @@ static void _snd_pcm_hw_param_any(snd_pcm_hw_params_t *params, | |||
| 1230 | /* | 1229 | /* |
| 1231 | * snd_pcm_hw_param_any | 1230 | * snd_pcm_hw_param_any |
| 1232 | */ | 1231 | */ |
| 1233 | int snd_pcm_hw_param_any(snd_pcm_t *pcm, snd_pcm_hw_params_t *params, | 1232 | int snd_pcm_hw_param_any(struct snd_pcm_substream *pcm, struct snd_pcm_hw_params *params, |
| 1234 | snd_pcm_hw_param_t var) | 1233 | snd_pcm_hw_param_t var) |
| 1235 | { | 1234 | { |
| 1236 | _snd_pcm_hw_param_any(params, var); | 1235 | _snd_pcm_hw_param_any(params, var); |
| @@ -1238,7 +1237,7 @@ int snd_pcm_hw_param_any(snd_pcm_t *pcm, snd_pcm_hw_params_t *params, | |||
| 1238 | } | 1237 | } |
| 1239 | #endif /* 0 */ | 1238 | #endif /* 0 */ |
| 1240 | 1239 | ||
| 1241 | void _snd_pcm_hw_params_any(snd_pcm_hw_params_t *params) | 1240 | void _snd_pcm_hw_params_any(struct snd_pcm_hw_params *params) |
| 1242 | { | 1241 | { |
| 1243 | unsigned int k; | 1242 | unsigned int k; |
| 1244 | memset(params, 0, sizeof(*params)); | 1243 | memset(params, 0, sizeof(*params)); |
| @@ -1255,7 +1254,7 @@ void _snd_pcm_hw_params_any(snd_pcm_hw_params_t *params) | |||
| 1255 | * | 1254 | * |
| 1256 | * Fill PARAMS with full configuration space boundaries | 1255 | * Fill PARAMS with full configuration space boundaries |
| 1257 | */ | 1256 | */ |
| 1258 | int snd_pcm_hw_params_any(snd_pcm_t *pcm, snd_pcm_hw_params_t *params) | 1257 | int snd_pcm_hw_params_any(struct snd_pcm_substream *pcm, struct snd_pcm_hw_params *params) |
| 1259 | { | 1258 | { |
| 1260 | _snd_pcm_hw_params_any(params); | 1259 | _snd_pcm_hw_params_any(params); |
| 1261 | return snd_pcm_hw_refine(pcm, params); | 1260 | return snd_pcm_hw_refine(pcm, params); |
| @@ -1271,11 +1270,11 @@ int snd_pcm_hw_params_any(snd_pcm_t *pcm, snd_pcm_hw_params_t *params) | |||
| 1271 | * Return the value for field PAR if it's fixed in configuration space | 1270 | * Return the value for field PAR if it's fixed in configuration space |
| 1272 | * defined by PARAMS. Return -EINVAL otherwise | 1271 | * defined by PARAMS. Return -EINVAL otherwise |
| 1273 | */ | 1272 | */ |
| 1274 | static int snd_pcm_hw_param_value(const snd_pcm_hw_params_t *params, | 1273 | static int snd_pcm_hw_param_value(const struct snd_pcm_hw_params *params, |
| 1275 | snd_pcm_hw_param_t var, int *dir) | 1274 | snd_pcm_hw_param_t var, int *dir) |
| 1276 | { | 1275 | { |
| 1277 | if (hw_is_mask(var)) { | 1276 | if (hw_is_mask(var)) { |
| 1278 | const snd_mask_t *mask = hw_param_mask_c(params, var); | 1277 | const struct snd_mask *mask = hw_param_mask_c(params, var); |
| 1279 | if (!snd_mask_single(mask)) | 1278 | if (!snd_mask_single(mask)) |
| 1280 | return -EINVAL; | 1279 | return -EINVAL; |
| 1281 | if (dir) | 1280 | if (dir) |
| @@ -1283,7 +1282,7 @@ static int snd_pcm_hw_param_value(const snd_pcm_hw_params_t *params, | |||
| 1283 | return snd_mask_value(mask); | 1282 | return snd_mask_value(mask); |
| 1284 | } | 1283 | } |
| 1285 | if (hw_is_interval(var)) { | 1284 | if (hw_is_interval(var)) { |
| 1286 | const snd_interval_t *i = hw_param_interval_c(params, var); | 1285 | const struct snd_interval *i = hw_param_interval_c(params, var); |
| 1287 | if (!snd_interval_single(i)) | 1286 | if (!snd_interval_single(i)) |
| 1288 | return -EINVAL; | 1287 | return -EINVAL; |
| 1289 | if (dir) | 1288 | if (dir) |
| @@ -1302,7 +1301,7 @@ static int snd_pcm_hw_param_value(const snd_pcm_hw_params_t *params, | |||
| 1302 | * | 1301 | * |
| 1303 | * Return the minimum value for field PAR. | 1302 | * Return the minimum value for field PAR. |
| 1304 | */ | 1303 | */ |
| 1305 | unsigned int snd_pcm_hw_param_value_min(const snd_pcm_hw_params_t *params, | 1304 | unsigned int snd_pcm_hw_param_value_min(const struct snd_pcm_hw_params *params, |
| 1306 | snd_pcm_hw_param_t var, int *dir) | 1305 | snd_pcm_hw_param_t var, int *dir) |
| 1307 | { | 1306 | { |
| 1308 | if (hw_is_mask(var)) { | 1307 | if (hw_is_mask(var)) { |
| @@ -1311,7 +1310,7 @@ unsigned int snd_pcm_hw_param_value_min(const snd_pcm_hw_params_t *params, | |||
| 1311 | return snd_mask_min(hw_param_mask_c(params, var)); | 1310 | return snd_mask_min(hw_param_mask_c(params, var)); |
| 1312 | } | 1311 | } |
| 1313 | if (hw_is_interval(var)) { | 1312 | if (hw_is_interval(var)) { |
| 1314 | const snd_interval_t *i = hw_param_interval_c(params, var); | 1313 | const struct snd_interval *i = hw_param_interval_c(params, var); |
| 1315 | if (dir) | 1314 | if (dir) |
| 1316 | *dir = i->openmin; | 1315 | *dir = i->openmin; |
| 1317 | return snd_interval_min(i); | 1316 | return snd_interval_min(i); |
| @@ -1328,7 +1327,7 @@ unsigned int snd_pcm_hw_param_value_min(const snd_pcm_hw_params_t *params, | |||
| 1328 | * | 1327 | * |
| 1329 | * Return the maximum value for field PAR. | 1328 | * Return the maximum value for field PAR. |
| 1330 | */ | 1329 | */ |
| 1331 | unsigned int snd_pcm_hw_param_value_max(const snd_pcm_hw_params_t *params, | 1330 | unsigned int snd_pcm_hw_param_value_max(const struct snd_pcm_hw_params *params, |
| 1332 | snd_pcm_hw_param_t var, int *dir) | 1331 | snd_pcm_hw_param_t var, int *dir) |
| 1333 | { | 1332 | { |
| 1334 | if (hw_is_mask(var)) { | 1333 | if (hw_is_mask(var)) { |
| @@ -1337,7 +1336,7 @@ unsigned int snd_pcm_hw_param_value_max(const snd_pcm_hw_params_t *params, | |||
| 1337 | return snd_mask_max(hw_param_mask_c(params, var)); | 1336 | return snd_mask_max(hw_param_mask_c(params, var)); |
| 1338 | } | 1337 | } |
| 1339 | if (hw_is_interval(var)) { | 1338 | if (hw_is_interval(var)) { |
| 1340 | const snd_interval_t *i = hw_param_interval_c(params, var); | 1339 | const struct snd_interval *i = hw_param_interval_c(params, var); |
| 1341 | if (dir) | 1340 | if (dir) |
| 1342 | *dir = - (int) i->openmax; | 1341 | *dir = - (int) i->openmax; |
| 1343 | return snd_interval_max(i); | 1342 | return snd_interval_max(i); |
| @@ -1346,7 +1345,7 @@ unsigned int snd_pcm_hw_param_value_max(const snd_pcm_hw_params_t *params, | |||
| 1346 | return -EINVAL; | 1345 | return -EINVAL; |
| 1347 | } | 1346 | } |
| 1348 | 1347 | ||
| 1349 | void _snd_pcm_hw_param_setempty(snd_pcm_hw_params_t *params, | 1348 | void _snd_pcm_hw_param_setempty(struct snd_pcm_hw_params *params, |
| 1350 | snd_pcm_hw_param_t var) | 1349 | snd_pcm_hw_param_t var) |
| 1351 | { | 1350 | { |
| 1352 | if (hw_is_mask(var)) { | 1351 | if (hw_is_mask(var)) { |
| @@ -1362,7 +1361,7 @@ void _snd_pcm_hw_param_setempty(snd_pcm_hw_params_t *params, | |||
| 1362 | } | 1361 | } |
| 1363 | } | 1362 | } |
| 1364 | 1363 | ||
| 1365 | int _snd_pcm_hw_param_setinteger(snd_pcm_hw_params_t *params, | 1364 | int _snd_pcm_hw_param_setinteger(struct snd_pcm_hw_params *params, |
| 1366 | snd_pcm_hw_param_t var) | 1365 | snd_pcm_hw_param_t var) |
| 1367 | { | 1366 | { |
| 1368 | int changed; | 1367 | int changed; |
| @@ -1383,8 +1382,8 @@ int _snd_pcm_hw_param_setinteger(snd_pcm_hw_params_t *params, | |||
| 1383 | * non integer values. Reduce configuration space accordingly. | 1382 | * non integer values. Reduce configuration space accordingly. |
| 1384 | * Return -EINVAL if the configuration space is empty | 1383 | * Return -EINVAL if the configuration space is empty |
| 1385 | */ | 1384 | */ |
| 1386 | int snd_pcm_hw_param_setinteger(snd_pcm_t *pcm, | 1385 | int snd_pcm_hw_param_setinteger(struct snd_pcm_substream *pcm, |
| 1387 | snd_pcm_hw_params_t *params, | 1386 | struct snd_pcm_hw_params *params, |
| 1388 | snd_pcm_hw_param_t var) | 1387 | snd_pcm_hw_param_t var) |
| 1389 | { | 1388 | { |
| 1390 | int changed = _snd_pcm_hw_param_setinteger(params, var); | 1389 | int changed = _snd_pcm_hw_param_setinteger(params, var); |
| @@ -1399,7 +1398,7 @@ int snd_pcm_hw_param_setinteger(snd_pcm_t *pcm, | |||
| 1399 | } | 1398 | } |
| 1400 | #endif /* 0 */ | 1399 | #endif /* 0 */ |
| 1401 | 1400 | ||
| 1402 | static int _snd_pcm_hw_param_first(snd_pcm_hw_params_t *params, | 1401 | static int _snd_pcm_hw_param_first(struct snd_pcm_hw_params *params, |
| 1403 | snd_pcm_hw_param_t var) | 1402 | snd_pcm_hw_param_t var) |
| 1404 | { | 1403 | { |
| 1405 | int changed; | 1404 | int changed; |
| @@ -1430,8 +1429,8 @@ static int _snd_pcm_hw_param_first(snd_pcm_hw_params_t *params, | |||
| 1430 | * values > minimum. Reduce configuration space accordingly. | 1429 | * values > minimum. Reduce configuration space accordingly. |
| 1431 | * Return the minimum. | 1430 | * Return the minimum. |
| 1432 | */ | 1431 | */ |
| 1433 | static int snd_pcm_hw_param_first(snd_pcm_t *pcm, | 1432 | static int snd_pcm_hw_param_first(struct snd_pcm_substream *pcm, |
| 1434 | snd_pcm_hw_params_t *params, | 1433 | struct snd_pcm_hw_params *params, |
| 1435 | snd_pcm_hw_param_t var, int *dir) | 1434 | snd_pcm_hw_param_t var, int *dir) |
| 1436 | { | 1435 | { |
| 1437 | int changed = _snd_pcm_hw_param_first(params, var); | 1436 | int changed = _snd_pcm_hw_param_first(params, var); |
| @@ -1444,7 +1443,7 @@ static int snd_pcm_hw_param_first(snd_pcm_t *pcm, | |||
| 1444 | return snd_pcm_hw_param_value(params, var, dir); | 1443 | return snd_pcm_hw_param_value(params, var, dir); |
| 1445 | } | 1444 | } |
| 1446 | 1445 | ||
| 1447 | static int _snd_pcm_hw_param_last(snd_pcm_hw_params_t *params, | 1446 | static int _snd_pcm_hw_param_last(struct snd_pcm_hw_params *params, |
| 1448 | snd_pcm_hw_param_t var) | 1447 | snd_pcm_hw_param_t var) |
| 1449 | { | 1448 | { |
| 1450 | int changed; | 1449 | int changed; |
| @@ -1475,8 +1474,8 @@ static int _snd_pcm_hw_param_last(snd_pcm_hw_params_t *params, | |||
| 1475 | * values < maximum. Reduce configuration space accordingly. | 1474 | * values < maximum. Reduce configuration space accordingly. |
| 1476 | * Return the maximum. | 1475 | * Return the maximum. |
| 1477 | */ | 1476 | */ |
| 1478 | static int snd_pcm_hw_param_last(snd_pcm_t *pcm, | 1477 | static int snd_pcm_hw_param_last(struct snd_pcm_substream *pcm, |
| 1479 | snd_pcm_hw_params_t *params, | 1478 | struct snd_pcm_hw_params *params, |
| 1480 | snd_pcm_hw_param_t var, int *dir) | 1479 | snd_pcm_hw_param_t var, int *dir) |
| 1481 | { | 1480 | { |
| 1482 | int changed = _snd_pcm_hw_param_last(params, var); | 1481 | int changed = _snd_pcm_hw_param_last(params, var); |
| @@ -1489,7 +1488,7 @@ static int snd_pcm_hw_param_last(snd_pcm_t *pcm, | |||
| 1489 | return snd_pcm_hw_param_value(params, var, dir); | 1488 | return snd_pcm_hw_param_value(params, var, dir); |
| 1490 | } | 1489 | } |
| 1491 | 1490 | ||
| 1492 | int _snd_pcm_hw_param_min(snd_pcm_hw_params_t *params, | 1491 | int _snd_pcm_hw_param_min(struct snd_pcm_hw_params *params, |
| 1493 | snd_pcm_hw_param_t var, unsigned int val, int dir) | 1492 | snd_pcm_hw_param_t var, unsigned int val, int dir) |
| 1494 | { | 1493 | { |
| 1495 | int changed; | 1494 | int changed; |
| @@ -1531,7 +1530,7 @@ int _snd_pcm_hw_param_min(snd_pcm_hw_params_t *params, | |||
| 1531 | * values < VAL. Reduce configuration space accordingly. | 1530 | * values < VAL. Reduce configuration space accordingly. |
| 1532 | * Return new minimum or -EINVAL if the configuration space is empty | 1531 | * Return new minimum or -EINVAL if the configuration space is empty |
| 1533 | */ | 1532 | */ |
| 1534 | static int snd_pcm_hw_param_min(snd_pcm_t *pcm, snd_pcm_hw_params_t *params, | 1533 | static int snd_pcm_hw_param_min(struct snd_pcm_substream *pcm, struct snd_pcm_hw_params *params, |
| 1535 | snd_pcm_hw_param_t var, unsigned int val, | 1534 | snd_pcm_hw_param_t var, unsigned int val, |
| 1536 | int *dir) | 1535 | int *dir) |
| 1537 | { | 1536 | { |
| @@ -1546,7 +1545,7 @@ static int snd_pcm_hw_param_min(snd_pcm_t *pcm, snd_pcm_hw_params_t *params, | |||
| 1546 | return snd_pcm_hw_param_value_min(params, var, dir); | 1545 | return snd_pcm_hw_param_value_min(params, var, dir); |
| 1547 | } | 1546 | } |
| 1548 | 1547 | ||
| 1549 | static int _snd_pcm_hw_param_max(snd_pcm_hw_params_t *params, | 1548 | static int _snd_pcm_hw_param_max(struct snd_pcm_hw_params *params, |
| 1550 | snd_pcm_hw_param_t var, unsigned int val, | 1549 | snd_pcm_hw_param_t var, unsigned int val, |
| 1551 | int dir) | 1550 | int dir) |
| 1552 | { | 1551 | { |
| @@ -1591,7 +1590,7 @@ static int _snd_pcm_hw_param_max(snd_pcm_hw_params_t *params, | |||
| 1591 | * values >= VAL + 1. Reduce configuration space accordingly. | 1590 | * values >= VAL + 1. Reduce configuration space accordingly. |
| 1592 | * Return new maximum or -EINVAL if the configuration space is empty | 1591 | * Return new maximum or -EINVAL if the configuration space is empty |
| 1593 | */ | 1592 | */ |
| 1594 | static int snd_pcm_hw_param_max(snd_pcm_t *pcm, snd_pcm_hw_params_t *params, | 1593 | static int snd_pcm_hw_param_max(struct snd_pcm_substream *pcm, struct snd_pcm_hw_params *params, |
| 1595 | snd_pcm_hw_param_t var, unsigned int val, | 1594 | snd_pcm_hw_param_t var, unsigned int val, |
| 1596 | int *dir) | 1595 | int *dir) |
| 1597 | { | 1596 | { |
| @@ -1606,12 +1605,12 @@ static int snd_pcm_hw_param_max(snd_pcm_t *pcm, snd_pcm_hw_params_t *params, | |||
| 1606 | return snd_pcm_hw_param_value_max(params, var, dir); | 1605 | return snd_pcm_hw_param_value_max(params, var, dir); |
| 1607 | } | 1606 | } |
| 1608 | 1607 | ||
| 1609 | int _snd_pcm_hw_param_set(snd_pcm_hw_params_t *params, | 1608 | int _snd_pcm_hw_param_set(struct snd_pcm_hw_params *params, |
| 1610 | snd_pcm_hw_param_t var, unsigned int val, int dir) | 1609 | snd_pcm_hw_param_t var, unsigned int val, int dir) |
| 1611 | { | 1610 | { |
| 1612 | int changed; | 1611 | int changed; |
| 1613 | if (hw_is_mask(var)) { | 1612 | if (hw_is_mask(var)) { |
| 1614 | snd_mask_t *m = hw_param_mask(params, var); | 1613 | struct snd_mask *m = hw_param_mask(params, var); |
| 1615 | if (val == 0 && dir < 0) { | 1614 | if (val == 0 && dir < 0) { |
| 1616 | changed = -EINVAL; | 1615 | changed = -EINVAL; |
| 1617 | snd_mask_none(m); | 1616 | snd_mask_none(m); |
| @@ -1623,14 +1622,14 @@ int _snd_pcm_hw_param_set(snd_pcm_hw_params_t *params, | |||
| 1623 | changed = snd_mask_refine_set(hw_param_mask(params, var), val); | 1622 | changed = snd_mask_refine_set(hw_param_mask(params, var), val); |
| 1624 | } | 1623 | } |
| 1625 | } else if (hw_is_interval(var)) { | 1624 | } else if (hw_is_interval(var)) { |
| 1626 | snd_interval_t *i = hw_param_interval(params, var); | 1625 | struct snd_interval *i = hw_param_interval(params, var); |
| 1627 | if (val == 0 && dir < 0) { | 1626 | if (val == 0 && dir < 0) { |
| 1628 | changed = -EINVAL; | 1627 | changed = -EINVAL; |
| 1629 | snd_interval_none(i); | 1628 | snd_interval_none(i); |
| 1630 | } else if (dir == 0) | 1629 | } else if (dir == 0) |
| 1631 | changed = snd_interval_refine_set(i, val); | 1630 | changed = snd_interval_refine_set(i, val); |
| 1632 | else { | 1631 | else { |
| 1633 | snd_interval_t t; | 1632 | struct snd_interval t; |
| 1634 | t.openmin = 1; | 1633 | t.openmin = 1; |
| 1635 | t.openmax = 1; | 1634 | t.openmax = 1; |
| 1636 | t.empty = 0; | 1635 | t.empty = 0; |
| @@ -1667,7 +1666,7 @@ int _snd_pcm_hw_param_set(snd_pcm_hw_params_t *params, | |||
| 1667 | * values != VAL. Reduce configuration space accordingly. | 1666 | * values != VAL. Reduce configuration space accordingly. |
| 1668 | * Return VAL or -EINVAL if the configuration space is empty | 1667 | * Return VAL or -EINVAL if the configuration space is empty |
| 1669 | */ | 1668 | */ |
| 1670 | int snd_pcm_hw_param_set(snd_pcm_t *pcm, snd_pcm_hw_params_t *params, | 1669 | int snd_pcm_hw_param_set(struct snd_pcm_substream *pcm, struct snd_pcm_hw_params *params, |
| 1671 | snd_pcm_hw_param_t var, unsigned int val, int dir) | 1670 | snd_pcm_hw_param_t var, unsigned int val, int dir) |
| 1672 | { | 1671 | { |
| 1673 | int changed = _snd_pcm_hw_param_set(params, var, val, dir); | 1672 | int changed = _snd_pcm_hw_param_set(params, var, val, dir); |
| @@ -1681,8 +1680,8 @@ int snd_pcm_hw_param_set(snd_pcm_t *pcm, snd_pcm_hw_params_t *params, | |||
| 1681 | return snd_pcm_hw_param_value(params, var, NULL); | 1680 | return snd_pcm_hw_param_value(params, var, NULL); |
| 1682 | } | 1681 | } |
| 1683 | 1682 | ||
| 1684 | static int _snd_pcm_hw_param_mask(snd_pcm_hw_params_t *params, | 1683 | static int _snd_pcm_hw_param_mask(struct snd_pcm_hw_params *params, |
| 1685 | snd_pcm_hw_param_t var, const snd_mask_t *val) | 1684 | snd_pcm_hw_param_t var, const struct snd_mask *val) |
| 1686 | { | 1685 | { |
| 1687 | int changed; | 1686 | int changed; |
| 1688 | assert(hw_is_mask(var)); | 1687 | assert(hw_is_mask(var)); |
| @@ -1708,8 +1707,8 @@ static int _snd_pcm_hw_param_mask(snd_pcm_hw_params_t *params, | |||
| 1708 | * Return 0 on success or -EINVAL | 1707 | * Return 0 on success or -EINVAL |
| 1709 | * if the configuration space is empty | 1708 | * if the configuration space is empty |
| 1710 | */ | 1709 | */ |
| 1711 | int snd_pcm_hw_param_mask(snd_pcm_t *pcm, snd_pcm_hw_params_t *params, | 1710 | int snd_pcm_hw_param_mask(struct snd_pcm_substream *pcm, struct snd_pcm_hw_params *params, |
| 1712 | snd_pcm_hw_param_t var, const snd_mask_t *val) | 1711 | snd_pcm_hw_param_t var, const struct snd_mask *val) |
| 1713 | { | 1712 | { |
| 1714 | int changed = _snd_pcm_hw_param_mask(params, var, val); | 1713 | int changed = _snd_pcm_hw_param_mask(params, var, val); |
| 1715 | if (changed < 0) | 1714 | if (changed < 0) |
| @@ -1784,10 +1783,10 @@ static int boundary_nearer(int min, int mindir, | |||
| 1784 | * SNDRV_PCM_HW_PARAM_FORMAT, SNDRV_PCM_HW_PARAM_SUBFORMAT. | 1783 | * SNDRV_PCM_HW_PARAM_FORMAT, SNDRV_PCM_HW_PARAM_SUBFORMAT. |
| 1785 | * Return the value found. | 1784 | * Return the value found. |
| 1786 | */ | 1785 | */ |
| 1787 | int snd_pcm_hw_param_near(snd_pcm_t *pcm, snd_pcm_hw_params_t *params, | 1786 | int snd_pcm_hw_param_near(struct snd_pcm_substream *pcm, struct snd_pcm_hw_params *params, |
| 1788 | snd_pcm_hw_param_t var, unsigned int best, int *dir) | 1787 | snd_pcm_hw_param_t var, unsigned int best, int *dir) |
| 1789 | { | 1788 | { |
| 1790 | snd_pcm_hw_params_t *save = NULL; | 1789 | struct snd_pcm_hw_params *save = NULL; |
| 1791 | int v; | 1790 | int v; |
| 1792 | unsigned int saved_min; | 1791 | unsigned int saved_min; |
| 1793 | int last = 0; | 1792 | int last = 0; |
| @@ -1814,7 +1813,7 @@ int snd_pcm_hw_param_near(snd_pcm_t *pcm, snd_pcm_hw_params_t *params, | |||
| 1814 | saved_min = min; | 1813 | saved_min = min; |
| 1815 | min = snd_pcm_hw_param_min(pcm, params, var, min, &mindir); | 1814 | min = snd_pcm_hw_param_min(pcm, params, var, min, &mindir); |
| 1816 | if (min >= 0) { | 1815 | if (min >= 0) { |
| 1817 | snd_pcm_hw_params_t *params1; | 1816 | struct snd_pcm_hw_params *params1; |
| 1818 | if (max < 0) | 1817 | if (max < 0) |
| 1819 | goto _end; | 1818 | goto _end; |
| 1820 | if ((unsigned int)min == saved_min && mindir == valdir) | 1819 | if ((unsigned int)min == saved_min && mindir == valdir) |
| @@ -1861,7 +1860,7 @@ int snd_pcm_hw_param_near(snd_pcm_t *pcm, snd_pcm_hw_params_t *params, | |||
| 1861 | * first access, first format, first subformat, min channels, | 1860 | * first access, first format, first subformat, min channels, |
| 1862 | * min rate, min period time, max buffer size, min tick time | 1861 | * min rate, min period time, max buffer size, min tick time |
| 1863 | */ | 1862 | */ |
| 1864 | int snd_pcm_hw_params_choose(snd_pcm_t *pcm, snd_pcm_hw_params_t *params) | 1863 | int snd_pcm_hw_params_choose(struct snd_pcm_substream *pcm, struct snd_pcm_hw_params *params) |
| 1865 | { | 1864 | { |
| 1866 | int err; | 1865 | int err; |
| 1867 | 1866 | ||
| @@ -1892,13 +1891,12 @@ int snd_pcm_hw_params_choose(snd_pcm_t *pcm, snd_pcm_hw_params_t *params) | |||
| 1892 | return 0; | 1891 | return 0; |
| 1893 | } | 1892 | } |
| 1894 | 1893 | ||
| 1895 | #undef snd_pcm_t | ||
| 1896 | #undef assert | 1894 | #undef assert |
| 1897 | 1895 | ||
| 1898 | static int snd_pcm_lib_ioctl_reset(snd_pcm_substream_t *substream, | 1896 | static int snd_pcm_lib_ioctl_reset(struct snd_pcm_substream *substream, |
| 1899 | void *arg) | 1897 | void *arg) |
| 1900 | { | 1898 | { |
| 1901 | snd_pcm_runtime_t *runtime = substream->runtime; | 1899 | struct snd_pcm_runtime *runtime = substream->runtime; |
| 1902 | unsigned long flags; | 1900 | unsigned long flags; |
| 1903 | snd_pcm_stream_lock_irqsave(substream, flags); | 1901 | snd_pcm_stream_lock_irqsave(substream, flags); |
| 1904 | if (snd_pcm_running(substream) && | 1902 | if (snd_pcm_running(substream) && |
| @@ -1910,11 +1908,11 @@ static int snd_pcm_lib_ioctl_reset(snd_pcm_substream_t *substream, | |||
| 1910 | return 0; | 1908 | return 0; |
| 1911 | } | 1909 | } |
| 1912 | 1910 | ||
| 1913 | static int snd_pcm_lib_ioctl_channel_info(snd_pcm_substream_t *substream, | 1911 | static int snd_pcm_lib_ioctl_channel_info(struct snd_pcm_substream *substream, |
| 1914 | void *arg) | 1912 | void *arg) |
| 1915 | { | 1913 | { |
| 1916 | snd_pcm_channel_info_t *info = arg; | 1914 | struct snd_pcm_channel_info *info = arg; |
| 1917 | snd_pcm_runtime_t *runtime = substream->runtime; | 1915 | struct snd_pcm_runtime *runtime = substream->runtime; |
| 1918 | int width; | 1916 | int width; |
| 1919 | if (!(runtime->info & SNDRV_PCM_INFO_MMAP)) { | 1917 | if (!(runtime->info & SNDRV_PCM_INFO_MMAP)) { |
| 1920 | info->offset = -1; | 1918 | info->offset = -1; |
| @@ -1956,7 +1954,7 @@ static int snd_pcm_lib_ioctl_channel_info(snd_pcm_substream_t *substream, | |||
| 1956 | * | 1954 | * |
| 1957 | * Returns zero if successful, or a negative error code on failure. | 1955 | * Returns zero if successful, or a negative error code on failure. |
| 1958 | */ | 1956 | */ |
| 1959 | int snd_pcm_lib_ioctl(snd_pcm_substream_t *substream, | 1957 | int snd_pcm_lib_ioctl(struct snd_pcm_substream *substream, |
| 1960 | unsigned int cmd, void *arg) | 1958 | unsigned int cmd, void *arg) |
| 1961 | { | 1959 | { |
| 1962 | switch (cmd) { | 1960 | switch (cmd) { |
| @@ -1974,10 +1972,10 @@ int snd_pcm_lib_ioctl(snd_pcm_substream_t *substream, | |||
| 1974 | * Conditions | 1972 | * Conditions |
| 1975 | */ | 1973 | */ |
| 1976 | 1974 | ||
| 1977 | static void snd_pcm_system_tick_set(snd_pcm_substream_t *substream, | 1975 | static void snd_pcm_system_tick_set(struct snd_pcm_substream *substream, |
| 1978 | unsigned long ticks) | 1976 | unsigned long ticks) |
| 1979 | { | 1977 | { |
| 1980 | snd_pcm_runtime_t *runtime = substream->runtime; | 1978 | struct snd_pcm_runtime *runtime = substream->runtime; |
| 1981 | if (ticks == 0) | 1979 | if (ticks == 0) |
| 1982 | del_timer(&runtime->tick_timer); | 1980 | del_timer(&runtime->tick_timer); |
| 1983 | else { | 1981 | else { |
| @@ -1988,14 +1986,14 @@ static void snd_pcm_system_tick_set(snd_pcm_substream_t *substream, | |||
| 1988 | } | 1986 | } |
| 1989 | 1987 | ||
| 1990 | /* Temporary alias */ | 1988 | /* Temporary alias */ |
| 1991 | void snd_pcm_tick_set(snd_pcm_substream_t *substream, unsigned long ticks) | 1989 | void snd_pcm_tick_set(struct snd_pcm_substream *substream, unsigned long ticks) |
| 1992 | { | 1990 | { |
| 1993 | snd_pcm_system_tick_set(substream, ticks); | 1991 | snd_pcm_system_tick_set(substream, ticks); |
| 1994 | } | 1992 | } |
| 1995 | 1993 | ||
| 1996 | void snd_pcm_tick_prepare(snd_pcm_substream_t *substream) | 1994 | void snd_pcm_tick_prepare(struct snd_pcm_substream *substream) |
| 1997 | { | 1995 | { |
| 1998 | snd_pcm_runtime_t *runtime = substream->runtime; | 1996 | struct snd_pcm_runtime *runtime = substream->runtime; |
| 1999 | snd_pcm_uframes_t frames = ULONG_MAX; | 1997 | snd_pcm_uframes_t frames = ULONG_MAX; |
| 2000 | snd_pcm_uframes_t avail, dist; | 1998 | snd_pcm_uframes_t avail, dist; |
| 2001 | unsigned int ticks; | 1999 | unsigned int ticks; |
| @@ -2046,9 +2044,9 @@ void snd_pcm_tick_prepare(snd_pcm_substream_t *substream) | |||
| 2046 | snd_pcm_tick_set(substream, (unsigned long) ticks); | 2044 | snd_pcm_tick_set(substream, (unsigned long) ticks); |
| 2047 | } | 2045 | } |
| 2048 | 2046 | ||
| 2049 | void snd_pcm_tick_elapsed(snd_pcm_substream_t *substream) | 2047 | void snd_pcm_tick_elapsed(struct snd_pcm_substream *substream) |
| 2050 | { | 2048 | { |
| 2051 | snd_pcm_runtime_t *runtime; | 2049 | struct snd_pcm_runtime *runtime; |
| 2052 | unsigned long flags; | 2050 | unsigned long flags; |
| 2053 | 2051 | ||
| 2054 | snd_assert(substream != NULL, return); | 2052 | snd_assert(substream != NULL, return); |
| @@ -2076,9 +2074,9 @@ void snd_pcm_tick_elapsed(snd_pcm_substream_t *substream) | |||
| 2076 | * Even if more than one periods have elapsed since the last call, you | 2074 | * Even if more than one periods have elapsed since the last call, you |
| 2077 | * have to call this only once. | 2075 | * have to call this only once. |
| 2078 | */ | 2076 | */ |
| 2079 | void snd_pcm_period_elapsed(snd_pcm_substream_t *substream) | 2077 | void snd_pcm_period_elapsed(struct snd_pcm_substream *substream) |
| 2080 | { | 2078 | { |
| 2081 | snd_pcm_runtime_t *runtime; | 2079 | struct snd_pcm_runtime *runtime; |
| 2082 | unsigned long flags; | 2080 | unsigned long flags; |
| 2083 | 2081 | ||
| 2084 | snd_assert(substream != NULL, return); | 2082 | snd_assert(substream != NULL, return); |
| @@ -2104,12 +2102,12 @@ void snd_pcm_period_elapsed(snd_pcm_substream_t *substream) | |||
| 2104 | kill_fasync(&runtime->fasync, SIGIO, POLL_IN); | 2102 | kill_fasync(&runtime->fasync, SIGIO, POLL_IN); |
| 2105 | } | 2103 | } |
| 2106 | 2104 | ||
| 2107 | static int snd_pcm_lib_write_transfer(snd_pcm_substream_t *substream, | 2105 | static int snd_pcm_lib_write_transfer(struct snd_pcm_substream *substream, |
| 2108 | unsigned int hwoff, | 2106 | unsigned int hwoff, |
| 2109 | unsigned long data, unsigned int off, | 2107 | unsigned long data, unsigned int off, |
| 2110 | snd_pcm_uframes_t frames) | 2108 | snd_pcm_uframes_t frames) |
| 2111 | { | 2109 | { |
| 2112 | snd_pcm_runtime_t *runtime = substream->runtime; | 2110 | struct snd_pcm_runtime *runtime = substream->runtime; |
| 2113 | int err; | 2111 | int err; |
| 2114 | char __user *buf = (char __user *) data + frames_to_bytes(runtime, off); | 2112 | char __user *buf = (char __user *) data + frames_to_bytes(runtime, off); |
| 2115 | if (substream->ops->copy) { | 2113 | if (substream->ops->copy) { |
| @@ -2124,17 +2122,17 @@ static int snd_pcm_lib_write_transfer(snd_pcm_substream_t *substream, | |||
| 2124 | return 0; | 2122 | return 0; |
| 2125 | } | 2123 | } |
| 2126 | 2124 | ||
| 2127 | typedef int (*transfer_f)(snd_pcm_substream_t *substream, unsigned int hwoff, | 2125 | typedef int (*transfer_f)(struct snd_pcm_substream *substream, unsigned int hwoff, |
| 2128 | unsigned long data, unsigned int off, | 2126 | unsigned long data, unsigned int off, |
| 2129 | snd_pcm_uframes_t size); | 2127 | snd_pcm_uframes_t size); |
| 2130 | 2128 | ||
| 2131 | static snd_pcm_sframes_t snd_pcm_lib_write1(snd_pcm_substream_t *substream, | 2129 | static snd_pcm_sframes_t snd_pcm_lib_write1(struct snd_pcm_substream *substream, |
| 2132 | unsigned long data, | 2130 | unsigned long data, |
| 2133 | snd_pcm_uframes_t size, | 2131 | snd_pcm_uframes_t size, |
| 2134 | int nonblock, | 2132 | int nonblock, |
| 2135 | transfer_f transfer) | 2133 | transfer_f transfer) |
| 2136 | { | 2134 | { |
| 2137 | snd_pcm_runtime_t *runtime = substream->runtime; | 2135 | struct snd_pcm_runtime *runtime = substream->runtime; |
| 2138 | snd_pcm_uframes_t xfer = 0; | 2136 | snd_pcm_uframes_t xfer = 0; |
| 2139 | snd_pcm_uframes_t offset = 0; | 2137 | snd_pcm_uframes_t offset = 0; |
| 2140 | int err = 0; | 2138 | int err = 0; |
| @@ -2290,9 +2288,9 @@ static snd_pcm_sframes_t snd_pcm_lib_write1(snd_pcm_substream_t *substream, | |||
| 2290 | return xfer > 0 ? (snd_pcm_sframes_t)xfer : err; | 2288 | return xfer > 0 ? (snd_pcm_sframes_t)xfer : err; |
| 2291 | } | 2289 | } |
| 2292 | 2290 | ||
| 2293 | snd_pcm_sframes_t snd_pcm_lib_write(snd_pcm_substream_t *substream, const void __user *buf, snd_pcm_uframes_t size) | 2291 | snd_pcm_sframes_t snd_pcm_lib_write(struct snd_pcm_substream *substream, const void __user *buf, snd_pcm_uframes_t size) |
| 2294 | { | 2292 | { |
| 2295 | snd_pcm_runtime_t *runtime; | 2293 | struct snd_pcm_runtime *runtime; |
| 2296 | int nonblock; | 2294 | int nonblock; |
| 2297 | 2295 | ||
| 2298 | snd_assert(substream != NULL, return -ENXIO); | 2296 | snd_assert(substream != NULL, return -ENXIO); |
| @@ -2306,7 +2304,7 @@ snd_pcm_sframes_t snd_pcm_lib_write(snd_pcm_substream_t *substream, const void _ | |||
| 2306 | nonblock = !!(substream->ffile->f_flags & O_NONBLOCK); | 2304 | nonblock = !!(substream->ffile->f_flags & O_NONBLOCK); |
| 2307 | #if defined(CONFIG_SND_PCM_OSS) || defined(CONFIG_SND_PCM_OSS_MODULE) | 2305 | #if defined(CONFIG_SND_PCM_OSS) || defined(CONFIG_SND_PCM_OSS_MODULE) |
| 2308 | if (substream->oss.oss) { | 2306 | if (substream->oss.oss) { |
| 2309 | snd_pcm_oss_setup_t *setup = substream->oss.setup; | 2307 | struct snd_pcm_oss_setup *setup = substream->oss.setup; |
| 2310 | if (setup != NULL) { | 2308 | if (setup != NULL) { |
| 2311 | if (setup->nonblock) | 2309 | if (setup->nonblock) |
| 2312 | nonblock = 1; | 2310 | nonblock = 1; |
| @@ -2323,12 +2321,12 @@ snd_pcm_sframes_t snd_pcm_lib_write(snd_pcm_substream_t *substream, const void _ | |||
| 2323 | snd_pcm_lib_write_transfer); | 2321 | snd_pcm_lib_write_transfer); |
| 2324 | } | 2322 | } |
| 2325 | 2323 | ||
| 2326 | static int snd_pcm_lib_writev_transfer(snd_pcm_substream_t *substream, | 2324 | static int snd_pcm_lib_writev_transfer(struct snd_pcm_substream *substream, |
| 2327 | unsigned int hwoff, | 2325 | unsigned int hwoff, |
| 2328 | unsigned long data, unsigned int off, | 2326 | unsigned long data, unsigned int off, |
| 2329 | snd_pcm_uframes_t frames) | 2327 | snd_pcm_uframes_t frames) |
| 2330 | { | 2328 | { |
| 2331 | snd_pcm_runtime_t *runtime = substream->runtime; | 2329 | struct snd_pcm_runtime *runtime = substream->runtime; |
| 2332 | int err; | 2330 | int err; |
| 2333 | void __user **bufs = (void __user **)data; | 2331 | void __user **bufs = (void __user **)data; |
| 2334 | int channels = runtime->channels; | 2332 | int channels = runtime->channels; |
| @@ -2363,11 +2361,11 @@ static int snd_pcm_lib_writev_transfer(snd_pcm_substream_t *substream, | |||
| 2363 | return 0; | 2361 | return 0; |
| 2364 | } | 2362 | } |
| 2365 | 2363 | ||
| 2366 | snd_pcm_sframes_t snd_pcm_lib_writev(snd_pcm_substream_t *substream, | 2364 | snd_pcm_sframes_t snd_pcm_lib_writev(struct snd_pcm_substream *substream, |
| 2367 | void __user **bufs, | 2365 | void __user **bufs, |
| 2368 | snd_pcm_uframes_t frames) | 2366 | snd_pcm_uframes_t frames) |
| 2369 | { | 2367 | { |
| 2370 | snd_pcm_runtime_t *runtime; | 2368 | struct snd_pcm_runtime *runtime; |
| 2371 | int nonblock; | 2369 | int nonblock; |
| 2372 | 2370 | ||
| 2373 | snd_assert(substream != NULL, return -ENXIO); | 2371 | snd_assert(substream != NULL, return -ENXIO); |
| @@ -2381,7 +2379,7 @@ snd_pcm_sframes_t snd_pcm_lib_writev(snd_pcm_substream_t *substream, | |||
| 2381 | nonblock = !!(substream->ffile->f_flags & O_NONBLOCK); | 2379 | nonblock = !!(substream->ffile->f_flags & O_NONBLOCK); |
| 2382 | #if defined(CONFIG_SND_PCM_OSS) || defined(CONFIG_SND_PCM_OSS_MODULE) | 2380 | #if defined(CONFIG_SND_PCM_OSS) || defined(CONFIG_SND_PCM_OSS_MODULE) |
| 2383 | if (substream->oss.oss) { | 2381 | if (substream->oss.oss) { |
| 2384 | snd_pcm_oss_setup_t *setup = substream->oss.setup; | 2382 | struct snd_pcm_oss_setup *setup = substream->oss.setup; |
| 2385 | if (setup != NULL) { | 2383 | if (setup != NULL) { |
| 2386 | if (setup->nonblock) | 2384 | if (setup->nonblock) |
| 2387 | nonblock = 1; | 2385 | nonblock = 1; |
| @@ -2397,12 +2395,12 @@ snd_pcm_sframes_t snd_pcm_lib_writev(snd_pcm_substream_t *substream, | |||
| 2397 | nonblock, snd_pcm_lib_writev_transfer); | 2395 | nonblock, snd_pcm_lib_writev_transfer); |
| 2398 | } | 2396 | } |
| 2399 | 2397 | ||
| 2400 | static int snd_pcm_lib_read_transfer(snd_pcm_substream_t *substream, | 2398 | static int snd_pcm_lib_read_transfer(struct snd_pcm_substream *substream, |
| 2401 | unsigned int hwoff, | 2399 | unsigned int hwoff, |
| 2402 | unsigned long data, unsigned int off, | 2400 | unsigned long data, unsigned int off, |
| 2403 | snd_pcm_uframes_t frames) | 2401 | snd_pcm_uframes_t frames) |
| 2404 | { | 2402 | { |
| 2405 | snd_pcm_runtime_t *runtime = substream->runtime; | 2403 | struct snd_pcm_runtime *runtime = substream->runtime; |
| 2406 | int err; | 2404 | int err; |
| 2407 | char __user *buf = (char __user *) data + frames_to_bytes(runtime, off); | 2405 | char __user *buf = (char __user *) data + frames_to_bytes(runtime, off); |
| 2408 | if (substream->ops->copy) { | 2406 | if (substream->ops->copy) { |
| @@ -2417,13 +2415,13 @@ static int snd_pcm_lib_read_transfer(snd_pcm_substream_t *substream, | |||
| 2417 | return 0; | 2415 | return 0; |
| 2418 | } | 2416 | } |
| 2419 | 2417 | ||
| 2420 | static snd_pcm_sframes_t snd_pcm_lib_read1(snd_pcm_substream_t *substream, | 2418 | static snd_pcm_sframes_t snd_pcm_lib_read1(struct snd_pcm_substream *substream, |
| 2421 | unsigned long data, | 2419 | unsigned long data, |
| 2422 | snd_pcm_uframes_t size, | 2420 | snd_pcm_uframes_t size, |
| 2423 | int nonblock, | 2421 | int nonblock, |
| 2424 | transfer_f transfer) | 2422 | transfer_f transfer) |
| 2425 | { | 2423 | { |
| 2426 | snd_pcm_runtime_t *runtime = substream->runtime; | 2424 | struct snd_pcm_runtime *runtime = substream->runtime; |
| 2427 | snd_pcm_uframes_t xfer = 0; | 2425 | snd_pcm_uframes_t xfer = 0; |
| 2428 | snd_pcm_uframes_t offset = 0; | 2426 | snd_pcm_uframes_t offset = 0; |
| 2429 | int err = 0; | 2427 | int err = 0; |
| @@ -2587,9 +2585,9 @@ static snd_pcm_sframes_t snd_pcm_lib_read1(snd_pcm_substream_t *substream, | |||
| 2587 | return xfer > 0 ? (snd_pcm_sframes_t)xfer : err; | 2585 | return xfer > 0 ? (snd_pcm_sframes_t)xfer : err; |
| 2588 | } | 2586 | } |
| 2589 | 2587 | ||
| 2590 | snd_pcm_sframes_t snd_pcm_lib_read(snd_pcm_substream_t *substream, void __user *buf, snd_pcm_uframes_t size) | 2588 | snd_pcm_sframes_t snd_pcm_lib_read(struct snd_pcm_substream *substream, void __user *buf, snd_pcm_uframes_t size) |
| 2591 | { | 2589 | { |
| 2592 | snd_pcm_runtime_t *runtime; | 2590 | struct snd_pcm_runtime *runtime; |
| 2593 | int nonblock; | 2591 | int nonblock; |
| 2594 | 2592 | ||
| 2595 | snd_assert(substream != NULL, return -ENXIO); | 2593 | snd_assert(substream != NULL, return -ENXIO); |
| @@ -2603,7 +2601,7 @@ snd_pcm_sframes_t snd_pcm_lib_read(snd_pcm_substream_t *substream, void __user * | |||
| 2603 | nonblock = !!(substream->ffile->f_flags & O_NONBLOCK); | 2601 | nonblock = !!(substream->ffile->f_flags & O_NONBLOCK); |
| 2604 | #if defined(CONFIG_SND_PCM_OSS) || defined(CONFIG_SND_PCM_OSS_MODULE) | 2602 | #if defined(CONFIG_SND_PCM_OSS) || defined(CONFIG_SND_PCM_OSS_MODULE) |
| 2605 | if (substream->oss.oss) { | 2603 | if (substream->oss.oss) { |
| 2606 | snd_pcm_oss_setup_t *setup = substream->oss.setup; | 2604 | struct snd_pcm_oss_setup *setup = substream->oss.setup; |
| 2607 | if (setup != NULL) { | 2605 | if (setup != NULL) { |
| 2608 | if (setup->nonblock) | 2606 | if (setup->nonblock) |
| 2609 | nonblock = 1; | 2607 | nonblock = 1; |
| @@ -2617,12 +2615,12 @@ snd_pcm_sframes_t snd_pcm_lib_read(snd_pcm_substream_t *substream, void __user * | |||
| 2617 | return snd_pcm_lib_read1(substream, (unsigned long)buf, size, nonblock, snd_pcm_lib_read_transfer); | 2615 | return snd_pcm_lib_read1(substream, (unsigned long)buf, size, nonblock, snd_pcm_lib_read_transfer); |
| 2618 | } | 2616 | } |
| 2619 | 2617 | ||
| 2620 | static int snd_pcm_lib_readv_transfer(snd_pcm_substream_t *substream, | 2618 | static int snd_pcm_lib_readv_transfer(struct snd_pcm_substream *substream, |
| 2621 | unsigned int hwoff, | 2619 | unsigned int hwoff, |
| 2622 | unsigned long data, unsigned int off, | 2620 | unsigned long data, unsigned int off, |
| 2623 | snd_pcm_uframes_t frames) | 2621 | snd_pcm_uframes_t frames) |
| 2624 | { | 2622 | { |
| 2625 | snd_pcm_runtime_t *runtime = substream->runtime; | 2623 | struct snd_pcm_runtime *runtime = substream->runtime; |
| 2626 | int err; | 2624 | int err; |
| 2627 | void __user **bufs = (void __user **)data; | 2625 | void __user **bufs = (void __user **)data; |
| 2628 | int channels = runtime->channels; | 2626 | int channels = runtime->channels; |
| @@ -2654,11 +2652,11 @@ static int snd_pcm_lib_readv_transfer(snd_pcm_substream_t *substream, | |||
| 2654 | return 0; | 2652 | return 0; |
| 2655 | } | 2653 | } |
| 2656 | 2654 | ||
| 2657 | snd_pcm_sframes_t snd_pcm_lib_readv(snd_pcm_substream_t *substream, | 2655 | snd_pcm_sframes_t snd_pcm_lib_readv(struct snd_pcm_substream *substream, |
| 2658 | void __user **bufs, | 2656 | void __user **bufs, |
| 2659 | snd_pcm_uframes_t frames) | 2657 | snd_pcm_uframes_t frames) |
| 2660 | { | 2658 | { |
| 2661 | snd_pcm_runtime_t *runtime; | 2659 | struct snd_pcm_runtime *runtime; |
| 2662 | int nonblock; | 2660 | int nonblock; |
| 2663 | 2661 | ||
| 2664 | snd_assert(substream != NULL, return -ENXIO); | 2662 | snd_assert(substream != NULL, return -ENXIO); |
| @@ -2672,7 +2670,7 @@ snd_pcm_sframes_t snd_pcm_lib_readv(snd_pcm_substream_t *substream, | |||
| 2672 | nonblock = !!(substream->ffile->f_flags & O_NONBLOCK); | 2670 | nonblock = !!(substream->ffile->f_flags & O_NONBLOCK); |
| 2673 | #if defined(CONFIG_SND_PCM_OSS) || defined(CONFIG_SND_PCM_OSS_MODULE) | 2671 | #if defined(CONFIG_SND_PCM_OSS) || defined(CONFIG_SND_PCM_OSS_MODULE) |
| 2674 | if (substream->oss.oss) { | 2672 | if (substream->oss.oss) { |
| 2675 | snd_pcm_oss_setup_t *setup = substream->oss.setup; | 2673 | struct snd_pcm_oss_setup *setup = substream->oss.setup; |
| 2676 | if (setup != NULL) { | 2674 | if (setup != NULL) { |
| 2677 | if (setup->nonblock) | 2675 | if (setup->nonblock) |
| 2678 | nonblock = 1; | 2676 | nonblock = 1; |
diff --git a/sound/core/pcm_memory.c b/sound/core/pcm_memory.c index b3f5344f60be..d37bcb761884 100644 --- a/sound/core/pcm_memory.c +++ b/sound/core/pcm_memory.c | |||
| @@ -46,7 +46,7 @@ static const size_t snd_minimum_buffer = 16384; | |||
| 46 | * | 46 | * |
| 47 | * the minimum size is snd_minimum_buffer. it should be power of 2. | 47 | * the minimum size is snd_minimum_buffer. it should be power of 2. |
| 48 | */ | 48 | */ |
| 49 | static int preallocate_pcm_pages(snd_pcm_substream_t *substream, size_t size) | 49 | static int preallocate_pcm_pages(struct snd_pcm_substream *substream, size_t size) |
| 50 | { | 50 | { |
| 51 | struct snd_dma_buffer *dmab = &substream->dma_buffer; | 51 | struct snd_dma_buffer *dmab = &substream->dma_buffer; |
| 52 | int err; | 52 | int err; |
| @@ -78,7 +78,7 @@ static int preallocate_pcm_pages(snd_pcm_substream_t *substream, size_t size) | |||
| 78 | /* | 78 | /* |
| 79 | * release the preallocated buffer if not yet done. | 79 | * release the preallocated buffer if not yet done. |
| 80 | */ | 80 | */ |
| 81 | static void snd_pcm_lib_preallocate_dma_free(snd_pcm_substream_t *substream) | 81 | static void snd_pcm_lib_preallocate_dma_free(struct snd_pcm_substream *substream) |
| 82 | { | 82 | { |
| 83 | if (substream->dma_buffer.area == NULL) | 83 | if (substream->dma_buffer.area == NULL) |
| 84 | return; | 84 | return; |
| @@ -97,7 +97,7 @@ static void snd_pcm_lib_preallocate_dma_free(snd_pcm_substream_t *substream) | |||
| 97 | * | 97 | * |
| 98 | * Returns zero if successful, or a negative error code on failure. | 98 | * Returns zero if successful, or a negative error code on failure. |
| 99 | */ | 99 | */ |
| 100 | int snd_pcm_lib_preallocate_free(snd_pcm_substream_t *substream) | 100 | int snd_pcm_lib_preallocate_free(struct snd_pcm_substream *substream) |
| 101 | { | 101 | { |
| 102 | snd_pcm_lib_preallocate_dma_free(substream); | 102 | snd_pcm_lib_preallocate_dma_free(substream); |
| 103 | if (substream->proc_prealloc_entry) { | 103 | if (substream->proc_prealloc_entry) { |
| @@ -115,9 +115,9 @@ int snd_pcm_lib_preallocate_free(snd_pcm_substream_t *substream) | |||
| 115 | * | 115 | * |
| 116 | * Returns zero if successful, or a negative error code on failure. | 116 | * Returns zero if successful, or a negative error code on failure. |
| 117 | */ | 117 | */ |
| 118 | int snd_pcm_lib_preallocate_free_for_all(snd_pcm_t *pcm) | 118 | int snd_pcm_lib_preallocate_free_for_all(struct snd_pcm *pcm) |
| 119 | { | 119 | { |
| 120 | snd_pcm_substream_t *substream; | 120 | struct snd_pcm_substream *substream; |
| 121 | int stream; | 121 | int stream; |
| 122 | 122 | ||
| 123 | for (stream = 0; stream < 2; stream++) | 123 | for (stream = 0; stream < 2; stream++) |
| @@ -131,10 +131,10 @@ int snd_pcm_lib_preallocate_free_for_all(snd_pcm_t *pcm) | |||
| 131 | * | 131 | * |
| 132 | * prints the current allocated size in kB. | 132 | * prints the current allocated size in kB. |
| 133 | */ | 133 | */ |
| 134 | static void snd_pcm_lib_preallocate_proc_read(snd_info_entry_t *entry, | 134 | static void snd_pcm_lib_preallocate_proc_read(struct snd_info_entry *entry, |
| 135 | snd_info_buffer_t *buffer) | 135 | struct snd_info_buffer *buffer) |
| 136 | { | 136 | { |
| 137 | snd_pcm_substream_t *substream = (snd_pcm_substream_t *)entry->private_data; | 137 | struct snd_pcm_substream *substream = entry->private_data; |
| 138 | snd_iprintf(buffer, "%lu\n", (unsigned long) substream->dma_buffer.bytes / 1024); | 138 | snd_iprintf(buffer, "%lu\n", (unsigned long) substream->dma_buffer.bytes / 1024); |
| 139 | } | 139 | } |
| 140 | 140 | ||
| @@ -143,10 +143,10 @@ static void snd_pcm_lib_preallocate_proc_read(snd_info_entry_t *entry, | |||
| 143 | * | 143 | * |
| 144 | * accepts the preallocation size in kB. | 144 | * accepts the preallocation size in kB. |
| 145 | */ | 145 | */ |
| 146 | static void snd_pcm_lib_preallocate_proc_write(snd_info_entry_t *entry, | 146 | static void snd_pcm_lib_preallocate_proc_write(struct snd_info_entry *entry, |
| 147 | snd_info_buffer_t *buffer) | 147 | struct snd_info_buffer *buffer) |
| 148 | { | 148 | { |
| 149 | snd_pcm_substream_t *substream = (snd_pcm_substream_t *)entry->private_data; | 149 | struct snd_pcm_substream *substream = entry->private_data; |
| 150 | char line[64], str[64]; | 150 | char line[64], str[64]; |
| 151 | size_t size; | 151 | size_t size; |
| 152 | struct snd_dma_buffer new_dmab; | 152 | struct snd_dma_buffer new_dmab; |
| @@ -188,10 +188,10 @@ static void snd_pcm_lib_preallocate_proc_write(snd_info_entry_t *entry, | |||
| 188 | /* | 188 | /* |
| 189 | * pre-allocate the buffer and create a proc file for the substream | 189 | * pre-allocate the buffer and create a proc file for the substream |
| 190 | */ | 190 | */ |
| 191 | static int snd_pcm_lib_preallocate_pages1(snd_pcm_substream_t *substream, | 191 | static int snd_pcm_lib_preallocate_pages1(struct snd_pcm_substream *substream, |
| 192 | size_t size, size_t max) | 192 | size_t size, size_t max) |
| 193 | { | 193 | { |
| 194 | snd_info_entry_t *entry; | 194 | struct snd_info_entry *entry; |
| 195 | 195 | ||
| 196 | if (size > 0 && preallocate_dma && substream->number < maximum_substreams) | 196 | if (size > 0 && preallocate_dma && substream->number < maximum_substreams) |
| 197 | preallocate_pcm_pages(substream, size); | 197 | preallocate_pcm_pages(substream, size); |
| @@ -233,7 +233,7 @@ static int snd_pcm_lib_preallocate_pages1(snd_pcm_substream_t *substream, | |||
| 233 | * | 233 | * |
| 234 | * Returns zero if successful, or a negative error code on failure. | 234 | * Returns zero if successful, or a negative error code on failure. |
| 235 | */ | 235 | */ |
| 236 | int snd_pcm_lib_preallocate_pages(snd_pcm_substream_t *substream, | 236 | int snd_pcm_lib_preallocate_pages(struct snd_pcm_substream *substream, |
| 237 | int type, struct device *data, | 237 | int type, struct device *data, |
| 238 | size_t size, size_t max) | 238 | size_t size, size_t max) |
| 239 | { | 239 | { |
| @@ -255,11 +255,11 @@ int snd_pcm_lib_preallocate_pages(snd_pcm_substream_t *substream, | |||
| 255 | * | 255 | * |
| 256 | * Returns zero if successful, or a negative error code on failure. | 256 | * Returns zero if successful, or a negative error code on failure. |
| 257 | */ | 257 | */ |
| 258 | int snd_pcm_lib_preallocate_pages_for_all(snd_pcm_t *pcm, | 258 | int snd_pcm_lib_preallocate_pages_for_all(struct snd_pcm *pcm, |
| 259 | int type, void *data, | 259 | int type, void *data, |
| 260 | size_t size, size_t max) | 260 | size_t size, size_t max) |
| 261 | { | 261 | { |
| 262 | snd_pcm_substream_t *substream; | 262 | struct snd_pcm_substream *substream; |
| 263 | int stream, err; | 263 | int stream, err; |
| 264 | 264 | ||
| 265 | for (stream = 0; stream < 2; stream++) | 265 | for (stream = 0; stream < 2; stream++) |
| @@ -277,7 +277,7 @@ int snd_pcm_lib_preallocate_pages_for_all(snd_pcm_t *pcm, | |||
| 277 | * Returns the page struct at the given buffer offset. | 277 | * Returns the page struct at the given buffer offset. |
| 278 | * Used as the page callback of PCM ops. | 278 | * Used as the page callback of PCM ops. |
| 279 | */ | 279 | */ |
| 280 | struct page *snd_pcm_sgbuf_ops_page(snd_pcm_substream_t *substream, unsigned long offset) | 280 | struct page *snd_pcm_sgbuf_ops_page(struct snd_pcm_substream *substream, unsigned long offset) |
| 281 | { | 281 | { |
| 282 | struct snd_sg_buf *sgbuf = snd_pcm_substream_sgbuf(substream); | 282 | struct snd_sg_buf *sgbuf = snd_pcm_substream_sgbuf(substream); |
| 283 | 283 | ||
| @@ -298,9 +298,9 @@ struct page *snd_pcm_sgbuf_ops_page(snd_pcm_substream_t *substream, unsigned lon | |||
| 298 | * Returns 1 if the buffer is changed, 0 if not changed, or a negative | 298 | * Returns 1 if the buffer is changed, 0 if not changed, or a negative |
| 299 | * code on failure. | 299 | * code on failure. |
| 300 | */ | 300 | */ |
| 301 | int snd_pcm_lib_malloc_pages(snd_pcm_substream_t *substream, size_t size) | 301 | int snd_pcm_lib_malloc_pages(struct snd_pcm_substream *substream, size_t size) |
| 302 | { | 302 | { |
| 303 | snd_pcm_runtime_t *runtime; | 303 | struct snd_pcm_runtime *runtime; |
| 304 | struct snd_dma_buffer *dmab = NULL; | 304 | struct snd_dma_buffer *dmab = NULL; |
| 305 | 305 | ||
| 306 | snd_assert(substream->dma_buffer.dev.type != SNDRV_DMA_TYPE_UNKNOWN, return -EINVAL); | 306 | snd_assert(substream->dma_buffer.dev.type != SNDRV_DMA_TYPE_UNKNOWN, return -EINVAL); |
| @@ -318,7 +318,8 @@ int snd_pcm_lib_malloc_pages(snd_pcm_substream_t *substream, size_t size) | |||
| 318 | } | 318 | } |
| 319 | snd_pcm_lib_free_pages(substream); | 319 | snd_pcm_lib_free_pages(substream); |
| 320 | } | 320 | } |
| 321 | if (substream->dma_buffer.area != NULL && substream->dma_buffer.bytes >= size) { | 321 | if (substream->dma_buffer.area != NULL && |
| 322 | substream->dma_buffer.bytes >= size) { | ||
| 322 | dmab = &substream->dma_buffer; /* use the pre-allocated buffer */ | 323 | dmab = &substream->dma_buffer; /* use the pre-allocated buffer */ |
| 323 | } else { | 324 | } else { |
| 324 | dmab = kzalloc(sizeof(*dmab), GFP_KERNEL); | 325 | dmab = kzalloc(sizeof(*dmab), GFP_KERNEL); |
| @@ -345,9 +346,9 @@ int snd_pcm_lib_malloc_pages(snd_pcm_substream_t *substream, size_t size) | |||
| 345 | * | 346 | * |
| 346 | * Returns zero if successful, or a negative error code on failure. | 347 | * Returns zero if successful, or a negative error code on failure. |
| 347 | */ | 348 | */ |
| 348 | int snd_pcm_lib_free_pages(snd_pcm_substream_t *substream) | 349 | int snd_pcm_lib_free_pages(struct snd_pcm_substream *substream) |
| 349 | { | 350 | { |
| 350 | snd_pcm_runtime_t *runtime; | 351 | struct snd_pcm_runtime *runtime; |
| 351 | 352 | ||
| 352 | snd_assert(substream != NULL, return -EINVAL); | 353 | snd_assert(substream != NULL, return -EINVAL); |
| 353 | runtime = substream->runtime; | 354 | runtime = substream->runtime; |
diff --git a/sound/core/pcm_misc.c b/sound/core/pcm_misc.c index 1453743e4da0..593c77f4d181 100644 --- a/sound/core/pcm_misc.c +++ b/sound/core/pcm_misc.c | |||
| @@ -441,7 +441,7 @@ snd_pcm_format_t snd_pcm_build_linear_format(int width, int unsignd, int big_end | |||
| 441 | * | 441 | * |
| 442 | * Returns zero if successful. | 442 | * Returns zero if successful. |
| 443 | */ | 443 | */ |
| 444 | int snd_pcm_limit_hw_rates(snd_pcm_runtime_t *runtime) | 444 | int snd_pcm_limit_hw_rates(struct snd_pcm_runtime *runtime) |
| 445 | { | 445 | { |
| 446 | static unsigned rates[] = { | 446 | static unsigned rates[] = { |
| 447 | /* ATTENTION: these values depend on the definition in pcm.h! */ | 447 | /* ATTENTION: these values depend on the definition in pcm.h! */ |
diff --git a/sound/core/pcm_native.c b/sound/core/pcm_native.c index 16e252f54954..263c01a70fdd 100644 --- a/sound/core/pcm_native.c +++ b/sound/core/pcm_native.c | |||
| @@ -39,11 +39,11 @@ | |||
| 39 | * Compatibility | 39 | * Compatibility |
| 40 | */ | 40 | */ |
| 41 | 41 | ||
| 42 | struct sndrv_pcm_hw_params_old { | 42 | struct snd_pcm_hw_params_old { |
| 43 | unsigned int flags; | 43 | unsigned int flags; |
| 44 | unsigned int masks[SNDRV_PCM_HW_PARAM_SUBFORMAT - | 44 | unsigned int masks[SNDRV_PCM_HW_PARAM_SUBFORMAT - |
| 45 | SNDRV_PCM_HW_PARAM_ACCESS + 1]; | 45 | SNDRV_PCM_HW_PARAM_ACCESS + 1]; |
| 46 | struct sndrv_interval intervals[SNDRV_PCM_HW_PARAM_TICK_TIME - | 46 | struct snd_interval intervals[SNDRV_PCM_HW_PARAM_TICK_TIME - |
| 47 | SNDRV_PCM_HW_PARAM_SAMPLE_BITS + 1]; | 47 | SNDRV_PCM_HW_PARAM_SAMPLE_BITS + 1]; |
| 48 | unsigned int rmask; | 48 | unsigned int rmask; |
| 49 | unsigned int cmask; | 49 | unsigned int cmask; |
| @@ -51,15 +51,17 @@ struct sndrv_pcm_hw_params_old { | |||
| 51 | unsigned int msbits; | 51 | unsigned int msbits; |
| 52 | unsigned int rate_num; | 52 | unsigned int rate_num; |
| 53 | unsigned int rate_den; | 53 | unsigned int rate_den; |
| 54 | sndrv_pcm_uframes_t fifo_size; | 54 | snd_pcm_uframes_t fifo_size; |
| 55 | unsigned char reserved[64]; | 55 | unsigned char reserved[64]; |
| 56 | }; | 56 | }; |
| 57 | 57 | ||
| 58 | #define SNDRV_PCM_IOCTL_HW_REFINE_OLD _IOWR('A', 0x10, struct sndrv_pcm_hw_params_old) | 58 | #define SNDRV_PCM_IOCTL_HW_REFINE_OLD _IOWR('A', 0x10, struct snd_pcm_hw_params_old) |
| 59 | #define SNDRV_PCM_IOCTL_HW_PARAMS_OLD _IOWR('A', 0x11, struct sndrv_pcm_hw_params_old) | 59 | #define SNDRV_PCM_IOCTL_HW_PARAMS_OLD _IOWR('A', 0x11, struct snd_pcm_hw_params_old) |
| 60 | 60 | ||
| 61 | static int snd_pcm_hw_refine_old_user(snd_pcm_substream_t * substream, struct sndrv_pcm_hw_params_old __user * _oparams); | 61 | static int snd_pcm_hw_refine_old_user(struct snd_pcm_substream *substream, |
| 62 | static int snd_pcm_hw_params_old_user(snd_pcm_substream_t * substream, struct sndrv_pcm_hw_params_old __user * _oparams); | 62 | struct snd_pcm_hw_params_old __user * _oparams); |
| 63 | static int snd_pcm_hw_params_old_user(struct snd_pcm_substream *substream, | ||
| 64 | struct snd_pcm_hw_params_old __user * _oparams); | ||
| 63 | 65 | ||
| 64 | /* | 66 | /* |
| 65 | * | 67 | * |
| @@ -83,11 +85,11 @@ static inline void snd_leave_user(mm_segment_t fs) | |||
| 83 | 85 | ||
| 84 | 86 | ||
| 85 | 87 | ||
| 86 | int snd_pcm_info(snd_pcm_substream_t * substream, snd_pcm_info_t *info) | 88 | int snd_pcm_info(struct snd_pcm_substream *substream, struct snd_pcm_info *info) |
| 87 | { | 89 | { |
| 88 | snd_pcm_runtime_t * runtime; | 90 | struct snd_pcm_runtime *runtime; |
| 89 | snd_pcm_t *pcm = substream->pcm; | 91 | struct snd_pcm *pcm = substream->pcm; |
| 90 | snd_pcm_str_t *pstr = substream->pstr; | 92 | struct snd_pcm_str *pstr = substream->pstr; |
| 91 | 93 | ||
| 92 | snd_assert(substream != NULL, return -ENXIO); | 94 | snd_assert(substream != NULL, return -ENXIO); |
| 93 | memset(info, 0, sizeof(*info)); | 95 | memset(info, 0, sizeof(*info)); |
| @@ -111,9 +113,10 @@ int snd_pcm_info(snd_pcm_substream_t * substream, snd_pcm_info_t *info) | |||
| 111 | return 0; | 113 | return 0; |
| 112 | } | 114 | } |
| 113 | 115 | ||
| 114 | int snd_pcm_info_user(snd_pcm_substream_t * substream, snd_pcm_info_t __user * _info) | 116 | int snd_pcm_info_user(struct snd_pcm_substream *substream, |
| 117 | struct snd_pcm_info __user * _info) | ||
| 115 | { | 118 | { |
| 116 | snd_pcm_info_t *info; | 119 | struct snd_pcm_info *info; |
| 117 | int err; | 120 | int err; |
| 118 | 121 | ||
| 119 | info = kmalloc(sizeof(*info), GFP_KERNEL); | 122 | info = kmalloc(sizeof(*info), GFP_KERNEL); |
| @@ -151,14 +154,14 @@ char *snd_pcm_hw_param_names[] = { | |||
| 151 | }; | 154 | }; |
| 152 | #endif | 155 | #endif |
| 153 | 156 | ||
| 154 | int snd_pcm_hw_refine(snd_pcm_substream_t *substream, | 157 | int snd_pcm_hw_refine(struct snd_pcm_substream *substream, |
| 155 | snd_pcm_hw_params_t *params) | 158 | struct snd_pcm_hw_params *params) |
| 156 | { | 159 | { |
| 157 | unsigned int k; | 160 | unsigned int k; |
| 158 | snd_pcm_hardware_t *hw; | 161 | struct snd_pcm_hardware *hw; |
| 159 | snd_interval_t *i = NULL; | 162 | struct snd_interval *i = NULL; |
| 160 | snd_mask_t *m = NULL; | 163 | struct snd_mask *m = NULL; |
| 161 | snd_pcm_hw_constraints_t *constrs = &substream->runtime->hw_constraints; | 164 | struct snd_pcm_hw_constraints *constrs = &substream->runtime->hw_constraints; |
| 162 | unsigned int rstamps[constrs->rules_num]; | 165 | unsigned int rstamps[constrs->rules_num]; |
| 163 | unsigned int vstamps[SNDRV_PCM_HW_PARAM_LAST_INTERVAL + 1]; | 166 | unsigned int vstamps[SNDRV_PCM_HW_PARAM_LAST_INTERVAL + 1]; |
| 164 | unsigned int stamp = 2; | 167 | unsigned int stamp = 2; |
| @@ -231,7 +234,7 @@ int snd_pcm_hw_refine(snd_pcm_substream_t *substream, | |||
| 231 | do { | 234 | do { |
| 232 | again = 0; | 235 | again = 0; |
| 233 | for (k = 0; k < constrs->rules_num; k++) { | 236 | for (k = 0; k < constrs->rules_num; k++) { |
| 234 | snd_pcm_hw_rule_t *r = &constrs->rules[k]; | 237 | struct snd_pcm_hw_rule *r = &constrs->rules[k]; |
| 235 | unsigned int d; | 238 | unsigned int d; |
| 236 | int doit = 0; | 239 | int doit = 0; |
| 237 | if (r->cond && !(r->cond & params->flags)) | 240 | if (r->cond && !(r->cond & params->flags)) |
| @@ -313,9 +316,10 @@ int snd_pcm_hw_refine(snd_pcm_substream_t *substream, | |||
| 313 | return 0; | 316 | return 0; |
| 314 | } | 317 | } |
| 315 | 318 | ||
| 316 | static int snd_pcm_hw_refine_user(snd_pcm_substream_t * substream, snd_pcm_hw_params_t __user * _params) | 319 | static int snd_pcm_hw_refine_user(struct snd_pcm_substream *substream, |
| 320 | struct snd_pcm_hw_params __user * _params) | ||
| 317 | { | 321 | { |
| 318 | snd_pcm_hw_params_t *params; | 322 | struct snd_pcm_hw_params *params; |
| 319 | int err; | 323 | int err; |
| 320 | 324 | ||
| 321 | params = kmalloc(sizeof(*params), GFP_KERNEL); | 325 | params = kmalloc(sizeof(*params), GFP_KERNEL); |
| @@ -337,10 +341,10 @@ out: | |||
| 337 | return err; | 341 | return err; |
| 338 | } | 342 | } |
| 339 | 343 | ||
| 340 | static int snd_pcm_hw_params(snd_pcm_substream_t *substream, | 344 | static int snd_pcm_hw_params(struct snd_pcm_substream *substream, |
| 341 | snd_pcm_hw_params_t *params) | 345 | struct snd_pcm_hw_params *params) |
| 342 | { | 346 | { |
| 343 | snd_pcm_runtime_t *runtime; | 347 | struct snd_pcm_runtime *runtime; |
| 344 | int err; | 348 | int err; |
| 345 | unsigned int bits; | 349 | unsigned int bits; |
| 346 | snd_pcm_uframes_t frames; | 350 | snd_pcm_uframes_t frames; |
| @@ -432,9 +436,10 @@ static int snd_pcm_hw_params(snd_pcm_substream_t *substream, | |||
| 432 | return err; | 436 | return err; |
| 433 | } | 437 | } |
| 434 | 438 | ||
| 435 | static int snd_pcm_hw_params_user(snd_pcm_substream_t * substream, snd_pcm_hw_params_t __user * _params) | 439 | static int snd_pcm_hw_params_user(struct snd_pcm_substream *substream, |
| 440 | struct snd_pcm_hw_params __user * _params) | ||
| 436 | { | 441 | { |
| 437 | snd_pcm_hw_params_t *params; | 442 | struct snd_pcm_hw_params *params; |
| 438 | int err; | 443 | int err; |
| 439 | 444 | ||
| 440 | params = kmalloc(sizeof(*params), GFP_KERNEL); | 445 | params = kmalloc(sizeof(*params), GFP_KERNEL); |
| @@ -456,9 +461,9 @@ out: | |||
| 456 | return err; | 461 | return err; |
| 457 | } | 462 | } |
| 458 | 463 | ||
| 459 | static int snd_pcm_hw_free(snd_pcm_substream_t * substream) | 464 | static int snd_pcm_hw_free(struct snd_pcm_substream *substream) |
| 460 | { | 465 | { |
| 461 | snd_pcm_runtime_t *runtime; | 466 | struct snd_pcm_runtime *runtime; |
| 462 | int result = 0; | 467 | int result = 0; |
| 463 | 468 | ||
| 464 | snd_assert(substream != NULL, return -ENXIO); | 469 | snd_assert(substream != NULL, return -ENXIO); |
| @@ -482,9 +487,10 @@ static int snd_pcm_hw_free(snd_pcm_substream_t * substream) | |||
| 482 | return result; | 487 | return result; |
| 483 | } | 488 | } |
| 484 | 489 | ||
| 485 | static int snd_pcm_sw_params(snd_pcm_substream_t * substream, snd_pcm_sw_params_t *params) | 490 | static int snd_pcm_sw_params(struct snd_pcm_substream *substream, |
| 491 | struct snd_pcm_sw_params *params) | ||
| 486 | { | 492 | { |
| 487 | snd_pcm_runtime_t *runtime; | 493 | struct snd_pcm_runtime *runtime; |
| 488 | 494 | ||
| 489 | snd_assert(substream != NULL, return -ENXIO); | 495 | snd_assert(substream != NULL, return -ENXIO); |
| 490 | runtime = substream->runtime; | 496 | runtime = substream->runtime; |
| @@ -537,9 +543,10 @@ static int snd_pcm_sw_params(snd_pcm_substream_t * substream, snd_pcm_sw_params_ | |||
| 537 | return 0; | 543 | return 0; |
| 538 | } | 544 | } |
| 539 | 545 | ||
| 540 | static int snd_pcm_sw_params_user(snd_pcm_substream_t * substream, snd_pcm_sw_params_t __user * _params) | 546 | static int snd_pcm_sw_params_user(struct snd_pcm_substream *substream, |
| 547 | struct snd_pcm_sw_params __user * _params) | ||
| 541 | { | 548 | { |
| 542 | snd_pcm_sw_params_t params; | 549 | struct snd_pcm_sw_params params; |
| 543 | int err; | 550 | int err; |
| 544 | if (copy_from_user(¶ms, _params, sizeof(params))) | 551 | if (copy_from_user(¶ms, _params, sizeof(params))) |
| 545 | return -EFAULT; | 552 | return -EFAULT; |
| @@ -549,10 +556,10 @@ static int snd_pcm_sw_params_user(snd_pcm_substream_t * substream, snd_pcm_sw_pa | |||
| 549 | return err; | 556 | return err; |
| 550 | } | 557 | } |
| 551 | 558 | ||
| 552 | int snd_pcm_status(snd_pcm_substream_t *substream, | 559 | int snd_pcm_status(struct snd_pcm_substream *substream, |
| 553 | snd_pcm_status_t *status) | 560 | struct snd_pcm_status *status) |
| 554 | { | 561 | { |
| 555 | snd_pcm_runtime_t *runtime = substream->runtime; | 562 | struct snd_pcm_runtime *runtime = substream->runtime; |
| 556 | 563 | ||
| 557 | snd_pcm_stream_lock_irq(substream); | 564 | snd_pcm_stream_lock_irq(substream); |
| 558 | status->state = runtime->status->state; | 565 | status->state = runtime->status->state; |
| @@ -593,10 +600,11 @@ int snd_pcm_status(snd_pcm_substream_t *substream, | |||
| 593 | return 0; | 600 | return 0; |
| 594 | } | 601 | } |
| 595 | 602 | ||
| 596 | static int snd_pcm_status_user(snd_pcm_substream_t * substream, snd_pcm_status_t __user * _status) | 603 | static int snd_pcm_status_user(struct snd_pcm_substream *substream, |
| 604 | struct snd_pcm_status __user * _status) | ||
| 597 | { | 605 | { |
| 598 | snd_pcm_status_t status; | 606 | struct snd_pcm_status status; |
| 599 | snd_pcm_runtime_t *runtime; | 607 | struct snd_pcm_runtime *runtime; |
| 600 | int res; | 608 | int res; |
| 601 | 609 | ||
| 602 | snd_assert(substream != NULL, return -ENXIO); | 610 | snd_assert(substream != NULL, return -ENXIO); |
| @@ -610,9 +618,10 @@ static int snd_pcm_status_user(snd_pcm_substream_t * substream, snd_pcm_status_t | |||
| 610 | return 0; | 618 | return 0; |
| 611 | } | 619 | } |
| 612 | 620 | ||
| 613 | static int snd_pcm_channel_info(snd_pcm_substream_t * substream, snd_pcm_channel_info_t * info) | 621 | static int snd_pcm_channel_info(struct snd_pcm_substream *substream, |
| 622 | struct snd_pcm_channel_info * info) | ||
| 614 | { | 623 | { |
| 615 | snd_pcm_runtime_t *runtime; | 624 | struct snd_pcm_runtime *runtime; |
| 616 | unsigned int channel; | 625 | unsigned int channel; |
| 617 | 626 | ||
| 618 | snd_assert(substream != NULL, return -ENXIO); | 627 | snd_assert(substream != NULL, return -ENXIO); |
| @@ -631,9 +640,10 @@ static int snd_pcm_channel_info(snd_pcm_substream_t * substream, snd_pcm_channel | |||
| 631 | return substream->ops->ioctl(substream, SNDRV_PCM_IOCTL1_CHANNEL_INFO, info); | 640 | return substream->ops->ioctl(substream, SNDRV_PCM_IOCTL1_CHANNEL_INFO, info); |
| 632 | } | 641 | } |
| 633 | 642 | ||
| 634 | static int snd_pcm_channel_info_user(snd_pcm_substream_t * substream, snd_pcm_channel_info_t __user * _info) | 643 | static int snd_pcm_channel_info_user(struct snd_pcm_substream *substream, |
| 644 | struct snd_pcm_channel_info __user * _info) | ||
| 635 | { | 645 | { |
| 636 | snd_pcm_channel_info_t info; | 646 | struct snd_pcm_channel_info info; |
| 637 | int res; | 647 | int res; |
| 638 | 648 | ||
| 639 | if (copy_from_user(&info, _info, sizeof(info))) | 649 | if (copy_from_user(&info, _info, sizeof(info))) |
| @@ -646,9 +656,9 @@ static int snd_pcm_channel_info_user(snd_pcm_substream_t * substream, snd_pcm_ch | |||
| 646 | return 0; | 656 | return 0; |
| 647 | } | 657 | } |
| 648 | 658 | ||
| 649 | static void snd_pcm_trigger_tstamp(snd_pcm_substream_t *substream) | 659 | static void snd_pcm_trigger_tstamp(struct snd_pcm_substream *substream) |
| 650 | { | 660 | { |
| 651 | snd_pcm_runtime_t *runtime = substream->runtime; | 661 | struct snd_pcm_runtime *runtime = substream->runtime; |
| 652 | if (runtime->trigger_master == NULL) | 662 | if (runtime->trigger_master == NULL) |
| 653 | return; | 663 | return; |
| 654 | if (runtime->trigger_master == substream) { | 664 | if (runtime->trigger_master == substream) { |
| @@ -661,10 +671,10 @@ static void snd_pcm_trigger_tstamp(snd_pcm_substream_t *substream) | |||
| 661 | } | 671 | } |
| 662 | 672 | ||
| 663 | struct action_ops { | 673 | struct action_ops { |
| 664 | int (*pre_action)(snd_pcm_substream_t *substream, int state); | 674 | int (*pre_action)(struct snd_pcm_substream *substream, int state); |
| 665 | int (*do_action)(snd_pcm_substream_t *substream, int state); | 675 | int (*do_action)(struct snd_pcm_substream *substream, int state); |
| 666 | void (*undo_action)(snd_pcm_substream_t *substream, int state); | 676 | void (*undo_action)(struct snd_pcm_substream *substream, int state); |
| 667 | void (*post_action)(snd_pcm_substream_t *substream, int state); | 677 | void (*post_action)(struct snd_pcm_substream *substream, int state); |
| 668 | }; | 678 | }; |
| 669 | 679 | ||
| 670 | /* | 680 | /* |
| @@ -673,12 +683,12 @@ struct action_ops { | |||
| 673 | * Note2: call with calling stream lock + link lock | 683 | * Note2: call with calling stream lock + link lock |
| 674 | */ | 684 | */ |
| 675 | static int snd_pcm_action_group(struct action_ops *ops, | 685 | static int snd_pcm_action_group(struct action_ops *ops, |
| 676 | snd_pcm_substream_t *substream, | 686 | struct snd_pcm_substream *substream, |
| 677 | int state, int do_lock) | 687 | int state, int do_lock) |
| 678 | { | 688 | { |
| 679 | struct list_head *pos; | 689 | struct list_head *pos; |
| 680 | snd_pcm_substream_t *s = NULL; | 690 | struct snd_pcm_substream *s = NULL; |
| 681 | snd_pcm_substream_t *s1; | 691 | struct snd_pcm_substream *s1; |
| 682 | int res = 0; | 692 | int res = 0; |
| 683 | 693 | ||
| 684 | snd_pcm_group_for_each(pos, substream) { | 694 | snd_pcm_group_for_each(pos, substream) { |
| @@ -727,7 +737,7 @@ static int snd_pcm_action_group(struct action_ops *ops, | |||
| 727 | * Note: call with stream lock | 737 | * Note: call with stream lock |
| 728 | */ | 738 | */ |
| 729 | static int snd_pcm_action_single(struct action_ops *ops, | 739 | static int snd_pcm_action_single(struct action_ops *ops, |
| 730 | snd_pcm_substream_t *substream, | 740 | struct snd_pcm_substream *substream, |
| 731 | int state) | 741 | int state) |
| 732 | { | 742 | { |
| 733 | int res; | 743 | int res; |
| @@ -747,7 +757,7 @@ static int snd_pcm_action_single(struct action_ops *ops, | |||
| 747 | * Note: call with stream lock | 757 | * Note: call with stream lock |
| 748 | */ | 758 | */ |
| 749 | static int snd_pcm_action(struct action_ops *ops, | 759 | static int snd_pcm_action(struct action_ops *ops, |
| 750 | snd_pcm_substream_t *substream, | 760 | struct snd_pcm_substream *substream, |
| 751 | int state) | 761 | int state) |
| 752 | { | 762 | { |
| 753 | int res; | 763 | int res; |
| @@ -770,7 +780,7 @@ static int snd_pcm_action(struct action_ops *ops, | |||
| 770 | * Note: don't use any locks before | 780 | * Note: don't use any locks before |
| 771 | */ | 781 | */ |
| 772 | static int snd_pcm_action_lock_irq(struct action_ops *ops, | 782 | static int snd_pcm_action_lock_irq(struct action_ops *ops, |
| 773 | snd_pcm_substream_t *substream, | 783 | struct snd_pcm_substream *substream, |
| 774 | int state) | 784 | int state) |
| 775 | { | 785 | { |
| 776 | int res; | 786 | int res; |
| @@ -794,7 +804,7 @@ static int snd_pcm_action_lock_irq(struct action_ops *ops, | |||
| 794 | /* | 804 | /* |
| 795 | */ | 805 | */ |
| 796 | static int snd_pcm_action_nonatomic(struct action_ops *ops, | 806 | static int snd_pcm_action_nonatomic(struct action_ops *ops, |
| 797 | snd_pcm_substream_t *substream, | 807 | struct snd_pcm_substream *substream, |
| 798 | int state) | 808 | int state) |
| 799 | { | 809 | { |
| 800 | int res; | 810 | int res; |
| @@ -811,9 +821,9 @@ static int snd_pcm_action_nonatomic(struct action_ops *ops, | |||
| 811 | /* | 821 | /* |
| 812 | * start callbacks | 822 | * start callbacks |
| 813 | */ | 823 | */ |
| 814 | static int snd_pcm_pre_start(snd_pcm_substream_t *substream, int state) | 824 | static int snd_pcm_pre_start(struct snd_pcm_substream *substream, int state) |
| 815 | { | 825 | { |
| 816 | snd_pcm_runtime_t *runtime = substream->runtime; | 826 | struct snd_pcm_runtime *runtime = substream->runtime; |
| 817 | if (runtime->status->state != SNDRV_PCM_STATE_PREPARED) | 827 | if (runtime->status->state != SNDRV_PCM_STATE_PREPARED) |
| 818 | return -EBADFD; | 828 | return -EBADFD; |
| 819 | if (substream->stream == SNDRV_PCM_STREAM_PLAYBACK && | 829 | if (substream->stream == SNDRV_PCM_STREAM_PLAYBACK && |
| @@ -823,22 +833,22 @@ static int snd_pcm_pre_start(snd_pcm_substream_t *substream, int state) | |||
| 823 | return 0; | 833 | return 0; |
| 824 | } | 834 | } |
| 825 | 835 | ||
| 826 | static int snd_pcm_do_start(snd_pcm_substream_t *substream, int state) | 836 | static int snd_pcm_do_start(struct snd_pcm_substream *substream, int state) |
| 827 | { | 837 | { |
| 828 | if (substream->runtime->trigger_master != substream) | 838 | if (substream->runtime->trigger_master != substream) |
| 829 | return 0; | 839 | return 0; |
| 830 | return substream->ops->trigger(substream, SNDRV_PCM_TRIGGER_START); | 840 | return substream->ops->trigger(substream, SNDRV_PCM_TRIGGER_START); |
| 831 | } | 841 | } |
| 832 | 842 | ||
| 833 | static void snd_pcm_undo_start(snd_pcm_substream_t *substream, int state) | 843 | static void snd_pcm_undo_start(struct snd_pcm_substream *substream, int state) |
| 834 | { | 844 | { |
| 835 | if (substream->runtime->trigger_master == substream) | 845 | if (substream->runtime->trigger_master == substream) |
| 836 | substream->ops->trigger(substream, SNDRV_PCM_TRIGGER_STOP); | 846 | substream->ops->trigger(substream, SNDRV_PCM_TRIGGER_STOP); |
| 837 | } | 847 | } |
| 838 | 848 | ||
| 839 | static void snd_pcm_post_start(snd_pcm_substream_t *substream, int state) | 849 | static void snd_pcm_post_start(struct snd_pcm_substream *substream, int state) |
| 840 | { | 850 | { |
| 841 | snd_pcm_runtime_t *runtime = substream->runtime; | 851 | struct snd_pcm_runtime *runtime = substream->runtime; |
| 842 | snd_pcm_trigger_tstamp(substream); | 852 | snd_pcm_trigger_tstamp(substream); |
| 843 | runtime->status->state = state; | 853 | runtime->status->state = state; |
| 844 | if (substream->stream == SNDRV_PCM_STREAM_PLAYBACK && | 854 | if (substream->stream == SNDRV_PCM_STREAM_PLAYBACK && |
| @@ -847,7 +857,8 @@ static void snd_pcm_post_start(snd_pcm_substream_t *substream, int state) | |||
| 847 | if (runtime->sleep_min) | 857 | if (runtime->sleep_min) |
| 848 | snd_pcm_tick_prepare(substream); | 858 | snd_pcm_tick_prepare(substream); |
| 849 | if (substream->timer) | 859 | if (substream->timer) |
| 850 | snd_timer_notify(substream->timer, SNDRV_TIMER_EVENT_MSTART, &runtime->trigger_tstamp); | 860 | snd_timer_notify(substream->timer, SNDRV_TIMER_EVENT_MSTART, |
| 861 | &runtime->trigger_tstamp); | ||
| 851 | } | 862 | } |
| 852 | 863 | ||
| 853 | static struct action_ops snd_pcm_action_start = { | 864 | static struct action_ops snd_pcm_action_start = { |
| @@ -863,24 +874,25 @@ static struct action_ops snd_pcm_action_start = { | |||
| 863 | * | 874 | * |
| 864 | * Start all linked streams. | 875 | * Start all linked streams. |
| 865 | */ | 876 | */ |
| 866 | int snd_pcm_start(snd_pcm_substream_t *substream) | 877 | int snd_pcm_start(struct snd_pcm_substream *substream) |
| 867 | { | 878 | { |
| 868 | return snd_pcm_action(&snd_pcm_action_start, substream, SNDRV_PCM_STATE_RUNNING); | 879 | return snd_pcm_action(&snd_pcm_action_start, substream, |
| 880 | SNDRV_PCM_STATE_RUNNING); | ||
| 869 | } | 881 | } |
| 870 | 882 | ||
| 871 | /* | 883 | /* |
| 872 | * stop callbacks | 884 | * stop callbacks |
| 873 | */ | 885 | */ |
| 874 | static int snd_pcm_pre_stop(snd_pcm_substream_t *substream, int state) | 886 | static int snd_pcm_pre_stop(struct snd_pcm_substream *substream, int state) |
| 875 | { | 887 | { |
| 876 | snd_pcm_runtime_t *runtime = substream->runtime; | 888 | struct snd_pcm_runtime *runtime = substream->runtime; |
| 877 | if (runtime->status->state == SNDRV_PCM_STATE_OPEN) | 889 | if (runtime->status->state == SNDRV_PCM_STATE_OPEN) |
| 878 | return -EBADFD; | 890 | return -EBADFD; |
| 879 | runtime->trigger_master = substream; | 891 | runtime->trigger_master = substream; |
| 880 | return 0; | 892 | return 0; |
| 881 | } | 893 | } |
| 882 | 894 | ||
| 883 | static int snd_pcm_do_stop(snd_pcm_substream_t *substream, int state) | 895 | static int snd_pcm_do_stop(struct snd_pcm_substream *substream, int state) |
| 884 | { | 896 | { |
| 885 | if (substream->runtime->trigger_master == substream && | 897 | if (substream->runtime->trigger_master == substream && |
| 886 | snd_pcm_running(substream)) | 898 | snd_pcm_running(substream)) |
| @@ -888,13 +900,14 @@ static int snd_pcm_do_stop(snd_pcm_substream_t *substream, int state) | |||
| 888 | return 0; /* unconditonally stop all substreams */ | 900 | return 0; /* unconditonally stop all substreams */ |
| 889 | } | 901 | } |
| 890 | 902 | ||
| 891 | static void snd_pcm_post_stop(snd_pcm_substream_t *substream, int state) | 903 | static void snd_pcm_post_stop(struct snd_pcm_substream *substream, int state) |
| 892 | { | 904 | { |
| 893 | snd_pcm_runtime_t *runtime = substream->runtime; | 905 | struct snd_pcm_runtime *runtime = substream->runtime; |
| 894 | if (runtime->status->state != state) { | 906 | if (runtime->status->state != state) { |
| 895 | snd_pcm_trigger_tstamp(substream); | 907 | snd_pcm_trigger_tstamp(substream); |
| 896 | if (substream->timer) | 908 | if (substream->timer) |
| 897 | snd_timer_notify(substream->timer, SNDRV_TIMER_EVENT_MSTOP, &runtime->trigger_tstamp); | 909 | snd_timer_notify(substream->timer, SNDRV_TIMER_EVENT_MSTOP, |
| 910 | &runtime->trigger_tstamp); | ||
| 898 | runtime->status->state = state; | 911 | runtime->status->state = state; |
| 899 | snd_pcm_tick_set(substream, 0); | 912 | snd_pcm_tick_set(substream, 0); |
| 900 | } | 913 | } |
| @@ -915,7 +928,7 @@ static struct action_ops snd_pcm_action_stop = { | |||
| 915 | * Try to stop all running streams in the substream group. | 928 | * Try to stop all running streams in the substream group. |
| 916 | * The state of each stream is changed to the given value after that unconditionally. | 929 | * The state of each stream is changed to the given value after that unconditionally. |
| 917 | */ | 930 | */ |
| 918 | int snd_pcm_stop(snd_pcm_substream_t *substream, int state) | 931 | int snd_pcm_stop(struct snd_pcm_substream *substream, int state) |
| 919 | { | 932 | { |
| 920 | return snd_pcm_action(&snd_pcm_action_stop, substream, state); | 933 | return snd_pcm_action(&snd_pcm_action_stop, substream, state); |
| 921 | } | 934 | } |
| @@ -928,17 +941,18 @@ int snd_pcm_stop(snd_pcm_substream_t *substream, int state) | |||
| 928 | * The state is changed to SETUP. | 941 | * The state is changed to SETUP. |
| 929 | * Unlike snd_pcm_stop(), this affects only the given stream. | 942 | * Unlike snd_pcm_stop(), this affects only the given stream. |
| 930 | */ | 943 | */ |
| 931 | int snd_pcm_drain_done(snd_pcm_substream_t *substream) | 944 | int snd_pcm_drain_done(struct snd_pcm_substream *substream) |
| 932 | { | 945 | { |
| 933 | return snd_pcm_action_single(&snd_pcm_action_stop, substream, SNDRV_PCM_STATE_SETUP); | 946 | return snd_pcm_action_single(&snd_pcm_action_stop, substream, |
| 947 | SNDRV_PCM_STATE_SETUP); | ||
| 934 | } | 948 | } |
| 935 | 949 | ||
| 936 | /* | 950 | /* |
| 937 | * pause callbacks | 951 | * pause callbacks |
| 938 | */ | 952 | */ |
| 939 | static int snd_pcm_pre_pause(snd_pcm_substream_t *substream, int push) | 953 | static int snd_pcm_pre_pause(struct snd_pcm_substream *substream, int push) |
| 940 | { | 954 | { |
| 941 | snd_pcm_runtime_t *runtime = substream->runtime; | 955 | struct snd_pcm_runtime *runtime = substream->runtime; |
| 942 | if (!(runtime->info & SNDRV_PCM_INFO_PAUSE)) | 956 | if (!(runtime->info & SNDRV_PCM_INFO_PAUSE)) |
| 943 | return -ENOSYS; | 957 | return -ENOSYS; |
| 944 | if (push) { | 958 | if (push) { |
| @@ -950,7 +964,7 @@ static int snd_pcm_pre_pause(snd_pcm_substream_t *substream, int push) | |||
| 950 | return 0; | 964 | return 0; |
| 951 | } | 965 | } |
| 952 | 966 | ||
| 953 | static int snd_pcm_do_pause(snd_pcm_substream_t *substream, int push) | 967 | static int snd_pcm_do_pause(struct snd_pcm_substream *substream, int push) |
| 954 | { | 968 | { |
| 955 | if (substream->runtime->trigger_master != substream) | 969 | if (substream->runtime->trigger_master != substream) |
| 956 | return 0; | 970 | return 0; |
| @@ -959,7 +973,7 @@ static int snd_pcm_do_pause(snd_pcm_substream_t *substream, int push) | |||
| 959 | SNDRV_PCM_TRIGGER_PAUSE_RELEASE); | 973 | SNDRV_PCM_TRIGGER_PAUSE_RELEASE); |
| 960 | } | 974 | } |
| 961 | 975 | ||
| 962 | static void snd_pcm_undo_pause(snd_pcm_substream_t *substream, int push) | 976 | static void snd_pcm_undo_pause(struct snd_pcm_substream *substream, int push) |
| 963 | { | 977 | { |
| 964 | if (substream->runtime->trigger_master == substream) | 978 | if (substream->runtime->trigger_master == substream) |
| 965 | substream->ops->trigger(substream, | 979 | substream->ops->trigger(substream, |
| @@ -967,14 +981,16 @@ static void snd_pcm_undo_pause(snd_pcm_substream_t *substream, int push) | |||
| 967 | SNDRV_PCM_TRIGGER_PAUSE_PUSH); | 981 | SNDRV_PCM_TRIGGER_PAUSE_PUSH); |
| 968 | } | 982 | } |
| 969 | 983 | ||
| 970 | static void snd_pcm_post_pause(snd_pcm_substream_t *substream, int push) | 984 | static void snd_pcm_post_pause(struct snd_pcm_substream *substream, int push) |
| 971 | { | 985 | { |
| 972 | snd_pcm_runtime_t *runtime = substream->runtime; | 986 | struct snd_pcm_runtime *runtime = substream->runtime; |
| 973 | snd_pcm_trigger_tstamp(substream); | 987 | snd_pcm_trigger_tstamp(substream); |
| 974 | if (push) { | 988 | if (push) { |
| 975 | runtime->status->state = SNDRV_PCM_STATE_PAUSED; | 989 | runtime->status->state = SNDRV_PCM_STATE_PAUSED; |
| 976 | if (substream->timer) | 990 | if (substream->timer) |
| 977 | snd_timer_notify(substream->timer, SNDRV_TIMER_EVENT_MPAUSE, &runtime->trigger_tstamp); | 991 | snd_timer_notify(substream->timer, |
| 992 | SNDRV_TIMER_EVENT_MPAUSE, | ||
| 993 | &runtime->trigger_tstamp); | ||
| 978 | snd_pcm_tick_set(substream, 0); | 994 | snd_pcm_tick_set(substream, 0); |
| 979 | wake_up(&runtime->sleep); | 995 | wake_up(&runtime->sleep); |
| 980 | } else { | 996 | } else { |
| @@ -982,7 +998,9 @@ static void snd_pcm_post_pause(snd_pcm_substream_t *substream, int push) | |||
| 982 | if (runtime->sleep_min) | 998 | if (runtime->sleep_min) |
| 983 | snd_pcm_tick_prepare(substream); | 999 | snd_pcm_tick_prepare(substream); |
| 984 | if (substream->timer) | 1000 | if (substream->timer) |
| 985 | snd_timer_notify(substream->timer, SNDRV_TIMER_EVENT_MCONTINUE, &runtime->trigger_tstamp); | 1001 | snd_timer_notify(substream->timer, |
| 1002 | SNDRV_TIMER_EVENT_MCONTINUE, | ||
| 1003 | &runtime->trigger_tstamp); | ||
| 986 | } | 1004 | } |
| 987 | } | 1005 | } |
| 988 | 1006 | ||
| @@ -996,7 +1014,7 @@ static struct action_ops snd_pcm_action_pause = { | |||
| 996 | /* | 1014 | /* |
| 997 | * Push/release the pause for all linked streams. | 1015 | * Push/release the pause for all linked streams. |
| 998 | */ | 1016 | */ |
| 999 | static int snd_pcm_pause(snd_pcm_substream_t *substream, int push) | 1017 | static int snd_pcm_pause(struct snd_pcm_substream *substream, int push) |
| 1000 | { | 1018 | { |
| 1001 | return snd_pcm_action(&snd_pcm_action_pause, substream, push); | 1019 | return snd_pcm_action(&snd_pcm_action_pause, substream, push); |
| 1002 | } | 1020 | } |
| @@ -1004,18 +1022,18 @@ static int snd_pcm_pause(snd_pcm_substream_t *substream, int push) | |||
| 1004 | #ifdef CONFIG_PM | 1022 | #ifdef CONFIG_PM |
| 1005 | /* suspend */ | 1023 | /* suspend */ |
| 1006 | 1024 | ||
| 1007 | static int snd_pcm_pre_suspend(snd_pcm_substream_t *substream, int state) | 1025 | static int snd_pcm_pre_suspend(struct snd_pcm_substream *substream, int state) |
| 1008 | { | 1026 | { |
| 1009 | snd_pcm_runtime_t *runtime = substream->runtime; | 1027 | struct snd_pcm_runtime *runtime = substream->runtime; |
| 1010 | if (runtime->status->state == SNDRV_PCM_STATE_SUSPENDED) | 1028 | if (runtime->status->state == SNDRV_PCM_STATE_SUSPENDED) |
| 1011 | return -EBUSY; | 1029 | return -EBUSY; |
| 1012 | runtime->trigger_master = substream; | 1030 | runtime->trigger_master = substream; |
| 1013 | return 0; | 1031 | return 0; |
| 1014 | } | 1032 | } |
| 1015 | 1033 | ||
| 1016 | static int snd_pcm_do_suspend(snd_pcm_substream_t *substream, int state) | 1034 | static int snd_pcm_do_suspend(struct snd_pcm_substream *substream, int state) |
| 1017 | { | 1035 | { |
| 1018 | snd_pcm_runtime_t *runtime = substream->runtime; | 1036 | struct snd_pcm_runtime *runtime = substream->runtime; |
| 1019 | if (runtime->trigger_master != substream) | 1037 | if (runtime->trigger_master != substream) |
| 1020 | return 0; | 1038 | return 0; |
| 1021 | if (! snd_pcm_running(substream)) | 1039 | if (! snd_pcm_running(substream)) |
| @@ -1024,12 +1042,13 @@ static int snd_pcm_do_suspend(snd_pcm_substream_t *substream, int state) | |||
| 1024 | return 0; /* suspend unconditionally */ | 1042 | return 0; /* suspend unconditionally */ |
| 1025 | } | 1043 | } |
| 1026 | 1044 | ||
| 1027 | static void snd_pcm_post_suspend(snd_pcm_substream_t *substream, int state) | 1045 | static void snd_pcm_post_suspend(struct snd_pcm_substream *substream, int state) |
| 1028 | { | 1046 | { |
| 1029 | snd_pcm_runtime_t *runtime = substream->runtime; | 1047 | struct snd_pcm_runtime *runtime = substream->runtime; |
| 1030 | snd_pcm_trigger_tstamp(substream); | 1048 | snd_pcm_trigger_tstamp(substream); |
| 1031 | if (substream->timer) | 1049 | if (substream->timer) |
| 1032 | snd_timer_notify(substream->timer, SNDRV_TIMER_EVENT_MSUSPEND, &runtime->trigger_tstamp); | 1050 | snd_timer_notify(substream->timer, SNDRV_TIMER_EVENT_MSUSPEND, |
| 1051 | &runtime->trigger_tstamp); | ||
| 1033 | runtime->status->suspended_state = runtime->status->state; | 1052 | runtime->status->suspended_state = runtime->status->state; |
| 1034 | runtime->status->state = SNDRV_PCM_STATE_SUSPENDED; | 1053 | runtime->status->state = SNDRV_PCM_STATE_SUSPENDED; |
| 1035 | snd_pcm_tick_set(substream, 0); | 1054 | snd_pcm_tick_set(substream, 0); |
| @@ -1049,7 +1068,7 @@ static struct action_ops snd_pcm_action_suspend = { | |||
| 1049 | * Trigger SUSPEND to all linked streams. | 1068 | * Trigger SUSPEND to all linked streams. |
| 1050 | * After this call, all streams are changed to SUSPENDED state. | 1069 | * After this call, all streams are changed to SUSPENDED state. |
| 1051 | */ | 1070 | */ |
| 1052 | int snd_pcm_suspend(snd_pcm_substream_t *substream) | 1071 | int snd_pcm_suspend(struct snd_pcm_substream *substream) |
| 1053 | { | 1072 | { |
| 1054 | int err; | 1073 | int err; |
| 1055 | unsigned long flags; | 1074 | unsigned long flags; |
| @@ -1067,13 +1086,14 @@ int snd_pcm_suspend(snd_pcm_substream_t *substream) | |||
| 1067 | * Trigger SUSPEND to all substreams in the given pcm. | 1086 | * Trigger SUSPEND to all substreams in the given pcm. |
| 1068 | * After this call, all streams are changed to SUSPENDED state. | 1087 | * After this call, all streams are changed to SUSPENDED state. |
| 1069 | */ | 1088 | */ |
| 1070 | int snd_pcm_suspend_all(snd_pcm_t *pcm) | 1089 | int snd_pcm_suspend_all(struct snd_pcm *pcm) |
| 1071 | { | 1090 | { |
| 1072 | snd_pcm_substream_t *substream; | 1091 | struct snd_pcm_substream *substream; |
| 1073 | int stream, err = 0; | 1092 | int stream, err = 0; |
| 1074 | 1093 | ||
| 1075 | for (stream = 0; stream < 2; stream++) { | 1094 | for (stream = 0; stream < 2; stream++) { |
| 1076 | for (substream = pcm->streams[stream].substream; substream; substream = substream->next) { | 1095 | for (substream = pcm->streams[stream].substream; |
| 1096 | substream; substream = substream->next) { | ||
| 1077 | /* FIXME: the open/close code should lock this as well */ | 1097 | /* FIXME: the open/close code should lock this as well */ |
| 1078 | if (substream->runtime == NULL) | 1098 | if (substream->runtime == NULL) |
| 1079 | continue; | 1099 | continue; |
| @@ -1087,18 +1107,18 @@ int snd_pcm_suspend_all(snd_pcm_t *pcm) | |||
| 1087 | 1107 | ||
| 1088 | /* resume */ | 1108 | /* resume */ |
| 1089 | 1109 | ||
| 1090 | static int snd_pcm_pre_resume(snd_pcm_substream_t *substream, int state) | 1110 | static int snd_pcm_pre_resume(struct snd_pcm_substream *substream, int state) |
| 1091 | { | 1111 | { |
| 1092 | snd_pcm_runtime_t *runtime = substream->runtime; | 1112 | struct snd_pcm_runtime *runtime = substream->runtime; |
| 1093 | if (!(runtime->info & SNDRV_PCM_INFO_RESUME)) | 1113 | if (!(runtime->info & SNDRV_PCM_INFO_RESUME)) |
| 1094 | return -ENOSYS; | 1114 | return -ENOSYS; |
| 1095 | runtime->trigger_master = substream; | 1115 | runtime->trigger_master = substream; |
| 1096 | return 0; | 1116 | return 0; |
| 1097 | } | 1117 | } |
| 1098 | 1118 | ||
| 1099 | static int snd_pcm_do_resume(snd_pcm_substream_t *substream, int state) | 1119 | static int snd_pcm_do_resume(struct snd_pcm_substream *substream, int state) |
| 1100 | { | 1120 | { |
| 1101 | snd_pcm_runtime_t *runtime = substream->runtime; | 1121 | struct snd_pcm_runtime *runtime = substream->runtime; |
| 1102 | if (runtime->trigger_master != substream) | 1122 | if (runtime->trigger_master != substream) |
| 1103 | return 0; | 1123 | return 0; |
| 1104 | /* DMA not running previously? */ | 1124 | /* DMA not running previously? */ |
| @@ -1109,19 +1129,20 @@ static int snd_pcm_do_resume(snd_pcm_substream_t *substream, int state) | |||
| 1109 | return substream->ops->trigger(substream, SNDRV_PCM_TRIGGER_RESUME); | 1129 | return substream->ops->trigger(substream, SNDRV_PCM_TRIGGER_RESUME); |
| 1110 | } | 1130 | } |
| 1111 | 1131 | ||
| 1112 | static void snd_pcm_undo_resume(snd_pcm_substream_t *substream, int state) | 1132 | static void snd_pcm_undo_resume(struct snd_pcm_substream *substream, int state) |
| 1113 | { | 1133 | { |
| 1114 | if (substream->runtime->trigger_master == substream && | 1134 | if (substream->runtime->trigger_master == substream && |
| 1115 | snd_pcm_running(substream)) | 1135 | snd_pcm_running(substream)) |
| 1116 | substream->ops->trigger(substream, SNDRV_PCM_TRIGGER_SUSPEND); | 1136 | substream->ops->trigger(substream, SNDRV_PCM_TRIGGER_SUSPEND); |
| 1117 | } | 1137 | } |
| 1118 | 1138 | ||
| 1119 | static void snd_pcm_post_resume(snd_pcm_substream_t *substream, int state) | 1139 | static void snd_pcm_post_resume(struct snd_pcm_substream *substream, int state) |
| 1120 | { | 1140 | { |
| 1121 | snd_pcm_runtime_t *runtime = substream->runtime; | 1141 | struct snd_pcm_runtime *runtime = substream->runtime; |
| 1122 | snd_pcm_trigger_tstamp(substream); | 1142 | snd_pcm_trigger_tstamp(substream); |
| 1123 | if (substream->timer) | 1143 | if (substream->timer) |
| 1124 | snd_timer_notify(substream->timer, SNDRV_TIMER_EVENT_MRESUME, &runtime->trigger_tstamp); | 1144 | snd_timer_notify(substream->timer, SNDRV_TIMER_EVENT_MRESUME, |
| 1145 | &runtime->trigger_tstamp); | ||
| 1125 | runtime->status->state = runtime->status->suspended_state; | 1146 | runtime->status->state = runtime->status->suspended_state; |
| 1126 | if (runtime->sleep_min) | 1147 | if (runtime->sleep_min) |
| 1127 | snd_pcm_tick_prepare(substream); | 1148 | snd_pcm_tick_prepare(substream); |
| @@ -1134,9 +1155,9 @@ static struct action_ops snd_pcm_action_resume = { | |||
| 1134 | .post_action = snd_pcm_post_resume | 1155 | .post_action = snd_pcm_post_resume |
| 1135 | }; | 1156 | }; |
| 1136 | 1157 | ||
| 1137 | static int snd_pcm_resume(snd_pcm_substream_t *substream) | 1158 | static int snd_pcm_resume(struct snd_pcm_substream *substream) |
| 1138 | { | 1159 | { |
| 1139 | snd_card_t *card = substream->pcm->card; | 1160 | struct snd_card *card = substream->pcm->card; |
| 1140 | int res; | 1161 | int res; |
| 1141 | 1162 | ||
| 1142 | snd_power_lock(card); | 1163 | snd_power_lock(card); |
| @@ -1148,7 +1169,7 @@ static int snd_pcm_resume(snd_pcm_substream_t *substream) | |||
| 1148 | 1169 | ||
| 1149 | #else | 1170 | #else |
| 1150 | 1171 | ||
| 1151 | static int snd_pcm_resume(snd_pcm_substream_t *substream) | 1172 | static int snd_pcm_resume(struct snd_pcm_substream *substream) |
| 1152 | { | 1173 | { |
| 1153 | return -ENOSYS; | 1174 | return -ENOSYS; |
| 1154 | } | 1175 | } |
| @@ -1160,10 +1181,10 @@ static int snd_pcm_resume(snd_pcm_substream_t *substream) | |||
| 1160 | * | 1181 | * |
| 1161 | * Change the RUNNING stream(s) to XRUN state. | 1182 | * Change the RUNNING stream(s) to XRUN state. |
| 1162 | */ | 1183 | */ |
| 1163 | static int snd_pcm_xrun(snd_pcm_substream_t *substream) | 1184 | static int snd_pcm_xrun(struct snd_pcm_substream *substream) |
| 1164 | { | 1185 | { |
| 1165 | snd_card_t *card = substream->pcm->card; | 1186 | struct snd_card *card = substream->pcm->card; |
| 1166 | snd_pcm_runtime_t *runtime = substream->runtime; | 1187 | struct snd_pcm_runtime *runtime = substream->runtime; |
| 1167 | int result; | 1188 | int result; |
| 1168 | 1189 | ||
| 1169 | snd_power_lock(card); | 1190 | snd_power_lock(card); |
| @@ -1193,9 +1214,9 @@ static int snd_pcm_xrun(snd_pcm_substream_t *substream) | |||
| 1193 | /* | 1214 | /* |
| 1194 | * reset ioctl | 1215 | * reset ioctl |
| 1195 | */ | 1216 | */ |
| 1196 | static int snd_pcm_pre_reset(snd_pcm_substream_t * substream, int state) | 1217 | static int snd_pcm_pre_reset(struct snd_pcm_substream *substream, int state) |
| 1197 | { | 1218 | { |
| 1198 | snd_pcm_runtime_t *runtime = substream->runtime; | 1219 | struct snd_pcm_runtime *runtime = substream->runtime; |
| 1199 | switch (runtime->status->state) { | 1220 | switch (runtime->status->state) { |
| 1200 | case SNDRV_PCM_STATE_RUNNING: | 1221 | case SNDRV_PCM_STATE_RUNNING: |
| 1201 | case SNDRV_PCM_STATE_PREPARED: | 1222 | case SNDRV_PCM_STATE_PREPARED: |
| @@ -1207,23 +1228,24 @@ static int snd_pcm_pre_reset(snd_pcm_substream_t * substream, int state) | |||
| 1207 | } | 1228 | } |
| 1208 | } | 1229 | } |
| 1209 | 1230 | ||
| 1210 | static int snd_pcm_do_reset(snd_pcm_substream_t * substream, int state) | 1231 | static int snd_pcm_do_reset(struct snd_pcm_substream *substream, int state) |
| 1211 | { | 1232 | { |
| 1212 | snd_pcm_runtime_t *runtime = substream->runtime; | 1233 | struct snd_pcm_runtime *runtime = substream->runtime; |
| 1213 | int err = substream->ops->ioctl(substream, SNDRV_PCM_IOCTL1_RESET, NULL); | 1234 | int err = substream->ops->ioctl(substream, SNDRV_PCM_IOCTL1_RESET, NULL); |
| 1214 | if (err < 0) | 1235 | if (err < 0) |
| 1215 | return err; | 1236 | return err; |
| 1216 | // snd_assert(runtime->status->hw_ptr < runtime->buffer_size, ); | 1237 | // snd_assert(runtime->status->hw_ptr < runtime->buffer_size, ); |
| 1217 | runtime->hw_ptr_base = 0; | 1238 | runtime->hw_ptr_base = 0; |
| 1218 | runtime->hw_ptr_interrupt = runtime->status->hw_ptr - runtime->status->hw_ptr % runtime->period_size; | 1239 | runtime->hw_ptr_interrupt = runtime->status->hw_ptr - |
| 1240 | runtime->status->hw_ptr % runtime->period_size; | ||
| 1219 | runtime->silence_start = runtime->status->hw_ptr; | 1241 | runtime->silence_start = runtime->status->hw_ptr; |
| 1220 | runtime->silence_filled = 0; | 1242 | runtime->silence_filled = 0; |
| 1221 | return 0; | 1243 | return 0; |
| 1222 | } | 1244 | } |
| 1223 | 1245 | ||
| 1224 | static void snd_pcm_post_reset(snd_pcm_substream_t * substream, int state) | 1246 | static void snd_pcm_post_reset(struct snd_pcm_substream *substream, int state) |
| 1225 | { | 1247 | { |
| 1226 | snd_pcm_runtime_t *runtime = substream->runtime; | 1248 | struct snd_pcm_runtime *runtime = substream->runtime; |
| 1227 | runtime->control->appl_ptr = runtime->status->hw_ptr; | 1249 | runtime->control->appl_ptr = runtime->status->hw_ptr; |
| 1228 | if (substream->stream == SNDRV_PCM_STREAM_PLAYBACK && | 1250 | if (substream->stream == SNDRV_PCM_STREAM_PLAYBACK && |
| 1229 | runtime->silence_size > 0) | 1251 | runtime->silence_size > 0) |
| @@ -1236,7 +1258,7 @@ static struct action_ops snd_pcm_action_reset = { | |||
| 1236 | .post_action = snd_pcm_post_reset | 1258 | .post_action = snd_pcm_post_reset |
| 1237 | }; | 1259 | }; |
| 1238 | 1260 | ||
| 1239 | static int snd_pcm_reset(snd_pcm_substream_t *substream) | 1261 | static int snd_pcm_reset(struct snd_pcm_substream *substream) |
| 1240 | { | 1262 | { |
| 1241 | return snd_pcm_action_nonatomic(&snd_pcm_action_reset, substream, 0); | 1263 | return snd_pcm_action_nonatomic(&snd_pcm_action_reset, substream, 0); |
| 1242 | } | 1264 | } |
| @@ -1244,9 +1266,9 @@ static int snd_pcm_reset(snd_pcm_substream_t *substream) | |||
| 1244 | /* | 1266 | /* |
| 1245 | * prepare ioctl | 1267 | * prepare ioctl |
| 1246 | */ | 1268 | */ |
| 1247 | static int snd_pcm_pre_prepare(snd_pcm_substream_t * substream, int state) | 1269 | static int snd_pcm_pre_prepare(struct snd_pcm_substream *substream, int state) |
| 1248 | { | 1270 | { |
| 1249 | snd_pcm_runtime_t *runtime = substream->runtime; | 1271 | struct snd_pcm_runtime *runtime = substream->runtime; |
| 1250 | if (runtime->status->state == SNDRV_PCM_STATE_OPEN) | 1272 | if (runtime->status->state == SNDRV_PCM_STATE_OPEN) |
| 1251 | return -EBADFD; | 1273 | return -EBADFD; |
| 1252 | if (snd_pcm_running(substream)) | 1274 | if (snd_pcm_running(substream)) |
| @@ -1254,7 +1276,7 @@ static int snd_pcm_pre_prepare(snd_pcm_substream_t * substream, int state) | |||
| 1254 | return 0; | 1276 | return 0; |
| 1255 | } | 1277 | } |
| 1256 | 1278 | ||
| 1257 | static int snd_pcm_do_prepare(snd_pcm_substream_t * substream, int state) | 1279 | static int snd_pcm_do_prepare(struct snd_pcm_substream *substream, int state) |
| 1258 | { | 1280 | { |
| 1259 | int err; | 1281 | int err; |
| 1260 | err = substream->ops->prepare(substream); | 1282 | err = substream->ops->prepare(substream); |
| @@ -1263,9 +1285,9 @@ static int snd_pcm_do_prepare(snd_pcm_substream_t * substream, int state) | |||
| 1263 | return snd_pcm_do_reset(substream, 0); | 1285 | return snd_pcm_do_reset(substream, 0); |
| 1264 | } | 1286 | } |
| 1265 | 1287 | ||
| 1266 | static void snd_pcm_post_prepare(snd_pcm_substream_t * substream, int state) | 1288 | static void snd_pcm_post_prepare(struct snd_pcm_substream *substream, int state) |
| 1267 | { | 1289 | { |
| 1268 | snd_pcm_runtime_t *runtime = substream->runtime; | 1290 | struct snd_pcm_runtime *runtime = substream->runtime; |
| 1269 | runtime->control->appl_ptr = runtime->status->hw_ptr; | 1291 | runtime->control->appl_ptr = runtime->status->hw_ptr; |
| 1270 | runtime->status->state = SNDRV_PCM_STATE_PREPARED; | 1292 | runtime->status->state = SNDRV_PCM_STATE_PREPARED; |
| 1271 | } | 1293 | } |
| @@ -1282,10 +1304,10 @@ static struct action_ops snd_pcm_action_prepare = { | |||
| 1282 | * | 1304 | * |
| 1283 | * Prepare the PCM substream to be triggerable. | 1305 | * Prepare the PCM substream to be triggerable. |
| 1284 | */ | 1306 | */ |
| 1285 | int snd_pcm_prepare(snd_pcm_substream_t *substream) | 1307 | int snd_pcm_prepare(struct snd_pcm_substream *substream) |
| 1286 | { | 1308 | { |
| 1287 | int res; | 1309 | int res; |
| 1288 | snd_card_t *card = substream->pcm->card; | 1310 | struct snd_card *card = substream->pcm->card; |
| 1289 | 1311 | ||
| 1290 | snd_power_lock(card); | 1312 | snd_power_lock(card); |
| 1291 | if ((res = snd_power_wait(card, SNDRV_CTL_POWER_D0, substream->ffile)) >= 0) | 1313 | if ((res = snd_power_wait(card, SNDRV_CTL_POWER_D0, substream->ffile)) >= 0) |
| @@ -1298,7 +1320,7 @@ int snd_pcm_prepare(snd_pcm_substream_t *substream) | |||
| 1298 | * drain ioctl | 1320 | * drain ioctl |
| 1299 | */ | 1321 | */ |
| 1300 | 1322 | ||
| 1301 | static int snd_pcm_pre_drain_init(snd_pcm_substream_t * substream, int state) | 1323 | static int snd_pcm_pre_drain_init(struct snd_pcm_substream *substream, int state) |
| 1302 | { | 1324 | { |
| 1303 | if (substream->ffile->f_flags & O_NONBLOCK) | 1325 | if (substream->ffile->f_flags & O_NONBLOCK) |
| 1304 | return -EAGAIN; | 1326 | return -EAGAIN; |
| @@ -1306,9 +1328,9 @@ static int snd_pcm_pre_drain_init(snd_pcm_substream_t * substream, int state) | |||
| 1306 | return 0; | 1328 | return 0; |
| 1307 | } | 1329 | } |
| 1308 | 1330 | ||
| 1309 | static int snd_pcm_do_drain_init(snd_pcm_substream_t * substream, int state) | 1331 | static int snd_pcm_do_drain_init(struct snd_pcm_substream *substream, int state) |
| 1310 | { | 1332 | { |
| 1311 | snd_pcm_runtime_t *runtime = substream->runtime; | 1333 | struct snd_pcm_runtime *runtime = substream->runtime; |
| 1312 | if (substream->stream == SNDRV_PCM_STREAM_PLAYBACK) { | 1334 | if (substream->stream == SNDRV_PCM_STREAM_PLAYBACK) { |
| 1313 | switch (runtime->status->state) { | 1335 | switch (runtime->status->state) { |
| 1314 | case SNDRV_PCM_STATE_PREPARED: | 1336 | case SNDRV_PCM_STATE_PREPARED: |
| @@ -1336,7 +1358,7 @@ static int snd_pcm_do_drain_init(snd_pcm_substream_t * substream, int state) | |||
| 1336 | return 0; | 1358 | return 0; |
| 1337 | } | 1359 | } |
| 1338 | 1360 | ||
| 1339 | static void snd_pcm_post_drain_init(snd_pcm_substream_t * substream, int state) | 1361 | static void snd_pcm_post_drain_init(struct snd_pcm_substream *substream, int state) |
| 1340 | { | 1362 | { |
| 1341 | } | 1363 | } |
| 1342 | 1364 | ||
| @@ -1347,12 +1369,12 @@ static struct action_ops snd_pcm_action_drain_init = { | |||
| 1347 | }; | 1369 | }; |
| 1348 | 1370 | ||
| 1349 | struct drain_rec { | 1371 | struct drain_rec { |
| 1350 | snd_pcm_substream_t *substream; | 1372 | struct snd_pcm_substream *substream; |
| 1351 | wait_queue_t wait; | 1373 | wait_queue_t wait; |
| 1352 | snd_pcm_uframes_t stop_threshold; | 1374 | snd_pcm_uframes_t stop_threshold; |
| 1353 | }; | 1375 | }; |
| 1354 | 1376 | ||
| 1355 | static int snd_pcm_drop(snd_pcm_substream_t *substream); | 1377 | static int snd_pcm_drop(struct snd_pcm_substream *substream); |
| 1356 | 1378 | ||
| 1357 | /* | 1379 | /* |
| 1358 | * Drain the stream(s). | 1380 | * Drain the stream(s). |
| @@ -1361,10 +1383,10 @@ static int snd_pcm_drop(snd_pcm_substream_t *substream); | |||
| 1361 | * After this call, all streams are supposed to be either SETUP or DRAINING | 1383 | * After this call, all streams are supposed to be either SETUP or DRAINING |
| 1362 | * (capture only) state. | 1384 | * (capture only) state. |
| 1363 | */ | 1385 | */ |
| 1364 | static int snd_pcm_drain(snd_pcm_substream_t *substream) | 1386 | static int snd_pcm_drain(struct snd_pcm_substream *substream) |
| 1365 | { | 1387 | { |
| 1366 | snd_card_t *card; | 1388 | struct snd_card *card; |
| 1367 | snd_pcm_runtime_t *runtime; | 1389 | struct snd_pcm_runtime *runtime; |
| 1368 | struct list_head *pos; | 1390 | struct list_head *pos; |
| 1369 | int result = 0; | 1391 | int result = 0; |
| 1370 | int i, num_drecs; | 1392 | int i, num_drecs; |
| @@ -1401,7 +1423,7 @@ static int snd_pcm_drain(snd_pcm_substream_t *substream) | |||
| 1401 | /* count only playback streams */ | 1423 | /* count only playback streams */ |
| 1402 | num_drecs = 0; | 1424 | num_drecs = 0; |
| 1403 | snd_pcm_group_for_each(pos, substream) { | 1425 | snd_pcm_group_for_each(pos, substream) { |
| 1404 | snd_pcm_substream_t *s = snd_pcm_group_substream_entry(pos); | 1426 | struct snd_pcm_substream *s = snd_pcm_group_substream_entry(pos); |
| 1405 | runtime = s->runtime; | 1427 | runtime = s->runtime; |
| 1406 | if (s->stream == SNDRV_PCM_STREAM_PLAYBACK) { | 1428 | if (s->stream == SNDRV_PCM_STREAM_PLAYBACK) { |
| 1407 | d = &drec[num_drecs++]; | 1429 | d = &drec[num_drecs++]; |
| @@ -1487,10 +1509,10 @@ static int snd_pcm_drain(snd_pcm_substream_t *substream) | |||
| 1487 | * | 1509 | * |
| 1488 | * Immediately put all linked substreams into SETUP state. | 1510 | * Immediately put all linked substreams into SETUP state. |
| 1489 | */ | 1511 | */ |
| 1490 | static int snd_pcm_drop(snd_pcm_substream_t *substream) | 1512 | static int snd_pcm_drop(struct snd_pcm_substream *substream) |
| 1491 | { | 1513 | { |
| 1492 | snd_pcm_runtime_t *runtime; | 1514 | struct snd_pcm_runtime *runtime; |
| 1493 | snd_card_t *card; | 1515 | struct snd_card *card; |
| 1494 | int result = 0; | 1516 | int result = 0; |
| 1495 | 1517 | ||
| 1496 | snd_assert(substream != NULL, return -ENXIO); | 1518 | snd_assert(substream != NULL, return -ENXIO); |
| @@ -1548,12 +1570,12 @@ static struct file *snd_pcm_file_fd(int fd) | |||
| 1548 | /* | 1570 | /* |
| 1549 | * PCM link handling | 1571 | * PCM link handling |
| 1550 | */ | 1572 | */ |
| 1551 | static int snd_pcm_link(snd_pcm_substream_t *substream, int fd) | 1573 | static int snd_pcm_link(struct snd_pcm_substream *substream, int fd) |
| 1552 | { | 1574 | { |
| 1553 | int res = 0; | 1575 | int res = 0; |
| 1554 | struct file *file; | 1576 | struct file *file; |
| 1555 | snd_pcm_file_t *pcm_file; | 1577 | struct snd_pcm_file *pcm_file; |
| 1556 | snd_pcm_substream_t *substream1; | 1578 | struct snd_pcm_substream *substream1; |
| 1557 | 1579 | ||
| 1558 | file = snd_pcm_file_fd(fd); | 1580 | file = snd_pcm_file_fd(fd); |
| 1559 | if (!file) | 1581 | if (!file) |
| @@ -1572,7 +1594,7 @@ static int snd_pcm_link(snd_pcm_substream_t *substream, int fd) | |||
| 1572 | goto _end; | 1594 | goto _end; |
| 1573 | } | 1595 | } |
| 1574 | if (!snd_pcm_stream_linked(substream)) { | 1596 | if (!snd_pcm_stream_linked(substream)) { |
| 1575 | substream->group = kmalloc(sizeof(snd_pcm_group_t), GFP_ATOMIC); | 1597 | substream->group = kmalloc(sizeof(struct snd_pcm_group), GFP_ATOMIC); |
| 1576 | if (substream->group == NULL) { | 1598 | if (substream->group == NULL) { |
| 1577 | res = -ENOMEM; | 1599 | res = -ENOMEM; |
| 1578 | goto _end; | 1600 | goto _end; |
| @@ -1592,14 +1614,14 @@ static int snd_pcm_link(snd_pcm_substream_t *substream, int fd) | |||
| 1592 | return res; | 1614 | return res; |
| 1593 | } | 1615 | } |
| 1594 | 1616 | ||
| 1595 | static void relink_to_local(snd_pcm_substream_t *substream) | 1617 | static void relink_to_local(struct snd_pcm_substream *substream) |
| 1596 | { | 1618 | { |
| 1597 | substream->group = &substream->self_group; | 1619 | substream->group = &substream->self_group; |
| 1598 | INIT_LIST_HEAD(&substream->self_group.substreams); | 1620 | INIT_LIST_HEAD(&substream->self_group.substreams); |
| 1599 | list_add_tail(&substream->link_list, &substream->self_group.substreams); | 1621 | list_add_tail(&substream->link_list, &substream->self_group.substreams); |
| 1600 | } | 1622 | } |
| 1601 | 1623 | ||
| 1602 | static int snd_pcm_unlink(snd_pcm_substream_t *substream) | 1624 | static int snd_pcm_unlink(struct snd_pcm_substream *substream) |
| 1603 | { | 1625 | { |
| 1604 | struct list_head *pos; | 1626 | struct list_head *pos; |
| 1605 | int res = 0; | 1627 | int res = 0; |
| @@ -1629,51 +1651,51 @@ static int snd_pcm_unlink(snd_pcm_substream_t *substream) | |||
| 1629 | /* | 1651 | /* |
| 1630 | * hw configurator | 1652 | * hw configurator |
| 1631 | */ | 1653 | */ |
| 1632 | static int snd_pcm_hw_rule_mul(snd_pcm_hw_params_t *params, | 1654 | static int snd_pcm_hw_rule_mul(struct snd_pcm_hw_params *params, |
| 1633 | snd_pcm_hw_rule_t *rule) | 1655 | struct snd_pcm_hw_rule *rule) |
| 1634 | { | 1656 | { |
| 1635 | snd_interval_t t; | 1657 | struct snd_interval t; |
| 1636 | snd_interval_mul(hw_param_interval_c(params, rule->deps[0]), | 1658 | snd_interval_mul(hw_param_interval_c(params, rule->deps[0]), |
| 1637 | hw_param_interval_c(params, rule->deps[1]), &t); | 1659 | hw_param_interval_c(params, rule->deps[1]), &t); |
| 1638 | return snd_interval_refine(hw_param_interval(params, rule->var), &t); | 1660 | return snd_interval_refine(hw_param_interval(params, rule->var), &t); |
| 1639 | } | 1661 | } |
| 1640 | 1662 | ||
| 1641 | static int snd_pcm_hw_rule_div(snd_pcm_hw_params_t *params, | 1663 | static int snd_pcm_hw_rule_div(struct snd_pcm_hw_params *params, |
| 1642 | snd_pcm_hw_rule_t *rule) | 1664 | struct snd_pcm_hw_rule *rule) |
| 1643 | { | 1665 | { |
| 1644 | snd_interval_t t; | 1666 | struct snd_interval t; |
| 1645 | snd_interval_div(hw_param_interval_c(params, rule->deps[0]), | 1667 | snd_interval_div(hw_param_interval_c(params, rule->deps[0]), |
| 1646 | hw_param_interval_c(params, rule->deps[1]), &t); | 1668 | hw_param_interval_c(params, rule->deps[1]), &t); |
| 1647 | return snd_interval_refine(hw_param_interval(params, rule->var), &t); | 1669 | return snd_interval_refine(hw_param_interval(params, rule->var), &t); |
| 1648 | } | 1670 | } |
| 1649 | 1671 | ||
| 1650 | static int snd_pcm_hw_rule_muldivk(snd_pcm_hw_params_t *params, | 1672 | static int snd_pcm_hw_rule_muldivk(struct snd_pcm_hw_params *params, |
| 1651 | snd_pcm_hw_rule_t *rule) | 1673 | struct snd_pcm_hw_rule *rule) |
| 1652 | { | 1674 | { |
| 1653 | snd_interval_t t; | 1675 | struct snd_interval t; |
| 1654 | snd_interval_muldivk(hw_param_interval_c(params, rule->deps[0]), | 1676 | snd_interval_muldivk(hw_param_interval_c(params, rule->deps[0]), |
| 1655 | hw_param_interval_c(params, rule->deps[1]), | 1677 | hw_param_interval_c(params, rule->deps[1]), |
| 1656 | (unsigned long) rule->private, &t); | 1678 | (unsigned long) rule->private, &t); |
| 1657 | return snd_interval_refine(hw_param_interval(params, rule->var), &t); | 1679 | return snd_interval_refine(hw_param_interval(params, rule->var), &t); |
| 1658 | } | 1680 | } |
| 1659 | 1681 | ||
| 1660 | static int snd_pcm_hw_rule_mulkdiv(snd_pcm_hw_params_t *params, | 1682 | static int snd_pcm_hw_rule_mulkdiv(struct snd_pcm_hw_params *params, |
| 1661 | snd_pcm_hw_rule_t *rule) | 1683 | struct snd_pcm_hw_rule *rule) |
| 1662 | { | 1684 | { |
| 1663 | snd_interval_t t; | 1685 | struct snd_interval t; |
| 1664 | snd_interval_mulkdiv(hw_param_interval_c(params, rule->deps[0]), | 1686 | snd_interval_mulkdiv(hw_param_interval_c(params, rule->deps[0]), |
| 1665 | (unsigned long) rule->private, | 1687 | (unsigned long) rule->private, |
| 1666 | hw_param_interval_c(params, rule->deps[1]), &t); | 1688 | hw_param_interval_c(params, rule->deps[1]), &t); |
| 1667 | return snd_interval_refine(hw_param_interval(params, rule->var), &t); | 1689 | return snd_interval_refine(hw_param_interval(params, rule->var), &t); |
| 1668 | } | 1690 | } |
| 1669 | 1691 | ||
| 1670 | static int snd_pcm_hw_rule_format(snd_pcm_hw_params_t *params, | 1692 | static int snd_pcm_hw_rule_format(struct snd_pcm_hw_params *params, |
| 1671 | snd_pcm_hw_rule_t *rule) | 1693 | struct snd_pcm_hw_rule *rule) |
| 1672 | { | 1694 | { |
| 1673 | unsigned int k; | 1695 | unsigned int k; |
| 1674 | snd_interval_t *i = hw_param_interval(params, rule->deps[0]); | 1696 | struct snd_interval *i = hw_param_interval(params, rule->deps[0]); |
| 1675 | snd_mask_t m; | 1697 | struct snd_mask m; |
| 1676 | snd_mask_t *mask = hw_param_mask(params, SNDRV_PCM_HW_PARAM_FORMAT); | 1698 | struct snd_mask *mask = hw_param_mask(params, SNDRV_PCM_HW_PARAM_FORMAT); |
| 1677 | snd_mask_any(&m); | 1699 | snd_mask_any(&m); |
| 1678 | for (k = 0; k <= SNDRV_PCM_FORMAT_LAST; ++k) { | 1700 | for (k = 0; k <= SNDRV_PCM_FORMAT_LAST; ++k) { |
| 1679 | int bits; | 1701 | int bits; |
| @@ -1688,10 +1710,10 @@ static int snd_pcm_hw_rule_format(snd_pcm_hw_params_t *params, | |||
| 1688 | return snd_mask_refine(mask, &m); | 1710 | return snd_mask_refine(mask, &m); |
| 1689 | } | 1711 | } |
| 1690 | 1712 | ||
| 1691 | static int snd_pcm_hw_rule_sample_bits(snd_pcm_hw_params_t *params, | 1713 | static int snd_pcm_hw_rule_sample_bits(struct snd_pcm_hw_params *params, |
| 1692 | snd_pcm_hw_rule_t *rule) | 1714 | struct snd_pcm_hw_rule *rule) |
| 1693 | { | 1715 | { |
| 1694 | snd_interval_t t; | 1716 | struct snd_interval t; |
| 1695 | unsigned int k; | 1717 | unsigned int k; |
| 1696 | t.min = UINT_MAX; | 1718 | t.min = UINT_MAX; |
| 1697 | t.max = 0; | 1719 | t.max = 0; |
| @@ -1720,19 +1742,19 @@ static int snd_pcm_hw_rule_sample_bits(snd_pcm_hw_params_t *params, | |||
| 1720 | static unsigned int rates[] = { 5512, 8000, 11025, 16000, 22050, 32000, 44100, | 1742 | static unsigned int rates[] = { 5512, 8000, 11025, 16000, 22050, 32000, 44100, |
| 1721 | 48000, 64000, 88200, 96000, 176400, 192000 }; | 1743 | 48000, 64000, 88200, 96000, 176400, 192000 }; |
| 1722 | 1744 | ||
| 1723 | static int snd_pcm_hw_rule_rate(snd_pcm_hw_params_t *params, | 1745 | static int snd_pcm_hw_rule_rate(struct snd_pcm_hw_params *params, |
| 1724 | snd_pcm_hw_rule_t *rule) | 1746 | struct snd_pcm_hw_rule *rule) |
| 1725 | { | 1747 | { |
| 1726 | snd_pcm_hardware_t *hw = rule->private; | 1748 | struct snd_pcm_hardware *hw = rule->private; |
| 1727 | return snd_interval_list(hw_param_interval(params, rule->var), | 1749 | return snd_interval_list(hw_param_interval(params, rule->var), |
| 1728 | ARRAY_SIZE(rates), rates, hw->rates); | 1750 | ARRAY_SIZE(rates), rates, hw->rates); |
| 1729 | } | 1751 | } |
| 1730 | 1752 | ||
| 1731 | static int snd_pcm_hw_rule_buffer_bytes_max(snd_pcm_hw_params_t *params, | 1753 | static int snd_pcm_hw_rule_buffer_bytes_max(struct snd_pcm_hw_params *params, |
| 1732 | snd_pcm_hw_rule_t *rule) | 1754 | struct snd_pcm_hw_rule *rule) |
| 1733 | { | 1755 | { |
| 1734 | snd_interval_t t; | 1756 | struct snd_interval t; |
| 1735 | snd_pcm_substream_t *substream = rule->private; | 1757 | struct snd_pcm_substream *substream = rule->private; |
| 1736 | t.min = 0; | 1758 | t.min = 0; |
| 1737 | t.max = substream->buffer_bytes_max; | 1759 | t.max = substream->buffer_bytes_max; |
| 1738 | t.openmin = 0; | 1760 | t.openmin = 0; |
| @@ -1741,10 +1763,10 @@ static int snd_pcm_hw_rule_buffer_bytes_max(snd_pcm_hw_params_t *params, | |||
| 1741 | return snd_interval_refine(hw_param_interval(params, rule->var), &t); | 1763 | return snd_interval_refine(hw_param_interval(params, rule->var), &t); |
| 1742 | } | 1764 | } |
| 1743 | 1765 | ||
| 1744 | int snd_pcm_hw_constraints_init(snd_pcm_substream_t *substream) | 1766 | int snd_pcm_hw_constraints_init(struct snd_pcm_substream *substream) |
| 1745 | { | 1767 | { |
| 1746 | snd_pcm_runtime_t *runtime = substream->runtime; | 1768 | struct snd_pcm_runtime *runtime = substream->runtime; |
| 1747 | snd_pcm_hw_constraints_t *constrs = &runtime->hw_constraints; | 1769 | struct snd_pcm_hw_constraints *constrs = &runtime->hw_constraints; |
| 1748 | int k, err; | 1770 | int k, err; |
| 1749 | 1771 | ||
| 1750 | for (k = SNDRV_PCM_HW_PARAM_FIRST_MASK; k <= SNDRV_PCM_HW_PARAM_LAST_MASK; k++) { | 1772 | for (k = SNDRV_PCM_HW_PARAM_FIRST_MASK; k <= SNDRV_PCM_HW_PARAM_LAST_MASK; k++) { |
| @@ -1865,10 +1887,10 @@ int snd_pcm_hw_constraints_init(snd_pcm_substream_t *substream) | |||
| 1865 | return 0; | 1887 | return 0; |
| 1866 | } | 1888 | } |
| 1867 | 1889 | ||
| 1868 | int snd_pcm_hw_constraints_complete(snd_pcm_substream_t *substream) | 1890 | int snd_pcm_hw_constraints_complete(struct snd_pcm_substream *substream) |
| 1869 | { | 1891 | { |
| 1870 | snd_pcm_runtime_t *runtime = substream->runtime; | 1892 | struct snd_pcm_runtime *runtime = substream->runtime; |
| 1871 | snd_pcm_hardware_t *hw = &runtime->hw; | 1893 | struct snd_pcm_hardware *hw = &runtime->hw; |
| 1872 | int err; | 1894 | int err; |
| 1873 | unsigned int mask = 0; | 1895 | unsigned int mask = 0; |
| 1874 | 1896 | ||
| @@ -1941,17 +1963,17 @@ int snd_pcm_hw_constraints_complete(snd_pcm_substream_t *substream) | |||
| 1941 | return 0; | 1963 | return 0; |
| 1942 | } | 1964 | } |
| 1943 | 1965 | ||
| 1944 | static void snd_pcm_add_file(snd_pcm_str_t *str, | 1966 | static void snd_pcm_add_file(struct snd_pcm_str *str, |
| 1945 | snd_pcm_file_t *pcm_file) | 1967 | struct snd_pcm_file *pcm_file) |
| 1946 | { | 1968 | { |
| 1947 | pcm_file->next = str->files; | 1969 | pcm_file->next = str->files; |
| 1948 | str->files = pcm_file; | 1970 | str->files = pcm_file; |
| 1949 | } | 1971 | } |
| 1950 | 1972 | ||
| 1951 | static void snd_pcm_remove_file(snd_pcm_str_t *str, | 1973 | static void snd_pcm_remove_file(struct snd_pcm_str *str, |
| 1952 | snd_pcm_file_t *pcm_file) | 1974 | struct snd_pcm_file *pcm_file) |
| 1953 | { | 1975 | { |
| 1954 | snd_pcm_file_t * pcm_file1; | 1976 | struct snd_pcm_file * pcm_file1; |
| 1955 | if (str->files == pcm_file) { | 1977 | if (str->files == pcm_file) { |
| 1956 | str->files = pcm_file->next; | 1978 | str->files = pcm_file->next; |
| 1957 | } else { | 1979 | } else { |
| @@ -1963,11 +1985,11 @@ static void snd_pcm_remove_file(snd_pcm_str_t *str, | |||
| 1963 | } | 1985 | } |
| 1964 | } | 1986 | } |
| 1965 | 1987 | ||
| 1966 | static int snd_pcm_release_file(snd_pcm_file_t * pcm_file) | 1988 | static int snd_pcm_release_file(struct snd_pcm_file * pcm_file) |
| 1967 | { | 1989 | { |
| 1968 | snd_pcm_substream_t *substream; | 1990 | struct snd_pcm_substream *substream; |
| 1969 | snd_pcm_runtime_t *runtime; | 1991 | struct snd_pcm_runtime *runtime; |
| 1970 | snd_pcm_str_t * str; | 1992 | struct snd_pcm_str * str; |
| 1971 | 1993 | ||
| 1972 | snd_assert(pcm_file != NULL, return -ENXIO); | 1994 | snd_assert(pcm_file != NULL, return -ENXIO); |
| 1973 | substream = pcm_file->substream; | 1995 | substream = pcm_file->substream; |
| @@ -1988,14 +2010,14 @@ static int snd_pcm_release_file(snd_pcm_file_t * pcm_file) | |||
| 1988 | } | 2010 | } |
| 1989 | 2011 | ||
| 1990 | static int snd_pcm_open_file(struct file *file, | 2012 | static int snd_pcm_open_file(struct file *file, |
| 1991 | snd_pcm_t *pcm, | 2013 | struct snd_pcm *pcm, |
| 1992 | int stream, | 2014 | int stream, |
| 1993 | snd_pcm_file_t **rpcm_file) | 2015 | struct snd_pcm_file **rpcm_file) |
| 1994 | { | 2016 | { |
| 1995 | int err = 0; | 2017 | int err = 0; |
| 1996 | snd_pcm_file_t *pcm_file; | 2018 | struct snd_pcm_file *pcm_file; |
| 1997 | snd_pcm_substream_t *substream; | 2019 | struct snd_pcm_substream *substream; |
| 1998 | snd_pcm_str_t *str; | 2020 | struct snd_pcm_str *str; |
| 1999 | 2021 | ||
| 2000 | snd_assert(rpcm_file != NULL, return -EINVAL); | 2022 | snd_assert(rpcm_file != NULL, return -EINVAL); |
| 2001 | *rpcm_file = NULL; | 2023 | *rpcm_file = NULL; |
| @@ -2048,8 +2070,8 @@ static int snd_pcm_open(struct inode *inode, struct file *file) | |||
| 2048 | int cardnum = SNDRV_MINOR_CARD(iminor(inode)); | 2070 | int cardnum = SNDRV_MINOR_CARD(iminor(inode)); |
| 2049 | int device = SNDRV_MINOR_DEVICE(iminor(inode)); | 2071 | int device = SNDRV_MINOR_DEVICE(iminor(inode)); |
| 2050 | int err; | 2072 | int err; |
| 2051 | snd_pcm_t *pcm; | 2073 | struct snd_pcm *pcm; |
| 2052 | snd_pcm_file_t *pcm_file; | 2074 | struct snd_pcm_file *pcm_file; |
| 2053 | wait_queue_t wait; | 2075 | wait_queue_t wait; |
| 2054 | 2076 | ||
| 2055 | if (device < SNDRV_MINOR_PCM_PLAYBACK || device >= SNDRV_MINOR_DEVICES) | 2077 | if (device < SNDRV_MINOR_PCM_PLAYBACK || device >= SNDRV_MINOR_DEVICES) |
| @@ -2105,9 +2127,9 @@ static int snd_pcm_open(struct inode *inode, struct file *file) | |||
| 2105 | 2127 | ||
| 2106 | static int snd_pcm_release(struct inode *inode, struct file *file) | 2128 | static int snd_pcm_release(struct inode *inode, struct file *file) |
| 2107 | { | 2129 | { |
| 2108 | snd_pcm_t *pcm; | 2130 | struct snd_pcm *pcm; |
| 2109 | snd_pcm_substream_t *substream; | 2131 | struct snd_pcm_substream *substream; |
| 2110 | snd_pcm_file_t *pcm_file; | 2132 | struct snd_pcm_file *pcm_file; |
| 2111 | 2133 | ||
| 2112 | pcm_file = file->private_data; | 2134 | pcm_file = file->private_data; |
| 2113 | substream = pcm_file->substream; | 2135 | substream = pcm_file->substream; |
| @@ -2125,9 +2147,10 @@ static int snd_pcm_release(struct inode *inode, struct file *file) | |||
| 2125 | return 0; | 2147 | return 0; |
| 2126 | } | 2148 | } |
| 2127 | 2149 | ||
| 2128 | static snd_pcm_sframes_t snd_pcm_playback_rewind(snd_pcm_substream_t *substream, snd_pcm_uframes_t frames) | 2150 | static snd_pcm_sframes_t snd_pcm_playback_rewind(struct snd_pcm_substream *substream, |
| 2151 | snd_pcm_uframes_t frames) | ||
| 2129 | { | 2152 | { |
| 2130 | snd_pcm_runtime_t *runtime = substream->runtime; | 2153 | struct snd_pcm_runtime *runtime = substream->runtime; |
| 2131 | snd_pcm_sframes_t appl_ptr; | 2154 | snd_pcm_sframes_t appl_ptr; |
| 2132 | snd_pcm_sframes_t ret; | 2155 | snd_pcm_sframes_t ret; |
| 2133 | snd_pcm_sframes_t hw_avail; | 2156 | snd_pcm_sframes_t hw_avail; |
| @@ -2174,9 +2197,10 @@ static snd_pcm_sframes_t snd_pcm_playback_rewind(snd_pcm_substream_t *substream, | |||
| 2174 | return ret; | 2197 | return ret; |
| 2175 | } | 2198 | } |
| 2176 | 2199 | ||
| 2177 | static snd_pcm_sframes_t snd_pcm_capture_rewind(snd_pcm_substream_t *substream, snd_pcm_uframes_t frames) | 2200 | static snd_pcm_sframes_t snd_pcm_capture_rewind(struct snd_pcm_substream *substream, |
| 2201 | snd_pcm_uframes_t frames) | ||
| 2178 | { | 2202 | { |
| 2179 | snd_pcm_runtime_t *runtime = substream->runtime; | 2203 | struct snd_pcm_runtime *runtime = substream->runtime; |
| 2180 | snd_pcm_sframes_t appl_ptr; | 2204 | snd_pcm_sframes_t appl_ptr; |
| 2181 | snd_pcm_sframes_t ret; | 2205 | snd_pcm_sframes_t ret; |
| 2182 | snd_pcm_sframes_t hw_avail; | 2206 | snd_pcm_sframes_t hw_avail; |
| @@ -2223,9 +2247,10 @@ static snd_pcm_sframes_t snd_pcm_capture_rewind(snd_pcm_substream_t *substream, | |||
| 2223 | return ret; | 2247 | return ret; |
| 2224 | } | 2248 | } |
| 2225 | 2249 | ||
| 2226 | static snd_pcm_sframes_t snd_pcm_playback_forward(snd_pcm_substream_t *substream, snd_pcm_uframes_t frames) | 2250 | static snd_pcm_sframes_t snd_pcm_playback_forward(struct snd_pcm_substream *substream, |
| 2251 | snd_pcm_uframes_t frames) | ||
| 2227 | { | 2252 | { |
| 2228 | snd_pcm_runtime_t *runtime = substream->runtime; | 2253 | struct snd_pcm_runtime *runtime = substream->runtime; |
| 2229 | snd_pcm_sframes_t appl_ptr; | 2254 | snd_pcm_sframes_t appl_ptr; |
| 2230 | snd_pcm_sframes_t ret; | 2255 | snd_pcm_sframes_t ret; |
| 2231 | snd_pcm_sframes_t avail; | 2256 | snd_pcm_sframes_t avail; |
| @@ -2273,9 +2298,10 @@ static snd_pcm_sframes_t snd_pcm_playback_forward(snd_pcm_substream_t *substream | |||
| 2273 | return ret; | 2298 | return ret; |
| 2274 | } | 2299 | } |
| 2275 | 2300 | ||
| 2276 | static snd_pcm_sframes_t snd_pcm_capture_forward(snd_pcm_substream_t *substream, snd_pcm_uframes_t frames) | 2301 | static snd_pcm_sframes_t snd_pcm_capture_forward(struct snd_pcm_substream *substream, |
| 2302 | snd_pcm_uframes_t frames) | ||
| 2277 | { | 2303 | { |
| 2278 | snd_pcm_runtime_t *runtime = substream->runtime; | 2304 | struct snd_pcm_runtime *runtime = substream->runtime; |
| 2279 | snd_pcm_sframes_t appl_ptr; | 2305 | snd_pcm_sframes_t appl_ptr; |
| 2280 | snd_pcm_sframes_t ret; | 2306 | snd_pcm_sframes_t ret; |
| 2281 | snd_pcm_sframes_t avail; | 2307 | snd_pcm_sframes_t avail; |
| @@ -2323,9 +2349,9 @@ static snd_pcm_sframes_t snd_pcm_capture_forward(snd_pcm_substream_t *substream, | |||
| 2323 | return ret; | 2349 | return ret; |
| 2324 | } | 2350 | } |
| 2325 | 2351 | ||
| 2326 | static int snd_pcm_hwsync(snd_pcm_substream_t *substream) | 2352 | static int snd_pcm_hwsync(struct snd_pcm_substream *substream) |
| 2327 | { | 2353 | { |
| 2328 | snd_pcm_runtime_t *runtime = substream->runtime; | 2354 | struct snd_pcm_runtime *runtime = substream->runtime; |
| 2329 | int err; | 2355 | int err; |
| 2330 | 2356 | ||
| 2331 | snd_pcm_stream_lock_irq(substream); | 2357 | snd_pcm_stream_lock_irq(substream); |
| @@ -2353,9 +2379,10 @@ static int snd_pcm_hwsync(snd_pcm_substream_t *substream) | |||
| 2353 | return err; | 2379 | return err; |
| 2354 | } | 2380 | } |
| 2355 | 2381 | ||
| 2356 | static int snd_pcm_delay(snd_pcm_substream_t *substream, snd_pcm_sframes_t __user *res) | 2382 | static int snd_pcm_delay(struct snd_pcm_substream *substream, |
| 2383 | snd_pcm_sframes_t __user *res) | ||
| 2357 | { | 2384 | { |
| 2358 | snd_pcm_runtime_t *runtime = substream->runtime; | 2385 | struct snd_pcm_runtime *runtime = substream->runtime; |
| 2359 | int err; | 2386 | int err; |
| 2360 | snd_pcm_sframes_t n = 0; | 2387 | snd_pcm_sframes_t n = 0; |
| 2361 | 2388 | ||
| @@ -2391,18 +2418,19 @@ static int snd_pcm_delay(snd_pcm_substream_t *substream, snd_pcm_sframes_t __use | |||
| 2391 | return err; | 2418 | return err; |
| 2392 | } | 2419 | } |
| 2393 | 2420 | ||
| 2394 | static int snd_pcm_sync_ptr(snd_pcm_substream_t *substream, struct sndrv_pcm_sync_ptr __user *_sync_ptr) | 2421 | static int snd_pcm_sync_ptr(struct snd_pcm_substream *substream, |
| 2422 | struct snd_pcm_sync_ptr __user *_sync_ptr) | ||
| 2395 | { | 2423 | { |
| 2396 | snd_pcm_runtime_t *runtime = substream->runtime; | 2424 | struct snd_pcm_runtime *runtime = substream->runtime; |
| 2397 | struct sndrv_pcm_sync_ptr sync_ptr; | 2425 | struct snd_pcm_sync_ptr sync_ptr; |
| 2398 | volatile struct sndrv_pcm_mmap_status *status; | 2426 | volatile struct snd_pcm_mmap_status *status; |
| 2399 | volatile struct sndrv_pcm_mmap_control *control; | 2427 | volatile struct snd_pcm_mmap_control *control; |
| 2400 | int err; | 2428 | int err; |
| 2401 | 2429 | ||
| 2402 | memset(&sync_ptr, 0, sizeof(sync_ptr)); | 2430 | memset(&sync_ptr, 0, sizeof(sync_ptr)); |
| 2403 | if (get_user(sync_ptr.flags, (unsigned __user *)&(_sync_ptr->flags))) | 2431 | if (get_user(sync_ptr.flags, (unsigned __user *)&(_sync_ptr->flags))) |
| 2404 | return -EFAULT; | 2432 | return -EFAULT; |
| 2405 | if (copy_from_user(&sync_ptr.c.control, &(_sync_ptr->c.control), sizeof(struct sndrv_pcm_mmap_control))) | 2433 | if (copy_from_user(&sync_ptr.c.control, &(_sync_ptr->c.control), sizeof(struct snd_pcm_mmap_control))) |
| 2406 | return -EFAULT; | 2434 | return -EFAULT; |
| 2407 | status = runtime->status; | 2435 | status = runtime->status; |
| 2408 | control = runtime->control; | 2436 | control = runtime->control; |
| @@ -2430,12 +2458,12 @@ static int snd_pcm_sync_ptr(snd_pcm_substream_t *substream, struct sndrv_pcm_syn | |||
| 2430 | return 0; | 2458 | return 0; |
| 2431 | } | 2459 | } |
| 2432 | 2460 | ||
| 2433 | static int snd_pcm_playback_ioctl1(snd_pcm_substream_t *substream, | 2461 | static int snd_pcm_playback_ioctl1(struct snd_pcm_substream *substream, |
| 2434 | unsigned int cmd, void __user *arg); | 2462 | unsigned int cmd, void __user *arg); |
| 2435 | static int snd_pcm_capture_ioctl1(snd_pcm_substream_t *substream, | 2463 | static int snd_pcm_capture_ioctl1(struct snd_pcm_substream *substream, |
| 2436 | unsigned int cmd, void __user *arg); | 2464 | unsigned int cmd, void __user *arg); |
| 2437 | 2465 | ||
| 2438 | static int snd_pcm_common_ioctl1(snd_pcm_substream_t *substream, | 2466 | static int snd_pcm_common_ioctl1(struct snd_pcm_substream *substream, |
| 2439 | unsigned int cmd, void __user *arg) | 2467 | unsigned int cmd, void __user *arg) |
| 2440 | { | 2468 | { |
| 2441 | snd_assert(substream != NULL, return -ENXIO); | 2469 | snd_assert(substream != NULL, return -ENXIO); |
| @@ -2492,7 +2520,7 @@ static int snd_pcm_common_ioctl1(snd_pcm_substream_t *substream, | |||
| 2492 | return -ENOTTY; | 2520 | return -ENOTTY; |
| 2493 | } | 2521 | } |
| 2494 | 2522 | ||
| 2495 | static int snd_pcm_playback_ioctl1(snd_pcm_substream_t *substream, | 2523 | static int snd_pcm_playback_ioctl1(struct snd_pcm_substream *substream, |
| 2496 | unsigned int cmd, void __user *arg) | 2524 | unsigned int cmd, void __user *arg) |
| 2497 | { | 2525 | { |
| 2498 | snd_assert(substream != NULL, return -ENXIO); | 2526 | snd_assert(substream != NULL, return -ENXIO); |
| @@ -2500,9 +2528,9 @@ static int snd_pcm_playback_ioctl1(snd_pcm_substream_t *substream, | |||
| 2500 | switch (cmd) { | 2528 | switch (cmd) { |
| 2501 | case SNDRV_PCM_IOCTL_WRITEI_FRAMES: | 2529 | case SNDRV_PCM_IOCTL_WRITEI_FRAMES: |
| 2502 | { | 2530 | { |
| 2503 | snd_xferi_t xferi; | 2531 | struct snd_xferi xferi; |
| 2504 | snd_xferi_t __user *_xferi = arg; | 2532 | struct snd_xferi __user *_xferi = arg; |
| 2505 | snd_pcm_runtime_t *runtime = substream->runtime; | 2533 | struct snd_pcm_runtime *runtime = substream->runtime; |
| 2506 | snd_pcm_sframes_t result; | 2534 | snd_pcm_sframes_t result; |
| 2507 | if (runtime->status->state == SNDRV_PCM_STATE_OPEN) | 2535 | if (runtime->status->state == SNDRV_PCM_STATE_OPEN) |
| 2508 | return -EBADFD; | 2536 | return -EBADFD; |
| @@ -2516,9 +2544,9 @@ static int snd_pcm_playback_ioctl1(snd_pcm_substream_t *substream, | |||
| 2516 | } | 2544 | } |
| 2517 | case SNDRV_PCM_IOCTL_WRITEN_FRAMES: | 2545 | case SNDRV_PCM_IOCTL_WRITEN_FRAMES: |
| 2518 | { | 2546 | { |
| 2519 | snd_xfern_t xfern; | 2547 | struct snd_xfern xfern; |
| 2520 | snd_xfern_t __user *_xfern = arg; | 2548 | struct snd_xfern __user *_xfern = arg; |
| 2521 | snd_pcm_runtime_t *runtime = substream->runtime; | 2549 | struct snd_pcm_runtime *runtime = substream->runtime; |
| 2522 | void __user **bufs; | 2550 | void __user **bufs; |
| 2523 | snd_pcm_sframes_t result; | 2551 | snd_pcm_sframes_t result; |
| 2524 | if (runtime->status->state == SNDRV_PCM_STATE_OPEN) | 2552 | if (runtime->status->state == SNDRV_PCM_STATE_OPEN) |
| @@ -2579,7 +2607,7 @@ static int snd_pcm_playback_ioctl1(snd_pcm_substream_t *substream, | |||
| 2579 | return snd_pcm_common_ioctl1(substream, cmd, arg); | 2607 | return snd_pcm_common_ioctl1(substream, cmd, arg); |
| 2580 | } | 2608 | } |
| 2581 | 2609 | ||
| 2582 | static int snd_pcm_capture_ioctl1(snd_pcm_substream_t *substream, | 2610 | static int snd_pcm_capture_ioctl1(struct snd_pcm_substream *substream, |
| 2583 | unsigned int cmd, void __user *arg) | 2611 | unsigned int cmd, void __user *arg) |
| 2584 | { | 2612 | { |
| 2585 | snd_assert(substream != NULL, return -ENXIO); | 2613 | snd_assert(substream != NULL, return -ENXIO); |
| @@ -2587,9 +2615,9 @@ static int snd_pcm_capture_ioctl1(snd_pcm_substream_t *substream, | |||
| 2587 | switch (cmd) { | 2615 | switch (cmd) { |
| 2588 | case SNDRV_PCM_IOCTL_READI_FRAMES: | 2616 | case SNDRV_PCM_IOCTL_READI_FRAMES: |
| 2589 | { | 2617 | { |
| 2590 | snd_xferi_t xferi; | 2618 | struct snd_xferi xferi; |
| 2591 | snd_xferi_t __user *_xferi = arg; | 2619 | struct snd_xferi __user *_xferi = arg; |
| 2592 | snd_pcm_runtime_t *runtime = substream->runtime; | 2620 | struct snd_pcm_runtime *runtime = substream->runtime; |
| 2593 | snd_pcm_sframes_t result; | 2621 | snd_pcm_sframes_t result; |
| 2594 | if (runtime->status->state == SNDRV_PCM_STATE_OPEN) | 2622 | if (runtime->status->state == SNDRV_PCM_STATE_OPEN) |
| 2595 | return -EBADFD; | 2623 | return -EBADFD; |
| @@ -2603,9 +2631,9 @@ static int snd_pcm_capture_ioctl1(snd_pcm_substream_t *substream, | |||
| 2603 | } | 2631 | } |
| 2604 | case SNDRV_PCM_IOCTL_READN_FRAMES: | 2632 | case SNDRV_PCM_IOCTL_READN_FRAMES: |
| 2605 | { | 2633 | { |
| 2606 | snd_xfern_t xfern; | 2634 | struct snd_xfern xfern; |
| 2607 | snd_xfern_t __user *_xfern = arg; | 2635 | struct snd_xfern __user *_xfern = arg; |
| 2608 | snd_pcm_runtime_t *runtime = substream->runtime; | 2636 | struct snd_pcm_runtime *runtime = substream->runtime; |
| 2609 | void *bufs; | 2637 | void *bufs; |
| 2610 | snd_pcm_sframes_t result; | 2638 | snd_pcm_sframes_t result; |
| 2611 | if (runtime->status->state == SNDRV_PCM_STATE_OPEN) | 2639 | if (runtime->status->state == SNDRV_PCM_STATE_OPEN) |
| @@ -2658,9 +2686,10 @@ static int snd_pcm_capture_ioctl1(snd_pcm_substream_t *substream, | |||
| 2658 | return snd_pcm_common_ioctl1(substream, cmd, arg); | 2686 | return snd_pcm_common_ioctl1(substream, cmd, arg); |
| 2659 | } | 2687 | } |
| 2660 | 2688 | ||
| 2661 | static long snd_pcm_playback_ioctl(struct file *file, unsigned int cmd, unsigned long arg) | 2689 | static long snd_pcm_playback_ioctl(struct file *file, unsigned int cmd, |
| 2690 | unsigned long arg) | ||
| 2662 | { | 2691 | { |
| 2663 | snd_pcm_file_t *pcm_file; | 2692 | struct snd_pcm_file *pcm_file; |
| 2664 | 2693 | ||
| 2665 | pcm_file = file->private_data; | 2694 | pcm_file = file->private_data; |
| 2666 | 2695 | ||
| @@ -2670,9 +2699,10 @@ static long snd_pcm_playback_ioctl(struct file *file, unsigned int cmd, unsigned | |||
| 2670 | return snd_pcm_playback_ioctl1(pcm_file->substream, cmd, (void __user *)arg); | 2699 | return snd_pcm_playback_ioctl1(pcm_file->substream, cmd, (void __user *)arg); |
| 2671 | } | 2700 | } |
| 2672 | 2701 | ||
| 2673 | static long snd_pcm_capture_ioctl(struct file *file, unsigned int cmd, unsigned long arg) | 2702 | static long snd_pcm_capture_ioctl(struct file *file, unsigned int cmd, |
| 2703 | unsigned long arg) | ||
| 2674 | { | 2704 | { |
| 2675 | snd_pcm_file_t *pcm_file; | 2705 | struct snd_pcm_file *pcm_file; |
| 2676 | 2706 | ||
| 2677 | pcm_file = file->private_data; | 2707 | pcm_file = file->private_data; |
| 2678 | 2708 | ||
| @@ -2682,7 +2712,7 @@ static long snd_pcm_capture_ioctl(struct file *file, unsigned int cmd, unsigned | |||
| 2682 | return snd_pcm_capture_ioctl1(pcm_file->substream, cmd, (void __user *)arg); | 2712 | return snd_pcm_capture_ioctl1(pcm_file->substream, cmd, (void __user *)arg); |
| 2683 | } | 2713 | } |
| 2684 | 2714 | ||
| 2685 | int snd_pcm_kernel_playback_ioctl(snd_pcm_substream_t *substream, | 2715 | int snd_pcm_kernel_playback_ioctl(struct snd_pcm_substream *substream, |
| 2686 | unsigned int cmd, void *arg) | 2716 | unsigned int cmd, void *arg) |
| 2687 | { | 2717 | { |
| 2688 | mm_segment_t fs; | 2718 | mm_segment_t fs; |
| @@ -2694,7 +2724,7 @@ int snd_pcm_kernel_playback_ioctl(snd_pcm_substream_t *substream, | |||
| 2694 | return result; | 2724 | return result; |
| 2695 | } | 2725 | } |
| 2696 | 2726 | ||
| 2697 | int snd_pcm_kernel_capture_ioctl(snd_pcm_substream_t *substream, | 2727 | int snd_pcm_kernel_capture_ioctl(struct snd_pcm_substream *substream, |
| 2698 | unsigned int cmd, void *arg) | 2728 | unsigned int cmd, void *arg) |
| 2699 | { | 2729 | { |
| 2700 | mm_segment_t fs; | 2730 | mm_segment_t fs; |
| @@ -2706,7 +2736,7 @@ int snd_pcm_kernel_capture_ioctl(snd_pcm_substream_t *substream, | |||
| 2706 | return result; | 2736 | return result; |
| 2707 | } | 2737 | } |
| 2708 | 2738 | ||
| 2709 | int snd_pcm_kernel_ioctl(snd_pcm_substream_t *substream, | 2739 | int snd_pcm_kernel_ioctl(struct snd_pcm_substream *substream, |
| 2710 | unsigned int cmd, void *arg) | 2740 | unsigned int cmd, void *arg) |
| 2711 | { | 2741 | { |
| 2712 | switch (substream->stream) { | 2742 | switch (substream->stream) { |
| @@ -2719,11 +2749,12 @@ int snd_pcm_kernel_ioctl(snd_pcm_substream_t *substream, | |||
| 2719 | } | 2749 | } |
| 2720 | } | 2750 | } |
| 2721 | 2751 | ||
| 2722 | static ssize_t snd_pcm_read(struct file *file, char __user *buf, size_t count, loff_t * offset) | 2752 | static ssize_t snd_pcm_read(struct file *file, char __user *buf, size_t count, |
| 2753 | loff_t * offset) | ||
| 2723 | { | 2754 | { |
| 2724 | snd_pcm_file_t *pcm_file; | 2755 | struct snd_pcm_file *pcm_file; |
| 2725 | snd_pcm_substream_t *substream; | 2756 | struct snd_pcm_substream *substream; |
| 2726 | snd_pcm_runtime_t *runtime; | 2757 | struct snd_pcm_runtime *runtime; |
| 2727 | snd_pcm_sframes_t result; | 2758 | snd_pcm_sframes_t result; |
| 2728 | 2759 | ||
| 2729 | pcm_file = file->private_data; | 2760 | pcm_file = file->private_data; |
| @@ -2741,11 +2772,12 @@ static ssize_t snd_pcm_read(struct file *file, char __user *buf, size_t count, l | |||
| 2741 | return result; | 2772 | return result; |
| 2742 | } | 2773 | } |
| 2743 | 2774 | ||
| 2744 | static ssize_t snd_pcm_write(struct file *file, const char __user *buf, size_t count, loff_t * offset) | 2775 | static ssize_t snd_pcm_write(struct file *file, const char __user *buf, |
| 2776 | size_t count, loff_t * offset) | ||
| 2745 | { | 2777 | { |
| 2746 | snd_pcm_file_t *pcm_file; | 2778 | struct snd_pcm_file *pcm_file; |
| 2747 | snd_pcm_substream_t *substream; | 2779 | struct snd_pcm_substream *substream; |
| 2748 | snd_pcm_runtime_t *runtime; | 2780 | struct snd_pcm_runtime *runtime; |
| 2749 | snd_pcm_sframes_t result; | 2781 | snd_pcm_sframes_t result; |
| 2750 | 2782 | ||
| 2751 | pcm_file = file->private_data; | 2783 | pcm_file = file->private_data; |
| @@ -2772,9 +2804,9 @@ static ssize_t snd_pcm_readv(struct file *file, const struct iovec *_vector, | |||
| 2772 | unsigned long count, loff_t * offset) | 2804 | unsigned long count, loff_t * offset) |
| 2773 | 2805 | ||
| 2774 | { | 2806 | { |
| 2775 | snd_pcm_file_t *pcm_file; | 2807 | struct snd_pcm_file *pcm_file; |
| 2776 | snd_pcm_substream_t *substream; | 2808 | struct snd_pcm_substream *substream; |
| 2777 | snd_pcm_runtime_t *runtime; | 2809 | struct snd_pcm_runtime *runtime; |
| 2778 | snd_pcm_sframes_t result; | 2810 | snd_pcm_sframes_t result; |
| 2779 | unsigned long i; | 2811 | unsigned long i; |
| 2780 | void __user **bufs; | 2812 | void __user **bufs; |
| @@ -2806,9 +2838,9 @@ static ssize_t snd_pcm_readv(struct file *file, const struct iovec *_vector, | |||
| 2806 | static ssize_t snd_pcm_writev(struct file *file, const struct iovec *_vector, | 2838 | static ssize_t snd_pcm_writev(struct file *file, const struct iovec *_vector, |
| 2807 | unsigned long count, loff_t * offset) | 2839 | unsigned long count, loff_t * offset) |
| 2808 | { | 2840 | { |
| 2809 | snd_pcm_file_t *pcm_file; | 2841 | struct snd_pcm_file *pcm_file; |
| 2810 | snd_pcm_substream_t *substream; | 2842 | struct snd_pcm_substream *substream; |
| 2811 | snd_pcm_runtime_t *runtime; | 2843 | struct snd_pcm_runtime *runtime; |
| 2812 | snd_pcm_sframes_t result; | 2844 | snd_pcm_sframes_t result; |
| 2813 | unsigned long i; | 2845 | unsigned long i; |
| 2814 | void __user **bufs; | 2846 | void __user **bufs; |
| @@ -2843,9 +2875,9 @@ static ssize_t snd_pcm_writev(struct file *file, const struct iovec *_vector, | |||
| 2843 | 2875 | ||
| 2844 | static unsigned int snd_pcm_playback_poll(struct file *file, poll_table * wait) | 2876 | static unsigned int snd_pcm_playback_poll(struct file *file, poll_table * wait) |
| 2845 | { | 2877 | { |
| 2846 | snd_pcm_file_t *pcm_file; | 2878 | struct snd_pcm_file *pcm_file; |
| 2847 | snd_pcm_substream_t *substream; | 2879 | struct snd_pcm_substream *substream; |
| 2848 | snd_pcm_runtime_t *runtime; | 2880 | struct snd_pcm_runtime *runtime; |
| 2849 | unsigned int mask; | 2881 | unsigned int mask; |
| 2850 | snd_pcm_uframes_t avail; | 2882 | snd_pcm_uframes_t avail; |
| 2851 | 2883 | ||
| @@ -2881,9 +2913,9 @@ static unsigned int snd_pcm_playback_poll(struct file *file, poll_table * wait) | |||
| 2881 | 2913 | ||
| 2882 | static unsigned int snd_pcm_capture_poll(struct file *file, poll_table * wait) | 2914 | static unsigned int snd_pcm_capture_poll(struct file *file, poll_table * wait) |
| 2883 | { | 2915 | { |
| 2884 | snd_pcm_file_t *pcm_file; | 2916 | struct snd_pcm_file *pcm_file; |
| 2885 | snd_pcm_substream_t *substream; | 2917 | struct snd_pcm_substream *substream; |
| 2886 | snd_pcm_runtime_t *runtime; | 2918 | struct snd_pcm_runtime *runtime; |
| 2887 | unsigned int mask; | 2919 | unsigned int mask; |
| 2888 | snd_pcm_uframes_t avail; | 2920 | snd_pcm_uframes_t avail; |
| 2889 | 2921 | ||
| @@ -2933,10 +2965,11 @@ static unsigned int snd_pcm_capture_poll(struct file *file, poll_table * wait) | |||
| 2933 | /* | 2965 | /* |
| 2934 | * mmap status record | 2966 | * mmap status record |
| 2935 | */ | 2967 | */ |
| 2936 | static struct page * snd_pcm_mmap_status_nopage(struct vm_area_struct *area, unsigned long address, int *type) | 2968 | static struct page * snd_pcm_mmap_status_nopage(struct vm_area_struct *area, |
| 2969 | unsigned long address, int *type) | ||
| 2937 | { | 2970 | { |
| 2938 | snd_pcm_substream_t *substream = (snd_pcm_substream_t *)area->vm_private_data; | 2971 | struct snd_pcm_substream *substream = area->vm_private_data; |
| 2939 | snd_pcm_runtime_t *runtime; | 2972 | struct snd_pcm_runtime *runtime; |
| 2940 | struct page * page; | 2973 | struct page * page; |
| 2941 | 2974 | ||
| 2942 | if (substream == NULL) | 2975 | if (substream == NULL) |
| @@ -2954,17 +2987,17 @@ static struct vm_operations_struct snd_pcm_vm_ops_status = | |||
| 2954 | .nopage = snd_pcm_mmap_status_nopage, | 2987 | .nopage = snd_pcm_mmap_status_nopage, |
| 2955 | }; | 2988 | }; |
| 2956 | 2989 | ||
| 2957 | static int snd_pcm_mmap_status(snd_pcm_substream_t *substream, struct file *file, | 2990 | static int snd_pcm_mmap_status(struct snd_pcm_substream *substream, struct file *file, |
| 2958 | struct vm_area_struct *area) | 2991 | struct vm_area_struct *area) |
| 2959 | { | 2992 | { |
| 2960 | snd_pcm_runtime_t *runtime; | 2993 | struct snd_pcm_runtime *runtime; |
| 2961 | long size; | 2994 | long size; |
| 2962 | if (!(area->vm_flags & VM_READ)) | 2995 | if (!(area->vm_flags & VM_READ)) |
| 2963 | return -EINVAL; | 2996 | return -EINVAL; |
| 2964 | runtime = substream->runtime; | 2997 | runtime = substream->runtime; |
| 2965 | snd_assert(runtime != NULL, return -EAGAIN); | 2998 | snd_assert(runtime != NULL, return -EAGAIN); |
| 2966 | size = area->vm_end - area->vm_start; | 2999 | size = area->vm_end - area->vm_start; |
| 2967 | if (size != PAGE_ALIGN(sizeof(snd_pcm_mmap_status_t))) | 3000 | if (size != PAGE_ALIGN(sizeof(struct snd_pcm_mmap_status))) |
| 2968 | return -EINVAL; | 3001 | return -EINVAL; |
| 2969 | area->vm_ops = &snd_pcm_vm_ops_status; | 3002 | area->vm_ops = &snd_pcm_vm_ops_status; |
| 2970 | area->vm_private_data = substream; | 3003 | area->vm_private_data = substream; |
| @@ -2975,10 +3008,11 @@ static int snd_pcm_mmap_status(snd_pcm_substream_t *substream, struct file *file | |||
| 2975 | /* | 3008 | /* |
| 2976 | * mmap control record | 3009 | * mmap control record |
| 2977 | */ | 3010 | */ |
| 2978 | static struct page * snd_pcm_mmap_control_nopage(struct vm_area_struct *area, unsigned long address, int *type) | 3011 | static struct page * snd_pcm_mmap_control_nopage(struct vm_area_struct *area, |
| 3012 | unsigned long address, int *type) | ||
| 2979 | { | 3013 | { |
| 2980 | snd_pcm_substream_t *substream = (snd_pcm_substream_t *)area->vm_private_data; | 3014 | struct snd_pcm_substream *substream = area->vm_private_data; |
| 2981 | snd_pcm_runtime_t *runtime; | 3015 | struct snd_pcm_runtime *runtime; |
| 2982 | struct page * page; | 3016 | struct page * page; |
| 2983 | 3017 | ||
| 2984 | if (substream == NULL) | 3018 | if (substream == NULL) |
| @@ -2996,17 +3030,17 @@ static struct vm_operations_struct snd_pcm_vm_ops_control = | |||
| 2996 | .nopage = snd_pcm_mmap_control_nopage, | 3030 | .nopage = snd_pcm_mmap_control_nopage, |
| 2997 | }; | 3031 | }; |
| 2998 | 3032 | ||
| 2999 | static int snd_pcm_mmap_control(snd_pcm_substream_t *substream, struct file *file, | 3033 | static int snd_pcm_mmap_control(struct snd_pcm_substream *substream, struct file *file, |
| 3000 | struct vm_area_struct *area) | 3034 | struct vm_area_struct *area) |
| 3001 | { | 3035 | { |
| 3002 | snd_pcm_runtime_t *runtime; | 3036 | struct snd_pcm_runtime *runtime; |
| 3003 | long size; | 3037 | long size; |
| 3004 | if (!(area->vm_flags & VM_READ)) | 3038 | if (!(area->vm_flags & VM_READ)) |
| 3005 | return -EINVAL; | 3039 | return -EINVAL; |
| 3006 | runtime = substream->runtime; | 3040 | runtime = substream->runtime; |
| 3007 | snd_assert(runtime != NULL, return -EAGAIN); | 3041 | snd_assert(runtime != NULL, return -EAGAIN); |
| 3008 | size = area->vm_end - area->vm_start; | 3042 | size = area->vm_end - area->vm_start; |
| 3009 | if (size != PAGE_ALIGN(sizeof(snd_pcm_mmap_control_t))) | 3043 | if (size != PAGE_ALIGN(sizeof(struct snd_pcm_mmap_control))) |
| 3010 | return -EINVAL; | 3044 | return -EINVAL; |
| 3011 | area->vm_ops = &snd_pcm_vm_ops_control; | 3045 | area->vm_ops = &snd_pcm_vm_ops_control; |
| 3012 | area->vm_private_data = substream; | 3046 | area->vm_private_data = substream; |
| @@ -3017,12 +3051,12 @@ static int snd_pcm_mmap_control(snd_pcm_substream_t *substream, struct file *fil | |||
| 3017 | /* | 3051 | /* |
| 3018 | * don't support mmap for status and control records. | 3052 | * don't support mmap for status and control records. |
| 3019 | */ | 3053 | */ |
| 3020 | static int snd_pcm_mmap_status(snd_pcm_substream_t *substream, struct file *file, | 3054 | static int snd_pcm_mmap_status(struct snd_pcm_substream *substream, struct file *file, |
| 3021 | struct vm_area_struct *area) | 3055 | struct vm_area_struct *area) |
| 3022 | { | 3056 | { |
| 3023 | return -ENXIO; | 3057 | return -ENXIO; |
| 3024 | } | 3058 | } |
| 3025 | static int snd_pcm_mmap_control(snd_pcm_substream_t *substream, struct file *file, | 3059 | static int snd_pcm_mmap_control(struct snd_pcm_substream *substream, struct file *file, |
| 3026 | struct vm_area_struct *area) | 3060 | struct vm_area_struct *area) |
| 3027 | { | 3061 | { |
| 3028 | return -ENXIO; | 3062 | return -ENXIO; |
| @@ -3032,10 +3066,11 @@ static int snd_pcm_mmap_control(snd_pcm_substream_t *substream, struct file *fil | |||
| 3032 | /* | 3066 | /* |
| 3033 | * nopage callback for mmapping a RAM page | 3067 | * nopage callback for mmapping a RAM page |
| 3034 | */ | 3068 | */ |
| 3035 | static struct page *snd_pcm_mmap_data_nopage(struct vm_area_struct *area, unsigned long address, int *type) | 3069 | static struct page *snd_pcm_mmap_data_nopage(struct vm_area_struct *area, |
| 3070 | unsigned long address, int *type) | ||
| 3036 | { | 3071 | { |
| 3037 | snd_pcm_substream_t *substream = (snd_pcm_substream_t *)area->vm_private_data; | 3072 | struct snd_pcm_substream *substream = area->vm_private_data; |
| 3038 | snd_pcm_runtime_t *runtime; | 3073 | struct snd_pcm_runtime *runtime; |
| 3039 | unsigned long offset; | 3074 | unsigned long offset; |
| 3040 | struct page * page; | 3075 | struct page * page; |
| 3041 | void *vaddr; | 3076 | void *vaddr; |
| @@ -3074,7 +3109,8 @@ static struct vm_operations_struct snd_pcm_vm_ops_data = | |||
| 3074 | /* | 3109 | /* |
| 3075 | * mmap the DMA buffer on RAM | 3110 | * mmap the DMA buffer on RAM |
| 3076 | */ | 3111 | */ |
| 3077 | static int snd_pcm_default_mmap(snd_pcm_substream_t *substream, struct vm_area_struct *area) | 3112 | static int snd_pcm_default_mmap(struct snd_pcm_substream *substream, |
| 3113 | struct vm_area_struct *area) | ||
| 3078 | { | 3114 | { |
| 3079 | area->vm_ops = &snd_pcm_vm_ops_data; | 3115 | area->vm_ops = &snd_pcm_vm_ops_data; |
| 3080 | area->vm_private_data = substream; | 3116 | area->vm_private_data = substream; |
| @@ -3093,7 +3129,8 @@ static struct vm_operations_struct snd_pcm_vm_ops_data_mmio = | |||
| 3093 | .close = snd_pcm_mmap_data_close, | 3129 | .close = snd_pcm_mmap_data_close, |
| 3094 | }; | 3130 | }; |
| 3095 | 3131 | ||
| 3096 | int snd_pcm_lib_mmap_iomem(snd_pcm_substream_t *substream, struct vm_area_struct *area) | 3132 | int snd_pcm_lib_mmap_iomem(struct snd_pcm_substream *substream, |
| 3133 | struct vm_area_struct *area) | ||
| 3097 | { | 3134 | { |
| 3098 | long size; | 3135 | long size; |
| 3099 | unsigned long offset; | 3136 | unsigned long offset; |
| @@ -3118,10 +3155,10 @@ int snd_pcm_lib_mmap_iomem(snd_pcm_substream_t *substream, struct vm_area_struct | |||
| 3118 | /* | 3155 | /* |
| 3119 | * mmap DMA buffer | 3156 | * mmap DMA buffer |
| 3120 | */ | 3157 | */ |
| 3121 | int snd_pcm_mmap_data(snd_pcm_substream_t *substream, struct file *file, | 3158 | int snd_pcm_mmap_data(struct snd_pcm_substream *substream, struct file *file, |
| 3122 | struct vm_area_struct *area) | 3159 | struct vm_area_struct *area) |
| 3123 | { | 3160 | { |
| 3124 | snd_pcm_runtime_t *runtime; | 3161 | struct snd_pcm_runtime *runtime; |
| 3125 | long size; | 3162 | long size; |
| 3126 | unsigned long offset; | 3163 | unsigned long offset; |
| 3127 | size_t dma_bytes; | 3164 | size_t dma_bytes; |
| @@ -3158,8 +3195,8 @@ int snd_pcm_mmap_data(snd_pcm_substream_t *substream, struct file *file, | |||
| 3158 | 3195 | ||
| 3159 | static int snd_pcm_mmap(struct file *file, struct vm_area_struct *area) | 3196 | static int snd_pcm_mmap(struct file *file, struct vm_area_struct *area) |
| 3160 | { | 3197 | { |
| 3161 | snd_pcm_file_t * pcm_file; | 3198 | struct snd_pcm_file * pcm_file; |
| 3162 | snd_pcm_substream_t *substream; | 3199 | struct snd_pcm_substream *substream; |
| 3163 | unsigned long offset; | 3200 | unsigned long offset; |
| 3164 | 3201 | ||
| 3165 | pcm_file = file->private_data; | 3202 | pcm_file = file->private_data; |
| @@ -3184,9 +3221,9 @@ static int snd_pcm_mmap(struct file *file, struct vm_area_struct *area) | |||
| 3184 | 3221 | ||
| 3185 | static int snd_pcm_fasync(int fd, struct file * file, int on) | 3222 | static int snd_pcm_fasync(int fd, struct file * file, int on) |
| 3186 | { | 3223 | { |
| 3187 | snd_pcm_file_t * pcm_file; | 3224 | struct snd_pcm_file * pcm_file; |
| 3188 | snd_pcm_substream_t *substream; | 3225 | struct snd_pcm_substream *substream; |
| 3189 | snd_pcm_runtime_t *runtime; | 3226 | struct snd_pcm_runtime *runtime; |
| 3190 | int err; | 3227 | int err; |
| 3191 | 3228 | ||
| 3192 | pcm_file = file->private_data; | 3229 | pcm_file = file->private_data; |
| @@ -3216,7 +3253,8 @@ static int snd_pcm_fasync(int fd, struct file * file, int on) | |||
| 3216 | #define __OLD_TO_NEW_MASK(x) ((x&7)|((x&0x07fffff8)<<5)) | 3253 | #define __OLD_TO_NEW_MASK(x) ((x&7)|((x&0x07fffff8)<<5)) |
| 3217 | #define __NEW_TO_OLD_MASK(x) ((x&7)|((x&0xffffff00)>>5)) | 3254 | #define __NEW_TO_OLD_MASK(x) ((x&7)|((x&0xffffff00)>>5)) |
| 3218 | 3255 | ||
| 3219 | static void snd_pcm_hw_convert_from_old_params(snd_pcm_hw_params_t *params, struct sndrv_pcm_hw_params_old *oparams) | 3256 | static void snd_pcm_hw_convert_from_old_params(struct snd_pcm_hw_params *params, |
| 3257 | struct snd_pcm_hw_params_old *oparams) | ||
| 3220 | { | 3258 | { |
| 3221 | unsigned int i; | 3259 | unsigned int i; |
| 3222 | 3260 | ||
| @@ -3234,7 +3272,8 @@ static void snd_pcm_hw_convert_from_old_params(snd_pcm_hw_params_t *params, stru | |||
| 3234 | params->fifo_size = oparams->fifo_size; | 3272 | params->fifo_size = oparams->fifo_size; |
| 3235 | } | 3273 | } |
| 3236 | 3274 | ||
| 3237 | static void snd_pcm_hw_convert_to_old_params(struct sndrv_pcm_hw_params_old *oparams, snd_pcm_hw_params_t *params) | 3275 | static void snd_pcm_hw_convert_to_old_params(struct snd_pcm_hw_params_old *oparams, |
| 3276 | struct snd_pcm_hw_params *params) | ||
| 3238 | { | 3277 | { |
| 3239 | unsigned int i; | 3278 | unsigned int i; |
| 3240 | 3279 | ||
| @@ -3252,10 +3291,11 @@ static void snd_pcm_hw_convert_to_old_params(struct sndrv_pcm_hw_params_old *opa | |||
| 3252 | oparams->fifo_size = params->fifo_size; | 3291 | oparams->fifo_size = params->fifo_size; |
| 3253 | } | 3292 | } |
| 3254 | 3293 | ||
| 3255 | static int snd_pcm_hw_refine_old_user(snd_pcm_substream_t * substream, struct sndrv_pcm_hw_params_old __user * _oparams) | 3294 | static int snd_pcm_hw_refine_old_user(struct snd_pcm_substream *substream, |
| 3295 | struct snd_pcm_hw_params_old __user * _oparams) | ||
| 3256 | { | 3296 | { |
| 3257 | snd_pcm_hw_params_t *params; | 3297 | struct snd_pcm_hw_params *params; |
| 3258 | struct sndrv_pcm_hw_params_old *oparams = NULL; | 3298 | struct snd_pcm_hw_params_old *oparams = NULL; |
| 3259 | int err; | 3299 | int err; |
| 3260 | 3300 | ||
| 3261 | params = kmalloc(sizeof(*params), GFP_KERNEL); | 3301 | params = kmalloc(sizeof(*params), GFP_KERNEL); |
| @@ -3286,10 +3326,11 @@ out: | |||
| 3286 | return err; | 3326 | return err; |
| 3287 | } | 3327 | } |
| 3288 | 3328 | ||
| 3289 | static int snd_pcm_hw_params_old_user(snd_pcm_substream_t * substream, struct sndrv_pcm_hw_params_old __user * _oparams) | 3329 | static int snd_pcm_hw_params_old_user(struct snd_pcm_substream *substream, |
| 3330 | struct snd_pcm_hw_params_old __user * _oparams) | ||
| 3290 | { | 3331 | { |
| 3291 | snd_pcm_hw_params_t *params; | 3332 | struct snd_pcm_hw_params *params; |
| 3292 | struct sndrv_pcm_hw_params_old *oparams = NULL; | 3333 | struct snd_pcm_hw_params_old *oparams = NULL; |
| 3293 | int err; | 3334 | int err; |
| 3294 | 3335 | ||
| 3295 | params = kmalloc(sizeof(*params), GFP_KERNEL); | 3336 | params = kmalloc(sizeof(*params), GFP_KERNEL); |
| @@ -3349,7 +3390,7 @@ static struct file_operations snd_pcm_f_ops_capture = { | |||
| 3349 | .fasync = snd_pcm_fasync, | 3390 | .fasync = snd_pcm_fasync, |
| 3350 | }; | 3391 | }; |
| 3351 | 3392 | ||
| 3352 | snd_minor_t snd_pcm_reg[2] = | 3393 | struct snd_minor snd_pcm_reg[2] = |
| 3353 | { | 3394 | { |
| 3354 | { | 3395 | { |
| 3355 | .comment = "digital audio playback", | 3396 | .comment = "digital audio playback", |
diff --git a/sound/core/pcm_timer.c b/sound/core/pcm_timer.c index 884eaea31fec..d94ed16d21ea 100644 --- a/sound/core/pcm_timer.c +++ b/sound/core/pcm_timer.c | |||
| @@ -45,10 +45,10 @@ static unsigned long gcd(unsigned long a, unsigned long b) | |||
| 45 | return b; | 45 | return b; |
| 46 | } | 46 | } |
| 47 | 47 | ||
| 48 | void snd_pcm_timer_resolution_change(snd_pcm_substream_t *substream) | 48 | void snd_pcm_timer_resolution_change(struct snd_pcm_substream *substream) |
| 49 | { | 49 | { |
| 50 | unsigned long rate, mult, fsize, l, post; | 50 | unsigned long rate, mult, fsize, l, post; |
| 51 | snd_pcm_runtime_t *runtime = substream->runtime; | 51 | struct snd_pcm_runtime *runtime = substream->runtime; |
| 52 | 52 | ||
| 53 | mult = 1000000000; | 53 | mult = 1000000000; |
| 54 | rate = runtime->rate; | 54 | rate = runtime->rate; |
| @@ -74,18 +74,18 @@ void snd_pcm_timer_resolution_change(snd_pcm_substream_t *substream) | |||
| 74 | runtime->timer_resolution = (mult * fsize / rate) * post; | 74 | runtime->timer_resolution = (mult * fsize / rate) * post; |
| 75 | } | 75 | } |
| 76 | 76 | ||
| 77 | static unsigned long snd_pcm_timer_resolution(snd_timer_t * timer) | 77 | static unsigned long snd_pcm_timer_resolution(struct snd_timer * timer) |
| 78 | { | 78 | { |
| 79 | snd_pcm_substream_t * substream; | 79 | struct snd_pcm_substream *substream; |
| 80 | 80 | ||
| 81 | substream = timer->private_data; | 81 | substream = timer->private_data; |
| 82 | return substream->runtime ? substream->runtime->timer_resolution : 0; | 82 | return substream->runtime ? substream->runtime->timer_resolution : 0; |
| 83 | } | 83 | } |
| 84 | 84 | ||
| 85 | static int snd_pcm_timer_start(snd_timer_t * timer) | 85 | static int snd_pcm_timer_start(struct snd_timer * timer) |
| 86 | { | 86 | { |
| 87 | unsigned long flags; | 87 | unsigned long flags; |
| 88 | snd_pcm_substream_t * substream; | 88 | struct snd_pcm_substream *substream; |
| 89 | 89 | ||
| 90 | substream = snd_timer_chip(timer); | 90 | substream = snd_timer_chip(timer); |
| 91 | spin_lock_irqsave(&substream->timer_lock, flags); | 91 | spin_lock_irqsave(&substream->timer_lock, flags); |
| @@ -94,10 +94,10 @@ static int snd_pcm_timer_start(snd_timer_t * timer) | |||
| 94 | return 0; | 94 | return 0; |
| 95 | } | 95 | } |
| 96 | 96 | ||
| 97 | static int snd_pcm_timer_stop(snd_timer_t * timer) | 97 | static int snd_pcm_timer_stop(struct snd_timer * timer) |
| 98 | { | 98 | { |
| 99 | unsigned long flags; | 99 | unsigned long flags; |
| 100 | snd_pcm_substream_t * substream; | 100 | struct snd_pcm_substream *substream; |
| 101 | 101 | ||
| 102 | substream = snd_timer_chip(timer); | 102 | substream = snd_timer_chip(timer); |
| 103 | spin_lock_irqsave(&substream->timer_lock, flags); | 103 | spin_lock_irqsave(&substream->timer_lock, flags); |
| @@ -106,7 +106,7 @@ static int snd_pcm_timer_stop(snd_timer_t * timer) | |||
| 106 | return 0; | 106 | return 0; |
| 107 | } | 107 | } |
| 108 | 108 | ||
| 109 | static struct _snd_timer_hardware snd_pcm_timer = | 109 | static struct snd_timer_hardware snd_pcm_timer = |
| 110 | { | 110 | { |
| 111 | .flags = SNDRV_TIMER_HW_AUTO | SNDRV_TIMER_HW_SLAVE, | 111 | .flags = SNDRV_TIMER_HW_AUTO | SNDRV_TIMER_HW_SLAVE, |
| 112 | .resolution = 0, | 112 | .resolution = 0, |
| @@ -120,16 +120,16 @@ static struct _snd_timer_hardware snd_pcm_timer = | |||
| 120 | * Init functions | 120 | * Init functions |
| 121 | */ | 121 | */ |
| 122 | 122 | ||
| 123 | static void snd_pcm_timer_free(snd_timer_t *timer) | 123 | static void snd_pcm_timer_free(struct snd_timer *timer) |
| 124 | { | 124 | { |
| 125 | snd_pcm_substream_t *substream = timer->private_data; | 125 | struct snd_pcm_substream *substream = timer->private_data; |
| 126 | substream->timer = NULL; | 126 | substream->timer = NULL; |
| 127 | } | 127 | } |
| 128 | 128 | ||
| 129 | void snd_pcm_timer_init(snd_pcm_substream_t *substream) | 129 | void snd_pcm_timer_init(struct snd_pcm_substream *substream) |
| 130 | { | 130 | { |
| 131 | snd_timer_id_t tid; | 131 | struct snd_timer_id tid; |
| 132 | snd_timer_t *timer; | 132 | struct snd_timer *timer; |
| 133 | 133 | ||
| 134 | tid.dev_sclass = SNDRV_TIMER_SCLASS_NONE; | 134 | tid.dev_sclass = SNDRV_TIMER_SCLASS_NONE; |
| 135 | tid.dev_class = SNDRV_TIMER_CLASS_PCM; | 135 | tid.dev_class = SNDRV_TIMER_CLASS_PCM; |
| @@ -152,7 +152,7 @@ void snd_pcm_timer_init(snd_pcm_substream_t *substream) | |||
| 152 | substream->timer = timer; | 152 | substream->timer = timer; |
| 153 | } | 153 | } |
| 154 | 154 | ||
| 155 | void snd_pcm_timer_done(snd_pcm_substream_t *substream) | 155 | void snd_pcm_timer_done(struct snd_pcm_substream *substream) |
| 156 | { | 156 | { |
| 157 | if (substream->timer) { | 157 | if (substream->timer) { |
| 158 | snd_device_free(substream->pcm->card, substream->timer); | 158 | snd_device_free(substream->pcm->card, substream->timer); |
