aboutsummaryrefslogtreecommitdiffstats
path: root/sound/pci
diff options
context:
space:
mode:
Diffstat (limited to 'sound/pci')
-rw-r--r--sound/pci/cmipci.c44
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