Changeset 688


Ignore:
Timestamp:
Jul 21, 2021, 11:12:29 AM (4 years ago)
Author:
Paul Smedley
Message:

Enable ca0132 backend

Location:
GPL/branches/uniaud32-next
Files:
5 edited

Legend:

Unmodified
Added
Removed
  • GPL/branches/uniaud32-next/alsa-kernel/pci/hda/Makefile

    r626 r688  
    1414FILES = hda_intel.obj hda_codec.obj hda_controller.obj hda_auto_parser.obj hda_jack.obj &
    1515  hda_proc.obj hda_generic.obj hda_hwdep.obj hda_sysfs.obj hda_bind.obj &
    16   patch_analog.obj patch_cmedia.obj patch_conexant.obj patch_ca0110.obj patch_cirrus.obj &
     16  patch_analog.obj patch_cmedia.obj patch_conexant.obj patch_ca0110.obj patch_ca0132.obj patch_cirrus.obj &
    1717  patch_realtek.obj patch_si3054.obj patch_sigmatel.obj patch_via.obj
    1818
  • GPL/branches/uniaud32-next/alsa-kernel/pci/hda/patch_ca0132.c

    r682 r688  
    65296529        char namestr[SNDRV_CTL_ELEM_ID_NAME_MAXLEN];
    65306530        int type = dir ? HDA_INPUT : HDA_OUTPUT;
     6531
     6532#ifndef TARGET_OS2
    65316533        struct snd_kcontrol_new knew =
    65326534                HDA_CODEC_VOLUME_MONO(namestr, nid, 1, 0, type);
     6535#else
     6536        struct snd_kcontrol_new knew = {
     6537                .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
     6538                .index = 0,  \
     6539                .subdevice = HDA_SUBDEV_AMP_FLAG,
     6540                .access = SNDRV_CTL_ELEM_ACCESS_READWRITE |
     6541                            SNDRV_CTL_ELEM_ACCESS_TLV_READ |
     6542                            SNDRV_CTL_ELEM_ACCESS_TLV_CALLBACK,
     6543                .info = snd_hda_mixer_amp_volume_info, \
     6544                .get = snd_hda_mixer_amp_volume_get,
     6545                .put = snd_hda_mixer_amp_volume_put,
     6546                .tlv = { .c = snd_hda_mixer_amp_tlv },         
     6547
     6548        };
     6549        knew.name = namestr;
     6550        knew.private_value = ((nid) | ((1)<<16) | ((type)<<18) | ((0)<<19) | ((0)<<23)) | 0;
     6551#endif
    65336552        sprintf(namestr, "FX: %s %s Volume", pfx, dirstr[dir]);
    65346553
     
    65646583        char namestr[SNDRV_CTL_ELEM_ID_NAME_MAXLEN];
    65656584        int type = dir ? HDA_INPUT : HDA_OUTPUT;
     6585#ifndef TARGET_OS2
    65666586        struct snd_kcontrol_new knew =
    65676587                CA0132_CODEC_MUTE_MONO(namestr, nid, 1, type);
     6588#else
     6589        struct snd_kcontrol_new knew =
     6590        { .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
     6591          .subdevice = HDA_SUBDEV_AMP_FLAG,
     6592          .info = snd_hda_mixer_amp_switch_info,
     6593          .get = ca0132_switch_get,
     6594          .put = ca0132_switch_put,
     6595        };
     6596        knew.name = namestr;
     6597        knew.private_value = HDA_COMPOSE_AMP_VAL(nid, 1, 0, type);
     6598#endif
    65686599        /* If using alt_controls, add FX: prefix. But, don't add FX:
    65696600         * prefix to OutFX or InFX enable controls.
     
    65796610static int add_voicefx(struct hda_codec *codec)
    65806611{
     6612#ifndef TARGET_OS2
    65816613        struct snd_kcontrol_new knew =
    65826614                HDA_CODEC_MUTE_MONO(ca0132_voicefx.name,
    65836615                                    VOICEFX, 1, 0, HDA_INPUT);
     6616#else
     6617        struct snd_kcontrol_new knew =
     6618        {
     6619                .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
     6620                .index = 0,
     6621                .subdevice = HDA_SUBDEV_AMP_FLAG,
     6622                .info = snd_hda_mixer_amp_switch_info,
     6623                .get = snd_hda_mixer_amp_switch_get,
     6624                .put = snd_hda_mixer_amp_switch_put,
     6625        };
     6626        knew.name = ca0132_voicefx.name;
     6627        knew.private_value = HDA_COMPOSE_AMP_VAL(VOICEFX, 1, 0, HDA_INPUT);
     6628
     6629#endif
    65846630        knew.info = ca0132_voicefx_info;
    65856631        knew.get = ca0132_voicefx_get;
     
    65916637static int add_ca0132_alt_eq_presets(struct hda_codec *codec)
    65926638{
     6639#ifndef TARGET_OS2
    65936640        struct snd_kcontrol_new knew =
    65946641                HDA_CODEC_MUTE_MONO(ca0132_alt_eq_enum.name,
    65956642                                    EQ_PRESET_ENUM, 1, 0, HDA_OUTPUT);
     6643#else
     6644        struct snd_kcontrol_new knew =
     6645        {
     6646                .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
     6647                .index = 0,
     6648                .subdevice = HDA_SUBDEV_AMP_FLAG,
     6649                .info = snd_hda_mixer_amp_switch_info,
     6650                .get = snd_hda_mixer_amp_switch_get,
     6651                .put = snd_hda_mixer_amp_switch_put,
     6652        };
     6653        knew.name = ca0132_alt_eq_enum.name;
     6654        knew.private_value = HDA_COMPOSE_AMP_VAL(EQ_PRESET_ENUM, 1, 0, HDA_OUTPUT);
     6655#endif
    65966656        knew.info = ca0132_alt_eq_preset_info;
    65976657        knew.get = ca0132_alt_eq_preset_get;
     
    66866746{
    66876747        const char *namestr = "Bass Redirection Crossover";
     6748#ifndef TARGET_OS2
    66886749        struct snd_kcontrol_new knew =
    66896750                HDA_CODEC_VOLUME_MONO(namestr, BASS_REDIRECTION_XOVER, 1, 0,
    66906751                                HDA_OUTPUT);
    6691 
     6752#else
     6753        struct snd_kcontrol_new knew = {
     6754                .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
     6755                .index = 0,  \
     6756                .subdevice = HDA_SUBDEV_AMP_FLAG,
     6757                .access = SNDRV_CTL_ELEM_ACCESS_READWRITE |
     6758                            SNDRV_CTL_ELEM_ACCESS_TLV_READ |
     6759                            SNDRV_CTL_ELEM_ACCESS_TLV_CALLBACK,
     6760                .info = snd_hda_mixer_amp_volume_info, \
     6761                .get = snd_hda_mixer_amp_volume_get,
     6762                .put = snd_hda_mixer_amp_volume_put,
     6763                .tlv = { .c = snd_hda_mixer_amp_tlv },         
     6764        };
     6765        knew.name = namestr;
     6766        knew.private_value = HDA_COMPOSE_AMP_VAL(BASS_REDIRECTION_XOVER, 1, 0, HDA_OUTPUT) | 0;
     6767#endif
    66926768        knew.tlv.c = NULL;
    66936769        knew.info = ca0132_alt_xbass_xover_slider_info;
     
    67026778{
    67036779        const char *namestr = "Bass Redirection";
     6780#ifndef TARGET_OS2
    67046781        struct snd_kcontrol_new knew =
    67056782                CA0132_CODEC_MUTE_MONO(namestr, BASS_REDIRECTION, 1,
    67066783                                HDA_OUTPUT);
     6784#else
     6785        struct snd_kcontrol_new knew =
     6786        { .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
     6787          .subdevice = HDA_SUBDEV_AMP_FLAG,
     6788          .info = snd_hda_mixer_amp_switch_info,
     6789          .get = ca0132_switch_get,
     6790          .put = ca0132_switch_put,
     6791        };
     6792        knew.name = namestr;
     6793        knew.private_value = HDA_COMPOSE_AMP_VAL(BASS_REDIRECTION, 1, 0, HDA_OUTPUT);
     6794#endif
    67076795
    67086796        return snd_hda_ctl_add(codec, BASS_REDIRECTION,
  • GPL/branches/uniaud32-next/include/linux/workqueue.h

    r647 r688  
    55#include <linux/completion.h>
    66#include <linux/bitops.h>
     7
    78
    89#define cancel_work_sync(w)     flush_scheduled_work()
     
    2829        struct completion thread_exited;
    2930};
     31
    3032struct delayed_work {
    3133        struct work_struct work;
     34        struct timer_list timer;
     35
     36        /* target workqueue and CPU ->timer uses to queue ->work */
     37        struct workqueue_struct *wq;
     38        int cpu;
    3239};
    3340
     
    8693#define flush_work(work) cancel_work_sync(work)
    8794
     95#define container_of(ptr, type, member) \
     96( (type *)( (char *)ptr - offsetof(type,member) ) )
     97
     98static inline struct delayed_work *to_delayed_work(struct work_struct *work)
     99{
     100        return container_of(work, struct delayed_work, work);
     101}
     102
    88103#endif /* __LINUX_WORKQUEUE_H */
  • GPL/branches/uniaud32-next/lib32/initcall.h

    r657 r688  
    125125extern_module_init(ca0110_driver_init)
    126126extern_module_exit(ca0110_driver_exit)
     127extern_module_init(ca0132_driver_init)
     128extern_module_exit(ca0132_driver_exit)
    127129extern_module_init(cirrus_driver_init)
    128130extern_module_exit(cirrus_driver_exit)
  • GPL/branches/uniaud32-next/lib32/ossidc.c

    r677 r688  
    129129        call_module_init(analog_driver_init);
    130130        call_module_init(ca0110_driver_init);
     131        call_module_init(ca0132_driver_init);
    131132        call_module_init(cirrus_driver_init);
    132133        call_module_init(cmedia_driver_init);
Note: See TracChangeset for help on using the changeset viewer.