diff options
-rw-r--r-- | drivers/gpu/drm/nouveau/Makefile | 2 | ||||
-rw-r--r-- | drivers/gpu/drm/nouveau/nouveau_crtc.h | 7 | ||||
-rw-r--r-- | drivers/gpu/drm/nouveau/nouveau_display.c | 4 | ||||
-rw-r--r-- | drivers/gpu/drm/nouveau/nouveau_encoder.h | 4 | ||||
-rw-r--r-- | drivers/gpu/drm/nouveau/nv50_display.c (renamed from drivers/gpu/drm/nouveau/nvd0_display.c) | 508 | ||||
-rw-r--r-- | drivers/gpu/drm/nouveau/nv50_display.h | 14 | ||||
-rw-r--r-- | drivers/gpu/drm/nouveau/nv50_fence.c | 2 | ||||
-rw-r--r-- | drivers/gpu/drm/nouveau/nv84_fence.c | 2 | ||||
-rw-r--r-- | drivers/gpu/drm/nouveau/nvc0_fence.c | 4 |
9 files changed, 268 insertions, 279 deletions
diff --git a/drivers/gpu/drm/nouveau/Makefile b/drivers/gpu/drm/nouveau/Makefile index b834a340bbdb..a96af782eefa 100644 --- a/drivers/gpu/drm/nouveau/Makefile +++ b/drivers/gpu/drm/nouveau/Makefile @@ -201,7 +201,7 @@ nouveau-y += nv04_dac.o nv04_dfp.o nv04_tv.o nv17_tv.o nv17_tv_modes.o nouveau-y += nv04_crtc.o nv04_display.o nv04_cursor.o # drm/kms/nv50- -nouveau-y += nvd0_display.o +nouveau-y += nv50_display.o # drm/pm nouveau-y += nouveau_pm.o nouveau_volt.o nouveau_perf.o diff --git a/drivers/gpu/drm/nouveau/nouveau_crtc.h b/drivers/gpu/drm/nouveau/nouveau_crtc.h index 74396e134ef2..d1e5890784d7 100644 --- a/drivers/gpu/drm/nouveau/nouveau_crtc.h +++ b/drivers/gpu/drm/nouveau/nouveau_crtc.h @@ -82,13 +82,6 @@ static inline struct drm_crtc *to_drm_crtc(struct nouveau_crtc *crtc) return &crtc->base; } -int nv50_crtc_create(struct drm_device *dev, int index); -int nv50_crtc_cursor_set(struct drm_crtc *drm_crtc, struct drm_file *file_priv, - uint32_t buffer_handle, uint32_t width, - uint32_t height); -int nv50_crtc_cursor_move(struct drm_crtc *drm_crtc, int x, int y); - int nv04_cursor_init(struct nouveau_crtc *); -int nv50_cursor_init(struct nouveau_crtc *); #endif /* __NOUVEAU_CRTC_H__ */ diff --git a/drivers/gpu/drm/nouveau/nouveau_display.c b/drivers/gpu/drm/nouveau/nouveau_display.c index 7a48f4578e1f..e4188f24fc75 100644 --- a/drivers/gpu/drm/nouveau/nouveau_display.c +++ b/drivers/gpu/drm/nouveau/nouveau_display.c @@ -366,7 +366,7 @@ nouveau_display_create(struct drm_device *dev) if (nv_device(drm->device)->card_type < NV_50) ret = nv04_display_create(dev); else - ret = nvd0_display_create(dev); + ret = nv50_display_create(dev); if (ret) goto disp_create_err; @@ -657,7 +657,7 @@ nouveau_crtc_page_flip(struct drm_crtc *crtc, struct drm_framebuffer *fb, /* Emit a page flip */ if (nv_device(drm->device)->card_type >= NV_50) { - ret = nvd0_display_flip_next(crtc, fb, chan, 0); + ret = nv50_display_flip_next(crtc, fb, chan, 0); if (ret) { mutex_unlock(&chan->cli->mutex); goto fail_unreserve; diff --git a/drivers/gpu/drm/nouveau/nouveau_encoder.h b/drivers/gpu/drm/nouveau/nouveau_encoder.h index 6f642df67009..d0d95bd511ab 100644 --- a/drivers/gpu/drm/nouveau/nouveau_encoder.h +++ b/drivers/gpu/drm/nouveau/nouveau_encoder.h @@ -97,9 +97,5 @@ void nouveau_dp_dpms(struct drm_encoder *, int mode, u32 datarate, struct nouveau_connector * nouveau_encoder_connector_get(struct nouveau_encoder *encoder); -int nv50_sor_create(struct drm_connector *, struct dcb_output *); -void nv50_sor_dp_calc_tu(struct drm_device *, int, int, u32, u32); -int nv50_dac_create(struct drm_connector *, struct dcb_output *); - #endif /* __NOUVEAU_ENCODER_H__ */ diff --git a/drivers/gpu/drm/nouveau/nvd0_display.c b/drivers/gpu/drm/nouveau/nv50_display.c index f8ff7786ea95..7c77b282d816 100644 --- a/drivers/gpu/drm/nouveau/nvd0_display.c +++ b/drivers/gpu/drm/nouveau/nv50_display.c @@ -1,4 +1,4 @@ -/* + /* * Copyright 2011 Red Hat Inc. * * Permission is hereby granted, free of charge, to any person obtaining a @@ -68,14 +68,14 @@ * EVO channel *****************************************************************************/ -struct nvd0_chan { +struct nv50_chan { struct nouveau_object *user; u32 handle; }; static int -nvd0_chan_create(struct nouveau_object *core, u32 bclass, u8 head, - void *data, u32 size, struct nvd0_chan *chan) +nv50_chan_create(struct nouveau_object *core, u32 bclass, u8 head, + void *data, u32 size, struct nv50_chan *chan) { struct nouveau_object *client = nv_pclass(core, NV_CLIENT_CLASS); const u32 oclass = EVO_CHAN_OCLASS(bclass, core); @@ -92,7 +92,7 @@ nvd0_chan_create(struct nouveau_object *core, u32 bclass, u8 head, } static void -nvd0_chan_destroy(struct nouveau_object *core, struct nvd0_chan *chan) +nv50_chan_destroy(struct nouveau_object *core, struct nv50_chan *chan) { struct nouveau_object *client = nv_pclass(core, NV_CLIENT_CLASS); if (chan->handle) @@ -103,42 +103,42 @@ nvd0_chan_destroy(struct nouveau_object *core, struct nvd0_chan *chan) * PIO EVO channel *****************************************************************************/ -struct nvd0_pioc { - struct nvd0_chan base; +struct nv50_pioc { + struct nv50_chan base; }; static void -nvd0_pioc_destroy(struct nouveau_object *core, struct nvd0_pioc *pioc) +nv50_pioc_destroy(struct nouveau_object *core, struct nv50_pioc *pioc) { - nvd0_chan_destroy(core, &pioc->base); + nv50_chan_destroy(core, &pioc->base); } static int -nvd0_pioc_create(struct nouveau_object *core, u32 bclass, u8 head, - void *data, u32 size, struct nvd0_pioc *pioc) +nv50_pioc_create(struct nouveau_object *core, u32 bclass, u8 head, + void *data, u32 size, struct nv50_pioc *pioc) { - return nvd0_chan_create(core, bclass, head, data, size, &pioc->base); + return nv50_chan_create(core, bclass, head, data, size, &pioc->base); } /****************************************************************************** * DMA EVO channel *****************************************************************************/ -struct nvd0_dmac { - struct nvd0_chan base; +struct nv50_dmac { + struct nv50_chan base; dma_addr_t handle; u32 *ptr; }; static void -nvd0_dmac_destroy(struct nouveau_object *core, struct nvd0_dmac *dmac) +nv50_dmac_destroy(struct nouveau_object *core, struct nv50_dmac *dmac) { if (dmac->ptr) { struct pci_dev *pdev = nv_device(core)->pdev; pci_free_consistent(pdev, PAGE_SIZE, dmac->ptr, dmac->handle); } - nvd0_chan_destroy(core, &dmac->base); + nv50_chan_destroy(core, &dmac->base); } static int @@ -261,9 +261,9 @@ nvd0_dmac_create_fbdma(struct nouveau_object *core, u32 parent) } static int -nvd0_dmac_create(struct nouveau_object *core, u32 bclass, u8 head, +nv50_dmac_create(struct nouveau_object *core, u32 bclass, u8 head, void *data, u32 size, u64 syncbuf, - struct nvd0_dmac *dmac) + struct nv50_dmac *dmac) { struct nouveau_fb *pfb = nouveau_fb(core); struct nouveau_object *client = nv_pclass(core, NV_CLIENT_CLASS); @@ -287,7 +287,7 @@ nvd0_dmac_create(struct nouveau_object *core, u32 bclass, u8 head, if (ret) return ret; - ret = nvd0_chan_create(core, bclass, head, data, size, &dmac->base); + ret = nv50_chan_create(core, bclass, head, data, size, &dmac->base); if (ret) return ret; @@ -323,65 +323,65 @@ nvd0_dmac_create(struct nouveau_object *core, u32 bclass, u8 head, return ret; } -struct nvd0_mast { - struct nvd0_dmac base; +struct nv50_mast { + struct nv50_dmac base; }; -struct nvd0_curs { - struct nvd0_pioc base; +struct nv50_curs { + struct nv50_pioc base; }; -struct nvd0_sync { - struct nvd0_dmac base; +struct nv50_sync { + struct nv50_dmac base; struct { u32 offset; u16 value; } sem; }; -struct nvd0_ovly { - struct nvd0_dmac base; +struct nv50_ovly { + struct nv50_dmac base; }; -struct nvd0_oimm { - struct nvd0_pioc base; +struct nv50_oimm { + struct nv50_pioc base; }; -struct nvd0_head { +struct nv50_head { struct nouveau_crtc base; - struct nvd0_curs curs; - struct nvd0_sync sync; - struct nvd0_ovly ovly; - struct nvd0_oimm oimm; + struct nv50_curs curs; + struct nv50_sync sync; + struct nv50_ovly ovly; + struct nv50_oimm oimm; }; -#define nvd0_head(c) ((struct nvd0_head *)nouveau_crtc(c)) -#define nvd0_curs(c) (&nvd0_head(c)->curs) -#define nvd0_sync(c) (&nvd0_head(c)->sync) -#define nvd0_ovly(c) (&nvd0_head(c)->ovly) -#define nvd0_oimm(c) (&nvd0_head(c)->oimm) -#define nvd0_chan(c) (&(c)->base.base) -#define nvd0_vers(c) nv_mclass(nvd0_chan(c)->user) +#define nv50_head(c) ((struct nv50_head *)nouveau_crtc(c)) +#define nv50_curs(c) (&nv50_head(c)->curs) +#define nv50_sync(c) (&nv50_head(c)->sync) +#define nv50_ovly(c) (&nv50_head(c)->ovly) +#define nv50_oimm(c) (&nv50_head(c)->oimm) +#define nv50_chan(c) (&(c)->base.base) +#define nv50_vers(c) nv_mclass(nv50_chan(c)->user) -struct nvd0_disp { +struct nv50_disp { struct nouveau_object *core; - struct nvd0_mast mast; + struct nv50_mast mast; u32 modeset; struct nouveau_bo *sync; }; -static struct nvd0_disp * -nvd0_disp(struct drm_device *dev) +static struct nv50_disp * +nv50_disp(struct drm_device *dev) { return nouveau_display(dev)->priv; } -#define nvd0_mast(d) (&nvd0_disp(d)->mast) +#define nv50_mast(d) (&nv50_disp(d)->mast) static struct drm_crtc * -nvd0_display_crtc_get(struct drm_encoder *encoder) +nv50_display_crtc_get(struct drm_encoder *encoder) { return nouveau_encoder(encoder)->crtc; } @@ -392,7 +392,7 @@ nvd0_display_crtc_get(struct drm_encoder *encoder) static u32 * evo_wait(void *evoc, int nr) { - struct nvd0_dmac *dmac = evoc; + struct nv50_dmac *dmac = evoc; u32 put = nv_ro32(dmac->base.user, 0x0000) / 4; if (put + nr >= (PAGE_SIZE / 4) - 8) { @@ -413,7 +413,7 @@ evo_wait(void *evoc, int nr) static void evo_kick(u32 *push, void *evoc) { - struct nvd0_dmac *dmac = evoc; + struct nv50_dmac *dmac = evoc; nv_wo32(dmac->base.user, 0x0000, (push - dmac->ptr) << 2); } @@ -430,8 +430,8 @@ static int evo_sync(struct drm_device *dev) { struct nouveau_device *device = nouveau_dev(dev); - struct nvd0_disp *disp = nvd0_disp(dev); - struct nvd0_mast *mast = nvd0_mast(dev); + struct nv50_disp *disp = nv50_disp(dev); + struct nv50_mast *mast = nv50_mast(dev); u32 *push = evo_wait(mast, 8); if (push) { nouveau_bo_wr32(disp->sync, EVO_MAST_NTFY, 0x00000000); @@ -452,15 +452,15 @@ evo_sync(struct drm_device *dev) * Page flipping channel *****************************************************************************/ struct nouveau_bo * -nvd0_display_crtc_sema(struct drm_device *dev, int crtc) +nv50_display_crtc_sema(struct drm_device *dev, int crtc) { - return nvd0_disp(dev)->sync; + return nv50_disp(dev)->sync; } void -nvd0_display_flip_stop(struct drm_crtc *crtc) +nv50_display_flip_stop(struct drm_crtc *crtc) { - struct nvd0_sync *sync = nvd0_sync(crtc); + struct nv50_sync *sync = nv50_sync(crtc); u32 *push; push = evo_wait(sync, 8); @@ -478,13 +478,13 @@ nvd0_display_flip_stop(struct drm_crtc *crtc) } int -nvd0_display_flip_next(struct drm_crtc *crtc, struct drm_framebuffer *fb, +nv50_display_flip_next(struct drm_crtc *crtc, struct drm_framebuffer *fb, struct nouveau_channel *chan, u32 swap_interval) { struct nouveau_framebuffer *nv_fb = nouveau_framebuffer(fb); - struct nvd0_disp *disp = nvd0_disp(crtc->dev); + struct nv50_disp *disp = nv50_disp(crtc->dev); struct nouveau_crtc *nv_crtc = nouveau_crtc(crtc); - struct nvd0_sync *sync = nvd0_sync(crtc); + struct nv50_sync *sync = nv50_sync(crtc); u32 *push; int ret; @@ -561,7 +561,7 @@ nvd0_display_flip_next(struct drm_crtc *crtc, struct drm_framebuffer *fb, evo_mthd(push, 0x0110, 2); evo_data(push, 0x00000000); evo_data(push, 0x00000000); - if (nvd0_vers(sync) < NVD0_DISP_SYNC_CLASS) { + if (nv50_vers(sync) < NVD0_DISP_SYNC_CLASS) { evo_mthd(push, 0x0800, 5); evo_data(push, nv_fb->nvbo->bo.offset >> 8); evo_data(push, 0); @@ -589,9 +589,9 @@ nvd0_display_flip_next(struct drm_crtc *crtc, struct drm_framebuffer *fb, * CRTC *****************************************************************************/ static int -nvd0_crtc_set_dither(struct nouveau_crtc *nv_crtc, bool update) +nv50_crtc_set_dither(struct nouveau_crtc *nv_crtc, bool update) { - struct nvd0_mast *mast = nvd0_mast(nv_crtc->base.dev); + struct nv50_mast *mast = nv50_mast(nv_crtc->base.dev); struct nouveau_connector *nv_connector; struct drm_connector *connector; u32 *push, mode = 0x00; @@ -614,11 +614,11 @@ nvd0_crtc_set_dither(struct nouveau_crtc *nv_crtc, bool update) push = evo_wait(mast, 4); if (push) { - if (nvd0_vers(mast) < NVD0_DISP_MAST_CLASS) { + if (nv50_vers(mast) < NVD0_DISP_MAST_CLASS) { evo_mthd(push, 0x08a0 + (nv_crtc->index * 0x0400), 1); evo_data(push, mode); } else - if (nvd0_vers(mast) < NVE0_DISP_MAST_CLASS) { + if (nv50_vers(mast) < NVE0_DISP_MAST_CLASS) { evo_mthd(push, 0x0490 + (nv_crtc->index * 0x0300), 1); evo_data(push, mode); } else { @@ -637,9 +637,9 @@ nvd0_crtc_set_dither(struct nouveau_crtc *nv_crtc, bool update) } static int -nvd0_crtc_set_scale(struct nouveau_crtc *nv_crtc, bool update) +nv50_crtc_set_scale(struct nouveau_crtc *nv_crtc, bool update) { - struct nvd0_mast *mast = nvd0_mast(nv_crtc->base.dev); + struct nv50_mast *mast = nv50_mast(nv_crtc->base.dev); struct drm_display_mode *omode, *umode = &nv_crtc->base.mode; struct drm_crtc *crtc = &nv_crtc->base; struct nouveau_connector *nv_connector; @@ -709,7 +709,7 @@ nvd0_crtc_set_scale(struct nouveau_crtc *nv_crtc, bool update) push = evo_wait(mast, 8); if (push) { - if (nvd0_vers(mast) < NVD0_DISP_MAST_CLASS) { + if (nv50_vers(mast) < NVD0_DISP_MAST_CLASS) { /*XXX: SCALE_CTRL_ACTIVE??? */ evo_mthd(push, 0x08d8 + (nv_crtc->index * 0x400), 2); evo_data(push, (oY << 16) | oX); @@ -732,8 +732,8 @@ nvd0_crtc_set_scale(struct nouveau_crtc *nv_crtc, bool update) evo_kick(push, mast); if (update) { - nvd0_display_flip_stop(crtc); - nvd0_display_flip_next(crtc, crtc->fb, NULL, 1); + nv50_display_flip_stop(crtc); + nv50_display_flip_next(crtc, crtc->fb, NULL, 1); } } @@ -741,9 +741,9 @@ nvd0_crtc_set_scale(struct nouveau_crtc *nv_crtc, bool update) } static int -nvd0_crtc_set_color_vibrance(struct nouveau_crtc *nv_crtc, bool update) +nv50_crtc_set_color_vibrance(struct nouveau_crtc *nv_crtc, bool update) { - struct nvd0_mast *mast = nvd0_mast(nv_crtc->base.dev); + struct nv50_mast *mast = nv50_mast(nv_crtc->base.dev); u32 *push, hue, vib; int adj; @@ -753,7 +753,7 @@ nvd0_crtc_set_color_vibrance(struct nouveau_crtc *nv_crtc, bool update) push = evo_wait(mast, 16); if (push) { - if (nvd0_vers(mast) < NVD0_DISP_MAST_CLASS) { + if (nv50_vers(mast) < NVD0_DISP_MAST_CLASS) { evo_mthd(push, 0x08a8 + (nv_crtc->index * 0x400), 1); evo_data(push, (hue << 20) | (vib << 8)); } else { @@ -772,16 +772,16 @@ nvd0_crtc_set_color_vibrance(struct nouveau_crtc *nv_crtc, bool update) } static int -nvd0_crtc_set_image(struct nouveau_crtc *nv_crtc, struct drm_framebuffer *fb, +nv50_crtc_set_image(struct nouveau_crtc *nv_crtc, struct drm_framebuffer *fb, int x, int y, bool update) { struct nouveau_framebuffer *nvfb = nouveau_framebuffer(fb); - struct nvd0_mast *mast = nvd0_mast(nv_crtc->base.dev); + struct nv50_mast *mast = nv50_mast(nv_crtc->base.dev); u32 *push; push = evo_wait(mast, 16); if (push) { - if (nvd0_vers(mast) < NVD0_DISP_MAST_CLASS) { + if (nv50_vers(mast) < NVD0_DISP_MAST_CLASS) { evo_mthd(push, 0x0860 + (nv_crtc->index * 0x400), 1); evo_data(push, nvfb->nvbo->bo.offset >> 8); evo_mthd(push, 0x0868 + (nv_crtc->index * 0x400), 3); @@ -790,7 +790,7 @@ nvd0_crtc_set_image(struct nouveau_crtc *nv_crtc, struct drm_framebuffer *fb, evo_data(push, nvfb->r_format); evo_mthd(push, 0x08c0 + (nv_crtc->index * 0x400), 1); evo_data(push, (y << 16) | x); - if (nvd0_vers(mast) > NV50_DISP_MAST_CLASS) { + if (nv50_vers(mast) > NV50_DISP_MAST_CLASS) { evo_mthd(push, 0x0874 + (nv_crtc->index * 0x400), 1); evo_data(push, nvfb->r_dma); } @@ -818,17 +818,17 @@ nvd0_crtc_set_image(struct nouveau_crtc *nv_crtc, struct drm_framebuffer *fb, } static void -nvd0_crtc_cursor_show(struct nouveau_crtc *nv_crtc) +nv50_crtc_cursor_show(struct nouveau_crtc *nv_crtc) { - struct nvd0_mast *mast = nvd0_mast(nv_crtc->base.dev); + struct nv50_mast *mast = nv50_mast(nv_crtc->base.dev); u32 *push = evo_wait(mast, 16); if (push) { - if (nvd0_vers(mast) < NV84_DISP_MAST_CLASS) { + if (nv50_vers(mast) < NV84_DISP_MAST_CLASS) { evo_mthd(push, 0x0880 + (nv_crtc->index * 0x400), 2); evo_data(push, 0x85000000); evo_data(push, nv_crtc->cursor.nvbo->bo.offset >> 8); } else - if (nvd0_vers(mast) < NVD0_DISP_MAST_CLASS) { + if (nv50_vers(mast) < NVD0_DISP_MAST_CLASS) { evo_mthd(push, 0x0880 + (nv_crtc->index * 0x400), 2); evo_data(push, 0x85000000); evo_data(push, nv_crtc->cursor.nvbo->bo.offset >> 8); @@ -846,16 +846,16 @@ nvd0_crtc_cursor_show(struct nouveau_crtc *nv_crtc) } static void -nvd0_crtc_cursor_hide(struct nouveau_crtc *nv_crtc) +nv50_crtc_cursor_hide(struct nouveau_crtc *nv_crtc) { - struct nvd0_mast *mast = nvd0_mast(nv_crtc->base.dev); + struct nv50_mast *mast = nv50_mast(nv_crtc->base.dev); u32 *push = evo_wait(mast, 16); if (push) { - if (nvd0_vers(mast) < NV84_DISP_MAST_CLASS) { + if (nv50_vers(mast) < NV84_DISP_MAST_CLASS) { evo_mthd(push, 0x0880 + (nv_crtc->index * 0x400), 1); evo_data(push, 0x05000000); } else - if (nvd0_vers(mast) < NVD0_DISP_MAST_CLASS) { + if (nv50_vers(mast) < NVD0_DISP_MAST_CLASS) { evo_mthd(push, 0x0880 + (nv_crtc->index * 0x400), 1); evo_data(push, 0x05000000); evo_mthd(push, 0x089c + (nv_crtc->index * 0x400), 1); @@ -871,14 +871,14 @@ nvd0_crtc_cursor_hide(struct nouveau_crtc *nv_crtc) } static void -nvd0_crtc_cursor_show_hide(struct nouveau_crtc *nv_crtc, bool show, bool update) +nv50_crtc_cursor_show_hide(struct nouveau_crtc *nv_crtc, bool show, bool update) { - struct nvd0_mast *mast = nvd0_mast(nv_crtc->base.dev); + struct nv50_mast *mast = nv50_mast(nv_crtc->base.dev); if (show) - nvd0_crtc_cursor_show(nv_crtc); + nv50_crtc_cursor_show(nv_crtc); else - nvd0_crtc_cursor_hide(nv_crtc); + nv50_crtc_cursor_hide(nv_crtc); if (update) { u32 *push = evo_wait(mast, 2); @@ -891,28 +891,28 @@ nvd0_crtc_cursor_show_hide(struct nouveau_crtc *nv_crtc, bool show, bool update) } static void -nvd0_crtc_dpms(struct drm_crtc *crtc, int mode) +nv50_crtc_dpms(struct drm_crtc *crtc, int mode) { } static void -nvd0_crtc_prepare(struct drm_crtc *crtc) +nv50_crtc_prepare(struct drm_crtc *crtc) { struct nouveau_crtc *nv_crtc = nouveau_crtc(crtc); - struct nvd0_mast *mast = nvd0_mast(crtc->dev); + struct nv50_mast *mast = nv50_mast(crtc->dev); u32 *push; - nvd0_display_flip_stop(crtc); + nv50_display_flip_stop(crtc); push = evo_wait(mast, 2); if (push) { - if (nvd0_vers(mast) < NV84_DISP_MAST_CLASS) { + if (nv50_vers(mast) < NV84_DISP_MAST_CLASS) { evo_mthd(push, 0x0874 + (nv_crtc->index * 0x400), 1); evo_data(push, 0x00000000); evo_mthd(push, 0x0840 + (nv_crtc->index * 0x400), 1); evo_data(push, 0x40000000); } else - if (nvd0_vers(mast) < NVD0_DISP_MAST_CLASS) { + if (nv50_vers(mast) < NVD0_DISP_MAST_CLASS) { evo_mthd(push, 0x0874 + (nv_crtc->index * 0x400), 1); evo_data(push, 0x00000000); evo_mthd(push, 0x0840 + (nv_crtc->index * 0x400), 1); @@ -931,26 +931,26 @@ nvd0_crtc_prepare(struct drm_crtc *crtc) evo_kick(push, mast); } - nvd0_crtc_cursor_show_hide(nv_crtc, false, false); + nv50_crtc_cursor_show_hide(nv_crtc, false, false); } static void -nvd0_crtc_commit(struct drm_crtc *crtc) +nv50_crtc_commit(struct drm_crtc *crtc) { struct nouveau_crtc *nv_crtc = nouveau_crtc(crtc); - struct nvd0_mast *mast = nvd0_mast(crtc->dev); + struct nv50_mast *mast = nv50_mast(crtc->dev); u32 *push; push = evo_wait(mast, 32); if (push) { - if (nvd0_vers(mast) < NV84_DISP_MAST_CLASS) { + if (nv50_vers(mast) < NV84_DISP_MAST_CLASS) { evo_mthd(push, 0x0874 + (nv_crtc->index * 0x400), 1); evo_data(push, NvEvoVRAM_LP); evo_mthd(push, 0x0840 + (nv_crtc->index * 0x400), 2); evo_data(push, 0xc0000000); evo_data(push, nv_crtc->lut.nvbo->bo.offset >> 8); } else - if (nvd0_vers(mast) < NVD0_DISP_MAST_CLASS) { + if (nv50_vers(mast) < NVD0_DISP_MAST_CLASS) { evo_mthd(push, 0x0874 + (nv_crtc->index * 0x400), 1); evo_data(push, nv_crtc->fb.tile_flags); evo_mthd(push, 0x0840 + (nv_crtc->index * 0x400), 2); @@ -975,19 +975,19 @@ nvd0_crtc_commit(struct drm_crtc *crtc) evo_kick(push, mast); } - nvd0_crtc_cursor_show_hide(nv_crtc, nv_crtc->cursor.visible, true); - nvd0_display_flip_next(crtc, crtc->fb, NULL, 1); + nv50_crtc_cursor_show_hide(nv_crtc, nv_crtc->cursor.visible, true); + nv50_display_flip_next(crtc, crtc->fb, NULL, 1); } static bool -nvd0_crtc_mode_fixup(struct drm_crtc *crtc, const struct drm_display_mode *mode, +nv50_crtc_mode_fixup(struct drm_crtc *crtc, const struct drm_display_mode *mode, struct drm_display_mode *adjusted_mode) { return true; } static int -nvd0_crtc_swap_fbs(struct drm_crtc *crtc, struct drm_framebuffer *old_fb) +nv50_crtc_swap_fbs(struct drm_crtc *crtc, struct drm_framebuffer *old_fb) { struct nouveau_framebuffer *nvfb = nouveau_framebuffer(crtc->fb); int ret; @@ -1005,11 +1005,11 @@ nvd0_crtc_swap_fbs(struct drm_crtc *crtc, struct drm_framebuffer *old_fb) } static int -nvd0_crtc_mode_set(struct drm_crtc *crtc, struct drm_display_mode *umode, +nv50_crtc_mode_set(struct drm_crtc *crtc, struct drm_display_mode *umode, struct drm_display_mode *mode, int x, int y, struct drm_framebuffer *old_fb) { - struct nvd0_mast *mast = nvd0_mast(crtc->dev); + struct nv50_mast *mast = nv50_mast(crtc->dev); struct nouveau_crtc *nv_crtc = nouveau_crtc(crtc); struct nouveau_connector *nv_connector; u32 ilace = (mode->flags & DRM_MODE_FLAG_INTERLACE) ? 2 : 1; @@ -1039,13 +1039,13 @@ nvd0_crtc_mode_set(struct drm_crtc *crtc, struct drm_display_mode *umode, vactive = (vactive * 2) + 1; } - ret = nvd0_crtc_swap_fbs(crtc, old_fb); + ret = nv50_crtc_swap_fbs(crtc, old_fb); if (ret) return ret; push = evo_wait(mast, 64); if (push) { - if (nvd0_vers(mast) < NVD0_DISP_MAST_CLASS) { + if (nv50_vers(mast) < NVD0_DISP_MAST_CLASS) { evo_mthd(push, 0x0804 + (nv_crtc->index * 0x400), 2); evo_data(push, 0x00800000 | mode->clock); evo_data(push, (ilace == 2) ? 2 : 0); @@ -1084,15 +1084,15 @@ nvd0_crtc_mode_set(struct drm_crtc *crtc, struct drm_display_mode *umode, } nv_connector = nouveau_crtc_connector_get(nv_crtc); - nvd0_crtc_set_dither(nv_crtc, false); - nvd0_crtc_set_scale(nv_crtc, false); - nvd0_crtc_set_color_vibrance(nv_crtc, false); - nvd0_crtc_set_image(nv_crtc, crtc->fb, x, y, false); + nv50_crtc_set_dither(nv_crtc, false); + nv50_crtc_set_scale(nv_crtc, false); + nv50_crtc_set_color_vibrance(nv_crtc, false); + nv50_crtc_set_image(nv_crtc, crtc->fb, x, y, false); return 0; } static int -nvd0_crtc_mode_set_base(struct drm_crtc *crtc, int x, int y, +nv50_crtc_mode_set_base(struct drm_crtc *crtc, int x, int y, struct drm_framebuffer *old_fb) { struct nouveau_drm *drm = nouveau_drm(crtc->dev); @@ -1104,31 +1104,31 @@ nvd0_crtc_mode_set_base(struct drm_crtc *crtc, int x, int y, return 0; } - ret = nvd0_crtc_swap_fbs(crtc, old_fb); + ret = nv50_crtc_swap_fbs(crtc, old_fb); if (ret) return ret; - nvd0_display_flip_stop(crtc); - nvd0_crtc_set_image(nv_crtc, crtc->fb, x, y, true); - nvd0_display_flip_next(crtc, crtc->fb, NULL, 1); + nv50_display_flip_stop(crtc); + nv50_crtc_set_image(nv_crtc, crtc->fb, x, y, true); + nv50_display_flip_next(crtc, crtc->fb, NULL, 1); return 0; } static int -nvd0_crtc_mode_set_base_atomic(struct drm_crtc *crtc, +nv50_crtc_mode_set_base_atomic(struct drm_crtc *crtc, struct drm_framebuffer *fb, int x, int y, enum mode_set_atomic state) { struct nouveau_crtc *nv_crtc = nouveau_crtc(crtc); - nvd0_display_flip_stop(crtc); - nvd0_crtc_set_image(nv_crtc, fb, x, y, true); + nv50_display_flip_stop(crtc); + nv50_crtc_set_image(nv_crtc, fb, x, y, true); return 0; } static void -nvd0_crtc_lut_load(struct drm_crtc *crtc) +nv50_crtc_lut_load(struct drm_crtc *crtc) { - struct nvd0_disp *disp = nvd0_disp(crtc->dev); + struct nv50_disp *disp = nv50_disp(crtc->dev); struct nouveau_crtc *nv_crtc = nouveau_crtc(crtc); void __iomem *lut = nvbo_kmap_obj_iovirtual(nv_crtc->lut.nvbo); int i; @@ -1151,7 +1151,7 @@ nvd0_crtc_lut_load(struct drm_crtc *crtc) } static int -nvd0_crtc_cursor_set(struct drm_crtc *crtc, struct drm_file *file_priv, +nv50_crtc_cursor_set(struct drm_crtc *crtc, struct drm_file *file_priv, uint32_t handle, uint32_t width, uint32_t height) { struct nouveau_crtc *nv_crtc = nouveau_crtc(crtc); @@ -1183,7 +1183,7 @@ nvd0_crtc_cursor_set(struct drm_crtc *crtc, struct drm_file *file_priv, } if (visible != nv_crtc->cursor.visible) { - nvd0_crtc_cursor_show_hide(nv_crtc, visible, true); + nv50_crtc_cursor_show_hide(nv_crtc, visible, true); nv_crtc->cursor.visible = visible; } @@ -1191,17 +1191,17 @@ nvd0_crtc_cursor_set(struct drm_crtc *crtc, struct drm_file *file_priv, } static int -nvd0_crtc_cursor_move(struct drm_crtc *crtc, int x, int y) +nv50_crtc_cursor_move(struct drm_crtc *crtc, int x, int y) { - struct nvd0_curs *curs = nvd0_curs(crtc); - struct nvd0_chan *chan = nvd0_chan(curs); + struct nv50_curs *curs = nv50_curs(crtc); + struct nv50_chan *chan = nv50_chan(curs); nv_wo32(chan->user, 0x0084, (y << 16) | (x & 0xffff)); nv_wo32(chan->user, 0x0080, 0x00000000); return 0; } static void -nvd0_crtc_gamma_set(struct drm_crtc *crtc, u16 *r, u16 *g, u16 *b, +nv50_crtc_gamma_set(struct drm_crtc *crtc, u16 *r, u16 *g, u16 *b, uint32_t start, uint32_t size) { struct nouveau_crtc *nv_crtc = nouveau_crtc(crtc); @@ -1214,19 +1214,19 @@ nvd0_crtc_gamma_set(struct drm_crtc *crtc, u16 *r, u16 *g, u16 *b, nv_crtc->lut.b[i] = b[i]; } - nvd0_crtc_lut_load(crtc); + nv50_crtc_lut_load(crtc); } static void -nvd0_crtc_destroy(struct drm_crtc *crtc) +nv50_crtc_destroy(struct drm_crtc *crtc) { struct nouveau_crtc *nv_crtc = nouveau_crtc(crtc); - struct nvd0_disp *disp = nvd0_disp(crtc->dev); - struct nvd0_head *head = nvd0_head(crtc); - nvd0_dmac_destroy(disp->core, &head->ovly.base); - nvd0_pioc_destroy(disp->core, &head->oimm.base); - nvd0_dmac_destroy(disp->core, &head->sync.base); - nvd0_pioc_destroy(disp->core, &head->curs.base); + struct nv50_disp *disp = nv50_disp(crtc->dev); + struct nv50_head *head = nv50_head(crtc); + nv50_dmac_destroy(disp->core, &head->ovly.base); + nv50_pioc_destroy(disp->core, &head->oimm.base); + nv50_dmac_destroy(disp->core, &head->sync.base); + nv50_pioc_destroy(disp->core, &head->curs.base); nouveau_bo_unmap(nv_crtc->cursor.nvbo); nouveau_bo_ref(NULL, &nv_crtc->cursor.nvbo); nouveau_bo_unmap(nv_crtc->lut.nvbo); @@ -1235,41 +1235,41 @@ nvd0_crtc_destroy(struct drm_crtc *crtc) kfree(crtc); } -static const struct drm_crtc_helper_funcs nvd0_crtc_hfunc = { - .dpms = nvd0_crtc_dpms, - .prepare = nvd0_crtc_prepare, - .commit = nvd0_crtc_commit, - .mode_fixup = nvd0_crtc_mode_fixup, - .mode_set = nvd0_crtc_mode_set, - .mode_set_base = nvd0_crtc_mode_set_base, - .mode_set_base_atomic = nvd0_crtc_mode_set_base_atomic, - .load_lut = nvd0_crtc_lut_load, +static const struct drm_crtc_helper_funcs nv50_crtc_hfunc = { + .dpms = nv50_crtc_dpms, + .prepare = nv50_crtc_prepare, + .commit = nv50_crtc_commit, + .mode_fixup = nv50_crtc_mode_fixup, + .mode_set = nv50_crtc_mode_set, + .mode_set_base = nv50_crtc_mode_set_base, + .mode_set_base_atomic = nv50_crtc_mode_set_base_atomic, + .load_lut = nv50_crtc_lut_load, }; -static const struct drm_crtc_funcs nvd0_crtc_func = { - .cursor_set = nvd0_crtc_cursor_set, - .cursor_move = nvd0_crtc_cursor_move, - .gamma_set = nvd0_crtc_gamma_set, +static const struct drm_crtc_funcs nv50_crtc_func = { + .cursor_set = nv50_crtc_cursor_set, + .cursor_move = nv50_crtc_cursor_move, + .gamma_set = nv50_crtc_gamma_set, .set_config = drm_crtc_helper_set_config, - .destroy = nvd0_crtc_destroy, + .destroy = nv50_crtc_destroy, .page_flip = nouveau_crtc_page_flip, }; static void -nvd0_cursor_set_pos(struct nouveau_crtc *nv_crtc, int x, int y) +nv50_cursor_set_pos(struct nouveau_crtc *nv_crtc, int x, int y) { } static void -nvd0_cursor_set_offset(struct nouveau_crtc *nv_crtc, uint32_t offset) +nv50_cursor_set_offset(struct nouveau_crtc *nv_crtc, uint32_t offset) { } static int -nvd0_crtc_create(struct drm_device *dev, struct nouveau_object *core, int index) +nv50_crtc_create(struct drm_device *dev, struct nouveau_object *core, int index) { - struct nvd0_disp *disp = nvd0_disp(dev); - struct nvd0_head *head; + struct nv50_disp *disp = nv50_disp(dev); + struct nv50_head *head; struct drm_crtc *crtc; int ret, i; @@ -1278,13 +1278,13 @@ nvd0_crtc_create(struct drm_device *dev, struct nouveau_object *core, int index) return -ENOMEM; head->base.index = index; - head->base.set_dither = nvd0_crtc_set_dither; - head->base.set_scale = nvd0_crtc_set_scale; - head->base.set_color_vibrance = nvd0_crtc_set_color_vibrance; + head->base.set_dither = nv50_crtc_set_dither; + head->base.set_scale = nv50_crtc_set_scale; + head->base.set_color_vibrance = nv50_crtc_set_color_vibrance; head->base.color_vibrance = 50; head->base.vibrant_hue = 0; - head->base.cursor.set_offset = nvd0_cursor_set_offset; - head->base.cursor.set_pos = nvd0_cursor_set_pos; + head->base.cursor.set_offset = nv50_cursor_set_offset; + head->base.cursor.set_pos = nv50_cursor_set_pos; for (i = 0; i < 256; i++) { head->base.lut.r[i] = i << 8; head->base.lut.g[i] = i << 8; @@ -1292,8 +1292,8 @@ nvd0_crtc_create(struct drm_device *dev, struct nouveau_object *core, int index) } crtc = &head->base.base; - drm_crtc_init(dev, crtc, &nvd0_crtc_func); - drm_crtc_helper_add(crtc, &nvd0_crtc_hfunc); + drm_crtc_init(dev, crtc, &nv50_crtc_func); + drm_crtc_helper_add(crtc, &nv50_crtc_hfunc); drm_mode_crtc_set_gamma_size(crtc, 256); ret = nouveau_bo_new(dev, 8192, 0x100, TTM_PL_FLAG_VRAM, @@ -1309,10 +1309,10 @@ nvd0_crtc_create(struct drm_device *dev, struct nouveau_object *core, int index) if (ret) goto out; - nvd0_crtc_lut_load(crtc); + nv50_crtc_lut_load(crtc); /* allocate cursor resources */ - ret = nvd0_pioc_create(disp->core, NV50_DISP_CURS_CLASS, index, + ret = nv50_pioc_create(disp->core, NV50_DISP_CURS_CLASS, index, &(struct nv50_display_curs_class) { .head = index, }, sizeof(struct nv50_display_curs_class), @@ -1334,7 +1334,7 @@ nvd0_crtc_create(struct drm_device *dev, struct nouveau_object *core, int index) goto out; /* allocate page flip / sync resources */ - ret = nvd0_dmac_create(disp->core, NV50_DISP_SYNC_CLASS, index, + ret = nv50_dmac_create(disp->core, NV50_DISP_SYNC_CLASS, index, &(struct nv50_display_sync_class) { .pushbuf = EVO_PUSH_HANDLE(SYNC, index), .head = index, @@ -1346,7 +1346,7 @@ nvd0_crtc_create(struct drm_device *dev, struct nouveau_object *core, int index) head->sync.sem.offset = EVO_SYNC(1 + index, 0x00); /* allocate overlay resources */ - ret = nvd0_pioc_create(disp->core, NV50_DISP_OIMM_CLASS, index, + ret = nv50_pioc_create(disp->core, NV50_DISP_OIMM_CLASS, index, &(struct nv50_display_oimm_class) { .head = index, }, sizeof(struct nv50_display_oimm_class), @@ -1354,7 +1354,7 @@ nvd0_crtc_create(struct drm_device *dev, struct nouveau_object *core, int index) if (ret) goto out; - ret = nvd0_dmac_create(disp->core, NV50_DISP_OVLY_CLASS, index, + ret = nv50_dmac_create(disp->core, NV50_DISP_OVLY_CLASS, index, &(struct nv50_display_ovly_class) { .pushbuf = EVO_PUSH_HANDLE(OVLY, index), .head = index, @@ -1365,7 +1365,7 @@ nvd0_crtc_create(struct drm_device *dev, struct nouveau_object *core, int index) out: if (ret) - nvd0_crtc_destroy(crtc); + nv50_crtc_destroy(crtc); return ret; } @@ -1373,10 +1373,10 @@ out: * DAC *****************************************************************************/ static void -nvd0_dac_dpms(struct drm_encoder *encoder, int mode) +nv50_dac_dpms(struct drm_encoder *encoder, int mode) { struct nouveau_encoder *nv_encoder = nouveau_encoder(encoder); - struct nvd0_disp *disp = nvd0_disp(encoder->dev); + struct nv50_disp *disp = nv50_disp(encoder->dev); int or = nv_encoder->or; u32 dpms_ctrl; @@ -1390,7 +1390,7 @@ nvd0_dac_dpms(struct drm_encoder *encoder, int mode) } static bool -nvd0_dac_mode_fixup(struct drm_encoder *encoder, +nv50_dac_mode_fixup(struct drm_encoder *encoder, const struct drm_display_mode *mode, struct drm_display_mode *adjusted_mode) { @@ -1410,24 +1410,24 @@ nvd0_dac_mode_fixup(struct drm_encoder *encoder, } static void -nvd0_dac_commit(struct drm_encoder *encoder) +nv50_dac_commit(struct drm_encoder *encoder) { } static void -nvd0_dac_mode_set(struct drm_encoder *encoder, struct drm_display_mode *mode, +nv50_dac_mode_set(struct drm_encoder *encoder, struct drm_display_mode *mode, struct drm_display_mode *adjusted_mode) { - struct nvd0_mast *mast = nvd0_mast(encoder->dev); + struct nv50_mast *mast = nv50_mast(encoder->dev); struct nouveau_encoder *nv_encoder = nouveau_encoder(encoder); struct nouveau_crtc *nv_crtc = nouveau_crtc(encoder->crtc); u32 *push; - nvd0_dac_dpms(encoder, DRM_MODE_DPMS_ON); + nv50_dac_dpms(encoder, DRM_MODE_DPMS_ON); push = evo_wait(mast, 8); if (push) { - if (nvd0_vers(mast) < NVD0_DISP_MAST_CLASS) { + if (nv50_vers(mast) < NVD0_DISP_MAST_CLASS) { u32 syncs = 0x00000000; if (mode->flags & DRM_MODE_FLAG_NHSYNC) @@ -1464,19 +1464,19 @@ nvd0_dac_mode_set(struct drm_encoder *encoder, struct drm_display_mode *mode, } static void -nvd0_dac_disconnect(struct drm_encoder *encoder) +nv50_dac_disconnect(struct drm_encoder *encoder) { struct nouveau_encoder *nv_encoder = nouveau_encoder(encoder); - struct nvd0_mast *mast = nvd0_mast(encoder->dev); + struct nv50_mast *mast = nv50_mast(encoder->dev); const int or = nv_encoder->or; u32 *push; if (nv_encoder->crtc) { - nvd0_crtc_prepare(nv_encoder->crtc); + nv50_crtc_prepare(nv_encoder->crtc); push = evo_wait(mast, 4); if (push) { - if (nvd0_vers(mast) < NVD0_DISP_MAST_CLASS) { + if (nv50_vers(mast) < NVD0_DISP_MAST_CLASS) { evo_mthd(push, 0x0400 + (or * 0x080), 1); evo_data(push, 0x00000000); } else { @@ -1494,9 +1494,9 @@ nvd0_dac_disconnect(struct drm_encoder *encoder) } static enum drm_connector_status -nvd0_dac_detect(struct drm_encoder *encoder, struct drm_connector *connector) +nv50_dac_detect(struct drm_encoder *encoder, struct drm_connector *connector) { - struct nvd0_disp *disp = nvd0_disp(encoder->dev); + struct nv50_disp *disp = nv50_disp(encoder->dev); int ret, or = nouveau_encoder(encoder)->or; u32 load = 0; @@ -1508,29 +1508,29 @@ nvd0_dac_detect(struct drm_encoder *encoder, struct drm_connector *connector) } static void -nvd0_dac_destroy(struct drm_encoder *encoder) +nv50_dac_destroy(struct drm_encoder *encoder) { drm_encoder_cleanup(encoder); kfree(encoder); } -static const struct drm_encoder_helper_funcs nvd0_dac_hfunc = { - .dpms = nvd0_dac_dpms, - .mode_fixup = nvd0_dac_mode_fixup, - .prepare = nvd0_dac_disconnect, - .commit = nvd0_dac_commit, - .mode_set = nvd0_dac_mode_set, - .disable = nvd0_dac_disconnect, - .get_crtc = nvd0_display_crtc_get, - .detect = nvd0_dac_detect +static const struct drm_encoder_helper_funcs nv50_dac_hfunc = { + .dpms = nv50_dac_dpms, + .mode_fixup = nv50_dac_mode_fixup, + .prepare = nv50_dac_disconnect, + .commit = nv50_dac_commit, + .mode_set = nv50_dac_mode_set, + .disable = nv50_dac_disconnect, + .get_crtc = nv50_display_crtc_get, + .detect = nv50_dac_detect }; -static const struct drm_encoder_funcs nvd0_dac_func = { - .destroy = nvd0_dac_destroy, +static const struct drm_encoder_funcs nv50_dac_func = { + .destroy = nv50_dac_destroy, }; static int -nvd0_dac_create(struct drm_connector *connector, struct dcb_output *dcbe) +nv50_dac_create(struct drm_connector *connector, struct dcb_output *dcbe) { struct drm_device *dev = connector->dev; struct nouveau_encoder *nv_encoder; @@ -1545,8 +1545,8 @@ nvd0_dac_create(struct drm_connector *connector, struct dcb_output *dcbe) encoder = to_drm_encoder(nv_encoder); encoder->possible_crtcs = dcbe->heads; encoder->possible_clones = 0; - drm_encoder_init(dev, encoder, &nvd0_dac_func, DRM_MODE_ENCODER_DAC); - drm_encoder_helper_add(encoder, &nvd0_dac_hfunc); + drm_encoder_init(dev, encoder, &nv50_dac_func, DRM_MODE_ENCODER_DAC); + drm_encoder_helper_add(encoder, &nv50_dac_hfunc); drm_mode_connector_attach_encoder(connector, encoder); return 0; @@ -1556,11 +1556,11 @@ nvd0_dac_create(struct drm_connector *connector, struct dcb_output *dcbe) * Audio *****************************************************************************/ static void -nvd0_audio_mode_set(struct drm_encoder *encoder, struct drm_display_mode *mode) +nv50_audio_mode_set(struct drm_encoder *encoder, struct drm_display_mode *mode) { struct nouveau_encoder *nv_encoder = nouveau_encoder(encoder); struct nouveau_connector *nv_connector; - struct nvd0_disp *disp = nvd0_disp(encoder->dev); + struct nv50_disp *disp = nv50_disp(encoder->dev); nv_connector = nouveau_encoder_connector_get(nv_encoder); if (!drm_detect_monitor_audio(nv_connector->edid)) @@ -1574,10 +1574,10 @@ nvd0_audio_mode_set(struct drm_encoder *encoder, struct drm_display_mode *mode) } static void -nvd0_audio_disconnect(struct drm_encoder *encoder) +nv50_audio_disconnect(struct drm_encoder *encoder) { struct nouveau_encoder *nv_encoder = nouveau_encoder(encoder); - struct nvd0_disp *disp = nvd0_disp(encoder->dev); + struct nv50_disp *disp = nv50_disp(encoder->dev); nv_exec(disp->core, NVA3_DISP_SOR_HDA_ELD + nv_encoder->or, NULL, 0); } @@ -1586,12 +1586,12 @@ nvd0_audio_disconnect(struct drm_encoder *encoder) * HDMI *****************************************************************************/ static void -nvd0_hdmi_mode_set(struct drm_encoder *encoder, struct drm_display_mode *mode) +nv50_hdmi_mode_set(struct drm_encoder *encoder, struct drm_display_mode *mode) { struct nouveau_encoder *nv_encoder = nouveau_encoder(encoder); struct nouveau_crtc *nv_crtc = nouveau_crtc(encoder->crtc); struct nouveau_connector *nv_connector; - struct nvd0_disp *disp = nvd0_disp(encoder->dev); + struct nv50_disp *disp = nv50_disp(encoder->dev); const u32 moff = (nv_crtc->index << 3) | nv_encoder->or; u32 rekey = 56; /* binary driver, and tegra constant */ u32 max_ac_packet; @@ -1609,18 +1609,18 @@ nvd0_hdmi_mode_set(struct drm_encoder *encoder, struct drm_display_mode *mode) NV84_DISP_SOR_HDMI_PWR_STATE_ON | (max_ac_packet << 16) | rekey); - nvd0_audio_mode_set(encoder, mode); + nv50_audio_mode_set(encoder, mode); } static void -nvd0_hdmi_disconnect(struct drm_encoder *encoder) +nv50_hdmi_disconnect(struct drm_encoder *encoder) { struct nouveau_encoder *nv_encoder = nouveau_encoder(encoder); struct nouveau_crtc *nv_crtc = nouveau_crtc(nv_encoder->crtc); - struct nvd0_disp *disp = nvd0_disp(encoder->dev); + struct nv50_disp *disp = nv50_disp(encoder->dev); const u32 moff = (nv_crtc->index << 3) | nv_encoder->or; - nvd0_audio_disconnect(encoder); + nv50_audio_disconnect(encoder); nv_call(disp->core, NV84_DISP_SOR_HDMI_PWR + moff, 0x00000000); } @@ -1629,11 +1629,11 @@ nvd0_hdmi_disconnect(struct drm_encoder *encoder) * SOR *****************************************************************************/ static void -nvd0_sor_dpms(struct drm_encoder *encoder, int mode) +nv50_sor_dpms(struct drm_encoder *encoder, int mode) { struct nouveau_encoder *nv_encoder = nouveau_encoder(encoder); struct drm_device *dev = encoder->dev; - struct nvd0_disp *disp = nvd0_disp(dev); + struct nv50_disp *disp = nv50_disp(dev); struct drm_encoder *partner; int or = nv_encoder->or; @@ -1660,7 +1660,7 @@ nvd0_sor_dpms(struct drm_encoder *encoder, int mode) } static bool -nvd0_sor_mode_fixup(struct drm_encoder *encoder, +nv50_sor_mode_fixup(struct drm_encoder *encoder, const struct drm_display_mode *mode, struct drm_display_mode *adjusted_mode) { @@ -1680,19 +1680,19 @@ nvd0_sor_mode_fixup(struct drm_encoder *encoder, } static void -nvd0_sor_disconnect(struct drm_encoder *encoder) +nv50_sor_disconnect(struct drm_encoder *encoder) { struct nouveau_encoder *nv_encoder = nouveau_encoder(encoder); - struct nvd0_mast *mast = nvd0_mast(encoder->dev); + struct nv50_mast *mast = nv50_mast(encoder->dev); const int or = nv_encoder->or; u32 *push; if (nv_encoder->crtc) { - nvd0_crtc_prepare(nv_encoder->crtc); + nv50_crtc_prepare(nv_encoder->crtc); push = evo_wait(mast, 4); if (push) { - if (nvd0_vers(mast) < NVD0_DISP_MAST_CLASS) { + if (nv50_vers(mast) < NVD0_DISP_MAST_CLASS) { evo_mthd(push, 0x0600 + (or * 0x40), 1); evo_data(push, 0x00000000); } else { @@ -1705,7 +1705,7 @@ nvd0_sor_disconnect(struct drm_encoder *encoder) evo_kick(push, mast); } - nvd0_hdmi_disconnect(encoder); + nv50_hdmi_disconnect(encoder); } nv_encoder->last_dpms = DRM_MODE_DPMS_OFF; @@ -1713,24 +1713,24 @@ nvd0_sor_disconnect(struct drm_encoder *encoder) } static void -nvd0_sor_prepare(struct drm_encoder *encoder) +nv50_sor_prepare(struct drm_encoder *encoder) { - nvd0_sor_disconnect(encoder); + nv50_sor_disconnect(encoder); if (nouveau_encoder(encoder)->dcb->type == DCB_OUTPUT_DP) evo_sync(encoder->dev); } static void -nvd0_sor_commit(struct drm_encoder *encoder) +nv50_sor_commit(struct drm_encoder *encoder) { } static void -nvd0_sor_mode_set(struct drm_encoder *encoder, struct drm_display_mode *umode, +nv50_sor_mode_set(struct drm_encoder *encoder, struct drm_display_mode *umode, struct drm_display_mode *mode) { - struct nvd0_disp *disp = nvd0_disp(encoder->dev); - struct nvd0_mast *mast = nvd0_mast(encoder->dev); + struct nv50_disp *disp = nv50_disp(encoder->dev); + struct nv50_mast *mast = nv50_mast(encoder->dev); struct drm_device *dev = encoder->dev; struct nouveau_drm *drm = nouveau_drm(dev); struct nouveau_encoder *nv_encoder = nouveau_encoder(encoder); @@ -1754,7 +1754,7 @@ nvd0_sor_mode_set(struct drm_encoder *encoder, struct drm_display_mode *umode, proto = 0x2; } - nvd0_hdmi_mode_set(encoder, mode); + nv50_hdmi_mode_set(encoder, mode); break; case DCB_OUTPUT_LVDS: proto = 0x0; @@ -1806,11 +1806,11 @@ nvd0_sor_mode_set(struct drm_encoder *encoder, struct drm_display_mode *umode, break; } - nvd0_sor_dpms(encoder, DRM_MODE_DPMS_ON); + nv50_sor_dpms(encoder, DRM_MODE_DPMS_ON); - push = evo_wait(nvd0_mast(dev), 8); + push = evo_wait(nv50_mast(dev), 8); if (push) { - if (nvd0_vers(mast) < NVD0_DISP_CLASS) { + if (nv50_vers(mast) < NVD0_DISP_CLASS) { evo_mthd(push, 0x0600 + (nv_encoder->or * 0x040), 1); evo_data(push, (depth << 16) | (proto << 8) | owner); } else { @@ -1839,28 +1839,28 @@ nvd0_sor_mode_set(struct drm_encoder *encoder, struct drm_display_mode *umode, } static void -nvd0_sor_destroy(struct drm_encoder *encoder) +nv50_sor_destroy(struct drm_encoder *encoder) { drm_encoder_cleanup(encoder); kfree(encoder); } -static const struct drm_encoder_helper_funcs nvd0_sor_hfunc = { - .dpms = nvd0_sor_dpms, - .mode_fixup = nvd0_sor_mode_fixup, - .prepare = nvd0_sor_prepare, - .commit = nvd0_sor_commit, - .mode_set = nvd0_sor_mode_set, - .disable = nvd0_sor_disconnect, - .get_crtc = nvd0_display_crtc_get, +static const struct drm_encoder_helper_funcs nv50_sor_hfunc = { + .dpms = nv50_sor_dpms, + .mode_fixup = nv50_sor_mode_fixup, + .prepare = nv50_sor_prepare, + .commit = nv50_sor_commit, + .mode_set = nv50_sor_mode_set, + .disable = nv50_sor_disconnect, + .get_crtc = nv50_display_crtc_get, }; -static const struct drm_encoder_funcs nvd0_sor_func = { - .destroy = nvd0_sor_destroy, +static const struct drm_encoder_funcs nv50_sor_func = { + .destroy = nv50_sor_destroy, }; static int -nvd0_sor_create(struct drm_connector *connector, struct dcb_output *dcbe) +nv50_sor_create(struct drm_connector *connector, struct dcb_output *dcbe) { struct drm_device *dev = connector->dev; struct nouveau_encoder *nv_encoder; @@ -1876,8 +1876,8 @@ nvd0_sor_create(struct drm_connector *connector, struct dcb_output *dcbe) encoder = to_drm_encoder(nv_encoder); encoder->possible_crtcs = dcbe->heads; encoder->possible_clones = 0; - drm_encoder_init(dev, encoder, &nvd0_sor_func, DRM_MODE_ENCODER_TMDS); - drm_encoder_helper_add(encoder, &nvd0_sor_hfunc); + drm_encoder_init(dev, encoder, &nv50_sor_func, DRM_MODE_ENCODER_TMDS); + drm_encoder_helper_add(encoder, &nv50_sor_hfunc); drm_mode_connector_attach_encoder(connector, encoder); return 0; @@ -1887,18 +1887,18 @@ nvd0_sor_create(struct drm_connector *connector, struct dcb_output *dcbe) * Init *****************************************************************************/ void -nvd0_display_fini(struct drm_device *dev) +nv50_display_fini(struct drm_device *dev) { } int -nvd0_display_init(struct drm_device *dev) +nv50_display_init(struct drm_device *dev) { - u32 *push = evo_wait(nvd0_mast(dev), 32); + u32 *push = evo_wait(nv50_mast(dev), 32); if (push) { evo_mthd(push, 0x0088, 1); evo_data(push, NvEvoSync); - evo_kick(push, nvd0_mast(dev)); + evo_kick(push, nv50_mast(dev)); return evo_sync(dev); } @@ -1906,11 +1906,11 @@ nvd0_display_init(struct drm_device *dev) } void -nvd0_display_destroy(struct drm_device *dev) +nv50_display_destroy(struct drm_device *dev) { - struct nvd0_disp *disp = nvd0_disp(dev); + struct nv50_disp *disp = nv50_disp(dev); - nvd0_dmac_destroy(disp->core, &disp->mast.base); + nv50_dmac_destroy(disp->core, &disp->mast.base); nouveau_bo_unmap(disp->sync); nouveau_bo_ref(NULL, &disp->sync); @@ -1920,7 +1920,7 @@ nvd0_display_destroy(struct drm_device *dev) } int -nvd0_display_create(struct drm_device *dev) +nv50_display_create(struct drm_device *dev) { static const u16 oclass[] = { NVE0_DISP_CLASS, @@ -1935,7 +1935,7 @@ nvd0_display_create(struct drm_device *dev) struct nouveau_drm *drm = nouveau_drm(dev); struct dcb_table *dcb = &drm->vbios.dcb; struct drm_connector *connector, *tmp; - struct nvd0_disp *disp; + struct nv50_disp *disp; struct dcb_output *dcbe; int crtcs, ret, i; @@ -1944,9 +1944,9 @@ nvd0_display_create(struct drm_device *dev) return -ENOMEM; nouveau_display(dev)->priv = disp; - nouveau_display(dev)->dtor = nvd0_display_destroy; - nouveau_display(dev)->init = nvd0_display_init; - nouveau_display(dev)->fini = nvd0_display_fini; + nouveau_display(dev)->dtor = nv50_display_destroy; + nouveau_display(dev)->init = nv50_display_init; + nouveau_display(dev)->fini = nv50_display_fini; /* small shared memory area we use for notifiers and semaphores */ ret = nouveau_bo_new(dev, 4096, 0x1000, TTM_PL_FLAG_VRAM, @@ -1974,7 +1974,7 @@ nvd0_display_create(struct drm_device *dev) goto out; /* allocate master evo channel */ - ret = nvd0_dmac_create(disp->core, NV50_DISP_MAST_CLASS, 0, + ret = nv50_dmac_create(disp->core, NV50_DISP_MAST_CLASS, 0, &(struct nv50_display_mast_class) { .pushbuf = EVO_PUSH_HANDLE(MAST, 0), }, sizeof(struct nv50_display_mast_class), @@ -1989,7 +1989,7 @@ nvd0_display_create(struct drm_device *dev) crtcs = 2; for (i = 0; i < crtcs; i++) { - ret = nvd0_crtc_create(dev, disp->core, i); + ret = nv50_crtc_create(dev, disp->core, i); if (ret) goto out; } @@ -2010,10 +2010,10 @@ nvd0_display_create(struct drm_device *dev) case DCB_OUTPUT_TMDS: case DCB_OUTPUT_LVDS: case DCB_OUTPUT_DP: - nvd0_sor_create(connector, dcbe); + nv50_sor_create(connector, dcbe); break; case DCB_OUTPUT_ANALOG: - nvd0_dac_create(connector, dcbe); + nv50_dac_create(connector, dcbe); break; default: NV_WARN(drm, "skipping unsupported encoder %d/%d\n", @@ -2034,6 +2034,6 @@ nvd0_display_create(struct drm_device *dev) out: if (ret) - nvd0_display_destroy(dev); + nv50_display_destroy(dev); return ret; } diff --git a/drivers/gpu/drm/nouveau/nv50_display.h b/drivers/gpu/drm/nouveau/nv50_display.h index 13bc81889fd7..70da347aa8c5 100644 --- a/drivers/gpu/drm/nouveau/nv50_display.h +++ b/drivers/gpu/drm/nouveau/nv50_display.h @@ -31,15 +31,15 @@ #include "nouveau_crtc.h" #include "nouveau_reg.h" -int nvd0_display_create(struct drm_device *); -void nvd0_display_destroy(struct drm_device *); -int nvd0_display_init(struct drm_device *); -void nvd0_display_fini(struct drm_device *); +int nv50_display_create(struct drm_device *); +void nv50_display_destroy(struct drm_device *); +int nv50_display_init(struct drm_device *); +void nv50_display_fini(struct drm_device *); -void nvd0_display_flip_stop(struct drm_crtc *); -int nvd0_display_flip_next(struct drm_crtc *, struct drm_framebuffer *, +void nv50_display_flip_stop(struct drm_crtc *); +int nv50_display_flip_next(struct drm_crtc *, struct drm_framebuffer *, struct nouveau_channel *, u32 swap_interval); -struct nouveau_bo *nvd0_display_crtc_sema(struct drm_device *, int head); +struct nouveau_bo *nv50_display_crtc_sema(struct drm_device *, int head); #endif /* __NV50_DISPLAY_H__ */ diff --git a/drivers/gpu/drm/nouveau/nv50_fence.c b/drivers/gpu/drm/nouveau/nv50_fence.c index 43936badef82..e0763ea88ee2 100644 --- a/drivers/gpu/drm/nouveau/nv50_fence.c +++ b/drivers/gpu/drm/nouveau/nv50_fence.c @@ -70,7 +70,7 @@ nv50_fence_context_new(struct nouveau_channel *chan) /* dma objects for display sync channel semaphore blocks */ for (i = 0; !ret && i < dev->mode_config.num_crtc; i++) { - struct nouveau_bo *bo = nvd0_display_crtc_sema(dev, i); + struct nouveau_bo *bo = nv50_display_crtc_sema(dev, i); ret = nouveau_object_new(nv_object(chan->cli), chan->handle, NvEvoSema0 + i, 0x003d, diff --git a/drivers/gpu/drm/nouveau/nv84_fence.c b/drivers/gpu/drm/nouveau/nv84_fence.c index edaf5a1363f0..c686650584b6 100644 --- a/drivers/gpu/drm/nouveau/nv84_fence.c +++ b/drivers/gpu/drm/nouveau/nv84_fence.c @@ -127,7 +127,7 @@ nv84_fence_context_new(struct nouveau_channel *chan) /* dma objects for display sync channel semaphore blocks */ for (i = 0; !ret && i < dev->mode_config.num_crtc; i++) { - struct nouveau_bo *bo = nvd0_display_crtc_sema(dev, i); + struct nouveau_bo *bo = nv50_display_crtc_sema(dev, i); ret = nouveau_object_new(nv_object(chan->cli), chan->handle, NvEvoSema0 + i, 0x003d, diff --git a/drivers/gpu/drm/nouveau/nvc0_fence.c b/drivers/gpu/drm/nouveau/nvc0_fence.c index 25180f0ad95d..2747baaa3c39 100644 --- a/drivers/gpu/drm/nouveau/nvc0_fence.c +++ b/drivers/gpu/drm/nouveau/nvc0_fence.c @@ -115,7 +115,7 @@ nvc0_fence_context_del(struct nouveau_channel *chan) int i; for (i = 0; i < dev->mode_config.num_crtc; i++) { - struct nouveau_bo *bo = nvd0_display_crtc_sema(dev, i); + struct nouveau_bo *bo = nv50_display_crtc_sema(dev, i); nouveau_bo_vma_del(bo, &fctx->dispc_vma[i]); } @@ -146,7 +146,7 @@ nvc0_fence_context_new(struct nouveau_channel *chan) /* map display semaphore buffers into channel's vm */ for (i = 0; !ret && i < chan->drm->dev->mode_config.num_crtc; i++) { - struct nouveau_bo *bo = nvd0_display_crtc_sema(chan->drm->dev, i); + struct nouveau_bo *bo = nv50_display_crtc_sema(chan->drm->dev, i); ret = nouveau_bo_vma_add(bo, client->vm, &fctx->dispc_vma[i]); } |