Ignore:
Timestamp:
Apr 3, 2017, 4:51:56 PM (8 years ago)
Author:
David Azarewicz
Message:

Merged/reintegrated v2 branch into trunk. Trunk is now v2

Location:
GPL/trunk
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • GPL/trunk

  • GPL/trunk/alsa-kernel/pci/emu10k1/emufx.c

    r479 r598  
    3636#include <linux/init.h>
    3737#include <linux/mutex.h>
     38#include <linux/moduleparam.h>
    3839
    3940#include <sound/core.h>
     
    5152#define EMU10K1_CENTER_LFE_FROM_FRONT
    5253#endif
     54
     55static bool high_res_gpr_volume;
     56module_param(high_res_gpr_volume, bool, 0444);
     57MODULE_PARM_DESC(high_res_gpr_volume, "GPR mixer controls use 31-bit range.");
    5358
    5459/*
     
    298303/* EMU10k1/EMU10k2 DSP control db gain */
    299304static const DECLARE_TLV_DB_SCALE(snd_emu10k1_db_scale1, -4000, 40, 1);
     305static const DECLARE_TLV_DB_LINEAR(snd_emu10k1_db_linear, TLV_DB_GAIN_MUTE, 0);
    300306
    301307static const u32 onoff_table[2] = {
     
    10741080        ctl->vcount = ctl->count = 1;
    10751081        ctl->gpr[0] = gpr + 0; ctl->value[0] = defval;
    1076         ctl->min = 0;
    1077         ctl->max = 100;
    1078         ctl->tlv = snd_emu10k1_db_scale1;
    1079         ctl->translation = EMU10K1_GPR_TRANSLATION_TABLE100;   
     1082        if (high_res_gpr_volume) {
     1083                ctl->min = 0;
     1084                ctl->max = 0x7fffffff;
     1085                ctl->tlv = snd_emu10k1_db_linear;
     1086                ctl->translation = EMU10K1_GPR_TRANSLATION_NONE;
     1087        } else {
     1088                ctl->min = 0;
     1089                ctl->max = 100;
     1090                ctl->tlv = snd_emu10k1_db_scale1;
     1091                ctl->translation = EMU10K1_GPR_TRANSLATION_TABLE100;
     1092        }
    10801093}
    10811094
     
    10891102        ctl->gpr[0] = gpr + 0; ctl->value[0] = defval;
    10901103        ctl->gpr[1] = gpr + 1; ctl->value[1] = defval;
    1091         ctl->min = 0;
    1092         ctl->max = 100;
    1093         ctl->tlv = snd_emu10k1_db_scale1;
    1094         ctl->translation = EMU10K1_GPR_TRANSLATION_TABLE100;
     1104        if (high_res_gpr_volume) {
     1105                ctl->min = 0;
     1106                ctl->max = 0x7fffffff;
     1107                ctl->tlv = snd_emu10k1_db_linear;
     1108                ctl->translation = EMU10K1_GPR_TRANSLATION_NONE;
     1109        } else {
     1110                ctl->min = 0;
     1111                ctl->max = 100;
     1112                ctl->tlv = snd_emu10k1_db_scale1;
     1113                ctl->translation = EMU10K1_GPR_TRANSLATION_TABLE100;
     1114        }
    10951115}
    10961116
Note: See TracChangeset for help on using the changeset viewer.