All of lore.kernel.org
 help / color / mirror / Atom feed
From: Thierry Reding <thierry.reding-RM9K5IK7kjKj5M59NBduVrNAH6kLmebB@public.gmane.org>
To: Terje Bergstrom <tbergstrom-DDmLM1+adcrQT0dZR+AlfA@public.gmane.org>
Cc: linux-tegra-u79uwXL29TY76Z2rM5mHXA@public.gmane.org,
	Arto Merilainen
	<amerilainen-DDmLM1+adcrQT0dZR+AlfA@public.gmane.org>
Subject: Re: [PATCH 1/6] video: tegra: Add nvhost driver
Date: Sat, 24 Nov 2012 00:38:55 +0100	[thread overview]
Message-ID: <20121123233855.GD21555@avionic-0098.adnet.avionic-design.de> (raw)
In-Reply-To: <1353577684-7896-2-git-send-email-tbergstrom-DDmLM1+adcrQT0dZR+AlfA@public.gmane.org>

[-- Attachment #1: Type: text/plain, Size: 7859 bytes --]

On Thu, Nov 22, 2012 at 11:47:59AM +0200, Terje Bergstrom wrote:
> Add nvhost, the driver for host1x and 2D, which is a client device
> for host1x.
> 
> Change-Id: Id93a28491dc2d54049e0adce4ad287c5985b2bca
> Signed-off-by: Terje Bergstrom <tbergstrom-DDmLM1+adcrQT0dZR+AlfA@public.gmane.org>
> Signed-off-by: Arto Merilainen <amerilainen-DDmLM1+adcrQT0dZR+AlfA@public.gmane.org>
> ---
>  drivers/video/Kconfig                              |    2 +
>  drivers/video/Makefile                             |    2 +
>  drivers/video/tegra/host/Kconfig                   |   20 +
>  drivers/video/tegra/host/Makefile                  |   21 +
>  drivers/video/tegra/host/bus_client.c              |  101 ++++
>  drivers/video/tegra/host/bus_client.h              |   32 ++
>  drivers/video/tegra/host/chip_support.c            |   68 +++
>  drivers/video/tegra/host/chip_support.h            |  179 +++++++
>  drivers/video/tegra/host/debug.c                   |  255 ++++++++++
>  drivers/video/tegra/host/debug.h                   |   50 ++
>  drivers/video/tegra/host/dev.c                     |  104 ++++
>  drivers/video/tegra/host/dev.h                     |   33 ++
>  drivers/video/tegra/host/dmabuf.c                  |  151 ++++++
>  drivers/video/tegra/host/dmabuf.h                  |   51 ++
>  drivers/video/tegra/host/host1x/Makefile           |    6 +
>  drivers/video/tegra/host/host1x/host1x.c           |  320 ++++++++++++
>  drivers/video/tegra/host/host1x/host1x.h           |   97 ++++
>  .../video/tegra/host/host1x/host1x01_hardware.h    |  157 ++++++
>  drivers/video/tegra/host/host1x/host1x_cdma.c      |  488 ++++++++++++++++++
>  drivers/video/tegra/host/host1x/host1x_cdma.h      |   39 ++
>  drivers/video/tegra/host/host1x/host1x_channel.c   |  157 ++++++
>  drivers/video/tegra/host/host1x/host1x_debug.c     |  405 +++++++++++++++
>  drivers/video/tegra/host/host1x/host1x_intr.c      |  263 ++++++++++
>  drivers/video/tegra/host/host1x/host1x_syncpt.c    |  170 +++++++
>  .../video/tegra/host/host1x/hw_host1x01_channel.h  |  182 +++++++
>  drivers/video/tegra/host/host1x/hw_host1x01_sync.h |  398 +++++++++++++++
>  .../video/tegra/host/host1x/hw_host1x01_uclass.h   |  474 +++++++++++++++++
>  drivers/video/tegra/host/nvhost_acm.c              |  532 ++++++++++++++++++++
>  drivers/video/tegra/host/nvhost_acm.h              |   49 ++
>  drivers/video/tegra/host/nvhost_cdma.c             |  473 +++++++++++++++++
>  drivers/video/tegra/host/nvhost_cdma.h             |  116 +++++
>  drivers/video/tegra/host/nvhost_channel.c          |  129 +++++
>  drivers/video/tegra/host/nvhost_channel.h          |   65 +++
>  drivers/video/tegra/host/nvhost_intr.c             |  391 ++++++++++++++
>  drivers/video/tegra/host/nvhost_intr.h             |  110 ++++
>  drivers/video/tegra/host/nvhost_job.c              |  398 +++++++++++++++
>  drivers/video/tegra/host/nvhost_memmgr.c           |  252 ++++++++++
>  drivers/video/tegra/host/nvhost_memmgr.h           |   66 +++
>  drivers/video/tegra/host/nvhost_syncpt.c           |  453 +++++++++++++++++
>  drivers/video/tegra/host/nvhost_syncpt.h           |  148 ++++++
>  drivers/video/tegra/host/t20/Makefile              |    6 +
>  drivers/video/tegra/host/t20/t20.c                 |   78 +++
>  drivers/video/tegra/host/t20/t20.h                 |   29 ++
>  drivers/video/tegra/host/t30/Makefile              |    6 +
>  drivers/video/tegra/host/t30/t30.c                 |   80 +++
>  drivers/video/tegra/host/t30/t30.h                 |   29 ++
>  include/linux/nvhost.h                             |  302 +++++++++++
>  include/trace/events/nvhost.h                      |  249 +++++++++
>  48 files changed, 8186 insertions(+)
>  create mode 100644 drivers/video/tegra/host/Kconfig
>  create mode 100644 drivers/video/tegra/host/Makefile
>  create mode 100644 drivers/video/tegra/host/bus_client.c
>  create mode 100644 drivers/video/tegra/host/bus_client.h
>  create mode 100644 drivers/video/tegra/host/chip_support.c
>  create mode 100644 drivers/video/tegra/host/chip_support.h
>  create mode 100644 drivers/video/tegra/host/debug.c
>  create mode 100644 drivers/video/tegra/host/debug.h
>  create mode 100644 drivers/video/tegra/host/dev.c
>  create mode 100644 drivers/video/tegra/host/dev.h
>  create mode 100644 drivers/video/tegra/host/dmabuf.c
>  create mode 100644 drivers/video/tegra/host/dmabuf.h
>  create mode 100644 drivers/video/tegra/host/host1x/Makefile
>  create mode 100644 drivers/video/tegra/host/host1x/host1x.c
>  create mode 100644 drivers/video/tegra/host/host1x/host1x.h
>  create mode 100644 drivers/video/tegra/host/host1x/host1x01_hardware.h
>  create mode 100644 drivers/video/tegra/host/host1x/host1x_cdma.c
>  create mode 100644 drivers/video/tegra/host/host1x/host1x_cdma.h
>  create mode 100644 drivers/video/tegra/host/host1x/host1x_channel.c
>  create mode 100644 drivers/video/tegra/host/host1x/host1x_debug.c
>  create mode 100644 drivers/video/tegra/host/host1x/host1x_intr.c
>  create mode 100644 drivers/video/tegra/host/host1x/host1x_syncpt.c
>  create mode 100644 drivers/video/tegra/host/host1x/hw_host1x01_channel.h
>  create mode 100644 drivers/video/tegra/host/host1x/hw_host1x01_sync.h
>  create mode 100644 drivers/video/tegra/host/host1x/hw_host1x01_uclass.h
>  create mode 100644 drivers/video/tegra/host/nvhost_acm.c
>  create mode 100644 drivers/video/tegra/host/nvhost_acm.h
>  create mode 100644 drivers/video/tegra/host/nvhost_cdma.c
>  create mode 100644 drivers/video/tegra/host/nvhost_cdma.h
>  create mode 100644 drivers/video/tegra/host/nvhost_channel.c
>  create mode 100644 drivers/video/tegra/host/nvhost_channel.h
>  create mode 100644 drivers/video/tegra/host/nvhost_intr.c
>  create mode 100644 drivers/video/tegra/host/nvhost_intr.h
>  create mode 100644 drivers/video/tegra/host/nvhost_job.c
>  create mode 100644 drivers/video/tegra/host/nvhost_memmgr.c
>  create mode 100644 drivers/video/tegra/host/nvhost_memmgr.h
>  create mode 100644 drivers/video/tegra/host/nvhost_syncpt.c
>  create mode 100644 drivers/video/tegra/host/nvhost_syncpt.h
>  create mode 100644 drivers/video/tegra/host/t20/Makefile
>  create mode 100644 drivers/video/tegra/host/t20/t20.c
>  create mode 100644 drivers/video/tegra/host/t20/t20.h
>  create mode 100644 drivers/video/tegra/host/t30/Makefile
>  create mode 100644 drivers/video/tegra/host/t30/t30.c
>  create mode 100644 drivers/video/tegra/host/t30/t30.h
>  create mode 100644 include/linux/nvhost.h
>  create mode 100644 include/trace/events/nvhost.h

Okay, there's a huge amount of code here. From a quick look this seems
like the whole nvhost implementation as found in the L4T kernel. It'll
obviously take quite a bit of time to go through all of it.

I would really like this to be phased in in more manageable chunks. For
instance syncpoints could be added on top of the existing host1x
infrastructure (the display controllers can make use of it for VBLANK
reporting, right?), followed by channel support for command submission.

While VBLANK reporting is already rudimentarily supported using the
display controllers' VBLANK interrupts, adding syncpt based support
should be easy to do.

Last but not least, I'd really appreciate it if we could settle on one
name for this component. One place calls it graphics host, another one
refers to it as host1x and now we have an nvhost driver for it. The TRM
isn't very consistent either, unfortunately, but a number of chapters
refer to it as host1x and the clock that drives the block is also named
host1x. Those are pretty much the reasons why I chose to call the DT
node and the driver host1x and I would like to suggest we stay with it
to keep things less confusing.

Thierry

[-- Attachment #2: Type: application/pgp-signature, Size: 836 bytes --]

  parent reply	other threads:[~2012-11-23 23:38 UTC|newest]

Thread overview: 36+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2012-11-22  9:47 [PATCH 0/6] Support for Tegra 2D hardware Terje Bergstrom
     [not found] ` <1353577684-7896-1-git-send-email-tbergstrom-DDmLM1+adcrQT0dZR+AlfA@public.gmane.org>
2012-11-22  9:47   ` [PATCH 1/6] video: tegra: Add nvhost driver Terje Bergstrom
     [not found]     ` <1353577684-7896-2-git-send-email-tbergstrom-DDmLM1+adcrQT0dZR+AlfA@public.gmane.org>
2012-11-23 23:38       ` Thierry Reding [this message]
     [not found]         ` <20121123233855.GD21555-RM9K5IK7kjIyiCvfTdI0JKcOhU4Rzj621B7CTYaBSLdn68oJJulU0Q@public.gmane.org>
2012-11-24  7:00           ` Terje Bergström
     [not found]             ` <50B07084.40707-DDmLM1+adcrQT0dZR+AlfA@public.gmane.org>
2012-11-24 19:04               ` Thierry Reding
     [not found]                 ` <20121124190416.GC26154-RM9K5IK7kjIyiCvfTdI0JKcOhU4Rzj621B7CTYaBSLdn68oJJulU0Q@public.gmane.org>
2012-11-24 20:02                   ` Terje Bergström
2012-11-26  8:21                   ` Terje Bergström
     [not found]                     ` <50B32690.7020102-DDmLM1+adcrQT0dZR+AlfA@public.gmane.org>
2012-11-26  9:25                       ` Thierry Reding
     [not found]                         ` <20121126092524.GB8602-RM9K5IK7kjIyiCvfTdI0JKcOhU4Rzj621B7CTYaBSLdn68oJJulU0Q@public.gmane.org>
2012-11-26  9:33                           ` Terje Bergström
2012-11-26 13:42                           ` Terje Bergström
2012-11-22  9:48   ` [PATCH 2/6] ARM: tegra: Add auxiliary data for nvhost Terje Bergstrom
     [not found]     ` <1353577684-7896-3-git-send-email-tbergstrom-DDmLM1+adcrQT0dZR+AlfA@public.gmane.org>
2012-11-23 23:45       ` Thierry Reding
     [not found]         ` <20121123234527.GE21555-RM9K5IK7kjIyiCvfTdI0JKcOhU4Rzj621B7CTYaBSLdn68oJJulU0Q@public.gmane.org>
2012-11-24  7:09           ` Terje Bergström
     [not found]             ` <50B07297.3090001-DDmLM1+adcrQT0dZR+AlfA@public.gmane.org>
2012-11-24 19:11               ` Thierry Reding
     [not found]                 ` <20121124191103.GD26154-RM9K5IK7kjIyiCvfTdI0JKcOhU4Rzj621B7CTYaBSLdn68oJJulU0Q@public.gmane.org>
2012-11-26  9:40                   ` Terje Bergström
     [not found]                     ` <50B338F2.5060501-DDmLM1+adcrQT0dZR+AlfA@public.gmane.org>
2012-11-26 22:53                       ` Stephen Warren
2012-11-26 13:56                   ` Terje Bergström
2012-11-22  9:48   ` [PATCH 3/6] gpu: drm: tegra: Remove redundant host1x Terje Bergstrom
     [not found]     ` <1353577684-7896-4-git-send-email-tbergstrom-DDmLM1+adcrQT0dZR+AlfA@public.gmane.org>
2012-11-23 23:19       ` Thierry Reding
2012-11-22  9:48   ` [PATCH 4/6] gpu: drm: tegra: Free platform data on remove Terje Bergstrom
     [not found]     ` <1353577684-7896-5-git-send-email-tbergstrom-DDmLM1+adcrQT0dZR+AlfA@public.gmane.org>
2012-11-23 21:53       ` Thierry Reding
     [not found]         ` <20121123215305.GA21555-RM9K5IK7kjIyiCvfTdI0JKcOhU4Rzj621B7CTYaBSLdn68oJJulU0Q@public.gmane.org>
2012-11-26  7:33           ` Arto Merilainen
2012-11-22  9:48   ` [PATCH 5/6] gpu: drm: tegra: Prime support Terje Bergstrom
     [not found]     ` <1353577684-7896-6-git-send-email-tbergstrom-DDmLM1+adcrQT0dZR+AlfA@public.gmane.org>
2012-11-23 21:55       ` Thierry Reding
     [not found]         ` <20121123215528.GB21555-RM9K5IK7kjIyiCvfTdI0JKcOhU4Rzj621B7CTYaBSLdn68oJJulU0Q@public.gmane.org>
2012-11-24  7:11           ` Terje Bergström
     [not found]             ` <50B0733D.4040002-DDmLM1+adcrQT0dZR+AlfA@public.gmane.org>
2012-11-24 19:14               ` Thierry Reding
     [not found]                 ` <20121124191445.GE26154-RM9K5IK7kjIyiCvfTdI0JKcOhU4Rzj621B7CTYaBSLdn68oJJulU0Q@public.gmane.org>
2012-11-24 19:59                   ` Terje Bergström
     [not found]                     ` <50B12724.7020503-DDmLM1+adcrQT0dZR+AlfA@public.gmane.org>
2012-11-26  7:33                       ` Arto Merilainen
     [not found]                         ` <7DC9167CA73B39468DFA1D07FF67A6A85150E61DDB-LZBqo6t42cZDw2glCA4ptUEOCMrvLtNR@public.gmane.org>
2012-11-26  9:30                           ` Terje Bergström
2012-11-22  9:48   ` [PATCH 6/6] drm: tegra: Add gr2d device Terje Bergstrom
  -- strict thread matches above, loose matches on Subject: below --
2012-11-22 12:16 [PATCH 0/6] Support for Tegra 2D hardware Terje Bergstrom
     [not found] ` <1353586614-7308-1-git-send-email-tbergstrom-DDmLM1+adcrQT0dZR+AlfA@public.gmane.org>
2012-11-22 12:16   ` [PATCH 1/6] video: tegra: Add nvhost driver Terje Bergstrom
     [not found]     ` <1353586614-7308-2-git-send-email-tbergstrom-DDmLM1+adcrQT0dZR+AlfA@public.gmane.org>
2012-11-23 12:39       ` Sivaram Nair
2012-11-26  9:23         ` Terje Bergström
2012-11-26 22:59         ` Stephen Warren
2012-11-23 15:29       ` Thierry Reding
     [not found]         ` <20121123152926.GA20046-RM9K5IK7kjIyiCvfTdI0JKcOhU4Rzj621B7CTYaBSLdn68oJJulU0Q@public.gmane.org>
2012-11-23 15:43           ` Terje Bergström

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20121123233855.GD21555@avionic-0098.adnet.avionic-design.de \
    --to=thierry.reding-rm9k5ik7kjkj5m59nbduvrnah6klmebb@public.gmane.org \
    --cc=amerilainen-DDmLM1+adcrQT0dZR+AlfA@public.gmane.org \
    --cc=linux-tegra-u79uwXL29TY76Z2rM5mHXA@public.gmane.org \
    --cc=tbergstrom-DDmLM1+adcrQT0dZR+AlfA@public.gmane.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.