lkml.org 
[lkml]   [2022]   [May]   [25]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH v4 05/17] ALSA: hda: cs35l41: Save Subsystem ID inside CS35L41 Driver
    Date
    From: Stefan Binding <sbinding@opensource.cirrus.com>

    The Subsystem ID is read from the HDA driver, and will
    be used by the CS35L41 driver to be able to uniquely
    identify the laptop, which is required to be able to
    define firmware to be used by specific models.

    Signed-off-by: Stefan Binding <sbinding@opensource.cirrus.com>
    Signed-off-by: Vitaly Rodionov <vitalyr@opensource.cirrus.com>
    ---

    Changes since v2:
    - No change

    sound/pci/hda/cs35l41_hda.c | 3 +++
    sound/pci/hda/cs35l41_hda.h | 1 +
    sound/pci/hda/hda_component.h | 1 +
    sound/pci/hda/patch_realtek.c | 1 +
    4 files changed, 6 insertions(+)

    diff --git a/sound/pci/hda/cs35l41_hda.c b/sound/pci/hda/cs35l41_hda.c
    index fe2ba03e602b..c235b899aa04 100644
    --- a/sound/pci/hda/cs35l41_hda.c
    +++ b/sound/pci/hda/cs35l41_hda.c
    @@ -346,6 +346,9 @@ static int cs35l41_hda_bind(struct device *dev, struct device *master, void *mas
    return -EBUSY;

    comps->dev = dev;
    + if (!cs35l41->acpi_subsystem_id)
    + cs35l41->acpi_subsystem_id = devm_kasprintf(dev, GFP_KERNEL,
    + "%.8x", comps->subsystem_id);
    cs35l41->codec = comps->codec;
    strscpy(comps->name, dev_name(dev), sizeof(comps->name));
    comps->playback_hook = cs35l41_hda_playback_hook;
    diff --git a/sound/pci/hda/cs35l41_hda.h b/sound/pci/hda/cs35l41_hda.h
    index 03c5f14631dd..b8352088a5cb 100644
    --- a/sound/pci/hda/cs35l41_hda.h
    +++ b/sound/pci/hda/cs35l41_hda.h
    @@ -42,6 +42,7 @@ struct cs35l41_hda {
    int channel_index;
    unsigned volatile long irq_errors;
    const char *amp_name;
    + const char *acpi_subsystem_id;
    struct regmap_irq_chip_data *irq_data;
    bool firmware_running;
    bool halo_initialized;
    diff --git a/sound/pci/hda/hda_component.h b/sound/pci/hda/hda_component.h
    index 534e845b9cd1..fa6df52e7855 100644
    --- a/sound/pci/hda/hda_component.h
    +++ b/sound/pci/hda/hda_component.h
    @@ -14,6 +14,7 @@
    struct hda_component {
    struct device *dev;
    char name[HDA_MAX_NAME_SIZE];
    + int subsystem_id;
    struct hda_codec *codec;
    void (*playback_hook)(struct device *dev, int action);
    };
    diff --git a/sound/pci/hda/patch_realtek.c b/sound/pci/hda/patch_realtek.c
    index cd289b17ca13..b8249c4dcb1d 100644
    --- a/sound/pci/hda/patch_realtek.c
    +++ b/sound/pci/hda/patch_realtek.c
    @@ -6632,6 +6632,7 @@ static void cs35l41_generic_fixup(struct hda_codec *cdc, int action, const char
    if (!name)
    return;
    spec->comps[i].codec = cdc;
    + spec->comps[i].subsystem_id = cdc->core.subsystem_id;
    component_match_add(dev, &spec->match, component_compare_dev_name, name);
    }
    ret = component_master_add_with_match(dev, &comp_master_ops, spec->match);
    --
    2.34.1
    \
     
     \ /
      Last update: 2022-05-25 15:19    [W:3.937 / U:0.008 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site