diff options
Diffstat (limited to 'sound/pci/cmipci.c')
-rw-r--r-- | sound/pci/cmipci.c | 44 |
1 files changed, 20 insertions, 24 deletions
diff --git a/sound/pci/cmipci.c b/sound/pci/cmipci.c index 6021e5c402ea..cc0977a8a3d6 100644 --- a/sound/pci/cmipci.c +++ b/sound/pci/cmipci.c | |||
@@ -2625,46 +2625,42 @@ static void __devinit query_chip(struct cmipci *cm) | |||
2625 | if (! detect) { | 2625 | if (! detect) { |
2626 | /* check reg 08h, bit 24-28 */ | 2626 | /* check reg 08h, bit 24-28 */ |
2627 | detect = snd_cmipci_read(cm, CM_REG_CHFORMAT) & CM_CHIP_MASK1; | 2627 | detect = snd_cmipci_read(cm, CM_REG_CHFORMAT) & CM_CHIP_MASK1; |
2628 | if (! detect) { | 2628 | switch (detect) { |
2629 | case 0: | ||
2629 | cm->chip_version = 33; | 2630 | cm->chip_version = 33; |
2630 | cm->max_channels = 2; | ||
2631 | if (cm->do_soft_ac3) | 2631 | if (cm->do_soft_ac3) |
2632 | cm->can_ac3_sw = 1; | 2632 | cm->can_ac3_sw = 1; |
2633 | else | 2633 | else |
2634 | cm->can_ac3_hw = 1; | 2634 | cm->can_ac3_hw = 1; |
2635 | cm->has_dual_dac = 1; | 2635 | break; |
2636 | } else { | 2636 | case 1: |
2637 | cm->chip_version = 37; | 2637 | cm->chip_version = 37; |
2638 | cm->max_channels = 2; | ||
2639 | cm->can_ac3_hw = 1; | 2638 | cm->can_ac3_hw = 1; |
2640 | cm->has_dual_dac = 1; | 2639 | break; |
2640 | default: | ||
2641 | cm->chip_version = 39; | ||
2642 | cm->can_ac3_hw = 1; | ||
2643 | break; | ||
2641 | } | 2644 | } |
2645 | cm->max_channels = 2; | ||
2646 | cm->has_dual_dac = 1; | ||
2642 | } else { | 2647 | } else { |
2643 | /* check reg 0Ch, bit 26 */ | 2648 | if (detect & CM_CHIP_039) { |
2644 | if (detect & CM_CHIP_8768) { | ||
2645 | cm->chip_version = 68; | ||
2646 | cm->max_channels = 8; | ||
2647 | cm->can_ac3_hw = 1; | ||
2648 | cm->has_dual_dac = 1; | ||
2649 | cm->can_multi_ch = 1; | ||
2650 | } else if (detect & CM_CHIP_055) { | ||
2651 | cm->chip_version = 55; | ||
2652 | cm->max_channels = 6; | ||
2653 | cm->can_ac3_hw = 1; | ||
2654 | cm->has_dual_dac = 1; | ||
2655 | cm->can_multi_ch = 1; | ||
2656 | } else if (detect & CM_CHIP_039) { | ||
2657 | cm->chip_version = 39; | 2649 | cm->chip_version = 39; |
2658 | if (detect & CM_CHIP_039_6CH) /* 4 or 6 channels */ | 2650 | if (detect & CM_CHIP_039_6CH) /* 4 or 6 channels */ |
2659 | cm->max_channels = 6; | 2651 | cm->max_channels = 6; |
2660 | else | 2652 | else |
2661 | cm->max_channels = 4; | 2653 | cm->max_channels = 4; |
2662 | cm->can_ac3_hw = 1; | 2654 | } else if (detect & CM_CHIP_8768) { |
2663 | cm->has_dual_dac = 1; | 2655 | cm->chip_version = 68; |
2664 | cm->can_multi_ch = 1; | 2656 | cm->max_channels = 8; |
2665 | } else { | 2657 | } else { |
2666 | printk(KERN_ERR "chip %x version not supported\n", detect); | 2658 | cm->chip_version = 55; |
2659 | cm->max_channels = 6; | ||
2667 | } | 2660 | } |
2661 | cm->can_ac3_hw = 1; | ||
2662 | cm->has_dual_dac = 1; | ||
2663 | cm->can_multi_ch = 1; | ||
2668 | } | 2664 | } |
2669 | } | 2665 | } |
2670 | 2666 | ||