Path: blob/master/drivers/gpu/drm/arm/display/include/malidp_utils.h
26519 views
/* SPDX-License-Identifier: GPL-2.0 */1/*2* (C) COPYRIGHT 2018 ARM Limited. All rights reserved.3* Author: James.Qian.Wang <[email protected]>4*5*/6#ifndef _MALIDP_UTILS_7#define _MALIDP_UTILS_89#include <linux/delay.h>10#include <linux/errno.h>1112#define has_bit(nr, mask) (BIT(nr) & (mask))13#define has_bits(bits, mask) (((bits) & (mask)) == (bits))1415#define dp_wait_cond(__cond, __tries, __min_range, __max_range) \16({ \17int num_tries = __tries; \18while (!__cond && (num_tries > 0)) { \19usleep_range(__min_range, __max_range); \20num_tries--; \21} \22(__cond) ? 0 : -ETIMEDOUT; \23})2425/* the restriction of range is [start, end] */26struct malidp_range {27u32 start;28u32 end;29};3031static inline void set_range(struct malidp_range *rg, u32 start, u32 end)32{33rg->start = start;34rg->end = end;35}3637static inline bool malidp_in_range(struct malidp_range *rg, u32 v)38{39return (v >= rg->start) && (v <= rg->end);40}4142#endif /* _MALIDP_UTILS_ */434445