| /kernel/linux/linux-6.6/drivers/media/platform/renesas/vsp1/ |
| D | vsp1_lut.c | 28 static inline void vsp1_lut_write(struct vsp1_lut *lut, in vsp1_lut_write() argument 40 static int lut_set_table(struct vsp1_lut *lut, struct v4l2_ctrl *ctrl) in lut_set_table() argument 45 dlb = vsp1_dl_body_get(lut->pool); in lut_set_table() 53 spin_lock_irq(&lut->lock); in lut_set_table() 54 swap(lut->lut, dlb); in lut_set_table() 55 spin_unlock_irq(&lut->lock); in lut_set_table() 63 struct vsp1_lut *lut = in lut_s_ctrl() local 68 lut_set_table(lut, ctrl); in lut_s_ctrl() 154 struct vsp1_lut *lut = to_lut(&entity->subdev); in lut_configure_stream() local 156 vsp1_lut_write(lut, dlb, VI6_LUT_CTRL, VI6_LUT_CTRL_EN); in lut_configure_stream() [all …]
|
| /kernel/linux/linux-5.10/drivers/media/platform/vsp1/ |
| D | vsp1_lut.c | 28 static inline void vsp1_lut_write(struct vsp1_lut *lut, in vsp1_lut_write() argument 40 static int lut_set_table(struct vsp1_lut *lut, struct v4l2_ctrl *ctrl) in lut_set_table() argument 45 dlb = vsp1_dl_body_get(lut->pool); in lut_set_table() 53 spin_lock_irq(&lut->lock); in lut_set_table() 54 swap(lut->lut, dlb); in lut_set_table() 55 spin_unlock_irq(&lut->lock); in lut_set_table() 63 struct vsp1_lut *lut = in lut_s_ctrl() local 68 lut_set_table(lut, ctrl); in lut_s_ctrl() 153 struct vsp1_lut *lut = to_lut(&entity->subdev); in lut_configure_stream() local 155 vsp1_lut_write(lut, dlb, VI6_LUT_CTRL, VI6_LUT_CTRL_EN); in lut_configure_stream() [all …]
|
| /kernel/linux/linux-6.6/drivers/gpu/drm/amd/display/amdgpu_dm/ |
| D | amdgpu_dm_color.c | 38 * - Input gamma LUT (de-normalized) 40 * - Surface degamma LUT (normalized) 42 * - Surface regamma LUT (normalized) 51 * The input gamma LUT block isn't really applicable here since it operates 64 * respective property is set to NULL. A linear DGM/RGM LUT should also 88 * __extract_blob_lut - Extracts the DRM lut and lut size from a blob. 90 * @size: lut size 93 * DRM LUT or NULL 103 * __is_lut_linear - check if the given lut is a linear mapping of values 104 * @lut: given lut to check values [all …]
|
| /kernel/linux/linux-5.10/drivers/gpu/drm/amd/display/amdgpu_dm/ |
| D | amdgpu_dm_color.c | 36 * - Input gamma LUT (de-normalized) 38 * - Surface degamma LUT (normalized) 40 * - Surface regamma LUT (normalized) 49 * The input gamma LUT block isn't really applicable here since it operates 62 * respective property is set to NULL. A linear DGM/RGM LUT should also 85 /* Extracts the DRM lut and lut size from a blob. */ 94 * Return true if the given lut is a linear mapping of values, i.e. it acts 95 * like a bypass LUT. 97 * It is considered linear if the lut represents: 101 static bool __is_lut_linear(const struct drm_color_lut *lut, uint32_t size) in __is_lut_linear() argument [all …]
|
| /kernel/linux/linux-5.10/drivers/gpu/drm/rcar-du/ |
| D | rcar_cmm.c | 27 * @lut: 1D-LUT state 28 * @lut.enabled: 1D-LUT enabled flag 32 } lut; member 46 * rcar_cmm_lut_write() - Scale the DRM LUT table entries to hardware precision 49 * @drm_lut: Pointer to the DRM LUT table 71 * disabling and programming of the 1-D LUT unit is supported. 78 * TODO: Add support for LUT double buffer operations to avoid updating the 79 * LUT table entries while a frame is being displayed. 86 /* Disable LUT if no table is provided. */ in rcar_cmm_setup() 87 if (!config->lut.table) { in rcar_cmm_setup() [all …]
|
| D | rcar_cmm.h | 19 * @lut: 1D-LUT configuration 20 * @lut.table: 1D-LUT table entries. Disable LUT operations when NULL 25 } lut; member
|
| /kernel/linux/linux-6.6/drivers/gpu/drm/renesas/rcar-du/ |
| D | rcar_cmm.c | 27 * @lut: 1D-LUT state 28 * @lut.enabled: 1D-LUT enabled flag 32 } lut; member 46 * rcar_cmm_lut_write() - Scale the DRM LUT table entries to hardware precision 49 * @drm_lut: Pointer to the DRM LUT table 71 * disabling and programming of the 1-D LUT unit is supported. 78 * TODO: Add support for LUT double buffer operations to avoid updating the 79 * LUT table entries while a frame is being displayed. 86 /* Disable LUT if no table is provided. */ in rcar_cmm_setup() 87 if (!config->lut.table) { in rcar_cmm_setup() [all …]
|
| D | rcar_cmm.h | 19 * @lut: 1D-LUT configuration 20 * @lut.table: 1D-LUT table entries. Disable LUT operations when NULL 25 } lut; member
|
| /kernel/linux/linux-6.6/drivers/gpu/drm/msm/disp/dpu1/ |
| D | dpu_hw_util.h | 92 * @ lut_flag: scaler LUT update flags 93 * 0x1 swap LUT bank 94 * 0x2 update 2D filter LUT 95 * 0x4 update y circular filter LUT 96 * 0x8 update uv circular filter LUT 97 * 0x10 update y separable filter LUT 98 * 0x20 update uv separable filter LUT 99 * @ dir_lut_idx: 2D filter LUT index 100 * @ y_rgb_cir_lut_idx: y circular filter LUT index 101 * @ uv_cir_lut_idx: uv circular filter LUT index [all …]
|
| D | dpu_hw_catalog.c | 619 {.fl = 4, .lut = 0x1b}, 620 {.fl = 5, .lut = 0x5b}, 621 {.fl = 6, .lut = 0x15b}, 622 {.fl = 7, .lut = 0x55b}, 623 {.fl = 8, .lut = 0x155b}, 624 {.fl = 9, .lut = 0x555b}, 625 {.fl = 10, .lut = 0x1555b}, 626 {.fl = 11, .lut = 0x5555b}, 627 {.fl = 12, .lut = 0x15555b}, 628 {.fl = 0, .lut = 0x55555b} [all …]
|
| /kernel/linux/linux-5.10/drivers/gpu/drm/msm/disp/dpu1/ |
| D | dpu_hw_util.h | 84 * @ lut_flag: scaler LUT update flags 85 * 0x1 swap LUT bank 86 * 0x2 update 2D filter LUT 87 * 0x4 update y circular filter LUT 88 * 0x8 update uv circular filter LUT 89 * 0x10 update y separable filter LUT 90 * 0x20 update uv separable filter LUT 91 * @ dir_lut_idx: 2D filter LUT index 92 * @ y_rgb_cir_lut_idx: y circular filter LUT index 93 * @ uv_cir_lut_idx: uv circular filter LUT index [all …]
|
| /kernel/linux/linux-5.10/include/drm/ |
| D | drm_color_mgmt.h | 34 * drm_color_lut_extract - clamp and round LUT entries 36 * @bit_precision: number of bits the hw LUT supports 38 * Extract a degamma/gamma LUT value provided by user (in the form of 67 * drm_color_lut_size - calculate the number of entries in the LUT 68 * @blob: blob containing the LUT 71 * The number of entries in the color LUT stored in @blob. 98 * enum drm_color_lut_tests - hw-specific LUT tests to perform 101 * determine which tests to apply to a userspace-provided LUT. 107 * Checks whether the entries of a LUT all have equal values for the 109 * accepts a single value per LUT entry and assumes that value applies [all …]
|
| /kernel/linux/linux-6.6/include/drm/ |
| D | drm_color_mgmt.h | 34 * drm_color_lut_extract - clamp and round LUT entries 36 * @bit_precision: number of bits the hw LUT supports 38 * Extract a degamma/gamma LUT value provided by user (in the form of 67 * drm_color_lut_size - calculate the number of entries in the LUT 68 * @blob: blob containing the LUT 71 * The number of entries in the color LUT stored in @blob. 98 * enum drm_color_lut_tests - hw-specific LUT tests to perform 101 * determine which tests to apply to a userspace-provided LUT. 107 * Checks whether the entries of a LUT all have equal values for the 109 * accepts a single value per LUT entry and assumes that value applies [all …]
|
| /kernel/linux/linux-6.6/drivers/video/fbdev/ |
| D | macfb.c | 58 unsigned char lut; member 64 unsigned char lut; member 73 unsigned char lut; member 79 unsigned char lut; /* OFFSET: 0x10 */ member 101 unsigned char lut; member 106 unsigned char lut; /* TFBClutWDataReg, offset 0x90018 */ member 114 unsigned char lut; member 167 &dafb_cmap_regs->lut); in dafb_setpalette() 170 &dafb_cmap_regs->lut); in dafb_setpalette() 173 &dafb_cmap_regs->lut); in dafb_setpalette() [all …]
|
| /kernel/linux/linux-5.10/drivers/video/fbdev/ |
| D | macfb.c | 58 unsigned char lut; member 64 unsigned char lut; member 73 unsigned char lut; member 79 unsigned char lut; /* OFFSET: 0x10 */ member 101 unsigned char lut; member 106 unsigned char lut; /* TFBClutWDataReg, offset 0x90018 */ member 114 unsigned char lut; member 167 &dafb_cmap_regs->lut); in dafb_setpalette() 170 &dafb_cmap_regs->lut); in dafb_setpalette() 173 &dafb_cmap_regs->lut); in dafb_setpalette() [all …]
|
| /kernel/linux/linux-6.6/drivers/gpu/drm/nouveau/dispnv50/ |
| D | lut.c | 22 #include "lut.h" 32 nv50_lut_load(struct nv50_lut *lut, int buffer, struct drm_property_blob *blob, in nv50_lut_load() argument 36 void __iomem *mem = lut->mem[buffer].object.map.ptr; in nv50_lut_load() 37 const u32 addr = lut->mem[buffer].addr; in nv50_lut_load() 59 nv50_lut_fini(struct nv50_lut *lut) in nv50_lut_fini() argument 62 for (i = 0; i < ARRAY_SIZE(lut->mem); i++) in nv50_lut_fini() 63 nvif_mem_dtor(&lut->mem[i]); in nv50_lut_fini() 68 struct nv50_lut *lut) in nv50_lut_init() argument 72 for (i = 0; i < ARRAY_SIZE(lut->mem); i++) { in nv50_lut_init() 74 size * 8, &lut->mem[i]); in nv50_lut_init()
|
| /kernel/linux/linux-5.10/drivers/gpu/drm/nouveau/dispnv50/ |
| D | lut.c | 22 #include "lut.h" 32 nv50_lut_load(struct nv50_lut *lut, int buffer, struct drm_property_blob *blob, in nv50_lut_load() argument 36 void __iomem *mem = lut->mem[buffer].object.map.ptr; in nv50_lut_load() 37 const u32 addr = lut->mem[buffer].addr; in nv50_lut_load() 59 nv50_lut_fini(struct nv50_lut *lut) in nv50_lut_fini() argument 62 for (i = 0; i < ARRAY_SIZE(lut->mem); i++) in nv50_lut_fini() 63 nvif_mem_dtor(&lut->mem[i]); in nv50_lut_fini() 68 struct nv50_lut *lut) in nv50_lut_init() argument 72 for (i = 0; i < ARRAY_SIZE(lut->mem); i++) { in nv50_lut_init() 74 size * 8, &lut->mem[i]); in nv50_lut_init()
|
| /kernel/linux/linux-5.10/drivers/gpu/drm/i915/display/ |
| D | intel_color.c | 113 static bool lut_is_legacy(const struct drm_property_blob *lut) in lut_is_legacy() argument 115 return drm_color_lut_size(lut) == LEGACY_LUT_LENGTH; in lut_is_legacy() 223 * FIXME if there's a gamma LUT after the CSC, we should in ilk_csc_limited_range() 224 * do the range compression using the gamma LUT instead. in ilk_csc_limited_range() 307 * On GLK+ both pipe CSC and degamma LUT are controlled in ilk_load_csc_matrix() 309 * LUT is needed but CSC is not we need to load an in ilk_load_csc_matrix() 390 /* convert hw value with given bit_precision to lut property val */ 543 const struct drm_color_lut *lut; in i9xx_load_lut_8() local 550 lut = blob->data; in i9xx_load_lut_8() 554 i9xx_lut_8(&lut[i])); in i9xx_load_lut_8() [all …]
|
| /kernel/linux/linux-6.6/drivers/staging/media/atomisp/pci/isp/kernels/bnlm/ |
| D | ia_css_bnlm.host.c | 39 * lut : bnlm_lut struct containing encoded vmem parameters look-up table 40 * lut_thr : array containing threshold values for lut 45 bnlm_lut_encode(struct bnlm_lut *lut, const int32_t *lut_thr, in bnlm_lut_encode() argument 54 * Min size of the LUT is 2 entries. in bnlm_lut_encode() 56 * Max size of the LUT is 16 entries, so that the LUT can fit into a in bnlm_lut_encode() 59 * vector. If the LUT size is less than 16, then remaining elements are in bnlm_lut_encode() 71 lut->thr[0][i] = 0; in bnlm_lut_encode() 72 lut->val[0][i] = 0; in bnlm_lut_encode() 77 lut->thr[0][i] = lut_thr[i]; in bnlm_lut_encode() 78 lut->val[0][i] = lut_val[i]; in bnlm_lut_encode() [all …]
|
| /kernel/linux/linux-5.10/drivers/staging/media/atomisp/pci/isp/kernels/bnlm/ |
| D | ia_css_bnlm.host.c | 39 * lut : bnlm_lut struct containing encoded vmem parameters look-up table 40 * lut_thr : array containing threshold values for lut 45 bnlm_lut_encode(struct bnlm_lut *lut, const int32_t *lut_thr, in bnlm_lut_encode() argument 54 * Min size of the LUT is 2 entries. in bnlm_lut_encode() 56 * Max size of the LUT is 16 entries, so that the LUT can fit into a in bnlm_lut_encode() 59 * vector. If the LUT size is less than 16, then remaining elements are in bnlm_lut_encode() 71 lut->thr[0][i] = 0; in bnlm_lut_encode() 72 lut->val[0][i] = 0; in bnlm_lut_encode() 77 lut->thr[0][i] = lut_thr[i]; in bnlm_lut_encode() 78 lut->val[0][i] = lut_val[i]; in bnlm_lut_encode() [all …]
|
| /kernel/linux/linux-5.10/drivers/gpu/drm/ |
| D | drm_color_mgmt.c | 41 * Blob property to set the degamma lookup table (LUT) mapping pixel data 44 * Hardware might choose not to use the full precision of the LUT elements 45 * nor use all the elements of the LUT (for example the hardware might 46 * choose to interpolate between LUT[0] and LUT[4]). 56 * hardware). If drivers support multiple LUT sizes then they should 62 * pixel data after the lookup through the degamma LUT and before the 63 * lookup through the gamma LUT. The data is interpreted as a struct 72 * Blob property to set the gamma lookup table (LUT) mapping pixel data 75 * Hardware might choose not to use the full precision of the LUT elements 76 * nor use all the elements of the LUT (for example the hardware might [all …]
|
| /kernel/linux/linux-6.6/drivers/gpu/drm/i915/display/ |
| D | intel_color.c | 171 static bool lut_is_legacy(const struct drm_property_blob *lut) in lut_is_legacy() argument 173 return lut && drm_color_lut_size(lut) == LEGACY_LUT_LENGTH; in lut_is_legacy() 510 * On GLK both pipe CSC and degamma LUT are controlled in ilk_assign_csc() 512 * LUT is needed but CSC is not we need to load an in ilk_assign_csc() 780 /* convert hw value with given bit_precision to lut property val */ 1089 struct drm_color_lut *lut; in create_linear_lut() local 1093 sizeof(lut[0]) * lut_size, in create_linear_lut() 1098 lut = blob->data; in create_linear_lut() 1103 lut[i].red = val; in create_linear_lut() 1104 lut[i].green = val; in create_linear_lut() [all …]
|
| /kernel/linux/linux-6.6/drivers/gpu/drm/mediatek/ |
| D | mtk_disp_gamma.c | 60 struct drm_color_lut *lut; in mtk_gamma_set_common() local 70 lut = (struct drm_color_lut *)state->gamma_lut->data; in mtk_gamma_set_common() 74 word = (((lut[i].red >> 6) & LUT_10BIT_MASK) << 20) + in mtk_gamma_set_common() 75 (((lut[i].green >> 6) & LUT_10BIT_MASK) << 10) + in mtk_gamma_set_common() 76 ((lut[i].blue >> 6) & LUT_10BIT_MASK); in mtk_gamma_set_common() 78 diff[0] = (lut[i].red >> 6) - (lut[i - 1].red >> 6); in mtk_gamma_set_common() 79 diff[1] = (lut[i].green >> 6) - (lut[i - 1].green >> 6); in mtk_gamma_set_common() 80 diff[2] = (lut[i].blue >> 6) - (lut[i - 1].blue >> 6); in mtk_gamma_set_common()
|
| /kernel/linux/linux-6.6/drivers/gpu/drm/ |
| D | drm_color_mgmt.c | 42 * Blob property to set the degamma lookup table (LUT) mapping pixel data 45 * Hardware might choose not to use the full precision of the LUT elements 46 * nor use all the elements of the LUT (for example the hardware might 47 * choose to interpolate between LUT[0] and LUT[4]). 57 * hardware). If drivers support multiple LUT sizes then they should 63 * pixel data after the lookup through the degamma LUT and before the 64 * lookup through the gamma LUT. The data is interpreted as a struct 73 * Blob property to set the gamma lookup table (LUT) mapping pixel data 76 * Hardware might choose not to use the full precision of the LUT elements 77 * nor use all the elements of the LUT (for example the hardware might [all …]
|
| /kernel/linux/linux-6.6/drivers/gpio/ |
| D | gpio-adp5520.c | 19 unsigned char lut[ADP5520_MAXGPIOS]; member 40 return !!(reg_val & dev->lut[off]); in adp5520_gpio_get_value() 50 adp5520_set_bits(dev->master, ADP5520_GPIO_OUT, dev->lut[off]); in adp5520_gpio_set_value() 52 adp5520_clr_bits(dev->master, ADP5520_GPIO_OUT, dev->lut[off]); in adp5520_gpio_set_value() 63 dev->lut[off]); in adp5520_gpio_direction_input() 77 dev->lut[off]); in adp5520_gpio_direction_output() 80 dev->lut[off]); in adp5520_gpio_direction_output() 83 dev->lut[off]); in adp5520_gpio_direction_output() 114 dev->lut[gpios++] = 1 << i; in adp5520_gpio_probe()
|