Commit 9b97387c authored by Jeremy Linton's avatar Jeremy Linton Committed by Catalin Marinas

cacheinfo: rename of_node to fw_token

Rename and change the type of of_node to indicate
it is a generic pointer which is generally only used
for comparison purposes. In a later patch we will put
an ACPI/PPTT token pointer in fw_token so that
the code which builds the shared cpu masks can be reused.
Tested-by: default avatarArd Biesheuvel <ard.biesheuvel@linaro.org>
Tested-by: default avatarVijaya Kumar K <vkilari@codeaurora.org>
Tested-by: default avatarXiongfeng Wang <wangxiongfeng2@huawei.com>
Tested-by: default avatarTomasz Nowicki <Tomasz.Nowicki@cavium.com>
Acked-by: default avatarSudeep Holla <sudeep.holla@arm.com>
Acked-by: default avatarArd Biesheuvel <ard.biesheuvel@linaro.org>
Acked-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Signed-off-by: default avatarJeremy Linton <jeremy.linton@arm.com>
Signed-off-by: default avatarCatalin Marinas <catalin.marinas@arm.com>
parent 2ff075c7
...@@ -35,7 +35,7 @@ struct cpu_cacheinfo *get_cpu_cacheinfo(unsigned int cpu) ...@@ -35,7 +35,7 @@ struct cpu_cacheinfo *get_cpu_cacheinfo(unsigned int cpu)
static inline bool cache_leaves_are_shared(struct cacheinfo *this_leaf, static inline bool cache_leaves_are_shared(struct cacheinfo *this_leaf,
struct cacheinfo *sib_leaf) struct cacheinfo *sib_leaf)
{ {
return sib_leaf->of_node == this_leaf->of_node; return sib_leaf->fw_token == this_leaf->fw_token;
} }
/* OF properties to query for a given cache type */ /* OF properties to query for a given cache type */
...@@ -167,9 +167,10 @@ static int cache_setup_of_node(unsigned int cpu) ...@@ -167,9 +167,10 @@ static int cache_setup_of_node(unsigned int cpu)
struct cpu_cacheinfo *this_cpu_ci = get_cpu_cacheinfo(cpu); struct cpu_cacheinfo *this_cpu_ci = get_cpu_cacheinfo(cpu);
unsigned int index = 0; unsigned int index = 0;
/* skip if of_node is already populated */ /* skip if fw_token is already populated */
if (this_cpu_ci->info_list->of_node) if (this_cpu_ci->info_list->fw_token) {
return 0; return 0;
}
if (!cpu_dev) { if (!cpu_dev) {
pr_err("No cpu device for CPU %d\n", cpu); pr_err("No cpu device for CPU %d\n", cpu);
...@@ -190,7 +191,7 @@ static int cache_setup_of_node(unsigned int cpu) ...@@ -190,7 +191,7 @@ static int cache_setup_of_node(unsigned int cpu)
if (!np) if (!np)
break; break;
cache_of_set_props(this_leaf, np); cache_of_set_props(this_leaf, np);
this_leaf->of_node = np; this_leaf->fw_token = np;
index++; index++;
} }
...@@ -278,7 +279,7 @@ static void cache_shared_cpu_map_remove(unsigned int cpu) ...@@ -278,7 +279,7 @@ static void cache_shared_cpu_map_remove(unsigned int cpu)
cpumask_clear_cpu(cpu, &sib_leaf->shared_cpu_map); cpumask_clear_cpu(cpu, &sib_leaf->shared_cpu_map);
cpumask_clear_cpu(sibling, &this_leaf->shared_cpu_map); cpumask_clear_cpu(sibling, &this_leaf->shared_cpu_map);
} }
of_node_put(this_leaf->of_node); of_node_put(this_leaf->fw_token);
} }
} }
...@@ -323,8 +324,9 @@ static int detect_cache_attributes(unsigned int cpu) ...@@ -323,8 +324,9 @@ static int detect_cache_attributes(unsigned int cpu)
if (ret) if (ret)
goto free_ci; goto free_ci;
/* /*
* For systems using DT for cache hierarchy, of_node and shared_cpu_map * For systems using DT for cache hierarchy, fw_token
* will be set up here only if they are not populated already * and shared_cpu_map will be set up here only if they are
* not populated already
*/ */
ret = cache_shared_cpu_map_setup(cpu); ret = cache_shared_cpu_map_setup(cpu);
if (ret) { if (ret) {
......
...@@ -34,9 +34,8 @@ enum cache_type { ...@@ -34,9 +34,8 @@ enum cache_type {
* @shared_cpu_map: logical cpumask representing all the cpus sharing * @shared_cpu_map: logical cpumask representing all the cpus sharing
* this cache node * this cache node
* @attributes: bitfield representing various cache attributes * @attributes: bitfield representing various cache attributes
* @of_node: if devicetree is used, this represents either the cpu node in * @fw_token: Unique value used to determine if different cacheinfo
* case there's no explicit cache node or the cache node itself in the * structures represent a single hardware cache instance.
* device tree
* @disable_sysfs: indicates whether this node is visible to the user via * @disable_sysfs: indicates whether this node is visible to the user via
* sysfs or not * sysfs or not
* @priv: pointer to any private data structure specific to particular * @priv: pointer to any private data structure specific to particular
...@@ -65,8 +64,7 @@ struct cacheinfo { ...@@ -65,8 +64,7 @@ struct cacheinfo {
#define CACHE_ALLOCATE_POLICY_MASK \ #define CACHE_ALLOCATE_POLICY_MASK \
(CACHE_READ_ALLOCATE | CACHE_WRITE_ALLOCATE) (CACHE_READ_ALLOCATE | CACHE_WRITE_ALLOCATE)
#define CACHE_ID BIT(4) #define CACHE_ID BIT(4)
void *fw_token;
struct device_node *of_node;
bool disable_sysfs; bool disable_sysfs;
void *priv; void *priv;
}; };
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment