diff options
Diffstat (limited to 'include/sound')
-rw-r--r-- | include/sound/ac97_codec.h | 107 |
1 files changed, 54 insertions, 53 deletions
diff --git a/include/sound/ac97_codec.h b/include/sound/ac97_codec.h index 6f1e6ba2a190..a1814cd95491 100644 --- a/include/sound/ac97_codec.h +++ b/include/sound/ac97_codec.h | |||
@@ -391,38 +391,35 @@ | |||
391 | * | 391 | * |
392 | */ | 392 | */ |
393 | 393 | ||
394 | typedef struct _snd_ac97_bus ac97_bus_t; | 394 | struct snd_ac97; |
395 | typedef struct _snd_ac97_bus_ops ac97_bus_ops_t; | ||
396 | typedef struct _snd_ac97_template ac97_template_t; | ||
397 | typedef struct _snd_ac97 ac97_t; | ||
398 | 395 | ||
399 | struct snd_ac97_build_ops { | 396 | struct snd_ac97_build_ops { |
400 | int (*build_3d) (ac97_t *ac97); | 397 | int (*build_3d) (struct snd_ac97 *ac97); |
401 | int (*build_specific) (ac97_t *ac97); | 398 | int (*build_specific) (struct snd_ac97 *ac97); |
402 | int (*build_spdif) (ac97_t *ac97); | 399 | int (*build_spdif) (struct snd_ac97 *ac97); |
403 | int (*build_post_spdif) (ac97_t *ac97); | 400 | int (*build_post_spdif) (struct snd_ac97 *ac97); |
404 | #ifdef CONFIG_PM | 401 | #ifdef CONFIG_PM |
405 | void (*suspend) (ac97_t *ac97); | 402 | void (*suspend) (struct snd_ac97 *ac97); |
406 | void (*resume) (ac97_t *ac97); | 403 | void (*resume) (struct snd_ac97 *ac97); |
407 | #endif | 404 | #endif |
408 | void (*update_jacks) (ac97_t *ac97); /* for jack-sharing */ | 405 | void (*update_jacks) (struct snd_ac97 *ac97); /* for jack-sharing */ |
409 | }; | 406 | }; |
410 | 407 | ||
411 | struct _snd_ac97_bus_ops { | 408 | struct snd_ac97_bus_ops { |
412 | void (*reset) (ac97_t *ac97); | 409 | void (*reset) (struct snd_ac97 *ac97); |
413 | void (*write) (ac97_t *ac97, unsigned short reg, unsigned short val); | 410 | void (*write) (struct snd_ac97 *ac97, unsigned short reg, unsigned short val); |
414 | unsigned short (*read) (ac97_t *ac97, unsigned short reg); | 411 | unsigned short (*read) (struct snd_ac97 *ac97, unsigned short reg); |
415 | void (*wait) (ac97_t *ac97); | 412 | void (*wait) (struct snd_ac97 *ac97); |
416 | void (*init) (ac97_t *ac97); | 413 | void (*init) (struct snd_ac97 *ac97); |
417 | }; | 414 | }; |
418 | 415 | ||
419 | struct _snd_ac97_bus { | 416 | struct snd_ac97_bus { |
420 | /* -- lowlevel (hardware) driver specific -- */ | 417 | /* -- lowlevel (hardware) driver specific -- */ |
421 | ac97_bus_ops_t *ops; | 418 | struct snd_ac97_bus_ops *ops; |
422 | void *private_data; | 419 | void *private_data; |
423 | void (*private_free) (ac97_bus_t *bus); | 420 | void (*private_free) (struct snd_ac97_bus *bus); |
424 | /* --- */ | 421 | /* --- */ |
425 | snd_card_t *card; | 422 | struct snd_card *card; |
426 | unsigned short num; /* bus number */ | 423 | unsigned short num; /* bus number */ |
427 | unsigned short no_vra: 1, /* bridge doesn't support VRA */ | 424 | unsigned short no_vra: 1, /* bridge doesn't support VRA */ |
428 | dra: 1, /* bridge supports double rate */ | 425 | dra: 1, /* bridge supports double rate */ |
@@ -432,13 +429,13 @@ struct _snd_ac97_bus { | |||
432 | unsigned short used_slots[2][4]; /* actually used PCM slots */ | 429 | unsigned short used_slots[2][4]; /* actually used PCM slots */ |
433 | unsigned short pcms_count; /* count of PCMs */ | 430 | unsigned short pcms_count; /* count of PCMs */ |
434 | struct ac97_pcm *pcms; | 431 | struct ac97_pcm *pcms; |
435 | ac97_t *codec[4]; | 432 | struct snd_ac97 *codec[4]; |
436 | snd_info_entry_t *proc; | 433 | struct snd_info_entry *proc; |
437 | }; | 434 | }; |
438 | 435 | ||
439 | struct _snd_ac97_template { | 436 | struct snd_ac97_template { |
440 | void *private_data; | 437 | void *private_data; |
441 | void (*private_free) (ac97_t *ac97); | 438 | void (*private_free) (struct snd_ac97 *ac97); |
442 | struct pci_dev *pci; /* assigned PCI device - used for quirks */ | 439 | struct pci_dev *pci; /* assigned PCI device - used for quirks */ |
443 | unsigned short num; /* number of codec: 0 = primary, 1 = secondary */ | 440 | unsigned short num; /* number of codec: 0 = primary, 1 = secondary */ |
444 | unsigned short addr; /* physical address of codec [0-3] */ | 441 | unsigned short addr; /* physical address of codec [0-3] */ |
@@ -447,16 +444,16 @@ struct _snd_ac97_template { | |||
447 | DECLARE_BITMAP(reg_accessed, 0x80); /* bit flags */ | 444 | DECLARE_BITMAP(reg_accessed, 0x80); /* bit flags */ |
448 | }; | 445 | }; |
449 | 446 | ||
450 | struct _snd_ac97 { | 447 | struct snd_ac97 { |
451 | /* -- lowlevel (hardware) driver specific -- */ | 448 | /* -- lowlevel (hardware) driver specific -- */ |
452 | struct snd_ac97_build_ops * build_ops; | 449 | struct snd_ac97_build_ops * build_ops; |
453 | void *private_data; | 450 | void *private_data; |
454 | void (*private_free) (ac97_t *ac97); | 451 | void (*private_free) (struct snd_ac97 *ac97); |
455 | /* --- */ | 452 | /* --- */ |
456 | ac97_bus_t *bus; | 453 | struct snd_ac97_bus *bus; |
457 | struct pci_dev *pci; /* assigned PCI device - used for quirks */ | 454 | struct pci_dev *pci; /* assigned PCI device - used for quirks */ |
458 | snd_info_entry_t *proc; | 455 | struct snd_info_entry *proc; |
459 | snd_info_entry_t *proc_regs; | 456 | struct snd_info_entry *proc_regs; |
460 | unsigned short subsystem_vendor; | 457 | unsigned short subsystem_vendor; |
461 | unsigned short subsystem_device; | 458 | unsigned short subsystem_device; |
462 | struct semaphore reg_mutex; | 459 | struct semaphore reg_mutex; |
@@ -490,43 +487,47 @@ struct _snd_ac97 { | |||
490 | struct device dev; | 487 | struct device dev; |
491 | }; | 488 | }; |
492 | 489 | ||
493 | #define to_ac97_t(d) container_of(d, struct _snd_ac97, dev) | 490 | #define to_ac97_t(d) container_of(d, struct snd_ac97, dev) |
494 | 491 | ||
495 | /* conditions */ | 492 | /* conditions */ |
496 | static inline int ac97_is_audio(ac97_t * ac97) | 493 | static inline int ac97_is_audio(struct snd_ac97 * ac97) |
497 | { | 494 | { |
498 | return (ac97->scaps & AC97_SCAP_AUDIO); | 495 | return (ac97->scaps & AC97_SCAP_AUDIO); |
499 | } | 496 | } |
500 | static inline int ac97_is_modem(ac97_t * ac97) | 497 | static inline int ac97_is_modem(struct snd_ac97 * ac97) |
501 | { | 498 | { |
502 | return (ac97->scaps & AC97_SCAP_MODEM); | 499 | return (ac97->scaps & AC97_SCAP_MODEM); |
503 | } | 500 | } |
504 | static inline int ac97_is_rev22(ac97_t * ac97) | 501 | static inline int ac97_is_rev22(struct snd_ac97 * ac97) |
505 | { | 502 | { |
506 | return (ac97->ext_id & AC97_EI_REV_MASK) >= AC97_EI_REV_22; | 503 | return (ac97->ext_id & AC97_EI_REV_MASK) >= AC97_EI_REV_22; |
507 | } | 504 | } |
508 | static inline int ac97_can_amap(ac97_t * ac97) | 505 | static inline int ac97_can_amap(struct snd_ac97 * ac97) |
509 | { | 506 | { |
510 | return (ac97->ext_id & AC97_EI_AMAP) != 0; | 507 | return (ac97->ext_id & AC97_EI_AMAP) != 0; |
511 | } | 508 | } |
512 | static inline int ac97_can_spdif(ac97_t * ac97) | 509 | static inline int ac97_can_spdif(struct snd_ac97 * ac97) |
513 | { | 510 | { |
514 | return (ac97->ext_id & AC97_EI_SPDIF) != 0; | 511 | return (ac97->ext_id & AC97_EI_SPDIF) != 0; |
515 | } | 512 | } |
516 | 513 | ||
517 | /* functions */ | 514 | /* functions */ |
518 | int snd_ac97_bus(snd_card_t *card, int num, ac97_bus_ops_t *ops, void *private_data, ac97_bus_t **rbus); /* create new AC97 bus */ | 515 | /* create new AC97 bus */ |
519 | int snd_ac97_mixer(ac97_bus_t *bus, ac97_template_t *template, ac97_t **rac97); /* create mixer controls */ | 516 | int snd_ac97_bus(struct snd_card *card, int num, struct snd_ac97_bus_ops *ops, |
520 | const char *snd_ac97_get_short_name(ac97_t *ac97); | 517 | void *private_data, struct snd_ac97_bus **rbus); |
521 | 518 | /* create mixer controls */ | |
522 | void snd_ac97_write(ac97_t *ac97, unsigned short reg, unsigned short value); | 519 | int snd_ac97_mixer(struct snd_ac97_bus *bus, struct snd_ac97_template *template, |
523 | unsigned short snd_ac97_read(ac97_t *ac97, unsigned short reg); | 520 | struct snd_ac97 **rac97); |
524 | void snd_ac97_write_cache(ac97_t *ac97, unsigned short reg, unsigned short value); | 521 | const char *snd_ac97_get_short_name(struct snd_ac97 *ac97); |
525 | int snd_ac97_update(ac97_t *ac97, unsigned short reg, unsigned short value); | 522 | |
526 | int snd_ac97_update_bits(ac97_t *ac97, unsigned short reg, unsigned short mask, unsigned short value); | 523 | void snd_ac97_write(struct snd_ac97 *ac97, unsigned short reg, unsigned short value); |
524 | unsigned short snd_ac97_read(struct snd_ac97 *ac97, unsigned short reg); | ||
525 | void snd_ac97_write_cache(struct snd_ac97 *ac97, unsigned short reg, unsigned short value); | ||
526 | int snd_ac97_update(struct snd_ac97 *ac97, unsigned short reg, unsigned short value); | ||
527 | int snd_ac97_update_bits(struct snd_ac97 *ac97, unsigned short reg, unsigned short mask, unsigned short value); | ||
527 | #ifdef CONFIG_PM | 528 | #ifdef CONFIG_PM |
528 | void snd_ac97_suspend(ac97_t *ac97); | 529 | void snd_ac97_suspend(struct snd_ac97 *ac97); |
529 | void snd_ac97_resume(ac97_t *ac97); | 530 | void snd_ac97_resume(struct snd_ac97 *ac97); |
530 | #endif | 531 | #endif |
531 | 532 | ||
532 | /* quirk types */ | 533 | /* quirk types */ |
@@ -551,8 +552,8 @@ struct ac97_quirk { | |||
551 | int type; /* quirk type above */ | 552 | int type; /* quirk type above */ |
552 | }; | 553 | }; |
553 | 554 | ||
554 | int snd_ac97_tune_hardware(ac97_t *ac97, struct ac97_quirk *quirk, const char *override); | 555 | int snd_ac97_tune_hardware(struct snd_ac97 *ac97, struct ac97_quirk *quirk, const char *override); |
555 | int snd_ac97_set_rate(ac97_t *ac97, int reg, unsigned int rate); | 556 | int snd_ac97_set_rate(struct snd_ac97 *ac97, int reg, unsigned int rate); |
556 | 557 | ||
557 | /* | 558 | /* |
558 | * PCM allocation | 559 | * PCM allocation |
@@ -568,7 +569,7 @@ enum ac97_pcm_cfg { | |||
568 | }; | 569 | }; |
569 | 570 | ||
570 | struct ac97_pcm { | 571 | struct ac97_pcm { |
571 | ac97_bus_t *bus; | 572 | struct snd_ac97_bus *bus; |
572 | unsigned int stream: 1, /* stream type: 1 = capture */ | 573 | unsigned int stream: 1, /* stream type: 1 = capture */ |
573 | exclusive: 1, /* exclusive mode, don't override with other pcms */ | 574 | exclusive: 1, /* exclusive mode, don't override with other pcms */ |
574 | copy_flag: 1, /* lowlevel driver must fill all entries */ | 575 | copy_flag: 1, /* lowlevel driver must fill all entries */ |
@@ -579,18 +580,18 @@ struct ac97_pcm { | |||
579 | unsigned short slots; /* driver input: requested AC97 slot numbers */ | 580 | unsigned short slots; /* driver input: requested AC97 slot numbers */ |
580 | unsigned short rslots[4]; /* allocated slots per codecs */ | 581 | unsigned short rslots[4]; /* allocated slots per codecs */ |
581 | unsigned char rate_table[4]; | 582 | unsigned char rate_table[4]; |
582 | ac97_t *codec[4]; /* allocated codecs */ | 583 | struct snd_ac97 *codec[4]; /* allocated codecs */ |
583 | } r[2]; /* 0 = standard rates, 1 = double rates */ | 584 | } r[2]; /* 0 = standard rates, 1 = double rates */ |
584 | unsigned long private_value; /* used by the hardware driver */ | 585 | unsigned long private_value; /* used by the hardware driver */ |
585 | }; | 586 | }; |
586 | 587 | ||
587 | int snd_ac97_pcm_assign(ac97_bus_t *ac97, | 588 | int snd_ac97_pcm_assign(struct snd_ac97_bus *ac97, |
588 | unsigned short pcms_count, | 589 | unsigned short pcms_count, |
589 | const struct ac97_pcm *pcms); | 590 | const struct ac97_pcm *pcms); |
590 | int snd_ac97_pcm_open(struct ac97_pcm *pcm, unsigned int rate, | 591 | int snd_ac97_pcm_open(struct ac97_pcm *pcm, unsigned int rate, |
591 | enum ac97_pcm_cfg cfg, unsigned short slots); | 592 | enum ac97_pcm_cfg cfg, unsigned short slots); |
592 | int snd_ac97_pcm_close(struct ac97_pcm *pcm); | 593 | int snd_ac97_pcm_close(struct ac97_pcm *pcm); |
593 | int snd_ac97_pcm_double_rate_rules(snd_pcm_runtime_t *runtime); | 594 | int snd_ac97_pcm_double_rate_rules(struct snd_pcm_runtime *runtime); |
594 | 595 | ||
595 | /* ad hoc AC97 device driver access */ | 596 | /* ad hoc AC97 device driver access */ |
596 | extern struct bus_type ac97_bus_type; | 597 | extern struct bus_type ac97_bus_type; |