Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit a380a75f authored by Joe Maples's avatar Joe Maples Committed by Razziell
Browse files

block: maple: Use native display state instead of PowerSuspend



Signed-off-by: default avatarJoe Maples <joe@frap129.org>
parent 814b2932
Loading
Loading
Loading
Loading
+9 −20
Original line number Diff line number Diff line
@@ -17,11 +17,9 @@
#include <linux/module.h>
#include <linux/init.h>
#include <linux/slab.h>
#ifdef CONFIG_POWERSUSPEND
#include <linux/powersuspend.h>
#endif
#include <linux/display_state.h>

#define MAPLE_IOSCHED_PATCHLEVEL	(5)
#define MAPLE_IOSCHED_PATCHLEVEL	(6)

enum { ASYNC, SYNC };

@@ -80,27 +78,22 @@ maple_add_request(struct request_queue *q, struct request *rq)
	struct maple_data *mdata = maple_get_data(q);
	const int sync = rq_is_sync(rq);
	const int dir = rq_data_dir(rq);
	static bool display_on = is_display_on();

	/*
	 * Add request to the proper fifo list and set its
	 * expire time.
	 */
#ifdef CONFIG_POWERSUSPEND

   	/* inrease expiration when device is asleep */
   	unsigned int fifo_expire_suspended = mdata->fifo_expire[sync][dir] * sleep_latency_multiple;
   	if (!power_suspended && mdata->fifo_expire[sync][dir]) {
   	if (display_on && mdata->fifo_expire[sync][dir]) {
   		rq_set_fifo_time(rq, jiffies + mdata->fifo_expire[sync][dir]);
   		list_add_tail(&rq->queuelist, &mdata->fifo_list[sync][dir]);
   	} else if (power_suspended && fifo_expire_suspended) {
   	} else if (display_on && fifo_expire_suspended) {
   		rq_set_fifo_time(rq, jiffies + fifo_expire_suspended);
   		list_add_tail(&rq->queuelist, &mdata->fifo_list[sync][dir]);
   	}
#else
   	if (mdata->fifo_expire[sync][dir]) {
   		rq_set_fifo_time(rq, jiffies + mdata->fifo_expire[sync][dir]);
   		list_add_tail(&rq->queuelist, &mdata->fifo_list[sync][dir]);
   	}
#endif
}

static struct request *
@@ -212,6 +205,7 @@ maple_dispatch_requests(struct request_queue *q, int force)
	struct maple_data *mdata = maple_get_data(q);
	struct request *rq = NULL;
	int data_dir = READ;
	static bool display_on = is_display_on();

	/*
	 * Retrieve any expired request after a batch of
@@ -222,16 +216,11 @@ maple_dispatch_requests(struct request_queue *q, int force)

	/* Retrieve request */
	if (!rq) {
#ifdef CONFIG_POWERSUSPEND
		/* Treat writes fairly while suspended, otherwise allow them to be starved */
		if (!power_suspended && mdata->starved >= mdata->writes_starved)
			data_dir = WRITE;
		else if (power_suspended && mdata->starved >= 1)
		if (display_on && mdata->starved >= mdata->writes_starved)
			data_dir = WRITE;
#else
		if (mdata->starved >= mdata->writes_starved)
		else if (!display_on && mdata->starved >= 1)
			data_dir = WRITE;
#endif

		rq = maple_choose_request(mdata, data_dir);
		if (!rq)