aboutsummaryrefslogtreecommitdiffstats
path: root/sound/pci/hda/hda_generic.c
diff options
context:
space:
mode:
Diffstat (limited to 'sound/pci/hda/hda_generic.c')
-rw-r--r--sound/pci/hda/hda_generic.c25
1 files changed, 7 insertions, 18 deletions
diff --git a/sound/pci/hda/hda_generic.c b/sound/pci/hda/hda_generic.c
index 819c804a579f..c957eb58de5c 100644
--- a/sound/pci/hda/hda_generic.c
+++ b/sound/pci/hda/hda_generic.c
@@ -95,13 +95,12 @@ struct hda_gspec {
95static void snd_hda_generic_free(struct hda_codec *codec) 95static void snd_hda_generic_free(struct hda_codec *codec)
96{ 96{
97 struct hda_gspec *spec = codec->spec; 97 struct hda_gspec *spec = codec->spec;
98 struct list_head *p, *n; 98 struct hda_gnode *node, *n;
99 99
100 if (! spec) 100 if (! spec)
101 return; 101 return;
102 /* free all widgets */ 102 /* free all widgets */
103 list_for_each_safe(p, n, &spec->nid_list) { 103 list_for_each_entry_safe(node, n, &spec->nid_list, list) {
104 struct hda_gnode *node = list_entry(p, struct hda_gnode, list);
105 if (node->conn_list != node->slist) 104 if (node->conn_list != node->slist)
106 kfree(node->conn_list); 105 kfree(node->conn_list);
107 kfree(node); 106 kfree(node);
@@ -203,11 +202,9 @@ static int build_afg_tree(struct hda_codec *codec)
203/* FIXME: should avoid the braindead linear search */ 202/* FIXME: should avoid the braindead linear search */
204static struct hda_gnode *hda_get_node(struct hda_gspec *spec, hda_nid_t nid) 203static struct hda_gnode *hda_get_node(struct hda_gspec *spec, hda_nid_t nid)
205{ 204{
206 struct list_head *p;
207 struct hda_gnode *node; 205 struct hda_gnode *node;
208 206
209 list_for_each(p, &spec->nid_list) { 207 list_for_each_entry(node, &spec->nid_list, list) {
210 node = list_entry(p, struct hda_gnode, list);
211 if (node->nid == nid) 208 if (node->nid == nid)
212 return node; 209 return node;
213 } 210 }
@@ -260,11 +257,9 @@ static int select_input_connection(struct hda_codec *codec, struct hda_gnode *no
260 */ 257 */
261static void clear_check_flags(struct hda_gspec *spec) 258static void clear_check_flags(struct hda_gspec *spec)
262{ 259{
263 struct list_head *p;
264 struct hda_gnode *node; 260 struct hda_gnode *node;
265 261
266 list_for_each(p, &spec->nid_list) { 262 list_for_each_entry(node, &spec->nid_list, list) {
267 node = list_entry(p, struct hda_gnode, list);
268 node->checked = 0; 263 node->checked = 0;
269 } 264 }
270} 265}
@@ -347,12 +342,10 @@ static struct hda_gnode *parse_output_jack(struct hda_codec *codec,
347 struct hda_gspec *spec, 342 struct hda_gspec *spec,
348 int jack_type) 343 int jack_type)
349{ 344{
350 struct list_head *p;
351 struct hda_gnode *node; 345 struct hda_gnode *node;
352 int err; 346 int err;
353 347
354 list_for_each(p, &spec->nid_list) { 348 list_for_each_entry(node, &spec->nid_list, list) {
355 node = list_entry(p, struct hda_gnode, list);
356 if (node->type != AC_WID_PIN) 349 if (node->type != AC_WID_PIN)
357 continue; 350 continue;
358 /* output capable? */ 351 /* output capable? */
@@ -664,7 +657,6 @@ static int parse_input_path(struct hda_codec *codec, struct hda_gnode *adc_node)
664static int parse_input(struct hda_codec *codec) 657static int parse_input(struct hda_codec *codec)
665{ 658{
666 struct hda_gspec *spec = codec->spec; 659 struct hda_gspec *spec = codec->spec;
667 struct list_head *p;
668 struct hda_gnode *node; 660 struct hda_gnode *node;
669 int err; 661 int err;
670 662
@@ -673,8 +665,7 @@ static int parse_input(struct hda_codec *codec)
673 * If it reaches to certain input PINs, we take it as the 665 * If it reaches to certain input PINs, we take it as the
674 * input path. 666 * input path.
675 */ 667 */
676 list_for_each(p, &spec->nid_list) { 668 list_for_each_entry(node, &spec->nid_list, list) {
677 node = list_entry(p, struct hda_gnode, list);
678 if (node->wid_caps & AC_WCAP_DIGITAL) 669 if (node->wid_caps & AC_WCAP_DIGITAL)
679 continue; /* skip SPDIF */ 670 continue; /* skip SPDIF */
680 if (node->type == AC_WID_AUD_IN) { 671 if (node->type == AC_WID_AUD_IN) {
@@ -943,7 +934,6 @@ static int parse_loopback_path(struct hda_codec *codec, struct hda_gspec *spec,
943static int build_loopback_controls(struct hda_codec *codec) 934static int build_loopback_controls(struct hda_codec *codec)
944{ 935{
945 struct hda_gspec *spec = codec->spec; 936 struct hda_gspec *spec = codec->spec;
946 struct list_head *p;
947 struct hda_gnode *node; 937 struct hda_gnode *node;
948 int err; 938 int err;
949 const char *type; 939 const char *type;
@@ -951,8 +941,7 @@ static int build_loopback_controls(struct hda_codec *codec)
951 if (! spec->out_pin_node[0]) 941 if (! spec->out_pin_node[0])
952 return 0; 942 return 0;
953 943
954 list_for_each(p, &spec->nid_list) { 944 list_for_each_entry(node, &spec->nid_list, list) {
955 node = list_entry(p, struct hda_gnode, list);
956 if (node->type != AC_WID_PIN) 945 if (node->type != AC_WID_PIN)
957 continue; 946 continue;
958 /* input capable? */ 947 /* input capable? */