linux-tegra.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH 00/12] drm/nouveau: support for GK20A, cont'd
@ 2014-03-24  8:42 Alexandre Courbot
  2014-03-24  8:42 ` [PATCH 03/12] drm/nouveau/bar: only ioremap BAR3 if it exists Alexandre Courbot
                   ` (4 more replies)
  0 siblings, 5 replies; 52+ messages in thread
From: Alexandre Courbot @ 2014-03-24  8:42 UTC (permalink / raw)
  To: Ben Skeggs
  Cc: Thierry Reding, nouveau-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW,
	dri-devel-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW,
	linux-tegra-u79uwXL29TY76Z2rM5mHXA,
	linux-kernel-u79uwXL29TY76Z2rM5mHXA,
	gnurou-Re5JQEeQqe8AvxtiuMwx3w, Alexandre Courbot

Hi everyone,

Here is the second batch of patches to add GK20A support to Nouveau. This time
we are adding the actual chip support, and this series brings the driver to a
point where a slightly-tweaked Mesa successfully runs shaders and renders
triangles on GBM! Many thanks to Thierry Reding and the people on the
#nouveau IRC channel for their help without which we would not have reached
this milestone.

A few lines of hacks (not included here) are still needed to deal with cached
mappings triggering external aborts and CPU/GPU memory coherency issues, but I
hope to understand and address these issues next.

Most of the changes below have already been seen (and sometimes reviewed) in an
earlier patchset. What has been added is proper PGRAPH support (still needing
an external firmware and mostly reusing NVE4's code) as well as a better RAM
implementation.

How to represent and manage VRAM has been the hardest part to deal with, since
GK20A shares the system memory with the CPU without any kind of partition. I
have tried various approaches (included some in which no RAM object ever gets
instanciated) and finally decided to go for one using DMA-contiguous memory
allocations and relying on BAR mappings for kernel access and exposure to
user-space, as it fits better with existing code and keeps us safe from most of
the CPU/GPU memory coherency issues (at the cost of some performance).

Looking forward to your review of these few patches! :)

Cheers,
Alex.

Alexandre Courbot (12):
  drm/nouveau: fix missing newline
  drm/nouveau/timer: skip calibration on GK20A
  drm/nouveau/bar: only ioremap BAR3 if it exists
  drm/nouveau/bar/nvc0: support chips without BAR3
  drm/nouveau/fifo: add GK20A support
  drm/nouveau/ibus: add GK20A support
  drm/nouveau/fb: add GK20A support
  drm/nouveau/graph: enable when using external firmware
  drm/nouveau/graph: pad firmware code at load time
  drm/nouveau/graph: add GK20A support
  drm/nouveau: support GK20A in nouveau_accel_init()
  drm/nouveau: support for probing GK20A

 drivers/gpu/drm/nouveau/Makefile                   |   5 +
 drivers/gpu/drm/nouveau/core/engine/device/nve0.c  |  20 +++
 drivers/gpu/drm/nouveau/core/engine/fifo/nve0.h    |   1 +
 drivers/gpu/drm/nouveau/core/engine/fifo/nvea.c    |  35 +++++
 .../gpu/drm/nouveau/core/engine/graph/ctxnve4.c    |   4 +-
 drivers/gpu/drm/nouveau/core/engine/graph/nvc0.c   |  12 +-
 drivers/gpu/drm/nouveau/core/engine/graph/nvc0.h   |   9 ++
 drivers/gpu/drm/nouveau/core/engine/graph/nve4.c   |   2 +-
 drivers/gpu/drm/nouveau/core/engine/graph/nvea.c   |  75 +++++++++
 drivers/gpu/drm/nouveau/core/include/engine/fifo.h |   1 +
 .../gpu/drm/nouveau/core/include/engine/graph.h    |   1 +
 drivers/gpu/drm/nouveau/core/include/subdev/fb.h   |   1 +
 drivers/gpu/drm/nouveau/core/include/subdev/ibus.h |   1 +
 drivers/gpu/drm/nouveau/core/subdev/bar/base.c     |   7 +-
 drivers/gpu/drm/nouveau/core/subdev/bar/nvc0.c     | 101 +++++++------
 drivers/gpu/drm/nouveau/core/subdev/fb/nvea.c      |  56 +++++++
 drivers/gpu/drm/nouveau/core/subdev/fb/priv.h      |   1 +
 drivers/gpu/drm/nouveau/core/subdev/fb/ramnvea.c   | 168 +++++++++++++++++++++
 drivers/gpu/drm/nouveau/core/subdev/ibus/nvea.c    | 110 ++++++++++++++
 drivers/gpu/drm/nouveau/core/subdev/timer/nv04.c   |  19 ++-
 drivers/gpu/drm/nouveau/nouveau_drm.c              |  12 +-
 21 files changed, 578 insertions(+), 63 deletions(-)
 create mode 100644 drivers/gpu/drm/nouveau/core/engine/fifo/nvea.c
 create mode 100644 drivers/gpu/drm/nouveau/core/engine/graph/nvea.c
 create mode 100644 drivers/gpu/drm/nouveau/core/subdev/fb/nvea.c
 create mode 100644 drivers/gpu/drm/nouveau/core/subdev/fb/ramnvea.c
 create mode 100644 drivers/gpu/drm/nouveau/core/subdev/ibus/nvea.c

