kconfig: warn unmet direct dependency of tristate symbols selected by y
[carl9170fw.git] / config / symbol.c
index 0f7eba7d472a6a762e154bbcfede05b0ef8044db..6acf536c9726846913d4321460c946d3042d171d 100644 (file)
@@ -243,7 +243,7 @@ static void sym_calc_visibility(struct symbol *sym)
        tri = yes;
        if (sym->dir_dep.expr)
                tri = expr_calc_value(sym->dir_dep.expr);
-       if (tri == mod)
+       if (tri == mod && sym_get_type(sym) == S_BOOLEAN)
                tri = yes;
        if (sym->dir_dep.tri != tri) {
                sym->dir_dep.tri = tri;
@@ -414,7 +414,7 @@ void sym_calc_value(struct symbol *sym)
                                }
                        }
                calc_newval:
-                       if (sym->dir_dep.tri == no && sym->rev_dep.tri != no) {
+                       if (sym->dir_dep.tri < sym->rev_dep.tri) {
                                struct expr *e;
                                e = expr_simplify_unmet_dep(sym->rev_dep.expr,
                                    sym->dir_dep.expr);