mirror of
https://github.com/BobTheBlinker/android_kernel_motorola_sm6375.git
synced 2026-10-30 19:51:31 -04:00
blk-wbt: allow wbt to be enabled always through sysfs
Currently there's no way to enable wbt if it's not enabled in the kernel config by default for a device. Allow a write to the 'wbt_lat_usec' queue sysfs file to enable wbt. This is useful for both the kernel config case, but also if the device is CFQ managed and it was turned off by default. Signed-off-by: Jens Axboe <[email protected]>
This commit is contained in:
parent
fa224eed2b
commit
d62118b6dd
3 changed files with 29 additions and 7 deletions
|
|
@ -425,20 +425,30 @@ static ssize_t queue_wb_lat_store(struct request_queue *q, const char *page,
|
|||
ssize_t ret;
|
||||
s64 val;
|
||||
|
||||
rwb = q->rq_wb;
|
||||
if (!rwb)
|
||||
return -EINVAL;
|
||||
|
||||
ret = queue_var_store64(&val, page);
|
||||
if (ret < 0)
|
||||
return ret;
|
||||
if (val < -1)
|
||||
return -EINVAL;
|
||||
|
||||
rwb = q->rq_wb;
|
||||
if (!rwb) {
|
||||
ret = wbt_init(q);
|
||||
if (ret)
|
||||
return ret;
|
||||
|
||||
rwb = q->rq_wb;
|
||||
if (!rwb)
|
||||
return -EINVAL;
|
||||
}
|
||||
|
||||
if (val == -1)
|
||||
rwb->min_lat_nsec = wbt_default_latency_nsec(q);
|
||||
else if (val >= 0)
|
||||
rwb->min_lat_nsec = val * 1000ULL;
|
||||
else
|
||||
return -EINVAL;
|
||||
|
||||
if (rwb->enable_state == WBT_STATE_ON_DEFAULT)
|
||||
rwb->enable_state = WBT_STATE_ON_MANUAL;
|
||||
|
||||
wbt_update_limits(rwb);
|
||||
return count;
|
||||
|
|
|
|||
Loading…
Reference in a new issue