diff options
| -rw-r--r-- | drivers/gpu/drm/nouveau/core/engine/bsp/nv98.c | 52 | ||||
| -rw-r--r-- | drivers/gpu/drm/nouveau/core/engine/fifo/nv84.c | 2 | ||||
| -rw-r--r-- | drivers/gpu/drm/nouveau/core/engine/ppp/nv98.c | 52 | ||||
| -rw-r--r-- | drivers/gpu/drm/nouveau/core/engine/vp/nv98.c | 47 | ||||
| -rw-r--r-- | drivers/gpu/drm/nouveau/core/subdev/mc/nv98.c | 3 | ||||
| -rw-r--r-- | drivers/gpu/drm/nouveau/core/subdev/vm/nv50.c | 1 |
6 files changed, 104 insertions, 53 deletions
diff --git a/drivers/gpu/drm/nouveau/core/engine/bsp/nv98.c b/drivers/gpu/drm/nouveau/core/engine/bsp/nv98.c index 8bf92b0e6d82..6b089e022fd2 100644 --- a/drivers/gpu/drm/nouveau/core/engine/bsp/nv98.c +++ b/drivers/gpu/drm/nouveau/core/engine/bsp/nv98.c | |||
| @@ -19,16 +19,14 @@ | |||
| 19 | * ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR | 19 | * ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR |
| 20 | * OTHER DEALINGS IN THE SOFTWARE. | 20 | * OTHER DEALINGS IN THE SOFTWARE. |
| 21 | * | 21 | * |
| 22 | * Authors: Ben Skeggs | 22 | * Authors: Ben Skeggs, Maarten Lankhorst, Ilia Mirkin |
| 23 | */ | 23 | */ |
| 24 | 24 | ||
| 25 | #include <core/engctx.h> | 25 | #include <engine/falcon.h> |
| 26 | #include <core/class.h> | ||
| 27 | |||
| 28 | #include <engine/bsp.h> | 26 | #include <engine/bsp.h> |
| 29 | 27 | ||
| 30 | struct nv98_bsp_priv { | 28 | struct nv98_bsp_priv { |
| 31 | struct nouveau_engine base; | 29 | struct nouveau_falcon base; |
| 32 | }; | 30 | }; |
| 33 | 31 | ||
| 34 | /******************************************************************************* | 32 | /******************************************************************************* |
| @@ -37,31 +35,49 @@ struct nv98_bsp_priv { | |||
| 37 | 35 | ||
| 38 | static struct nouveau_oclass | 36 | static struct nouveau_oclass |
| 39 | nv98_bsp_sclass[] = { | 37 | nv98_bsp_sclass[] = { |
| 38 | { 0x88b1, &nouveau_object_ofuncs }, | ||
| 39 | { 0x85b1, &nouveau_object_ofuncs }, | ||
| 40 | { 0x86b1, &nouveau_object_ofuncs }, | ||
| 40 | {}, | 41 | {}, |
| 41 | }; | 42 | }; |
| 42 | 43 | ||
| 43 | /******************************************************************************* | 44 | /******************************************************************************* |
| 44 | * BSP context | 45 | * PBSP context |
| 45 | ******************************************************************************/ | 46 | ******************************************************************************/ |
| 46 | 47 | ||
| 47 | static struct nouveau_oclass | 48 | static struct nouveau_oclass |
| 48 | nv98_bsp_cclass = { | 49 | nv98_bsp_cclass = { |
| 49 | .handle = NV_ENGCTX(BSP, 0x98), | 50 | .handle = NV_ENGCTX(BSP, 0x98), |
| 50 | .ofuncs = &(struct nouveau_ofuncs) { | 51 | .ofuncs = &(struct nouveau_ofuncs) { |
| 51 | .ctor = _nouveau_engctx_ctor, | 52 | .ctor = _nouveau_falcon_context_ctor, |
| 52 | .dtor = _nouveau_engctx_dtor, | 53 | .dtor = _nouveau_falcon_context_dtor, |
| 53 | .init = _nouveau_engctx_init, | 54 | .init = _nouveau_falcon_context_init, |
| 54 | .fini = _nouveau_engctx_fini, | 55 | .fini = _nouveau_falcon_context_fini, |
| 55 | .rd32 = _nouveau_engctx_rd32, | 56 | .rd32 = _nouveau_falcon_context_rd32, |
| 56 | .wr32 = _nouveau_engctx_wr32, | 57 | .wr32 = _nouveau_falcon_context_wr32, |
| 57 | }, | 58 | }, |
| 58 | }; | 59 | }; |
| 59 | 60 | ||
| 60 | /******************************************************************************* | 61 | /******************************************************************************* |
| 61 | * BSP engine/subdev functions | 62 | * PBSP engine/subdev functions |
| 62 | ******************************************************************************/ | 63 | ******************************************************************************/ |
| 63 | 64 | ||
| 64 | static int | 65 | static int |
| 66 | nv98_bsp_init(struct nouveau_object *object) | ||
| 67 | { | ||
| 68 | struct nv98_bsp_priv *priv = (void *)object; | ||
| 69 | int ret; | ||
| 70 | |||
| 71 | ret = nouveau_falcon_init(&priv->base); | ||
| 72 | if (ret) | ||
| 73 | return ret; | ||
| 74 | |||
| 75 | nv_wr32(priv, 0x084010, 0x0000ffd2); | ||
| 76 | nv_wr32(priv, 0x08401c, 0x0000fff2); | ||
| 77 | return 0; | ||
| 78 | } | ||
| 79 | |||
| 80 | static int | ||
| 65 | nv98_bsp_ctor(struct nouveau_object *parent, struct nouveau_object *engine, | 81 | nv98_bsp_ctor(struct nouveau_object *parent, struct nouveau_object *engine, |
| 66 | struct nouveau_oclass *oclass, void *data, u32 size, | 82 | struct nouveau_oclass *oclass, void *data, u32 size, |
| 67 | struct nouveau_object **pobject) | 83 | struct nouveau_object **pobject) |
| @@ -69,7 +85,7 @@ nv98_bsp_ctor(struct nouveau_object *parent, struct nouveau_object *engine, | |||
| 69 | struct nv98_bsp_priv *priv; | 85 | struct nv98_bsp_priv *priv; |
| 70 | int ret; | 86 | int ret; |
| 71 | 87 | ||
| 72 | ret = nouveau_engine_create(parent, engine, oclass, true, | 88 | ret = nouveau_falcon_create(parent, engine, oclass, 0x084000, true, |
| 73 | "PBSP", "bsp", &priv); | 89 | "PBSP", "bsp", &priv); |
| 74 | *pobject = nv_object(priv); | 90 | *pobject = nv_object(priv); |
| 75 | if (ret) | 91 | if (ret) |
| @@ -86,8 +102,10 @@ nv98_bsp_oclass = { | |||
| 86 | .handle = NV_ENGINE(BSP, 0x98), | 102 | .handle = NV_ENGINE(BSP, 0x98), |
| 87 | .ofuncs = &(struct nouveau_ofuncs) { | 103 | .ofuncs = &(struct nouveau_ofuncs) { |
| 88 | .ctor = nv98_bsp_ctor, | 104 | .ctor = nv98_bsp_ctor, |
| 89 | .dtor = _nouveau_engine_dtor, | 105 | .dtor = _nouveau_falcon_dtor, |
| 90 | .init = _nouveau_engine_init, | 106 | .init = nv98_bsp_init, |
| 91 | .fini = _nouveau_engine_fini, | 107 | .fini = _nouveau_falcon_fini, |
| 108 | .rd32 = _nouveau_falcon_rd32, | ||
| 109 | .wr32 = _nouveau_falcon_wr32, | ||
| 92 | }, | 110 | }, |
| 93 | }; | 111 | }; |
diff --git a/drivers/gpu/drm/nouveau/core/engine/fifo/nv84.c b/drivers/gpu/drm/nouveau/core/engine/fifo/nv84.c index 433b2d8b73b2..91a87cd7195a 100644 --- a/drivers/gpu/drm/nouveau/core/engine/fifo/nv84.c +++ b/drivers/gpu/drm/nouveau/core/engine/fifo/nv84.c | |||
| @@ -56,6 +56,7 @@ nv84_fifo_context_attach(struct nouveau_object *parent, | |||
| 56 | case NVDEV_ENGINE_SW : return 0; | 56 | case NVDEV_ENGINE_SW : return 0; |
| 57 | case NVDEV_ENGINE_GR : addr = 0x0020; break; | 57 | case NVDEV_ENGINE_GR : addr = 0x0020; break; |
| 58 | case NVDEV_ENGINE_VP : addr = 0x0040; break; | 58 | case NVDEV_ENGINE_VP : addr = 0x0040; break; |
| 59 | case NVDEV_ENGINE_PPP : | ||
| 59 | case NVDEV_ENGINE_MPEG : addr = 0x0060; break; | 60 | case NVDEV_ENGINE_MPEG : addr = 0x0060; break; |
| 60 | case NVDEV_ENGINE_BSP : addr = 0x0080; break; | 61 | case NVDEV_ENGINE_BSP : addr = 0x0080; break; |
| 61 | case NVDEV_ENGINE_CRYPT: addr = 0x00a0; break; | 62 | case NVDEV_ENGINE_CRYPT: addr = 0x00a0; break; |
| @@ -91,6 +92,7 @@ nv84_fifo_context_detach(struct nouveau_object *parent, bool suspend, | |||
| 91 | case NVDEV_ENGINE_SW : return 0; | 92 | case NVDEV_ENGINE_SW : return 0; |
| 92 | case NVDEV_ENGINE_GR : engn = 0; addr = 0x0020; break; | 93 | case NVDEV_ENGINE_GR : engn = 0; addr = 0x0020; break; |
| 93 | case NVDEV_ENGINE_VP : engn = 3; addr = 0x0040; break; | 94 | case NVDEV_ENGINE_VP : engn = 3; addr = 0x0040; break; |
| 95 | case NVDEV_ENGINE_PPP : | ||
| 94 | case NVDEV_ENGINE_MPEG : engn = 1; addr = 0x0060; break; | 96 | case NVDEV_ENGINE_MPEG : engn = 1; addr = 0x0060; break; |
| 95 | case NVDEV_ENGINE_BSP : engn = 5; addr = 0x0080; break; | 97 | case NVDEV_ENGINE_BSP : engn = 5; addr = 0x0080; break; |
| 96 | case NVDEV_ENGINE_CRYPT: engn = 4; addr = 0x00a0; break; | 98 | case NVDEV_ENGINE_CRYPT: engn = 4; addr = 0x00a0; break; |
diff --git a/drivers/gpu/drm/nouveau/core/engine/ppp/nv98.c b/drivers/gpu/drm/nouveau/core/engine/ppp/nv98.c index 5a5b2a773ed7..13bf31c40aa1 100644 --- a/drivers/gpu/drm/nouveau/core/engine/ppp/nv98.c +++ b/drivers/gpu/drm/nouveau/core/engine/ppp/nv98.c | |||
| @@ -19,21 +19,14 @@ | |||
| 19 | * ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR | 19 | * ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR |
| 20 | * OTHER DEALINGS IN THE SOFTWARE. | 20 | * OTHER DEALINGS IN THE SOFTWARE. |
| 21 | * | 21 | * |
| 22 | * Authors: Ben Skeggs | 22 | * Authors: Ben Skeggs, Maarten Lankhorst, Ilia Mirkin |
| 23 | */ | 23 | */ |
| 24 | 24 | ||
| 25 | #include <core/engine.h> | 25 | #include <engine/falcon.h> |
| 26 | #include <core/engctx.h> | ||
| 27 | #include <core/class.h> | ||
| 28 | |||
| 29 | #include <engine/ppp.h> | 26 | #include <engine/ppp.h> |
| 30 | 27 | ||
| 31 | struct nv98_ppp_priv { | 28 | struct nv98_ppp_priv { |
| 32 | struct nouveau_engine base; | 29 | struct nouveau_falcon base; |
| 33 | }; | ||
| 34 | |||
| 35 | struct nv98_ppp_chan { | ||
| 36 | struct nouveau_engctx base; | ||
| 37 | }; | 30 | }; |
| 38 | 31 | ||
| 39 | /******************************************************************************* | 32 | /******************************************************************************* |
| @@ -42,6 +35,8 @@ struct nv98_ppp_chan { | |||
| 42 | 35 | ||
| 43 | static struct nouveau_oclass | 36 | static struct nouveau_oclass |
| 44 | nv98_ppp_sclass[] = { | 37 | nv98_ppp_sclass[] = { |
| 38 | { 0x88b3, &nouveau_object_ofuncs }, | ||
| 39 | { 0x85b3, &nouveau_object_ofuncs }, | ||
| 45 | {}, | 40 | {}, |
| 46 | }; | 41 | }; |
| 47 | 42 | ||
| @@ -53,12 +48,12 @@ static struct nouveau_oclass | |||
| 53 | nv98_ppp_cclass = { | 48 | nv98_ppp_cclass = { |
| 54 | .handle = NV_ENGCTX(PPP, 0x98), | 49 | .handle = NV_ENGCTX(PPP, 0x98), |
| 55 | .ofuncs = &(struct nouveau_ofuncs) { | 50 | .ofuncs = &(struct nouveau_ofuncs) { |
| 56 | .ctor = _nouveau_engctx_ctor, | 51 | .ctor = _nouveau_falcon_context_ctor, |
| 57 | .dtor = _nouveau_engctx_dtor, | 52 | .dtor = _nouveau_falcon_context_dtor, |
| 58 | .init = _nouveau_engctx_init, | 53 | .init = _nouveau_falcon_context_init, |
| 59 | .fini = _nouveau_engctx_fini, | 54 | .fini = _nouveau_falcon_context_fini, |
| 60 | .rd32 = _nouveau_engctx_rd32, | 55 | .rd32 = _nouveau_falcon_context_rd32, |
| 61 | .wr32 = _nouveau_engctx_wr32, | 56 | .wr32 = _nouveau_falcon_context_wr32, |
| 62 | }, | 57 | }, |
| 63 | }; | 58 | }; |
| 64 | 59 | ||
| @@ -67,6 +62,21 @@ nv98_ppp_cclass = { | |||
| 67 | ******************************************************************************/ | 62 | ******************************************************************************/ |
| 68 | 63 | ||
| 69 | static int | 64 | static int |
| 65 | nv98_ppp_init(struct nouveau_object *object) | ||
| 66 | { | ||
| 67 | struct nv98_ppp_priv *priv = (void *)object; | ||
| 68 | int ret; | ||
| 69 | |||
| 70 | ret = nouveau_falcon_init(&priv->base); | ||
| 71 | if (ret) | ||
| 72 | return ret; | ||
| 73 | |||
| 74 | nv_wr32(priv, 0x086010, 0x0000ffd2); | ||
| 75 | nv_wr32(priv, 0x08601c, 0x0000fff2); | ||
| 76 | return 0; | ||
| 77 | } | ||
| 78 | |||
| 79 | static int | ||
| 70 | nv98_ppp_ctor(struct nouveau_object *parent, struct nouveau_object *engine, | 80 | nv98_ppp_ctor(struct nouveau_object *parent, struct nouveau_object *engine, |
| 71 | struct nouveau_oclass *oclass, void *data, u32 size, | 81 | struct nouveau_oclass *oclass, void *data, u32 size, |
| 72 | struct nouveau_object **pobject) | 82 | struct nouveau_object **pobject) |
| @@ -74,7 +84,7 @@ nv98_ppp_ctor(struct nouveau_object *parent, struct nouveau_object *engine, | |||
| 74 | struct nv98_ppp_priv *priv; | 84 | struct nv98_ppp_priv *priv; |
| 75 | int ret; | 85 | int ret; |
| 76 | 86 | ||
| 77 | ret = nouveau_engine_create(parent, engine, oclass, true, | 87 | ret = nouveau_falcon_create(parent, engine, oclass, 0x086000, true, |
| 78 | "PPPP", "ppp", &priv); | 88 | "PPPP", "ppp", &priv); |
| 79 | *pobject = nv_object(priv); | 89 | *pobject = nv_object(priv); |
| 80 | if (ret) | 90 | if (ret) |
| @@ -91,8 +101,10 @@ nv98_ppp_oclass = { | |||
| 91 | .handle = NV_ENGINE(PPP, 0x98), | 101 | .handle = NV_ENGINE(PPP, 0x98), |
| 92 | .ofuncs = &(struct nouveau_ofuncs) { | 102 | .ofuncs = &(struct nouveau_ofuncs) { |
| 93 | .ctor = nv98_ppp_ctor, | 103 | .ctor = nv98_ppp_ctor, |
| 94 | .dtor = _nouveau_engine_dtor, | 104 | .dtor = _nouveau_falcon_dtor, |
| 95 | .init = _nouveau_engine_init, | 105 | .init = nv98_ppp_init, |
| 96 | .fini = _nouveau_engine_fini, | 106 | .fini = _nouveau_falcon_fini, |
| 107 | .rd32 = _nouveau_falcon_rd32, | ||
| 108 | .wr32 = _nouveau_falcon_wr32, | ||
| 97 | }, | 109 | }, |
| 98 | }; | 110 | }; |
diff --git a/drivers/gpu/drm/nouveau/core/engine/vp/nv98.c b/drivers/gpu/drm/nouveau/core/engine/vp/nv98.c index 8a8236bc84de..fc9ae0ff1ef5 100644 --- a/drivers/gpu/drm/nouveau/core/engine/vp/nv98.c +++ b/drivers/gpu/drm/nouveau/core/engine/vp/nv98.c | |||
| @@ -19,16 +19,14 @@ | |||
| 19 | * ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR | 19 | * ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR |
| 20 | * OTHER DEALINGS IN THE SOFTWARE. | 20 | * OTHER DEALINGS IN THE SOFTWARE. |
| 21 | * | 21 | * |
| 22 | * Authors: Ben Skeggs | 22 | * Authors: Ben Skeggs, Maarten Lankhorst, Ilia Mirkin |
| 23 | */ | 23 | */ |
| 24 | 24 | ||
| 25 | #include <core/engctx.h> | 25 | #include <engine/falcon.h> |
| 26 | #include <core/class.h> | ||
| 27 | |||
| 28 | #include <engine/vp.h> | 26 | #include <engine/vp.h> |
| 29 | 27 | ||
| 30 | struct nv98_vp_priv { | 28 | struct nv98_vp_priv { |
| 31 | struct nouveau_engine base; | 29 | struct nouveau_falcon base; |
| 32 | }; | 30 | }; |
| 33 | 31 | ||
| 34 | /******************************************************************************* | 32 | /******************************************************************************* |
| @@ -37,6 +35,8 @@ struct nv98_vp_priv { | |||
| 37 | 35 | ||
| 38 | static struct nouveau_oclass | 36 | static struct nouveau_oclass |
| 39 | nv98_vp_sclass[] = { | 37 | nv98_vp_sclass[] = { |
| 38 | { 0x88b2, &nouveau_object_ofuncs }, | ||
| 39 | { 0x85b2, &nouveau_object_ofuncs }, | ||
| 40 | {}, | 40 | {}, |
| 41 | }; | 41 | }; |
| 42 | 42 | ||
| @@ -48,12 +48,12 @@ static struct nouveau_oclass | |||
| 48 | nv98_vp_cclass = { | 48 | nv98_vp_cclass = { |
| 49 | .handle = NV_ENGCTX(VP, 0x98), | 49 | .handle = NV_ENGCTX(VP, 0x98), |
| 50 | .ofuncs = &(struct nouveau_ofuncs) { | 50 | .ofuncs = &(struct nouveau_ofuncs) { |
| 51 | .ctor = _nouveau_engctx_ctor, | 51 | .ctor = _nouveau_falcon_context_ctor, |
| 52 | .dtor = _nouveau_engctx_dtor, | 52 | .dtor = _nouveau_falcon_context_dtor, |
| 53 | .init = _nouveau_engctx_init, | 53 | .init = _nouveau_falcon_context_init, |
| 54 | .fini = _nouveau_engctx_fini, | 54 | .fini = _nouveau_falcon_context_fini, |
| 55 | .rd32 = _nouveau_engctx_rd32, | 55 | .rd32 = _nouveau_falcon_context_rd32, |
| 56 | .wr32 = _nouveau_engctx_wr32, | 56 | .wr32 = _nouveau_falcon_context_wr32, |
| 57 | }, | 57 | }, |
| 58 | }; | 58 | }; |
| 59 | 59 | ||
| @@ -62,6 +62,21 @@ nv98_vp_cclass = { | |||
| 62 | ******************************************************************************/ | 62 | ******************************************************************************/ |
| 63 | 63 | ||
| 64 | static int | 64 | static int |
| 65 | nv98_vp_init(struct nouveau_object *object) | ||
| 66 | { | ||
| 67 | struct nv98_vp_priv *priv = (void *)object; | ||
| 68 | int ret; | ||
| 69 | |||
| 70 | ret = nouveau_falcon_init(&priv->base); | ||
| 71 | if (ret) | ||
| 72 | return ret; | ||
| 73 | |||
| 74 | nv_wr32(priv, 0x085010, 0x0000ffd2); | ||
| 75 | nv_wr32(priv, 0x08501c, 0x0000fff2); | ||
| 76 | return 0; | ||
| 77 | } | ||
| 78 | |||
| 79 | static int | ||
| 65 | nv98_vp_ctor(struct nouveau_object *parent, struct nouveau_object *engine, | 80 | nv98_vp_ctor(struct nouveau_object *parent, struct nouveau_object *engine, |
| 66 | struct nouveau_oclass *oclass, void *data, u32 size, | 81 | struct nouveau_oclass *oclass, void *data, u32 size, |
| 67 | struct nouveau_object **pobject) | 82 | struct nouveau_object **pobject) |
| @@ -69,7 +84,7 @@ nv98_vp_ctor(struct nouveau_object *parent, struct nouveau_object *engine, | |||
| 69 | struct nv98_vp_priv *priv; | 84 | struct nv98_vp_priv *priv; |
| 70 | int ret; | 85 | int ret; |
| 71 | 86 | ||
| 72 | ret = nouveau_engine_create(parent, engine, oclass, true, | 87 | ret = nouveau_falcon_create(parent, engine, oclass, 0x085000, true, |
| 73 | "PVP", "vp", &priv); | 88 | "PVP", "vp", &priv); |
| 74 | *pobject = nv_object(priv); | 89 | *pobject = nv_object(priv); |
| 75 | if (ret) | 90 | if (ret) |
| @@ -86,8 +101,10 @@ nv98_vp_oclass = { | |||
| 86 | .handle = NV_ENGINE(VP, 0x98), | 101 | .handle = NV_ENGINE(VP, 0x98), |
| 87 | .ofuncs = &(struct nouveau_ofuncs) { | 102 | .ofuncs = &(struct nouveau_ofuncs) { |
| 88 | .ctor = nv98_vp_ctor, | 103 | .ctor = nv98_vp_ctor, |
| 89 | .dtor = _nouveau_engine_dtor, | 104 | .dtor = _nouveau_falcon_dtor, |
| 90 | .init = _nouveau_engine_init, | 105 | .init = nv98_vp_init, |
| 91 | .fini = _nouveau_engine_fini, | 106 | .fini = _nouveau_falcon_fini, |
| 107 | .rd32 = _nouveau_falcon_rd32, | ||
| 108 | .wr32 = _nouveau_falcon_wr32, | ||
| 92 | }, | 109 | }, |
| 93 | }; | 110 | }; |
diff --git a/drivers/gpu/drm/nouveau/core/subdev/mc/nv98.c b/drivers/gpu/drm/nouveau/core/subdev/mc/nv98.c index 0d57b4d3e001..06710419a59b 100644 --- a/drivers/gpu/drm/nouveau/core/subdev/mc/nv98.c +++ b/drivers/gpu/drm/nouveau/core/subdev/mc/nv98.c | |||
| @@ -35,6 +35,7 @@ nv98_mc_intr[] = { | |||
| 35 | { 0x00001000, NVDEV_ENGINE_GR }, | 35 | { 0x00001000, NVDEV_ENGINE_GR }, |
| 36 | { 0x00004000, NVDEV_ENGINE_CRYPT }, /* NV84:NVA3 */ | 36 | { 0x00004000, NVDEV_ENGINE_CRYPT }, /* NV84:NVA3 */ |
| 37 | { 0x00008000, NVDEV_ENGINE_BSP }, | 37 | { 0x00008000, NVDEV_ENGINE_BSP }, |
| 38 | { 0x00020000, NVDEV_ENGINE_VP }, | ||
| 38 | { 0x00080000, NVDEV_SUBDEV_THERM }, /* NVA3:NVC0 */ | 39 | { 0x00080000, NVDEV_SUBDEV_THERM }, /* NVA3:NVC0 */ |
| 39 | { 0x00100000, NVDEV_SUBDEV_TIMER }, | 40 | { 0x00100000, NVDEV_SUBDEV_TIMER }, |
| 40 | { 0x00200000, NVDEV_SUBDEV_GPIO }, | 41 | { 0x00200000, NVDEV_SUBDEV_GPIO }, |
| @@ -42,7 +43,7 @@ nv98_mc_intr[] = { | |||
| 42 | { 0x04000000, NVDEV_ENGINE_DISP }, | 43 | { 0x04000000, NVDEV_ENGINE_DISP }, |
| 43 | { 0x10000000, NVDEV_SUBDEV_BUS }, | 44 | { 0x10000000, NVDEV_SUBDEV_BUS }, |
| 44 | { 0x80000000, NVDEV_ENGINE_SW }, | 45 | { 0x80000000, NVDEV_ENGINE_SW }, |
| 45 | { 0x0040d101, NVDEV_SUBDEV_FB }, | 46 | { 0x0042d101, NVDEV_SUBDEV_FB }, |
| 46 | {}, | 47 | {}, |
| 47 | }; | 48 | }; |
| 48 | 49 | ||
diff --git a/drivers/gpu/drm/nouveau/core/subdev/vm/nv50.c b/drivers/gpu/drm/nouveau/core/subdev/vm/nv50.c index 07dd1fe2d6fb..a4aa81a2173b 100644 --- a/drivers/gpu/drm/nouveau/core/subdev/vm/nv50.c +++ b/drivers/gpu/drm/nouveau/core/subdev/vm/nv50.c | |||
| @@ -174,6 +174,7 @@ nv50_vm_flush(struct nouveau_vm *vm) | |||
| 174 | case NVDEV_ENGINE_GR : vme = 0x00; break; | 174 | case NVDEV_ENGINE_GR : vme = 0x00; break; |
| 175 | case NVDEV_ENGINE_VP : vme = 0x01; break; | 175 | case NVDEV_ENGINE_VP : vme = 0x01; break; |
| 176 | case NVDEV_SUBDEV_BAR : vme = 0x06; break; | 176 | case NVDEV_SUBDEV_BAR : vme = 0x06; break; |
| 177 | case NVDEV_ENGINE_PPP : | ||
| 177 | case NVDEV_ENGINE_MPEG : vme = 0x08; break; | 178 | case NVDEV_ENGINE_MPEG : vme = 0x08; break; |
| 178 | case NVDEV_ENGINE_BSP : vme = 0x09; break; | 179 | case NVDEV_ENGINE_BSP : vme = 0x09; break; |
| 179 | case NVDEV_ENGINE_CRYPT: vme = 0x0a; break; | 180 | case NVDEV_ENGINE_CRYPT: vme = 0x0a; break; |
