]> git.baikalelectronics.ru Git - kernel.git/commit
of: search the best compatible match first in __of_match_node()
authorKevin Hao <haokexin@gmail.com>
Fri, 14 Feb 2014 05:22:46 +0000 (13:22 +0800)
committerRob Herring <robh@kernel.org>
Sun, 16 Feb 2014 00:51:17 +0000 (18:51 -0600)
commita28ce1b1750cf9b9e25a7238a28b2934433c99a0
treea9ad65687400206ef0b07f08af5237c977be7009
parent3346d47e6d2176f9c93f156bc899af47065206b1
of: search the best compatible match first in __of_match_node()

Currently, of_match_node compares each given match against all node's
compatible strings with of_device_is_compatible.

To achieve multiple compatible strings per node with ordering from
specific to generic, this requires given matches to be ordered from
specific to generic. For most of the drivers this is not true and also
an alphabetical ordering is more sane there.

Therefore, this patch introduces a function to match each of the node's
compatible strings against all given compatible matches without type and
name first, before checking the next compatible string. This implies
that node's compatibles are ordered from specific to generic while
given matches can be in any order. If we fail to find such a match
entry, then fall-back to the old method in order to keep compatibility.

Cc: Sebastian Hesselbarth <sebastian.hesselbarth@gmail.com>
Signed-off-by: Kevin Hao <haokexin@gmail.com>
Tested-by: Stephen Chivers <schivers@csc.com>
Signed-off-by: Rob Herring <robh@kernel.org>
drivers/of/base.c