diff options
Diffstat (limited to 'drivers/gpu/host1x/syncpt.h')
| -rw-r--r-- | drivers/gpu/host1x/syncpt.h | 46 | 
1 files changed, 7 insertions, 39 deletions
diff --git a/drivers/gpu/host1x/syncpt.h b/drivers/gpu/host1x/syncpt.h index 267c0b9d364..9056465ecd3 100644 --- a/drivers/gpu/host1x/syncpt.h +++ b/drivers/gpu/host1x/syncpt.h @@ -20,6 +20,7 @@  #define __HOST1X_SYNCPT_H  #include <linux/atomic.h> +#include <linux/host1x.h>  #include <linux/kernel.h>  #include <linux/sched.h> @@ -30,6 +31,11 @@ struct host1x;  /* Reserved for replacing an expired wait with a NOP */  #define HOST1X_SYNCPT_RESERVED			0 +struct host1x_syncpt_base { +	unsigned int id; +	bool requested; +}; +  struct host1x_syncpt {  	int id;  	atomic_t min_val; @@ -39,6 +45,7 @@ struct host1x_syncpt {  	bool client_managed;  	struct host1x *host;  	struct device *dev; +	struct host1x_syncpt_base *base;  	/* interrupt data */  	struct host1x_syncpt_intr intr; @@ -50,25 +57,6 @@ int host1x_syncpt_init(struct host1x *host);  /*  Free sync point array */  void host1x_syncpt_deinit(struct host1x *host); -/* - * Read max. It indicates how many operations there are in queue, either in - * channel or in a software thread. - * */ -static inline u32 host1x_syncpt_read_max(struct host1x_syncpt *sp) -{ -	smp_rmb(); -	return (u32)atomic_read(&sp->max_val); -} - -/* - * Read min, which is a shadow of the current sync point value in hardware. - */ -static inline u32 host1x_syncpt_read_min(struct host1x_syncpt *sp) -{ -	smp_rmb(); -	return (u32)atomic_read(&sp->min_val); -} -  /* Return number of sync point supported. */  int host1x_syncpt_nb_pts(struct host1x *host); @@ -112,9 +100,6 @@ static inline bool host1x_syncpt_idle(struct host1x_syncpt *sp)  	return (min == max);  } -/* Return pointer to struct denoting sync point id. */ -struct host1x_syncpt *host1x_syncpt_get(struct host1x *host, u32 id); -  /* Load current value from hardware to the shadow register. */  u32 host1x_syncpt_load(struct host1x_syncpt *sp); @@ -130,16 +115,9 @@ void host1x_syncpt_restore(struct host1x *host);  /* Read current wait base value into shadow register and return it. */  u32 host1x_syncpt_load_wait_base(struct host1x_syncpt *sp); -/* Request incrementing a sync point. */ -int host1x_syncpt_incr(struct host1x_syncpt *sp); -  /* Indicate future operations by incrementing the sync point max. */  u32 host1x_syncpt_incr_max(struct host1x_syncpt *sp, u32 incrs); -/* Wait until sync point reaches a threshold value, or a timeout. */ -int host1x_syncpt_wait(struct host1x_syncpt *sp, u32 thresh, -			long timeout, u32 *value); -  /* Check if sync point id is valid. */  static inline int host1x_syncpt_is_valid(struct host1x_syncpt *sp)  { @@ -149,14 +127,4 @@ static inline int host1x_syncpt_is_valid(struct host1x_syncpt *sp)  /* Patch a wait by replacing it with a wait for syncpt 0 value 0 */  int host1x_syncpt_patch_wait(struct host1x_syncpt *sp, void *patch_addr); -/* Return id of the sync point */ -u32 host1x_syncpt_id(struct host1x_syncpt *sp); - -/* Allocate a sync point for a device. */ -struct host1x_syncpt *host1x_syncpt_request(struct device *dev, -					    bool client_managed); - -/* Free a sync point. */ -void host1x_syncpt_free(struct host1x_syncpt *sp); -  #endif  | 
