Lines Matching full:operation
31 /* operation registers */
32 #define UNIPHIER_SSCOPE 0x244 /* Cache Operation Primitive Entry */
38 #define UNIPHIER_SSCOQM 0x248 /* Cache Operation Queue Mode */
46 #define UNIPHIER_SSCOQAD 0x24c /* Cache Operation Queue Address */
47 #define UNIPHIER_SSCOQSZ 0x250 /* Cache Operation Queue Size */
48 #define UNIPHIER_SSCOPPQSEF 0x25c /* Cache Operation Queue Set Complete*/
51 #define UNIPHIER_SSCOLPQS 0x260 /* Cache Operation Queue Status */
56 /* Is the operation region specified by address range? */
65 * @op_base: virtual base address of operation registers
69 * @range_op_max_size: max size that can be handled by a single range operation
105 * __uniphier_cache_maint_common - run a queue operation for a particular level
108 * @start: start address of range operation (don't care for "all" operation)
109 * @size: data size of range operation (don't care for "all" operation)
110 * @operation: flags to specify the desired cache operation
115 u32 operation) in __uniphier_cache_maint_common() argument
124 * maintenance operation is under way and another operation is issued, in __uniphier_cache_maint_common()
126 * operation after another. If the queue is full, the status register, in __uniphier_cache_maint_common()
148 /* set cache operation */ in __uniphier_cache_maint_common()
149 writel_relaxed(UNIPHIER_SSCOQM_CE | operation, in __uniphier_cache_maint_common()
153 if (likely(UNIPHIER_SSCOQM_S_IS_RANGE(operation))) { in __uniphier_cache_maint_common()
160 /* wait until the operation is completed */ in __uniphier_cache_maint_common()
169 u32 operation) in __uniphier_cache_maint_all() argument
172 UNIPHIER_SSCOQM_S_ALL | operation); in __uniphier_cache_maint_all()
179 u32 operation) in __uniphier_cache_maint_range() argument
185 * perform a cache operation for the first cache-line in __uniphier_cache_maint_range()
192 /* this means cache operation for all range */ in __uniphier_cache_maint_range()
193 __uniphier_cache_maint_all(data, operation); in __uniphier_cache_maint_range()
199 * perform a cache operation for the last cache-line in __uniphier_cache_maint_range()
208 UNIPHIER_SSCOQM_S_RANGE | operation); in __uniphier_cache_maint_range()
237 u32 operation) in uniphier_cache_maint_range() argument
242 __uniphier_cache_maint_range(data, start, end, operation); in uniphier_cache_maint_range()
245 static void uniphier_cache_maint_all(u32 operation) in uniphier_cache_maint_all() argument
250 __uniphier_cache_maint_all(data, operation); in uniphier_cache_maint_all()
390 pr_err("L%d: failed to map operation register\n", *cache_level); in __uniphier_cache_init()
400 * The size of range operation is limited to (1 << 22) or less in __uniphier_cache_init()