-- 
1.9.1

^ permalink raw reply	[flat|nested] 52+ messages in thread

end of thread, other threads:[~2014-04-16  5:57 UTC | newest]

Thread overview: 52+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2014-03-24  8:42 [PATCH 00/12] drm/nouveau: support for GK20A, cont'd Alexandre Courbot
2014-03-24  8:42 ` [PATCH 03/12] drm/nouveau/bar: only ioremap BAR3 if it exists Alexandre Courbot
     [not found]   ` <1395650554-31925-4-git-send-email-acourbot-DDmLM1+adcrQT0dZR+AlfA@public.gmane.org>
2014-03-24 22:13     ` Thierry Reding
2014-03-26  4:20       ` Ben Skeggs
2014-03-24  8:42 ` [PATCH 04/12] drm/nouveau/bar/nvc0: support chips without BAR3 Alexandre Courbot
     [not found]   ` <1395650554-31925-5-git-send-email-acourbot-DDmLM1+adcrQT0dZR+AlfA@public.gmane.org>
2014-03-24 22:10     ` Thierry Reding
2014-04-02 13:47       ` Alexandre Courbot
2014-03-24  8:42 ` [PATCH 05/12] drm/nouveau/fifo: add GK20A support Alexandre Courbot
     [not found]   ` <1395650554-31925-6-git-send-email-acourbot-DDmLM1+adcrQT0dZR+AlfA@public.gmane.org>
2014-03-24 22:14     ` Thierry Reding
     [not found] ` <1395650554-31925-1-git-send-email-acourbot-DDmLM1+adcrQT0dZR+AlfA@public.gmane.org>
2014-03-24  8:42   ` [PATCH 01/12] drm/nouveau: fix missing newline Alexandre Courbot
     [not found]     ` <1395650554-31925-2-git-send-email-acourbot-DDmLM1+adcrQT0dZR+AlfA@public.gmane.org>
2014-03-24 21:49       ` Thierry Reding
2014-03-24  8:42   ` [PATCH 02/12] drm/nouveau/timer: skip calibration on GK20A Alexandre Courbot
     [not found]     ` <1395650554-31925-3-git-send-email-acourbot-DDmLM1+adcrQT0dZR+AlfA@public.gmane.org>
2014-03-24 21:54       ` Thierry Reding
2014-03-26  4:19         ` Ben Skeggs
     [not found]           ` <CACAvsv54BF3cD6y59=kQ=1j-S9tGixTz_J3gx2mbOEkB2eQ4cA-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2014-04-11  2:46             ` Alexandre Courbot
     [not found]               ` <CAAVeFuK-6RAfmZ8Zi3+bX_ibmPxPKEy7oT9YiLJWXpLMx3PsFw-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2014-04-11  7:31                 ` Ben Skeggs
     [not found]                   ` <CACAvsv7Z7OfEx89FYm1F_+Lpb2q33Ay3zph3nRdNCj3PO=vR8w-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2014-04-11  7:34                     ` Alexandre Courbot
2014-04-14  8:35                       ` Ben Skeggs
     [not found]                         ` <CACAvsv7gsRrXAk-=M08hjvhrRWvi80wrgRAp1M5T66zMa5ydtA-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2014-04-15  6:10                           ` Alexandre Courbot
