Lines Matching refs:splane

45 static void shmob_drm_plane_compute_base(struct shmob_drm_plane *splane,  in shmob_drm_plane_compute_base()  argument
52 bpp = splane->format->yuv ? 8 : splane->format->bpp; in shmob_drm_plane_compute_base()
54 splane->dma[0] = gem->paddr + fb->offsets[0] in shmob_drm_plane_compute_base()
57 if (splane->format->yuv) { in shmob_drm_plane_compute_base()
58 bpp = splane->format->bpp - 8; in shmob_drm_plane_compute_base()
60 splane->dma[1] = gem->paddr + fb->offsets[1] in shmob_drm_plane_compute_base()
66 static void __shmob_drm_plane_setup(struct shmob_drm_plane *splane, in __shmob_drm_plane_setup() argument
69 struct shmob_drm_device *sdev = splane->plane.dev->dev_private; in __shmob_drm_plane_setup()
73 format = LDBBSIFR_EN | (splane->alpha << LDBBSIFR_LAY_SHIFT); in __shmob_drm_plane_setup()
75 switch (splane->format->fourcc) { in __shmob_drm_plane_setup()
94 switch (splane->format->fourcc) { in __shmob_drm_plane_setup()
118 #define plane_reg_dump(sdev, splane, reg) \ in __shmob_drm_plane_setup() argument
120 splane->index, #reg, \ in __shmob_drm_plane_setup()
121 lcdc_read(sdev, reg(splane->index)), \ in __shmob_drm_plane_setup()
122 lcdc_read(sdev, reg(splane->index) + LCDC_SIDE_B_OFFSET)) in __shmob_drm_plane_setup()
124 plane_reg_dump(sdev, splane, LDBnBSIFR); in __shmob_drm_plane_setup()
125 plane_reg_dump(sdev, splane, LDBnBSSZR); in __shmob_drm_plane_setup()
126 plane_reg_dump(sdev, splane, LDBnBLOCR); in __shmob_drm_plane_setup()
127 plane_reg_dump(sdev, splane, LDBnBSMWR); in __shmob_drm_plane_setup()
128 plane_reg_dump(sdev, splane, LDBnBSAYR); in __shmob_drm_plane_setup()
129 plane_reg_dump(sdev, splane, LDBnBSACR); in __shmob_drm_plane_setup()
131 lcdc_write(sdev, LDBCR, LDBCR_UPC(splane->index)); in __shmob_drm_plane_setup()
132 dev_dbg(sdev->ddev->dev, "%s(%u): %s 0x%08x\n", __func__, splane->index, in __shmob_drm_plane_setup()
135 lcdc_write(sdev, LDBnBSIFR(splane->index), format); in __shmob_drm_plane_setup()
137 lcdc_write(sdev, LDBnBSSZR(splane->index), in __shmob_drm_plane_setup()
138 (splane->crtc_h << LDBBSSZR_BVSS_SHIFT) | in __shmob_drm_plane_setup()
139 (splane->crtc_w << LDBBSSZR_BHSS_SHIFT)); in __shmob_drm_plane_setup()
140 lcdc_write(sdev, LDBnBLOCR(splane->index), in __shmob_drm_plane_setup()
141 (splane->crtc_y << LDBBLOCR_CVLC_SHIFT) | in __shmob_drm_plane_setup()
142 (splane->crtc_x << LDBBLOCR_CHLC_SHIFT)); in __shmob_drm_plane_setup()
143 lcdc_write(sdev, LDBnBSMWR(splane->index), in __shmob_drm_plane_setup()
146 shmob_drm_plane_compute_base(splane, fb, splane->src_x, splane->src_y); in __shmob_drm_plane_setup()
148 lcdc_write(sdev, LDBnBSAYR(splane->index), splane->dma[0]); in __shmob_drm_plane_setup()
149 if (splane->format->yuv) in __shmob_drm_plane_setup()
150 lcdc_write(sdev, LDBnBSACR(splane->index), splane->dma[1]); in __shmob_drm_plane_setup()
153 LDBCR_UPF(splane->index) | LDBCR_UPD(splane->index)); in __shmob_drm_plane_setup()
154 dev_dbg(sdev->ddev->dev, "%s(%u): %s 0x%08x\n", __func__, splane->index, in __shmob_drm_plane_setup()
157 plane_reg_dump(sdev, splane, LDBnBSIFR); in __shmob_drm_plane_setup()
158 plane_reg_dump(sdev, splane, LDBnBSSZR); in __shmob_drm_plane_setup()
159 plane_reg_dump(sdev, splane, LDBnBLOCR); in __shmob_drm_plane_setup()
160 plane_reg_dump(sdev, splane, LDBnBSMWR); in __shmob_drm_plane_setup()
161 plane_reg_dump(sdev, splane, LDBnBSAYR); in __shmob_drm_plane_setup()
162 plane_reg_dump(sdev, splane, LDBnBSACR); in __shmob_drm_plane_setup()
167 struct shmob_drm_plane *splane = to_shmob_plane(plane); in shmob_drm_plane_setup() local
172 __shmob_drm_plane_setup(splane, plane->fb); in shmob_drm_plane_setup()
182 struct shmob_drm_plane *splane = to_shmob_plane(plane); in shmob_drm_plane_update() local
198 splane->format = format; in shmob_drm_plane_update()
200 splane->src_x = src_x >> 16; in shmob_drm_plane_update()
201 splane->src_y = src_y >> 16; in shmob_drm_plane_update()
202 splane->crtc_x = crtc_x; in shmob_drm_plane_update()
203 splane->crtc_y = crtc_y; in shmob_drm_plane_update()
204 splane->crtc_w = crtc_w; in shmob_drm_plane_update()
205 splane->crtc_h = crtc_h; in shmob_drm_plane_update()
207 __shmob_drm_plane_setup(splane, fb); in shmob_drm_plane_update()
213 struct shmob_drm_plane *splane = to_shmob_plane(plane); in shmob_drm_plane_disable() local
216 splane->format = NULL; in shmob_drm_plane_disable()
218 lcdc_write(sdev, LDBnBSIFR(splane->index), 0); in shmob_drm_plane_disable()
248 struct shmob_drm_plane *splane; in shmob_drm_plane_create() local
251 splane = devm_kzalloc(sdev->dev, sizeof(*splane), GFP_KERNEL); in shmob_drm_plane_create()
252 if (splane == NULL) in shmob_drm_plane_create()
255 splane->index = index; in shmob_drm_plane_create()
256 splane->alpha = 255; in shmob_drm_plane_create()
258 ret = drm_plane_init(sdev->ddev, &splane->plane, 1, in shmob_drm_plane_create()