cpufreq: use cpufreq_driver->flags to mark CPUFREQ_HAVE_GOVERNOR_PER_POLICY
Use cpufreq_driver->flags to mark CPUFREQ_HAVE_GOVERNOR_PER_POLICY instead of a separate field within cpufreq_driver. This will save some bytes of memory. Signed-off-by: Viresh Kumar <viresh.kumar@linaro.org> Reviewed-by: Srivatsa S. Bhat <srivatsa.bhat@linux.vnet.ibm.com> Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
This commit is contained in:
		
					parent
					
						
							
								6461f018e7
							
						
					
				
			
			
				commit
				
					
						0b981e7074
					
				
			
		
					 4 changed files with 15 additions and 11 deletions
				
			
		| 
						 | 
					@ -213,13 +213,13 @@ static struct freq_attr *bL_cpufreq_attr[] = {
 | 
				
			||||||
 | 
					
 | 
				
			||||||
static struct cpufreq_driver bL_cpufreq_driver = {
 | 
					static struct cpufreq_driver bL_cpufreq_driver = {
 | 
				
			||||||
	.name			= "arm-big-little",
 | 
						.name			= "arm-big-little",
 | 
				
			||||||
	.flags			= CPUFREQ_STICKY,
 | 
						.flags			= CPUFREQ_STICKY |
 | 
				
			||||||
 | 
										CPUFREQ_HAVE_GOVERNOR_PER_POLICY,
 | 
				
			||||||
	.verify			= bL_cpufreq_verify_policy,
 | 
						.verify			= bL_cpufreq_verify_policy,
 | 
				
			||||||
	.target			= bL_cpufreq_set_target,
 | 
						.target			= bL_cpufreq_set_target,
 | 
				
			||||||
	.get			= bL_cpufreq_get,
 | 
						.get			= bL_cpufreq_get,
 | 
				
			||||||
	.init			= bL_cpufreq_init,
 | 
						.init			= bL_cpufreq_init,
 | 
				
			||||||
	.exit			= bL_cpufreq_exit,
 | 
						.exit			= bL_cpufreq_exit,
 | 
				
			||||||
	.have_governor_per_policy = true,
 | 
					 | 
				
			||||||
	.attr			= bL_cpufreq_attr,
 | 
						.attr			= bL_cpufreq_attr,
 | 
				
			||||||
};
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -133,7 +133,7 @@ static DEFINE_MUTEX(cpufreq_governor_mutex);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
bool have_governor_per_policy(void)
 | 
					bool have_governor_per_policy(void)
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
	return cpufreq_driver->have_governor_per_policy;
 | 
						return !!(cpufreq_driver->flags & CPUFREQ_HAVE_GOVERNOR_PER_POLICY);
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
EXPORT_SYMBOL_GPL(have_governor_per_policy);
 | 
					EXPORT_SYMBOL_GPL(have_governor_per_policy);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -191,7 +191,10 @@ struct common_dbs_data {
 | 
				
			||||||
	struct attribute_group *attr_group_gov_sys; /* one governor - system */
 | 
						struct attribute_group *attr_group_gov_sys; /* one governor - system */
 | 
				
			||||||
	struct attribute_group *attr_group_gov_pol; /* one governor - policy */
 | 
						struct attribute_group *attr_group_gov_pol; /* one governor - policy */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	/* Common data for platforms that don't set have_governor_per_policy */
 | 
						/*
 | 
				
			||||||
 | 
						 * Common data for platforms that don't set
 | 
				
			||||||
 | 
						 * CPUFREQ_HAVE_GOVERNOR_PER_POLICY
 | 
				
			||||||
 | 
						 */
 | 
				
			||||||
	struct dbs_data *gdbs_data;
 | 
						struct dbs_data *gdbs_data;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	struct cpu_dbs_common_info *(*get_cpu_cdbs)(int cpu);
 | 
						struct cpu_dbs_common_info *(*get_cpu_cdbs)(int cpu);
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -180,13 +180,6 @@ __ATTR(_name, 0644, show_##_name, store_##_name)
 | 
				
			||||||
struct cpufreq_driver {
 | 
					struct cpufreq_driver {
 | 
				
			||||||
	char			name[CPUFREQ_NAME_LEN];
 | 
						char			name[CPUFREQ_NAME_LEN];
 | 
				
			||||||
	u8			flags;
 | 
						u8			flags;
 | 
				
			||||||
	/*
 | 
					 | 
				
			||||||
	 * This should be set by platforms having multiple clock-domains, i.e.
 | 
					 | 
				
			||||||
	 * supporting multiple policies. With this sysfs directories of governor
 | 
					 | 
				
			||||||
	 * would be created in cpu/cpu<num>/cpufreq/ directory and so they can
 | 
					 | 
				
			||||||
	 * use the same governor with different tunables for different clusters.
 | 
					 | 
				
			||||||
	 */
 | 
					 | 
				
			||||||
	bool			have_governor_per_policy;
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
	/* needed by all drivers */
 | 
						/* needed by all drivers */
 | 
				
			||||||
	int	(*init)		(struct cpufreq_policy *policy);
 | 
						int	(*init)		(struct cpufreq_policy *policy);
 | 
				
			||||||
| 
						 | 
					@ -220,6 +213,14 @@ struct cpufreq_driver {
 | 
				
			||||||
#define CPUFREQ_PM_NO_WARN	(1 << 2)	/* don't warn on suspend/resume
 | 
					#define CPUFREQ_PM_NO_WARN	(1 << 2)	/* don't warn on suspend/resume
 | 
				
			||||||
						   speed mismatches */
 | 
											   speed mismatches */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/*
 | 
				
			||||||
 | 
					 * This should be set by platforms having multiple clock-domains, i.e.
 | 
				
			||||||
 | 
					 * supporting multiple policies. With this sysfs directories of governor would
 | 
				
			||||||
 | 
					 * be created in cpu/cpu<num>/cpufreq/ directory and so they can use the same
 | 
				
			||||||
 | 
					 * governor with different tunables for different clusters.
 | 
				
			||||||
 | 
					 */
 | 
				
			||||||
 | 
					#define CPUFREQ_HAVE_GOVERNOR_PER_POLICY (1 << 3)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
int cpufreq_register_driver(struct cpufreq_driver *driver_data);
 | 
					int cpufreq_register_driver(struct cpufreq_driver *driver_data);
 | 
				
			||||||
int cpufreq_unregister_driver(struct cpufreq_driver *driver_data);
 | 
					int cpufreq_unregister_driver(struct cpufreq_driver *driver_data);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue