drm: Replace crtc fb with primary plane fb (v3)
Now that CRTC's have a primary plane, there's no need to track the framebuffer in the CRTC. Replace all references to the CRTC fb with the primary plane's fb. This patch was generated by the Coccinelle semantic patching tool using the following rules: @@ struct drm_crtc C; @@ - (C).fb + C.primary->fb @@ struct drm_crtc *C; @@ - (C)->fb + C->primary->fb v3: Generate patch via coccinelle. Actual removal of crtc->fb has been moved to a subsequent patch. v2: Fixup several lingering crtc->fb instances that were missed in the first patch iteration. [Rob Clark] Signed-off-by: Matt Roper <matthew.d.roper@intel.com> Reviewed-by: Rob Clark <robdclark@gmail.com>
このコミットが含まれているのは:
@@ -239,7 +239,7 @@ nv_crtc_mode_set_vga(struct drm_crtc *crtc, struct drm_display_mode *mode)
|
||||
struct drm_device *dev = crtc->dev;
|
||||
struct nouveau_crtc *nv_crtc = nouveau_crtc(crtc);
|
||||
struct nv04_crtc_reg *regp = &nv04_display(dev)->mode_reg.crtc_reg[nv_crtc->index];
|
||||
struct drm_framebuffer *fb = crtc->fb;
|
||||
struct drm_framebuffer *fb = crtc->primary->fb;
|
||||
|
||||
/* Calculate our timings */
|
||||
int horizDisplay = (mode->crtc_hdisplay >> 3) - 1;
|
||||
@@ -574,7 +574,7 @@ nv_crtc_mode_set_regs(struct drm_crtc *crtc, struct drm_display_mode * mode)
|
||||
regp->CRTC[NV_CIO_CRE_86] = 0x1;
|
||||
}
|
||||
|
||||
regp->CRTC[NV_CIO_CRE_PIXEL_INDEX] = (crtc->fb->depth + 1) / 8;
|
||||
regp->CRTC[NV_CIO_CRE_PIXEL_INDEX] = (crtc->primary->fb->depth + 1) / 8;
|
||||
/* Enable slaved mode (called MODE_TV in nv4ref.h) */
|
||||
if (lvds_output || tmds_output || tv_output)
|
||||
regp->CRTC[NV_CIO_CRE_PIXEL_INDEX] |= (1 << 7);
|
||||
@@ -588,7 +588,7 @@ nv_crtc_mode_set_regs(struct drm_crtc *crtc, struct drm_display_mode * mode)
|
||||
regp->ramdac_gen_ctrl = NV_PRAMDAC_GENERAL_CONTROL_BPC_8BITS |
|
||||
NV_PRAMDAC_GENERAL_CONTROL_VGA_STATE_SEL |
|
||||
NV_PRAMDAC_GENERAL_CONTROL_PIXMIX_ON;
|
||||
if (crtc->fb->depth == 16)
|
||||
if (crtc->primary->fb->depth == 16)
|
||||
regp->ramdac_gen_ctrl |= NV_PRAMDAC_GENERAL_CONTROL_ALT_MODE_SEL;
|
||||
if (nv_device(drm->device)->chipset >= 0x11)
|
||||
regp->ramdac_gen_ctrl |= NV_PRAMDAC_GENERAL_CONTROL_PIPE_LONG;
|
||||
@@ -609,7 +609,7 @@ static int
|
||||
nv_crtc_swap_fbs(struct drm_crtc *crtc, struct drm_framebuffer *old_fb)
|
||||
{
|
||||
struct nv04_display *disp = nv04_display(crtc->dev);
|
||||
struct nouveau_framebuffer *nvfb = nouveau_framebuffer(crtc->fb);
|
||||
struct nouveau_framebuffer *nvfb = nouveau_framebuffer(crtc->primary->fb);
|
||||
struct nouveau_crtc *nv_crtc = nouveau_crtc(crtc);
|
||||
int ret;
|
||||
|
||||
@@ -808,7 +808,7 @@ nv_crtc_gamma_set(struct drm_crtc *crtc, u16 *r, u16 *g, u16 *b, uint32_t start,
|
||||
* mark the lut values as dirty by setting depth==0, and it'll be
|
||||
* uploaded on the first mode_set_base()
|
||||
*/
|
||||
if (!nv_crtc->base.fb) {
|
||||
if (!nv_crtc->base.primary->fb) {
|
||||
nv_crtc->lut.depth = 0;
|
||||
return;
|
||||
}
|
||||
@@ -832,7 +832,7 @@ nv04_crtc_do_mode_set_base(struct drm_crtc *crtc,
|
||||
NV_DEBUG(drm, "index %d\n", nv_crtc->index);
|
||||
|
||||
/* no fb bound */
|
||||
if (!atomic && !crtc->fb) {
|
||||
if (!atomic && !crtc->primary->fb) {
|
||||
NV_DEBUG(drm, "No FB bound\n");
|
||||
return 0;
|
||||
}
|
||||
@@ -844,8 +844,8 @@ nv04_crtc_do_mode_set_base(struct drm_crtc *crtc,
|
||||
drm_fb = passed_fb;
|
||||
fb = nouveau_framebuffer(passed_fb);
|
||||
} else {
|
||||
drm_fb = crtc->fb;
|
||||
fb = nouveau_framebuffer(crtc->fb);
|
||||
drm_fb = crtc->primary->fb;
|
||||
fb = nouveau_framebuffer(crtc->primary->fb);
|
||||
}
|
||||
|
||||
nv_crtc->fb.offset = fb->nvbo->bo.offset;
|
||||
@@ -857,9 +857,9 @@ nv04_crtc_do_mode_set_base(struct drm_crtc *crtc,
|
||||
|
||||
/* Update the framebuffer format. */
|
||||
regp->CRTC[NV_CIO_CRE_PIXEL_INDEX] &= ~3;
|
||||
regp->CRTC[NV_CIO_CRE_PIXEL_INDEX] |= (crtc->fb->depth + 1) / 8;
|
||||
regp->CRTC[NV_CIO_CRE_PIXEL_INDEX] |= (crtc->primary->fb->depth + 1) / 8;
|
||||
regp->ramdac_gen_ctrl &= ~NV_PRAMDAC_GENERAL_CONTROL_ALT_MODE_SEL;
|
||||
if (crtc->fb->depth == 16)
|
||||
if (crtc->primary->fb->depth == 16)
|
||||
regp->ramdac_gen_ctrl |= NV_PRAMDAC_GENERAL_CONTROL_ALT_MODE_SEL;
|
||||
crtc_wr_cio_state(crtc, regp, NV_CIO_CRE_PIXEL_INDEX);
|
||||
NVWriteRAMDAC(dev, nv_crtc->index, NV_PRAMDAC_GENERAL_CONTROL,
|
||||
|
新しいイシューから参照
ユーザーをブロックする