1 /* SPDX-License-Identifier: GPL-2.0 */
3 * Support for Intel Camera Imaging ISP subsystem.
4 * Copyright (c) 2015, Intel Corporation.
6 * This program is free software; you can redistribute it and/or modify it
7 * under the terms and conditions of the GNU General Public License,
8 * version 2, as published by the Free Software Foundation.
10 * This program is distributed in the hope it will be useful, but WITHOUT
11 * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
12 * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
21 #define _hrt_ones(n) HRTCAT(_hrt_ones_, n)
22 #define _hrt_ones_0x0 0x00000000U
23 #define _hrt_ones_0x1 0x00000001U
24 #define _hrt_ones_0x2 0x00000003U
25 #define _hrt_ones_0x3 0x00000007U
26 #define _hrt_ones_0x4 0x0000000FU
27 #define _hrt_ones_0x5 0x0000001FU
28 #define _hrt_ones_0x6 0x0000003FU
29 #define _hrt_ones_0x7 0x0000007FU
30 #define _hrt_ones_0x8 0x000000FFU
31 #define _hrt_ones_0x9 0x000001FFU
32 #define _hrt_ones_0xA 0x000003FFU
33 #define _hrt_ones_0xB 0x000007FFU
34 #define _hrt_ones_0xC 0x00000FFFU
35 #define _hrt_ones_0xD 0x00001FFFU
36 #define _hrt_ones_0xE 0x00003FFFU
37 #define _hrt_ones_0xF 0x00007FFFU
38 #define _hrt_ones_0x10 0x0000FFFFU
39 #define _hrt_ones_0x11 0x0001FFFFU
40 #define _hrt_ones_0x12 0x0003FFFFU
41 #define _hrt_ones_0x13 0x0007FFFFU
42 #define _hrt_ones_0x14 0x000FFFFFU
43 #define _hrt_ones_0x15 0x001FFFFFU
44 #define _hrt_ones_0x16 0x003FFFFFU
45 #define _hrt_ones_0x17 0x007FFFFFU
46 #define _hrt_ones_0x18 0x00FFFFFFU
47 #define _hrt_ones_0x19 0x01FFFFFFU
48 #define _hrt_ones_0x1A 0x03FFFFFFU
49 #define _hrt_ones_0x1B 0x07FFFFFFU
50 #define _hrt_ones_0x1C 0x0FFFFFFFU
51 #define _hrt_ones_0x1D 0x1FFFFFFFU
52 #define _hrt_ones_0x1E 0x3FFFFFFFU
53 #define _hrt_ones_0x1F 0x7FFFFFFFU
54 #define _hrt_ones_0x20 0xFFFFFFFFU
56 #define _hrt_ones_0 _hrt_ones_0x0
57 #define _hrt_ones_1 _hrt_ones_0x1
58 #define _hrt_ones_2 _hrt_ones_0x2
59 #define _hrt_ones_3 _hrt_ones_0x3
60 #define _hrt_ones_4 _hrt_ones_0x4
61 #define _hrt_ones_5 _hrt_ones_0x5
62 #define _hrt_ones_6 _hrt_ones_0x6
63 #define _hrt_ones_7 _hrt_ones_0x7
64 #define _hrt_ones_8 _hrt_ones_0x8
65 #define _hrt_ones_9 _hrt_ones_0x9
66 #define _hrt_ones_10 _hrt_ones_0xA
67 #define _hrt_ones_11 _hrt_ones_0xB
68 #define _hrt_ones_12 _hrt_ones_0xC
69 #define _hrt_ones_13 _hrt_ones_0xD
70 #define _hrt_ones_14 _hrt_ones_0xE
71 #define _hrt_ones_15 _hrt_ones_0xF
72 #define _hrt_ones_16 _hrt_ones_0x10
73 #define _hrt_ones_17 _hrt_ones_0x11
74 #define _hrt_ones_18 _hrt_ones_0x12
75 #define _hrt_ones_19 _hrt_ones_0x13
76 #define _hrt_ones_20 _hrt_ones_0x14
77 #define _hrt_ones_21 _hrt_ones_0x15
78 #define _hrt_ones_22 _hrt_ones_0x16
79 #define _hrt_ones_23 _hrt_ones_0x17
80 #define _hrt_ones_24 _hrt_ones_0x18
81 #define _hrt_ones_25 _hrt_ones_0x19
82 #define _hrt_ones_26 _hrt_ones_0x1A
83 #define _hrt_ones_27 _hrt_ones_0x1B
84 #define _hrt_ones_28 _hrt_ones_0x1C
85 #define _hrt_ones_29 _hrt_ones_0x1D
86 #define _hrt_ones_30 _hrt_ones_0x1E
87 #define _hrt_ones_31 _hrt_ones_0x1F
88 #define _hrt_ones_32 _hrt_ones_0x20
90 #define _hrt_mask(b, n) \
92 #define _hrt_get_bits(w, b, n) \
93 (((w) >> (b)) & _hrt_ones(n))
94 #define _hrt_set_bits(w, b, n, v) \
95 (((w) & ~_hrt_mask(b, n)) | (((v) & _hrt_ones(n)) << (b)))
96 #define _hrt_get_bit(w, b) \
98 #define _hrt_set_bit(w, b, v) \
99 (((w) & (~(1 << (b)))) | (((v) & 1) << (b)))
100 #define _hrt_set_lower_half(w, v) \
101 _hrt_set_bits(w, 0, 16, v)
102 #define _hrt_set_upper_half(w, v) \
103 _hrt_set_bits(w, 16, 16, v)
105 #endif /* _HRT_BITS_H */