mirror of
				https://github.com/torvalds/linux.git
				synced 2025-11-04 10:40:15 +02:00 
			
		
		
		
	PM: QoS: Drop frequency QoS types from device PM QoS
There are no more active users of DEV_PM_QOS_MIN_FREQUENCY and DEV_PM_QOS_MAX_FREQUENCY device PM QoS request types, so drop them along with the code supporting them. Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com> Acked-by: Viresh Kumar <viresh.kumar@linaro.org>
This commit is contained in:
		
							parent
							
								
									3000ce3c52
								
							
						
					
					
						commit
						2aac8bdf7a
					
				
					 2 changed files with 2 additions and 80 deletions
				
			
		| 
						 | 
					@ -115,20 +115,10 @@ s32 dev_pm_qos_read_value(struct device *dev, enum dev_pm_qos_req_type type)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	spin_lock_irqsave(&dev->power.lock, flags);
 | 
						spin_lock_irqsave(&dev->power.lock, flags);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	switch (type) {
 | 
						if (type == DEV_PM_QOS_RESUME_LATENCY) {
 | 
				
			||||||
	case DEV_PM_QOS_RESUME_LATENCY:
 | 
					 | 
				
			||||||
		ret = IS_ERR_OR_NULL(qos) ? PM_QOS_RESUME_LATENCY_NO_CONSTRAINT
 | 
							ret = IS_ERR_OR_NULL(qos) ? PM_QOS_RESUME_LATENCY_NO_CONSTRAINT
 | 
				
			||||||
			: pm_qos_read_value(&qos->resume_latency);
 | 
								: pm_qos_read_value(&qos->resume_latency);
 | 
				
			||||||
		break;
 | 
						} else {
 | 
				
			||||||
	case DEV_PM_QOS_MIN_FREQUENCY:
 | 
					 | 
				
			||||||
		ret = IS_ERR_OR_NULL(qos) ? PM_QOS_MIN_FREQUENCY_DEFAULT_VALUE
 | 
					 | 
				
			||||||
			: pm_qos_read_value(&qos->min_frequency);
 | 
					 | 
				
			||||||
		break;
 | 
					 | 
				
			||||||
	case DEV_PM_QOS_MAX_FREQUENCY:
 | 
					 | 
				
			||||||
		ret = IS_ERR_OR_NULL(qos) ? PM_QOS_MAX_FREQUENCY_DEFAULT_VALUE
 | 
					 | 
				
			||||||
			: pm_qos_read_value(&qos->max_frequency);
 | 
					 | 
				
			||||||
		break;
 | 
					 | 
				
			||||||
	default:
 | 
					 | 
				
			||||||
		WARN_ON(1);
 | 
							WARN_ON(1);
 | 
				
			||||||
		ret = 0;
 | 
							ret = 0;
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
| 
						 | 
					@ -169,14 +159,6 @@ static int apply_constraint(struct dev_pm_qos_request *req,
 | 
				
			||||||
			req->dev->power.set_latency_tolerance(req->dev, value);
 | 
								req->dev->power.set_latency_tolerance(req->dev, value);
 | 
				
			||||||
		}
 | 
							}
 | 
				
			||||||
		break;
 | 
							break;
 | 
				
			||||||
	case DEV_PM_QOS_MIN_FREQUENCY:
 | 
					 | 
				
			||||||
		ret = pm_qos_update_target(&qos->min_frequency,
 | 
					 | 
				
			||||||
					   &req->data.pnode, action, value);
 | 
					 | 
				
			||||||
		break;
 | 
					 | 
				
			||||||
	case DEV_PM_QOS_MAX_FREQUENCY:
 | 
					 | 
				
			||||||
		ret = pm_qos_update_target(&qos->max_frequency,
 | 
					 | 
				
			||||||
					   &req->data.pnode, action, value);
 | 
					 | 
				
			||||||
		break;
 | 
					 | 
				
			||||||
	case DEV_PM_QOS_FLAGS:
 | 
						case DEV_PM_QOS_FLAGS:
 | 
				
			||||||
		ret = pm_qos_update_flags(&qos->flags, &req->data.flr,
 | 
							ret = pm_qos_update_flags(&qos->flags, &req->data.flr,
 | 
				
			||||||
					  action, value);
 | 
										  action, value);
 | 
				
			||||||
| 
						 | 
					@ -227,24 +209,6 @@ static int dev_pm_qos_constraints_allocate(struct device *dev)
 | 
				
			||||||
	c->no_constraint_value = PM_QOS_LATENCY_TOLERANCE_NO_CONSTRAINT;
 | 
						c->no_constraint_value = PM_QOS_LATENCY_TOLERANCE_NO_CONSTRAINT;
 | 
				
			||||||
	c->type = PM_QOS_MIN;
 | 
						c->type = PM_QOS_MIN;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	c = &qos->min_frequency;
 | 
					 | 
				
			||||||
	plist_head_init(&c->list);
 | 
					 | 
				
			||||||
	c->target_value = PM_QOS_MIN_FREQUENCY_DEFAULT_VALUE;
 | 
					 | 
				
			||||||
	c->default_value = PM_QOS_MIN_FREQUENCY_DEFAULT_VALUE;
 | 
					 | 
				
			||||||
	c->no_constraint_value = PM_QOS_MIN_FREQUENCY_DEFAULT_VALUE;
 | 
					 | 
				
			||||||
	c->type = PM_QOS_MAX;
 | 
					 | 
				
			||||||
	c->notifiers = ++n;
 | 
					 | 
				
			||||||
	BLOCKING_INIT_NOTIFIER_HEAD(n);
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
	c = &qos->max_frequency;
 | 
					 | 
				
			||||||
	plist_head_init(&c->list);
 | 
					 | 
				
			||||||
	c->target_value = PM_QOS_MAX_FREQUENCY_DEFAULT_VALUE;
 | 
					 | 
				
			||||||
	c->default_value = PM_QOS_MAX_FREQUENCY_DEFAULT_VALUE;
 | 
					 | 
				
			||||||
	c->no_constraint_value = PM_QOS_MAX_FREQUENCY_DEFAULT_VALUE;
 | 
					 | 
				
			||||||
	c->type = PM_QOS_MIN;
 | 
					 | 
				
			||||||
	c->notifiers = ++n;
 | 
					 | 
				
			||||||
	BLOCKING_INIT_NOTIFIER_HEAD(n);
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
	INIT_LIST_HEAD(&qos->flags.list);
 | 
						INIT_LIST_HEAD(&qos->flags.list);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	spin_lock_irq(&dev->power.lock);
 | 
						spin_lock_irq(&dev->power.lock);
 | 
				
			||||||
| 
						 | 
					@ -305,18 +269,6 @@ void dev_pm_qos_constraints_destroy(struct device *dev)
 | 
				
			||||||
		memset(req, 0, sizeof(*req));
 | 
							memset(req, 0, sizeof(*req));
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	c = &qos->min_frequency;
 | 
					 | 
				
			||||||
	plist_for_each_entry_safe(req, tmp, &c->list, data.pnode) {
 | 
					 | 
				
			||||||
		apply_constraint(req, PM_QOS_REMOVE_REQ, PM_QOS_MIN_FREQUENCY_DEFAULT_VALUE);
 | 
					 | 
				
			||||||
		memset(req, 0, sizeof(*req));
 | 
					 | 
				
			||||||
	}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
	c = &qos->max_frequency;
 | 
					 | 
				
			||||||
	plist_for_each_entry_safe(req, tmp, &c->list, data.pnode) {
 | 
					 | 
				
			||||||
		apply_constraint(req, PM_QOS_REMOVE_REQ, PM_QOS_MAX_FREQUENCY_DEFAULT_VALUE);
 | 
					 | 
				
			||||||
		memset(req, 0, sizeof(*req));
 | 
					 | 
				
			||||||
	}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
	f = &qos->flags;
 | 
						f = &qos->flags;
 | 
				
			||||||
	list_for_each_entry_safe(req, tmp, &f->list, data.flr.node) {
 | 
						list_for_each_entry_safe(req, tmp, &f->list, data.flr.node) {
 | 
				
			||||||
		apply_constraint(req, PM_QOS_REMOVE_REQ, PM_QOS_DEFAULT_VALUE);
 | 
							apply_constraint(req, PM_QOS_REMOVE_REQ, PM_QOS_DEFAULT_VALUE);
 | 
				
			||||||
| 
						 | 
					@ -428,8 +380,6 @@ static int __dev_pm_qos_update_request(struct dev_pm_qos_request *req,
 | 
				
			||||||
	switch(req->type) {
 | 
						switch(req->type) {
 | 
				
			||||||
	case DEV_PM_QOS_RESUME_LATENCY:
 | 
						case DEV_PM_QOS_RESUME_LATENCY:
 | 
				
			||||||
	case DEV_PM_QOS_LATENCY_TOLERANCE:
 | 
						case DEV_PM_QOS_LATENCY_TOLERANCE:
 | 
				
			||||||
	case DEV_PM_QOS_MIN_FREQUENCY:
 | 
					 | 
				
			||||||
	case DEV_PM_QOS_MAX_FREQUENCY:
 | 
					 | 
				
			||||||
		curr_value = req->data.pnode.prio;
 | 
							curr_value = req->data.pnode.prio;
 | 
				
			||||||
		break;
 | 
							break;
 | 
				
			||||||
	case DEV_PM_QOS_FLAGS:
 | 
						case DEV_PM_QOS_FLAGS:
 | 
				
			||||||
| 
						 | 
					@ -557,14 +507,6 @@ int dev_pm_qos_add_notifier(struct device *dev, struct notifier_block *notifier,
 | 
				
			||||||
		ret = blocking_notifier_chain_register(dev->power.qos->resume_latency.notifiers,
 | 
							ret = blocking_notifier_chain_register(dev->power.qos->resume_latency.notifiers,
 | 
				
			||||||
						       notifier);
 | 
											       notifier);
 | 
				
			||||||
		break;
 | 
							break;
 | 
				
			||||||
	case DEV_PM_QOS_MIN_FREQUENCY:
 | 
					 | 
				
			||||||
		ret = blocking_notifier_chain_register(dev->power.qos->min_frequency.notifiers,
 | 
					 | 
				
			||||||
						       notifier);
 | 
					 | 
				
			||||||
		break;
 | 
					 | 
				
			||||||
	case DEV_PM_QOS_MAX_FREQUENCY:
 | 
					 | 
				
			||||||
		ret = blocking_notifier_chain_register(dev->power.qos->max_frequency.notifiers,
 | 
					 | 
				
			||||||
						       notifier);
 | 
					 | 
				
			||||||
		break;
 | 
					 | 
				
			||||||
	default:
 | 
						default:
 | 
				
			||||||
		WARN_ON(1);
 | 
							WARN_ON(1);
 | 
				
			||||||
		ret = -EINVAL;
 | 
							ret = -EINVAL;
 | 
				
			||||||
| 
						 | 
					@ -604,14 +546,6 @@ int dev_pm_qos_remove_notifier(struct device *dev,
 | 
				
			||||||
		ret = blocking_notifier_chain_unregister(dev->power.qos->resume_latency.notifiers,
 | 
							ret = blocking_notifier_chain_unregister(dev->power.qos->resume_latency.notifiers,
 | 
				
			||||||
							 notifier);
 | 
												 notifier);
 | 
				
			||||||
		break;
 | 
							break;
 | 
				
			||||||
	case DEV_PM_QOS_MIN_FREQUENCY:
 | 
					 | 
				
			||||||
		ret = blocking_notifier_chain_unregister(dev->power.qos->min_frequency.notifiers,
 | 
					 | 
				
			||||||
							 notifier);
 | 
					 | 
				
			||||||
		break;
 | 
					 | 
				
			||||||
	case DEV_PM_QOS_MAX_FREQUENCY:
 | 
					 | 
				
			||||||
		ret = blocking_notifier_chain_unregister(dev->power.qos->max_frequency.notifiers,
 | 
					 | 
				
			||||||
							 notifier);
 | 
					 | 
				
			||||||
		break;
 | 
					 | 
				
			||||||
	default:
 | 
						default:
 | 
				
			||||||
		WARN_ON(1);
 | 
							WARN_ON(1);
 | 
				
			||||||
		ret = -EINVAL;
 | 
							ret = -EINVAL;
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -34,8 +34,6 @@ enum pm_qos_flags_status {
 | 
				
			||||||
#define PM_QOS_RESUME_LATENCY_NO_CONSTRAINT	PM_QOS_LATENCY_ANY
 | 
					#define PM_QOS_RESUME_LATENCY_NO_CONSTRAINT	PM_QOS_LATENCY_ANY
 | 
				
			||||||
#define PM_QOS_RESUME_LATENCY_NO_CONSTRAINT_NS	PM_QOS_LATENCY_ANY_NS
 | 
					#define PM_QOS_RESUME_LATENCY_NO_CONSTRAINT_NS	PM_QOS_LATENCY_ANY_NS
 | 
				
			||||||
#define PM_QOS_LATENCY_TOLERANCE_DEFAULT_VALUE	0
 | 
					#define PM_QOS_LATENCY_TOLERANCE_DEFAULT_VALUE	0
 | 
				
			||||||
#define PM_QOS_MIN_FREQUENCY_DEFAULT_VALUE	0
 | 
					 | 
				
			||||||
#define PM_QOS_MAX_FREQUENCY_DEFAULT_VALUE	(-1)
 | 
					 | 
				
			||||||
#define PM_QOS_LATENCY_TOLERANCE_NO_CONSTRAINT	(-1)
 | 
					#define PM_QOS_LATENCY_TOLERANCE_NO_CONSTRAINT	(-1)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#define PM_QOS_FLAG_NO_POWER_OFF	(1 << 0)
 | 
					#define PM_QOS_FLAG_NO_POWER_OFF	(1 << 0)
 | 
				
			||||||
| 
						 | 
					@ -54,8 +52,6 @@ struct pm_qos_flags_request {
 | 
				
			||||||
enum dev_pm_qos_req_type {
 | 
					enum dev_pm_qos_req_type {
 | 
				
			||||||
	DEV_PM_QOS_RESUME_LATENCY = 1,
 | 
						DEV_PM_QOS_RESUME_LATENCY = 1,
 | 
				
			||||||
	DEV_PM_QOS_LATENCY_TOLERANCE,
 | 
						DEV_PM_QOS_LATENCY_TOLERANCE,
 | 
				
			||||||
	DEV_PM_QOS_MIN_FREQUENCY,
 | 
					 | 
				
			||||||
	DEV_PM_QOS_MAX_FREQUENCY,
 | 
					 | 
				
			||||||
	DEV_PM_QOS_FLAGS,
 | 
						DEV_PM_QOS_FLAGS,
 | 
				
			||||||
};
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					@ -97,14 +93,10 @@ struct pm_qos_flags {
 | 
				
			||||||
struct dev_pm_qos {
 | 
					struct dev_pm_qos {
 | 
				
			||||||
	struct pm_qos_constraints resume_latency;
 | 
						struct pm_qos_constraints resume_latency;
 | 
				
			||||||
	struct pm_qos_constraints latency_tolerance;
 | 
						struct pm_qos_constraints latency_tolerance;
 | 
				
			||||||
	struct pm_qos_constraints min_frequency;
 | 
					 | 
				
			||||||
	struct pm_qos_constraints max_frequency;
 | 
					 | 
				
			||||||
	struct pm_qos_flags flags;
 | 
						struct pm_qos_flags flags;
 | 
				
			||||||
	struct dev_pm_qos_request *resume_latency_req;
 | 
						struct dev_pm_qos_request *resume_latency_req;
 | 
				
			||||||
	struct dev_pm_qos_request *latency_tolerance_req;
 | 
						struct dev_pm_qos_request *latency_tolerance_req;
 | 
				
			||||||
	struct dev_pm_qos_request *flags_req;
 | 
						struct dev_pm_qos_request *flags_req;
 | 
				
			||||||
	struct dev_pm_qos_request *min_frequency_req;
 | 
					 | 
				
			||||||
	struct dev_pm_qos_request *max_frequency_req;
 | 
					 | 
				
			||||||
};
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
/* Action requested to pm_qos_update_target */
 | 
					/* Action requested to pm_qos_update_target */
 | 
				
			||||||
| 
						 | 
					@ -199,10 +191,6 @@ static inline s32 dev_pm_qos_read_value(struct device *dev,
 | 
				
			||||||
	switch (type) {
 | 
						switch (type) {
 | 
				
			||||||
	case DEV_PM_QOS_RESUME_LATENCY:
 | 
						case DEV_PM_QOS_RESUME_LATENCY:
 | 
				
			||||||
		return PM_QOS_RESUME_LATENCY_NO_CONSTRAINT;
 | 
							return PM_QOS_RESUME_LATENCY_NO_CONSTRAINT;
 | 
				
			||||||
	case DEV_PM_QOS_MIN_FREQUENCY:
 | 
					 | 
				
			||||||
		return PM_QOS_MIN_FREQUENCY_DEFAULT_VALUE;
 | 
					 | 
				
			||||||
	case DEV_PM_QOS_MAX_FREQUENCY:
 | 
					 | 
				
			||||||
		return PM_QOS_MAX_FREQUENCY_DEFAULT_VALUE;
 | 
					 | 
				
			||||||
	default:
 | 
						default:
 | 
				
			||||||
		WARN_ON(1);
 | 
							WARN_ON(1);
 | 
				
			||||||
		return 0;
 | 
							return 0;
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
		Loading…
	
		Reference in a new issue