Lines Matching full:layout
602 struct dpu_hw_fmt_layout *layout) in _dpu_format_get_plane_sizes_ubwc() argument
608 memset(layout, 0, sizeof(struct dpu_hw_fmt_layout)); in _dpu_format_get_plane_sizes_ubwc()
609 layout->format = fmt; in _dpu_format_get_plane_sizes_ubwc()
610 layout->width = width; in _dpu_format_get_plane_sizes_ubwc()
611 layout->height = height; in _dpu_format_get_plane_sizes_ubwc()
612 layout->num_planes = fmt->num_planes; in _dpu_format_get_plane_sizes_ubwc()
621 if (DPU_FORMAT_IS_YUV(layout->format)) { in _dpu_format_get_plane_sizes_ubwc()
626 layout->num_planes = 2; in _dpu_format_get_plane_sizes_ubwc()
627 layout->plane_pitch[0] = VENUS_Y_STRIDE(color, width); in _dpu_format_get_plane_sizes_ubwc()
629 layout->plane_size[0] = MSM_MEDIA_ALIGN(layout->plane_pitch[0] * in _dpu_format_get_plane_sizes_ubwc()
632 layout->plane_pitch[1] = VENUS_UV_STRIDE(color, width); in _dpu_format_get_plane_sizes_ubwc()
634 layout->plane_size[1] = MSM_MEDIA_ALIGN(layout->plane_pitch[1] * in _dpu_format_get_plane_sizes_ubwc()
640 layout->num_planes += 2; in _dpu_format_get_plane_sizes_ubwc()
641 layout->plane_pitch[2] = VENUS_Y_META_STRIDE(color, width); in _dpu_format_get_plane_sizes_ubwc()
643 layout->plane_size[2] = MSM_MEDIA_ALIGN(layout->plane_pitch[2] * in _dpu_format_get_plane_sizes_ubwc()
646 layout->plane_pitch[3] = VENUS_UV_META_STRIDE(color, width); in _dpu_format_get_plane_sizes_ubwc()
648 layout->plane_size[3] = MSM_MEDIA_ALIGN(layout->plane_pitch[3] * in _dpu_format_get_plane_sizes_ubwc()
654 layout->num_planes = 1; in _dpu_format_get_plane_sizes_ubwc()
656 layout->plane_pitch[0] = VENUS_RGB_STRIDE(color, width); in _dpu_format_get_plane_sizes_ubwc()
658 layout->plane_size[0] = MSM_MEDIA_ALIGN(layout->plane_pitch[0] * in _dpu_format_get_plane_sizes_ubwc()
663 layout->num_planes += 2; in _dpu_format_get_plane_sizes_ubwc()
664 layout->plane_pitch[2] = VENUS_RGB_META_STRIDE(color, width); in _dpu_format_get_plane_sizes_ubwc()
666 layout->plane_size[2] = MSM_MEDIA_ALIGN(layout->plane_pitch[2] * in _dpu_format_get_plane_sizes_ubwc()
672 layout->total_size += layout->plane_size[i]; in _dpu_format_get_plane_sizes_ubwc()
681 struct dpu_hw_fmt_layout *layout, in _dpu_format_get_plane_sizes_linear() argument
686 memset(layout, 0, sizeof(struct dpu_hw_fmt_layout)); in _dpu_format_get_plane_sizes_linear()
687 layout->format = fmt; in _dpu_format_get_plane_sizes_linear()
688 layout->width = width; in _dpu_format_get_plane_sizes_linear()
689 layout->height = height; in _dpu_format_get_plane_sizes_linear()
690 layout->num_planes = fmt->num_planes; in _dpu_format_get_plane_sizes_linear()
694 layout->num_planes = 1; in _dpu_format_get_plane_sizes_linear()
695 layout->plane_size[0] = width * height * layout->format->bpp; in _dpu_format_get_plane_sizes_linear()
696 layout->plane_pitch[0] = width * layout->format->bpp; in _dpu_format_get_plane_sizes_linear()
714 layout->plane_pitch[0] = width * bpp; in _dpu_format_get_plane_sizes_linear()
715 layout->plane_pitch[1] = layout->plane_pitch[0] / h_subsample; in _dpu_format_get_plane_sizes_linear()
716 layout->plane_size[0] = layout->plane_pitch[0] * height; in _dpu_format_get_plane_sizes_linear()
717 layout->plane_size[1] = layout->plane_pitch[1] * in _dpu_format_get_plane_sizes_linear()
721 layout->num_planes = 2; in _dpu_format_get_plane_sizes_linear()
722 layout->plane_size[1] *= 2; in _dpu_format_get_plane_sizes_linear()
723 layout->plane_pitch[1] *= 2; in _dpu_format_get_plane_sizes_linear()
726 layout->num_planes = 3; in _dpu_format_get_plane_sizes_linear()
727 layout->plane_size[2] = layout->plane_size[1]; in _dpu_format_get_plane_sizes_linear()
728 layout->plane_pitch[2] = layout->plane_pitch[1]; in _dpu_format_get_plane_sizes_linear()
738 for (i = 0; i < layout->num_planes && i < DPU_MAX_PLANES; ++i) { in _dpu_format_get_plane_sizes_linear()
739 if (pitches && layout->plane_pitch[i] < pitches[i]) in _dpu_format_get_plane_sizes_linear()
740 layout->plane_pitch[i] = pitches[i]; in _dpu_format_get_plane_sizes_linear()
744 layout->total_size += layout->plane_size[i]; in _dpu_format_get_plane_sizes_linear()
753 struct dpu_hw_fmt_layout *layout, in dpu_format_get_plane_sizes() argument
756 if (!layout || !fmt) { in dpu_format_get_plane_sizes()
767 return _dpu_format_get_plane_sizes_ubwc(fmt, w, h, layout); in dpu_format_get_plane_sizes()
769 return _dpu_format_get_plane_sizes_linear(fmt, w, h, layout, pitches); in dpu_format_get_plane_sizes()
775 struct dpu_hw_fmt_layout *layout) in _dpu_format_populate_addrs_ubwc() argument
780 if (!fb || !layout) { in _dpu_format_populate_addrs_ubwc()
792 meta = DPU_FORMAT_IS_UBWC(layout->format); in _dpu_format_populate_addrs_ubwc()
795 if (DPU_FORMAT_IS_YUV(layout->format)) { in _dpu_format_populate_addrs_ubwc()
817 layout->plane_addr[0] = base_addr + layout->plane_size[2]; in _dpu_format_populate_addrs_ubwc()
820 layout->plane_addr[1] = base_addr + layout->plane_size[0] in _dpu_format_populate_addrs_ubwc()
821 + layout->plane_size[2] + layout->plane_size[3]; in _dpu_format_populate_addrs_ubwc()
827 layout->plane_addr[2] = base_addr; in _dpu_format_populate_addrs_ubwc()
830 layout->plane_addr[3] = base_addr + layout->plane_size[0] in _dpu_format_populate_addrs_ubwc()
831 + layout->plane_size[2]; in _dpu_format_populate_addrs_ubwc()
851 layout->plane_addr[0] = base_addr + layout->plane_size[2]; in _dpu_format_populate_addrs_ubwc()
852 layout->plane_addr[1] = 0; in _dpu_format_populate_addrs_ubwc()
857 layout->plane_addr[2] = base_addr; in _dpu_format_populate_addrs_ubwc()
858 layout->plane_addr[3] = 0; in _dpu_format_populate_addrs_ubwc()
866 struct dpu_hw_fmt_layout *layout) in _dpu_format_populate_addrs_linear() argument
871 for (i = 0; i < layout->num_planes; ++i) { in _dpu_format_populate_addrs_linear()
872 if (layout->plane_pitch[i] > fb->pitches[i]) { in _dpu_format_populate_addrs_linear()
874 i, layout->plane_pitch[i], fb->pitches[i]); in _dpu_format_populate_addrs_linear()
880 for (i = 0; i < layout->num_planes; ++i) { in _dpu_format_populate_addrs_linear()
882 layout->plane_addr[i] = in _dpu_format_populate_addrs_linear()
884 if (!layout->plane_addr[i]) { in _dpu_format_populate_addrs_linear()
896 struct dpu_hw_fmt_layout *layout) in dpu_format_populate_layout() argument
901 if (!fb || !layout) { in dpu_format_populate_layout()
912 layout->format = to_dpu_format(msm_framebuffer_format(fb)); in dpu_format_populate_layout()
915 ret = dpu_format_get_plane_sizes(layout->format, fb->width, fb->height, in dpu_format_populate_layout()
916 layout, fb->pitches); in dpu_format_populate_layout()
921 plane_addr[i] = layout->plane_addr[i]; in dpu_format_populate_layout()
924 if (DPU_FORMAT_IS_UBWC(layout->format) || in dpu_format_populate_layout()
925 DPU_FORMAT_IS_TILE(layout->format)) in dpu_format_populate_layout()
926 ret = _dpu_format_populate_addrs_ubwc(aspace, fb, layout); in dpu_format_populate_layout()
928 ret = _dpu_format_populate_addrs_linear(aspace, fb, layout); in dpu_format_populate_layout()
931 if (!ret && !memcmp(plane_addr, layout->plane_addr, sizeof(plane_addr))) in dpu_format_populate_layout()
945 struct dpu_hw_fmt_layout layout; in dpu_format_check_modified_format() local
960 &layout, cmd->pitches); in dpu_format_check_modified_format()
973 if (bos_total_size < layout.total_size) { in dpu_format_check_modified_format()
975 bos_total_size, layout.total_size); in dpu_format_check_modified_format()