/linux-6.6.21/drivers/gpu/drm/nouveau/dispnv50/ |
D | head.c | 40 struct nv50_head_atom *asyh, bool flush) in nv50_head_flush_clr() argument 43 .mask = asyh->clr.mask & ~(flush ? 0 : asyh->set.mask), in nv50_head_flush_clr() 52 nv50_head_flush_set_wndw(struct nv50_head *head, struct nv50_head_atom *asyh) in nv50_head_flush_set_wndw() argument 54 if (asyh->set.curs ) head->func->curs_set(head, asyh); in nv50_head_flush_set_wndw() 55 if (asyh->set.olut ) { in nv50_head_flush_set_wndw() 56 asyh->olut.offset = nv50_lut_load(&head->olut, in nv50_head_flush_set_wndw() 57 asyh->olut.buffer, in nv50_head_flush_set_wndw() 58 asyh->state.gamma_lut, in nv50_head_flush_set_wndw() 59 asyh->olut.load); in nv50_head_flush_set_wndw() 60 head->func->olut_set(head, asyh); in nv50_head_flush_set_wndw() [all …]
|
D | head507d.c | 30 head507d_procamp(struct nv50_head *head, struct nv50_head_atom *asyh) in head507d_procamp() argument 42 NVVAL(NV507D, HEAD_SET_PROCAMP, SAT_COS, asyh->procamp.sat.cos) | in head507d_procamp() 43 NVVAL(NV507D, HEAD_SET_PROCAMP, SAT_SINE, asyh->procamp.sat.sin) | in head507d_procamp() 49 head507d_dither(struct nv50_head *head, struct nv50_head_atom *asyh) in head507d_dither() argument 59 NVVAL(NV507D, HEAD_SET_DITHER_CONTROL, ENABLE, asyh->dither.enable) | in head507d_dither() 60 NVVAL(NV507D, HEAD_SET_DITHER_CONTROL, BITS, asyh->dither.bits) | in head507d_dither() 61 NVVAL(NV507D, HEAD_SET_DITHER_CONTROL, MODE, asyh->dither.mode) | in head507d_dither() 67 head507d_ovly(struct nv50_head *head, struct nv50_head_atom *asyh) in head507d_ovly() argument 74 if (asyh->ovly.cpp) { in head507d_ovly() 75 switch (asyh->ovly.cpp) { in head507d_ovly() [all …]
|
D | head907d.c | 37 head907d_or(struct nv50_head *head, struct nv50_head_atom *asyh) in head907d_or() argument 47 NVVAL(NV907D, HEAD_SET_CONTROL_OUTPUT_RESOURCE, CRC_MODE, asyh->or.crc_raster) | in head907d_or() 48 NVVAL(NV907D, HEAD_SET_CONTROL_OUTPUT_RESOURCE, HSYNC_POLARITY, asyh->or.nhsync) | in head907d_or() 49 NVVAL(NV907D, HEAD_SET_CONTROL_OUTPUT_RESOURCE, VSYNC_POLARITY, asyh->or.nvsync) | in head907d_or() 50 NVVAL(NV907D, HEAD_SET_CONTROL_OUTPUT_RESOURCE, PIXEL_DEPTH, asyh->or.depth), in head907d_or() 53 NVVAL(NV907D, HEAD_SET_CONTROL, STRUCTURE, asyh->mode.interlace)); in head907d_or() 58 head907d_procamp(struct nv50_head *head, struct nv50_head_atom *asyh) in head907d_procamp() argument 70 NVVAL(NV907D, HEAD_SET_PROCAMP, SAT_COS, asyh->procamp.sat.cos) | in head907d_procamp() 71 NVVAL(NV907D, HEAD_SET_PROCAMP, SAT_SINE, asyh->procamp.sat.sin) | in head907d_procamp() 78 head907d_dither(struct nv50_head *head, struct nv50_head_atom *asyh) in head907d_dither() argument [all …]
|
D | headc37d.c | 31 headc37d_or(struct nv50_head *head, struct nv50_head_atom *asyh) in headc37d_or() argument 41 switch (asyh->or.depth) { in headc37d_or() 47 depth = asyh->or.depth; in headc37d_or() 56 NVVAL(NVC37D, HEAD_SET_CONTROL_OUTPUT_RESOURCE, CRC_MODE, asyh->or.crc_raster) | in headc37d_or() 57 NVVAL(NVC37D, HEAD_SET_CONTROL_OUTPUT_RESOURCE, HSYNC_POLARITY, asyh->or.nhsync) | in headc37d_or() 58 NVVAL(NVC37D, HEAD_SET_CONTROL_OUTPUT_RESOURCE, VSYNC_POLARITY, asyh->or.nvsync) | in headc37d_or() 65 headc37d_procamp(struct nv50_head *head, struct nv50_head_atom *asyh) in headc37d_procamp() argument 77 NVVAL(NVC37D, HEAD_SET_PROCAMP, SAT_COS, asyh->procamp.sat.cos) | in headc37d_procamp() 78 NVVAL(NVC37D, HEAD_SET_PROCAMP, SAT_SINE, asyh->procamp.sat.sin) | in headc37d_procamp() 86 headc37d_dither(struct nv50_head *head, struct nv50_head_atom *asyh) in headc37d_dither() argument [all …]
|
D | head827d.c | 49 head827d_curs_set(struct nv50_head *head, struct nv50_head_atom *asyh) in head827d_curs_set() argument 60 NVVAL(NV827D, HEAD_SET_CONTROL_CURSOR, FORMAT, asyh->curs.format) | in head827d_curs_set() 61 NVVAL(NV827D, HEAD_SET_CONTROL_CURSOR, SIZE, asyh->curs.layout) | in head827d_curs_set() 67 HEAD_SET_OFFSET_CURSOR(i), asyh->curs.offset >> 8); in head827d_curs_set() 69 PUSH_MTHD(push, NV827D, HEAD_SET_CONTEXT_DMA_CURSOR(i), asyh->curs.handle); in head827d_curs_set() 74 head827d_core_set(struct nv50_head *head, struct nv50_head_atom *asyh) in head827d_core_set() argument 84 NVVAL(NV827D, HEAD_SET_OFFSET, ORIGIN, asyh->core.offset >> 8)); in head827d_core_set() 87 NVVAL(NV827D, HEAD_SET_SIZE, WIDTH, asyh->core.w) | in head827d_core_set() 88 NVVAL(NV827D, HEAD_SET_SIZE, HEIGHT, asyh->core.h), in head827d_core_set() 91 NVVAL(NV827D, HEAD_SET_STORAGE, BLOCK_HEIGHT, asyh->core.blockh) | in head827d_core_set() [all …]
|
D | head917d.c | 31 head917d_dither(struct nv50_head *head, struct nv50_head_atom *asyh) in head917d_dither() argument 41 NVVAL(NV917D, HEAD_SET_DITHER_CONTROL, ENABLE, asyh->dither.enable) | in head917d_dither() 42 NVVAL(NV917D, HEAD_SET_DITHER_CONTROL, BITS, asyh->dither.bits) | in head917d_dither() 43 NVVAL(NV917D, HEAD_SET_DITHER_CONTROL, MODE, asyh->dither.mode) | in head917d_dither() 49 head917d_base(struct nv50_head *head, struct nv50_head_atom *asyh) in head917d_base() argument 56 if (asyh->base.cpp) { in head917d_base() 57 switch (asyh->base.cpp) { in head917d_base() 78 head917d_curs_set(struct nv50_head *head, struct nv50_head_atom *asyh) in head917d_curs_set() argument 90 NVVAL(NV917D, HEAD_SET_CONTROL_CURSOR, FORMAT, asyh->curs.format) | in head917d_curs_set() 91 NVVAL(NV917D, HEAD_SET_CONTROL_CURSOR, SIZE, asyh->curs.layout) | in head917d_curs_set() [all …]
|
D | headc57d.c | 31 headc57d_or(struct nv50_head *head, struct nv50_head_atom *asyh) in headc57d_or() argument 41 switch (asyh->or.depth) { in headc57d_or() 47 depth = asyh->or.depth; in headc57d_or() 56 NVVAL(NVC57D, HEAD_SET_CONTROL_OUTPUT_RESOURCE, CRC_MODE, asyh->or.crc_raster) | in headc57d_or() 57 NVVAL(NVC57D, HEAD_SET_CONTROL_OUTPUT_RESOURCE, HSYNC_POLARITY, asyh->or.nhsync) | in headc57d_or() 58 NVVAL(NVC57D, HEAD_SET_CONTROL_OUTPUT_RESOURCE, VSYNC_POLARITY, asyh->or.nvsync) | in headc57d_or() 66 headc57d_procamp(struct nv50_head *head, struct nv50_head_atom *asyh) in headc57d_procamp() argument 98 headc57d_olut_set(struct nv50_head *head, struct nv50_head_atom *asyh) in headc57d_olut_set() argument 108 NVVAL(NVC57D, HEAD_SET_OLUT_CONTROL, INTERPOLATE, asyh->olut.output_mode) | in headc57d_olut_set() 110 NVVAL(NVC57D, HEAD_SET_OLUT_CONTROL, MODE, asyh->olut.mode) | in headc57d_olut_set() [all …]
|
D | curs507a.c | 78 curs507a_prepare(struct nv50_wndw *wndw, struct nv50_head_atom *asyh, in curs507a_prepare() argument 83 if (asyh->curs.handle != handle || asyh->curs.offset != offset) { in curs507a_prepare() 84 asyh->curs.handle = handle; in curs507a_prepare() 85 asyh->curs.offset = offset; in curs507a_prepare() 86 asyh->set.curs = asyh->curs.visible; in curs507a_prepare() 92 struct nv50_head_atom *asyh) in curs507a_release() argument 94 asyh->curs.visible = false; in curs507a_release() 99 struct nv50_head_atom *asyh) in curs507a_acquire() argument 106 ret = drm_atomic_helper_check_plane_state(&asyw->state, &asyh->state, in curs507a_acquire() 110 asyh->curs.visible = asyw->state.visible; in curs507a_acquire() [all …]
|
D | crc.c | 246 struct nv50_head_atom *asyh = nv50_head_atom(crtc_state); in nv50_crc_atomic_stop_reporting() local 249 if (!asyh->clr.crc) in nv50_crc_atomic_stop_reporting() 278 struct nv50_head_atom *asyh = nv50_head_atom(new_crtc_state); in nv50_crc_atomic_init_notifier_contexts() local 282 if (!asyh->set.crc) in nv50_crc_atomic_init_notifier_contexts() 302 struct nv50_head_atom *asyh = nv50_head_atom(new_crtc_state); in nv50_crc_atomic_release_notifier_contexts() local 306 if (!asyh->clr.crc) in nv50_crc_atomic_release_notifier_contexts() 325 struct nv50_head_atom *asyh = nv50_head_atom(crtc_state); in nv50_crc_atomic_start_reporting() local 329 if (!asyh->set.crc) in nv50_crc_atomic_start_reporting() 337 crc->src = asyh->crc.src; in nv50_crc_atomic_start_reporting() 350 struct nv50_head_atom *asyh, in nv50_crc_atomic_check_head() argument [all …]
|
D | base507c.c | 226 struct nv50_head_atom *asyh) in base507c_release() argument 228 asyh->base.cpp = 0; in base507c_release() 233 struct nv50_head_atom *asyh) in base507c_acquire() argument 238 ret = drm_atomic_helper_check_plane_state(&asyw->state, &asyh->state, in base507c_acquire() 246 if ((asyh->base.cpp != 1) ^ (fb->format->cpp[0] != 1)) in base507c_acquire() 247 asyh->state.color_mgmt_changed = true; in base507c_acquire() 250 asyh->base.depth = fb->format->depth; in base507c_acquire() 251 asyh->base.cpp = fb->format->cpp[0]; in base507c_acquire() 252 asyh->base.x = asyw->state.src.x1 >> 16; in base507c_acquire() 253 asyh->base.y = asyw->state.src.y1 >> 16; in base507c_acquire() [all …]
|
D | pior507d.c | 31 struct nv50_head_atom *asyh) in pior507d_ctrl() argument 36 if (asyh) { in pior507d_ctrl() 37 ctrl |= NVVAL(NV507D, PIOR_SET_CONTROL, HSYNC_POLARITY, asyh->or.nhsync); in pior507d_ctrl() 38 ctrl |= NVVAL(NV507D, PIOR_SET_CONTROL, VSYNC_POLARITY, asyh->or.nvsync); in pior507d_ctrl() 39 ctrl |= NVVAL(NV837D, PIOR_SET_CONTROL, PIXEL_DEPTH, asyh->or.depth); in pior507d_ctrl()
|
D | sor507d.c | 31 struct nv50_head_atom *asyh) in sor507d_ctrl() argument 36 if (asyh) { in sor507d_ctrl() 37 ctrl |= NVVAL(NV507D, SOR_SET_CONTROL, HSYNC_POLARITY, asyh->or.nhsync); in sor507d_ctrl() 38 ctrl |= NVVAL(NV507D, SOR_SET_CONTROL, VSYNC_POLARITY, asyh->or.nvsync); in sor507d_ctrl() 39 ctrl |= NVVAL(NV837D, SOR_SET_CONTROL, PIXEL_DEPTH, asyh->or.depth); in sor507d_ctrl()
|
D | wndw.c | 196 struct nv50_head_atom *asyh) in nv50_wndw_atomic_check_release() argument 200 wndw->func->release(wndw, asyw, asyh); in nv50_wndw_atomic_check_release() 272 struct nv50_head_atom *asyh) in nv50_wndw_atomic_check_acquire() argument 311 if (!asyh->state.async_flip) in nv50_wndw_atomic_check_acquire() 364 return wndw->func->acquire(wndw, asyw, asyh); in nv50_wndw_atomic_check_acquire() 371 struct nv50_head_atom *asyh) in nv50_wndw_atomic_check_lut() argument 373 struct drm_property_blob *ilut = asyh->state.degamma_lut; in nv50_wndw_atomic_check_lut() 387 if (!(ilut = asyh->state.gamma_lut)) { in nv50_wndw_atomic_check_lut() 393 asyh->wndw.olut |= BIT(wndw->id); in nv50_wndw_atomic_check_lut() 395 asyh->wndw.olut &= ~BIT(wndw->id); in nv50_wndw_atomic_check_lut() [all …]
|
D | dac507d.c | 30 struct nv50_head_atom *asyh) in dac507d_ctrl() argument 36 if (asyh) { in dac507d_ctrl() 37 sync |= NVVAL(NV507D, DAC_SET_POLARITY, HSYNC, asyh->or.nhsync); in dac507d_ctrl() 38 sync |= NVVAL(NV507D, DAC_SET_POLARITY, VSYNC, asyh->or.nvsync); in dac507d_ctrl()
|
D | disp.c | 370 struct nv50_head_atom *asyh = nv50_head_atom(crtc_state); in nv50_outp_atomic_fix_depth() local 372 struct drm_display_mode *mode = &asyh->state.adjusted_mode; in nv50_outp_atomic_fix_depth() 380 asyh->or.bpc = min_t(u8, asyh->or.bpc, 10); in nv50_outp_atomic_fix_depth() 383 while (asyh->or.bpc > 6) { in nv50_outp_atomic_fix_depth() 384 mode_rate = DIV_ROUND_UP(mode->clock * asyh->or.bpc * 3, 8); in nv50_outp_atomic_fix_depth() 388 asyh->or.bpc -= 2; in nv50_outp_atomic_fix_depth() 403 struct nv50_head_atom *asyh = nv50_head_atom(crtc_state); in nv50_outp_atomic_check() local 412 asyh->or.bpc = connector->display_info.bpc; in nv50_outp_atomic_check() 488 struct nv50_head_atom *asyh = in nv50_dac_atomic_enable() local 507 core->func->dac->ctrl(core, nv_encoder->outp.or.id, ctrl, asyh); in nv50_dac_atomic_enable() [all …]
|
D | ovly507e.c | 95 struct nv50_head_atom *asyh) in ovly507e_release() argument 97 asyh->ovly.cpp = 0; in ovly507e_release() 102 struct nv50_head_atom *asyh) in ovly507e_acquire() argument 107 ret = drm_atomic_helper_check_plane_state(&asyw->state, &asyh->state, in ovly507e_acquire() 114 asyh->ovly.cpp = fb->format->cpp[0]; in ovly507e_acquire()
|
D | wndw.h | 50 struct nv50_head_atom *asyh); 52 struct nv50_head_atom *asyh); 53 void (*prepare)(struct nv50_wndw *, struct nv50_head_atom *asyh, 63 void (*ilut)(struct nv50_wndw *wndw, struct nv50_wndw_atom *asyh, int size);
|
D | head.h | 23 void nv50_head_flush_set(struct nv50_head *head, struct nv50_head_atom *asyh); 24 void nv50_head_flush_set_wndw(struct nv50_head *head, struct nv50_head_atom *asyh); 26 struct nv50_head_atom *asyh, bool flush);
|
D | dac907d.c | 30 struct nv50_head_atom *asyh) in dac907d_ctrl() argument
|
D | sorc37d.c | 30 struct nv50_head_atom *asyh) in sorc37d_ctrl() argument
|
D | sor907d.c | 33 struct nv50_head_atom *asyh) in sor907d_ctrl() argument
|
D | wndwc37e.c | 290 struct nv50_head_atom *asyh) in wndwc37e_release() argument 296 struct nv50_head_atom *asyh) in wndwc37e_acquire() argument 298 return drm_atomic_helper_check_plane_state(&asyw->state, &asyh->state, in wndwc37e_acquire()
|
D | crc.h | 114 struct nv50_head_atom *asyh, in nv50_crc_atomic_check_head() argument
|