2014-03-24  8:42   ` [PATCH 06/12] drm/nouveau/ibus: add GK20A support Alexandre Courbot
     [not found]     ` <1395650554-31925-7-git-send-email-acourbot-DDmLM1+adcrQT0dZR+AlfA@public.gmane.org>
2014-03-24 22:34       ` Thierry Reding
2014-04-02 13:52         ` Alexandre Courbot
     [not found]           ` <CAAVeFuKezGqPnmi=XJW1FrL-3e8hyqdjuY83VEh496SLm+0mFQ-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2014-04-02 14:18             ` [Nouveau] " Ilia Mirkin
     [not found]               ` <CAKb7Uvj_+s+PTbziGD_jb=ryk372vgxSTOrmxOZVGUghHnveAw-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2014-04-02 14:22                 ` Alexandre Courbot
2014-03-24  8:42   ` [PATCH 07/12] drm/nouveau/fb: " Alexandre Courbot
2014-03-24  8:42   ` [PATCH 08/12] drm/nouveau/graph: enable when using external firmware Alexandre Courbot
     [not found]     ` <1395650554-31925-9-git-send-email-acourbot-DDmLM1+adcrQT0dZR+AlfA@public.gmane.org>
2014-03-24 22:58       ` Thierry Reding
2014-03-26  4:21         ` Ben Skeggs
2014-04-02 13:53           ` Alexandre Courbot
2014-03-24  8:42   ` [PATCH 09/12] drm/nouveau/graph: pad firmware code at load time Alexandre Courbot
     [not found]     ` <1395650554-31925-10-git-send-email-acourbot-DDmLM1+adcrQT0dZR+AlfA@public.gmane.org>
2014-03-24 23:02       ` Thierry Reding
2014-03-26  4:22       ` Ben Skeggs
     [not found]         ` <CACAvsv6eCoWEU7ZNd5158-V3n=ZVo5O04CZa2EWE78e_tZEXPA-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2014-04-02 13:54           ` [Nouveau] " Alexandre Courbot
2014-03-24  8:42   ` [PATCH 10/12] drm/nouveau/graph: add GK20A support Alexandre Courbot
     [not found]     ` <1395650554-31925-11-git-send-email-acourbot-DDmLM1+adcrQT0dZR+AlfA@public.gmane.org>
2014-03-26  4:24       ` Ben Skeggs
2014-04-02 14:03         ` Alexandre Courbot
2014-04-02 23:11           ` Ben Skeggs
2014-03-24  8:42   ` [PATCH 11/12] drm/nouveau: support GK20A in nouveau_accel_init() Alexandre Courbot
     [not found]     ` <1395650554-31925-12-git-send-email-acourbot-DDmLM1+adcrQT0dZR+AlfA@public.gmane.org>
2014-03-24 23:10       ` Thierry Reding
2014-03-26  4:27         ` Ben Skeggs
2014-04-02 14:14           ` Alexandre Courbot
2014-04-02 14:23             ` [Nouveau] " Ilia Mirkin
2014-04-02 23:14               ` Ben Skeggs
     [not found]           ` <CACAvsv4FHqwAF6FOaMF1sQLwAfBOd6uFgsZ+VdwCHoR4qsVbVw-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2014-04-16  5:57             ` Alexandre Courbot
2014-03-24  8:42   ` [PATCH 12/12] drm/nouveau: support for probing GK20A Alexandre Courbot
     [not found]     ` <1395650554-31925-13-git-send-email-acourbot-DDmLM1+adcrQT0dZR+AlfA@public.gmane.org>
2014-03-24 23:11       ` Thierry Reding
2014-03-26  4:28     ` [Nouveau] " Ben Skeggs
2014-04-02 14:19       ` Alexandre Courbot
2014-03-24 13:19 ` [PATCH 00/12] drm/nouveau: support for GK20A, cont'd Lucas Stach
     [not found]   ` <1395667191.5062.18.camel-WzVe3FnzCwFR6QfukMTsflXZhhPuCNm+@public.gmane.org>
2014-03-26  6:33     ` Alexandre Courbot
     [not found]       ` <CAAVeFu+s+hrKdiHqxvxAOSnq-Jm_g3PY1wT3TgwpX1OGP-Niog-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2014-03-26 10:33         ` Lucas Stach
     [not found]           ` <1395830031.7930.8.camel-WzVe3FnzCwFR6QfukMTsflXZhhPuCNm+@public.gmane.org>
2014-03-27  3:50             ` Alexandre Courbot

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).