[PATCHv9 0/9] Support Tegra 2D hardware

Thierry Reding thierry.reding at avionic-design.de
Fri Mar 22 07:54:55 PDT 2013


On Fri, Mar 22, 2013 at 04:34:00PM +0200, Terje Bergstrom wrote:
> This set of patches adds support for Tegra20 and Tegra30 host1x and
> 2D. It is based on linux-next-20130322 with RTC fixes applied.
> 
> Changes in this version:
>  * Renaming in drivers/gpu/host1x/drm/drm.c to shorten function names
>  * Whitespace and function order fixes
>  * An extra struct (host1x_addr_reg) removed
>  * Added uapi Kbuild entry
> 
> Changes in version 8:
>  * Own version of framebuffer driver due to move to own allocator
>    * Thanks to Thierry Reding for help
>  * Miscellaneous variable name, whitespace and IOCTL interface cleanups
>  * Bug fixes:
>    * Validator enabled again
>    * Added new class 2D strechblit
>  * Dropped patch "Support CMA object preallocation"
> 
> Changes in version 7:
>  * host1x memory data structures refactored
>  * Some "nvhost" leftovers renamed to host1x
> 
> Changes in version 6:
>  * Rebased on latest tegradrm
>  * Renamed tegradrm's host1x to host1x_drm
>  * Indentation and line split fixed to follow tegradrm convention
>  * Pointers to platform_device replaced with pointers to device
>  * Added host1x allocator, and wired it in
>  * Debug spew code fixed to access mem handles from host1x_job
>  * CDMA code doesn't keep the mem handles anymore
>  * Push buffer ops have been made generic code
>  * Removed the pin_array optimization in host1x_job to simplify code
>  * Large number of smaller changes
> 
> The driver implements an allocator using the dma mapping API. Each buffer is
> assigned an ops structure to operate on it.
> 
> host1x is the driver that controls host1x hardware. It supports
> host1x command channels, synchronization, and memory management. It
> is sectioned into logical driver under drivers/gpu/host1x and
> physical driver under drivers/host1x/hw. The physical driver is
> compiled with the hardware headers of the particular host1x version.
> 
> The hardware units are described (briefly) in the Tegra2 TRM. Wiki
> page http://http.download.nvidia.com/tegra-public-appnotes/host1x.html
> also contains a short description of the functionality.
> 
> The patch set merges tegradrm into host1x and adds 2D driver, which
> uses host1x channels and sync points. The patch set also adds user
> space API to tegradrm for accessing host1x and 2D.
> 
> The changes to add support to libdrm are in
> git at gitorious.org:linux-host1x/libdrm-host1x.git
> 
> Arto Merilainen (2):
>   gpu: host1x: drm: Rename host1x to host1x_drm
>   gpu: host1x: drm: Add memory manager and fb
> 
> Terje Bergstrom (7):
>   gpu: host1x: Add host1x driver
>   gpu: host1x: Add syncpoint wait and interrupts
>   gpu: host1x: Add channel support
>   gpu: host1x: Add debug support
>   drm: tegra: Move drm to live under host1x
>   gpu: host1x: Remove second host1x driver
>   drm: tegra: Add gr2d device
> 
>  drivers/gpu/Makefile                           |    1 +
>  drivers/gpu/drm/Kconfig                        |    2 -
>  drivers/gpu/drm/Makefile                       |    1 -
>  drivers/gpu/drm/tegra/Makefile                 |    7 -
>  drivers/gpu/drm/tegra/drm.c                    |  217 --------
>  drivers/gpu/drm/tegra/fb.c                     |   52 --
>  drivers/gpu/drm/tegra/host1x.c                 |  327 ------------
>  drivers/gpu/host1x/Kconfig                     |   23 +
>  drivers/gpu/host1x/Makefile                    |   20 +
>  drivers/gpu/host1x/cdma.c                      |  491 ++++++++++++++++++
>  drivers/gpu/host1x/cdma.h                      |  100 ++++
>  drivers/gpu/host1x/channel.c                   |  126 +++++
>  drivers/gpu/host1x/channel.h                   |   52 ++
>  drivers/gpu/host1x/debug.c                     |  210 ++++++++
>  drivers/gpu/host1x/debug.h                     |   51 ++
>  drivers/gpu/host1x/dev.c                       |  246 +++++++++
>  drivers/gpu/host1x/dev.h                       |  308 ++++++++++++
>  drivers/gpu/{drm/tegra => host1x/drm}/Kconfig  |   19 +-
>  drivers/gpu/{drm/tegra => host1x/drm}/dc.c     |   26 +-
>  drivers/gpu/{drm/tegra => host1x/drm}/dc.h     |    0
>  drivers/gpu/host1x/drm/drm.c                   |  640 ++++++++++++++++++++++++
>  drivers/gpu/{drm/tegra => host1x/drm}/drm.h    |   68 ++-
>  drivers/gpu/host1x/drm/fb.c                    |  372 ++++++++++++++
>  drivers/gpu/host1x/drm/gem.c                   |  270 ++++++++++
>  drivers/gpu/host1x/drm/gem.h                   |   59 +++
>  drivers/gpu/host1x/drm/gr2d.c                  |  339 +++++++++++++
>  drivers/gpu/{drm/tegra => host1x/drm}/hdmi.c   |    5 +-
>  drivers/gpu/{drm/tegra => host1x/drm}/hdmi.h   |    0
>  drivers/gpu/{drm/tegra => host1x/drm}/output.c |    0
>  drivers/gpu/{drm/tegra => host1x/drm}/rgb.c    |    0
>  drivers/gpu/host1x/host1x.h                    |   30 ++
>  drivers/gpu/host1x/host1x_bo.h                 |   87 ++++
>  drivers/gpu/host1x/host1x_client.h             |   35 ++
>  drivers/gpu/host1x/hw/Makefile                 |    6 +
>  drivers/gpu/host1x/hw/cdma_hw.c                |  326 ++++++++++++
>  drivers/gpu/host1x/hw/channel_hw.c             |  168 +++++++
>  drivers/gpu/host1x/hw/debug_hw.c               |  322 ++++++++++++
>  drivers/gpu/host1x/hw/host1x01.c               |   42 ++
>  drivers/gpu/host1x/hw/host1x01.h               |   25 +
>  drivers/gpu/host1x/hw/host1x01_hardware.h      |  143 ++++++
>  drivers/gpu/host1x/hw/hw_host1x01_channel.h    |  120 +++++
>  drivers/gpu/host1x/hw/hw_host1x01_sync.h       |  243 +++++++++
>  drivers/gpu/host1x/hw/hw_host1x01_uclass.h     |  174 +++++++
>  drivers/gpu/host1x/hw/intr_hw.c                |  143 ++++++
>  drivers/gpu/host1x/hw/syncpt_hw.c              |  114 +++++
>  drivers/gpu/host1x/intr.c                      |  354 +++++++++++++
>  drivers/gpu/host1x/intr.h                      |  102 ++++
>  drivers/gpu/host1x/job.c                       |  603 ++++++++++++++++++++++
>  drivers/gpu/host1x/job.h                       |  162 ++++++
>  drivers/gpu/host1x/syncpt.c                    |  387 ++++++++++++++
>  drivers/gpu/host1x/syncpt.h                    |  165 ++++++
>  drivers/video/Kconfig                          |    2 +
>  include/trace/events/host1x.h                  |  272 ++++++++++
>  include/uapi/drm/Kbuild                        |    1 +
>  include/uapi/drm/tegra_drm.h                   |  136 +++++
>  55 files changed, 7551 insertions(+), 643 deletions(-)
>  delete mode 100644 drivers/gpu/drm/tegra/Makefile
>  delete mode 100644 drivers/gpu/drm/tegra/drm.c
>  delete mode 100644 drivers/gpu/drm/tegra/fb.c
>  delete mode 100644 drivers/gpu/drm/tegra/host1x.c
>  create mode 100644 drivers/gpu/host1x/Kconfig
>  create mode 100644 drivers/gpu/host1x/Makefile
>  create mode 100644 drivers/gpu/host1x/cdma.c
>  create mode 100644 drivers/gpu/host1x/cdma.h
>  create mode 100644 drivers/gpu/host1x/channel.c
>  create mode 100644 drivers/gpu/host1x/channel.h
>  create mode 100644 drivers/gpu/host1x/debug.c
>  create mode 100644 drivers/gpu/host1x/debug.h
>  create mode 100644 drivers/gpu/host1x/dev.c
>  create mode 100644 drivers/gpu/host1x/dev.h
>  rename drivers/gpu/{drm/tegra => host1x/drm}/Kconfig (56%)
>  rename drivers/gpu/{drm/tegra => host1x/drm}/dc.c (98%)
>  rename drivers/gpu/{drm/tegra => host1x/drm}/dc.h (100%)
>  create mode 100644 drivers/gpu/host1x/drm/drm.c
>  rename drivers/gpu/{drm/tegra => host1x/drm}/drm.h (77%)
>  create mode 100644 drivers/gpu/host1x/drm/fb.c
>  create mode 100644 drivers/gpu/host1x/drm/gem.c
>  create mode 100644 drivers/gpu/host1x/drm/gem.h
>  create mode 100644 drivers/gpu/host1x/drm/gr2d.c
>  rename drivers/gpu/{drm/tegra => host1x/drm}/hdmi.c (99%)
>  rename drivers/gpu/{drm/tegra => host1x/drm}/hdmi.h (100%)
>  rename drivers/gpu/{drm/tegra => host1x/drm}/output.c (100%)
>  rename drivers/gpu/{drm/tegra => host1x/drm}/rgb.c (100%)
>  create mode 100644 drivers/gpu/host1x/host1x.h
>  create mode 100644 drivers/gpu/host1x/host1x_bo.h
>  create mode 100644 drivers/gpu/host1x/host1x_client.h
>  create mode 100644 drivers/gpu/host1x/hw/Makefile
>  create mode 100644 drivers/gpu/host1x/hw/cdma_hw.c
>  create mode 100644 drivers/gpu/host1x/hw/channel_hw.c
>  create mode 100644 drivers/gpu/host1x/hw/debug_hw.c
>  create mode 100644 drivers/gpu/host1x/hw/host1x01.c
>  create mode 100644 drivers/gpu/host1x/hw/host1x01.h
>  create mode 100644 drivers/gpu/host1x/hw/host1x01_hardware.h
>  create mode 100644 drivers/gpu/host1x/hw/hw_host1x01_channel.h
>  create mode 100644 drivers/gpu/host1x/hw/hw_host1x01_sync.h
>  create mode 100644 drivers/gpu/host1x/hw/hw_host1x01_uclass.h
>  create mode 100644 drivers/gpu/host1x/hw/intr_hw.c
>  create mode 100644 drivers/gpu/host1x/hw/syncpt_hw.c
>  create mode 100644 drivers/gpu/host1x/intr.c
>  create mode 100644 drivers/gpu/host1x/intr.h
>  create mode 100644 drivers/gpu/host1x/job.c
>  create mode 100644 drivers/gpu/host1x/job.h
>  create mode 100644 drivers/gpu/host1x/syncpt.c
>  create mode 100644 drivers/gpu/host1x/syncpt.h
>  create mode 100644 include/trace/events/host1x.h
>  create mode 100644 include/uapi/drm/tegra_drm.h

For the series:

Reviewed-by: Thierry Reding <thierry.reding at avionic-design.de>
Tested-by: Thierry Reding <thierry.reding at avionic-design.de>

For the Tegra DRM bits:

Acked-by: Thierry Reding <thierry.reding at avionic-design.de>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 836 bytes
Desc: not available
URL: <http://lists.freedesktop.org/archives/dri-devel/attachments/20130322/68e9f663/attachment.pgp>


More information about the dri-devel mailing list