Loading include/sound/hdaudio.h +1 −1 Original line number Diff line number Diff line Loading @@ -120,7 +120,7 @@ void snd_hdac_device_unregister(struct hdac_device *codec); int snd_hdac_device_set_chip_name(struct hdac_device *codec, const char *name); int snd_hdac_codec_modalias(struct hdac_device *hdac, char *buf, size_t size); int snd_hdac_refresh_widgets(struct hdac_device *codec, bool sysfs); int snd_hdac_refresh_widgets(struct hdac_device *codec); unsigned int snd_hdac_make_cmd(struct hdac_device *codec, hda_nid_t nid, unsigned int verb, unsigned int parm); Loading sound/hda/hdac_device.c +16 −13 Original line number Diff line number Diff line Loading @@ -89,7 +89,7 @@ int snd_hdac_device_init(struct hdac_device *codec, struct hdac_bus *bus, fg = codec->afg ? codec->afg : codec->mfg; err = snd_hdac_refresh_widgets(codec, false); err = snd_hdac_refresh_widgets(codec); if (err < 0) goto error; Loading Loading @@ -394,32 +394,35 @@ static void setup_fg_nodes(struct hdac_device *codec) /** * snd_hdac_refresh_widgets - Reset the widget start/end nodes * @codec: the codec object * @sysfs: re-initialize sysfs tree, too */ int snd_hdac_refresh_widgets(struct hdac_device *codec, bool sysfs) int snd_hdac_refresh_widgets(struct hdac_device *codec) { hda_nid_t start_nid; int nums, err; int nums, err = 0; /* * Serialize against multiple threads trying to update the sysfs * widgets array. */ mutex_lock(&codec->widget_lock); nums = snd_hdac_get_sub_nodes(codec, codec->afg, &start_nid); if (!start_nid || nums <= 0 || nums >= 0xff) { dev_err(&codec->dev, "cannot read sub nodes for FG 0x%02x\n", codec->afg); return -EINVAL; err = -EINVAL; goto unlock; } if (sysfs) { mutex_lock(&codec->widget_lock); err = hda_widget_sysfs_reinit(codec, start_nid, nums); mutex_unlock(&codec->widget_lock); if (err < 0) return err; } goto unlock; codec->num_nodes = nums; codec->start_nid = start_nid; codec->end_nid = start_nid + nums; return 0; unlock: mutex_unlock(&codec->widget_lock); return err; } EXPORT_SYMBOL_GPL(snd_hdac_refresh_widgets); Loading sound/hda/hdac_sysfs.c +1 −1 Original line number Diff line number Diff line Loading @@ -428,7 +428,7 @@ int hda_widget_sysfs_reinit(struct hdac_device *codec, int i; if (!codec->widgets) return hda_widget_sysfs_init(codec); return 0; tree = kmemdup(codec->widgets, sizeof(*tree), GFP_KERNEL); if (!tree) Loading sound/pci/hda/hda_codec.c +1 −1 Original line number Diff line number Diff line Loading @@ -1016,7 +1016,7 @@ int snd_hda_codec_update_widgets(struct hda_codec *codec) hda_nid_t fg; int err; err = snd_hdac_refresh_widgets(&codec->core, true); err = snd_hdac_refresh_widgets(&codec->core); if (err < 0) return err; Loading sound/soc/codecs/hdac_hdmi.c +1 −1 Original line number Diff line number Diff line Loading @@ -2043,7 +2043,7 @@ static int hdac_hdmi_dev_probe(struct hdac_device *hdev) "Failed in parse and map nid with err: %d\n", ret); return ret; } snd_hdac_refresh_widgets(hdev, true); snd_hdac_refresh_widgets(hdev); /* ASoC specific initialization */ ret = devm_snd_soc_register_component(&hdev->dev, &hdmi_hda_codec, Loading Loading
include/sound/hdaudio.h +1 −1 Original line number Diff line number Diff line Loading @@ -120,7 +120,7 @@ void snd_hdac_device_unregister(struct hdac_device *codec); int snd_hdac_device_set_chip_name(struct hdac_device *codec, const char *name); int snd_hdac_codec_modalias(struct hdac_device *hdac, char *buf, size_t size); int snd_hdac_refresh_widgets(struct hdac_device *codec, bool sysfs); int snd_hdac_refresh_widgets(struct hdac_device *codec); unsigned int snd_hdac_make_cmd(struct hdac_device *codec, hda_nid_t nid, unsigned int verb, unsigned int parm); Loading
sound/hda/hdac_device.c +16 −13 Original line number Diff line number Diff line Loading @@ -89,7 +89,7 @@ int snd_hdac_device_init(struct hdac_device *codec, struct hdac_bus *bus, fg = codec->afg ? codec->afg : codec->mfg; err = snd_hdac_refresh_widgets(codec, false); err = snd_hdac_refresh_widgets(codec); if (err < 0) goto error; Loading Loading @@ -394,32 +394,35 @@ static void setup_fg_nodes(struct hdac_device *codec) /** * snd_hdac_refresh_widgets - Reset the widget start/end nodes * @codec: the codec object * @sysfs: re-initialize sysfs tree, too */ int snd_hdac_refresh_widgets(struct hdac_device *codec, bool sysfs) int snd_hdac_refresh_widgets(struct hdac_device *codec) { hda_nid_t start_nid; int nums, err; int nums, err = 0; /* * Serialize against multiple threads trying to update the sysfs * widgets array. */ mutex_lock(&codec->widget_lock); nums = snd_hdac_get_sub_nodes(codec, codec->afg, &start_nid); if (!start_nid || nums <= 0 || nums >= 0xff) { dev_err(&codec->dev, "cannot read sub nodes for FG 0x%02x\n", codec->afg); return -EINVAL; err = -EINVAL; goto unlock; } if (sysfs) { mutex_lock(&codec->widget_lock); err = hda_widget_sysfs_reinit(codec, start_nid, nums); mutex_unlock(&codec->widget_lock); if (err < 0) return err; } goto unlock; codec->num_nodes = nums; codec->start_nid = start_nid; codec->end_nid = start_nid + nums; return 0; unlock: mutex_unlock(&codec->widget_lock); return err; } EXPORT_SYMBOL_GPL(snd_hdac_refresh_widgets); Loading
sound/hda/hdac_sysfs.c +1 −1 Original line number Diff line number Diff line Loading @@ -428,7 +428,7 @@ int hda_widget_sysfs_reinit(struct hdac_device *codec, int i; if (!codec->widgets) return hda_widget_sysfs_init(codec); return 0; tree = kmemdup(codec->widgets, sizeof(*tree), GFP_KERNEL); if (!tree) Loading
sound/pci/hda/hda_codec.c +1 −1 Original line number Diff line number Diff line Loading @@ -1016,7 +1016,7 @@ int snd_hda_codec_update_widgets(struct hda_codec *codec) hda_nid_t fg; int err; err = snd_hdac_refresh_widgets(&codec->core, true); err = snd_hdac_refresh_widgets(&codec->core); if (err < 0) return err; Loading
sound/soc/codecs/hdac_hdmi.c +1 −1 Original line number Diff line number Diff line Loading @@ -2043,7 +2043,7 @@ static int hdac_hdmi_dev_probe(struct hdac_device *hdev) "Failed in parse and map nid with err: %d\n", ret); return ret; } snd_hdac_refresh_widgets(hdev, true); snd_hdac_refresh_widgets(hdev); /* ASoC specific initialization */ ret = devm_snd_soc_register_component(&hdev->dev, &hdmi_hda_codec, Loading