Lines Matching refs:hstate
601 struct atmel_hlcdc_plane_state *hstate = in atmel_hlcdc_plane_atomic_check() local
604 struct drm_framebuffer *fb = hstate->base.fb; in atmel_hlcdc_plane_atomic_check()
610 if (!hstate->base.crtc || WARN_ON(!fb)) in atmel_hlcdc_plane_atomic_check()
622 hstate->src_x = s->src.x1; in atmel_hlcdc_plane_atomic_check()
623 hstate->src_y = s->src.y1; in atmel_hlcdc_plane_atomic_check()
624 hstate->src_w = drm_rect_width(&s->src); in atmel_hlcdc_plane_atomic_check()
625 hstate->src_h = drm_rect_height(&s->src); in atmel_hlcdc_plane_atomic_check()
626 hstate->crtc_x = s->dst.x1; in atmel_hlcdc_plane_atomic_check()
627 hstate->crtc_y = s->dst.y1; in atmel_hlcdc_plane_atomic_check()
628 hstate->crtc_w = drm_rect_width(&s->dst); in atmel_hlcdc_plane_atomic_check()
629 hstate->crtc_h = drm_rect_height(&s->dst); in atmel_hlcdc_plane_atomic_check()
631 if ((hstate->src_x | hstate->src_y | hstate->src_w | hstate->src_h) & in atmel_hlcdc_plane_atomic_check()
635 hstate->src_x >>= 16; in atmel_hlcdc_plane_atomic_check()
636 hstate->src_y >>= 16; in atmel_hlcdc_plane_atomic_check()
637 hstate->src_w >>= 16; in atmel_hlcdc_plane_atomic_check()
638 hstate->src_h >>= 16; in atmel_hlcdc_plane_atomic_check()
640 hstate->nplanes = fb->format->num_planes; in atmel_hlcdc_plane_atomic_check()
641 if (hstate->nplanes > ATMEL_HLCDC_LAYER_MAX_PLANES) in atmel_hlcdc_plane_atomic_check()
644 for (i = 0; i < hstate->nplanes; i++) { in atmel_hlcdc_plane_atomic_check()
649 hstate->bpp[i] = fb->format->cpp[i]; in atmel_hlcdc_plane_atomic_check()
650 if (!hstate->bpp[i]) in atmel_hlcdc_plane_atomic_check()
653 switch (hstate->base.rotation & DRM_MODE_ROTATE_MASK) { in atmel_hlcdc_plane_atomic_check()
655 offset = (hstate->src_y / ydiv) * in atmel_hlcdc_plane_atomic_check()
657 offset += ((hstate->src_x + hstate->src_w - 1) / in atmel_hlcdc_plane_atomic_check()
658 xdiv) * hstate->bpp[i]; in atmel_hlcdc_plane_atomic_check()
659 hstate->xstride[i] = -(((hstate->src_h - 1) / ydiv) * in atmel_hlcdc_plane_atomic_check()
661 (2 * hstate->bpp[i]); in atmel_hlcdc_plane_atomic_check()
662 hstate->pstride[i] = fb->pitches[i] - hstate->bpp[i]; in atmel_hlcdc_plane_atomic_check()
665 offset = ((hstate->src_y + hstate->src_h - 1) / in atmel_hlcdc_plane_atomic_check()
667 offset += ((hstate->src_x + hstate->src_w - 1) / in atmel_hlcdc_plane_atomic_check()
668 xdiv) * hstate->bpp[i]; in atmel_hlcdc_plane_atomic_check()
669 hstate->xstride[i] = ((((hstate->src_w - 1) / xdiv) - 1) * in atmel_hlcdc_plane_atomic_check()
670 hstate->bpp[i]) - fb->pitches[i]; in atmel_hlcdc_plane_atomic_check()
671 hstate->pstride[i] = -2 * hstate->bpp[i]; in atmel_hlcdc_plane_atomic_check()
674 offset = ((hstate->src_y + hstate->src_h - 1) / in atmel_hlcdc_plane_atomic_check()
676 offset += (hstate->src_x / xdiv) * hstate->bpp[i]; in atmel_hlcdc_plane_atomic_check()
677 hstate->xstride[i] = ((hstate->src_h - 1) / ydiv) * in atmel_hlcdc_plane_atomic_check()
679 hstate->pstride[i] = -fb->pitches[i] - hstate->bpp[i]; in atmel_hlcdc_plane_atomic_check()
683 offset = (hstate->src_y / ydiv) * fb->pitches[i]; in atmel_hlcdc_plane_atomic_check()
684 offset += (hstate->src_x / xdiv) * hstate->bpp[i]; in atmel_hlcdc_plane_atomic_check()
685 hstate->xstride[i] = fb->pitches[i] - in atmel_hlcdc_plane_atomic_check()
686 ((hstate->src_w / xdiv) * in atmel_hlcdc_plane_atomic_check()
687 hstate->bpp[i]); in atmel_hlcdc_plane_atomic_check()
688 hstate->pstride[i] = 0; in atmel_hlcdc_plane_atomic_check()
692 hstate->offsets[i] = offset + fb->offsets[i]; in atmel_hlcdc_plane_atomic_check()
698 if (drm_rotation_90_or_270(hstate->base.rotation)) { in atmel_hlcdc_plane_atomic_check()
699 swap(hstate->src_w, hstate->src_h); in atmel_hlcdc_plane_atomic_check()
703 (mode->hdisplay != hstate->crtc_w || in atmel_hlcdc_plane_atomic_check()
704 mode->vdisplay != hstate->crtc_h)) in atmel_hlcdc_plane_atomic_check()
707 if ((hstate->crtc_h != hstate->src_h || hstate->crtc_w != hstate->src_w) && in atmel_hlcdc_plane_atomic_check()
709 hstate->base.fb->format->has_alpha)) in atmel_hlcdc_plane_atomic_check()
740 struct atmel_hlcdc_plane_state *hstate = in atmel_hlcdc_plane_atomic_update() local
747 if (!hstate->base.visible) { in atmel_hlcdc_plane_atomic_update()
752 atmel_hlcdc_plane_update_pos_and_size(plane, hstate); in atmel_hlcdc_plane_atomic_update()
753 atmel_hlcdc_plane_update_general_settings(plane, hstate); in atmel_hlcdc_plane_atomic_update()
754 atmel_hlcdc_plane_update_format(plane, hstate); in atmel_hlcdc_plane_atomic_update()
755 atmel_hlcdc_plane_update_clut(plane, hstate); in atmel_hlcdc_plane_atomic_update()
756 atmel_hlcdc_plane_update_buffers(plane, hstate); in atmel_hlcdc_plane_atomic_update()
757 atmel_hlcdc_plane_update_disc_area(plane, hstate); in atmel_hlcdc_plane_atomic_update()