From patchwork Thu Oct 19 21:34:20 2017 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Dmitry Osipenko X-Patchwork-Id: 828351 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Authentication-Results: ozlabs.org; spf=none (mailfrom) smtp.mailfrom=vger.kernel.org (client-ip=209.132.180.67; helo=vger.kernel.org; envelope-from=linux-tegra-owner@vger.kernel.org; receiver=) Authentication-Results: ozlabs.org; dkim=fail reason="signature verification failed" (2048-bit key; unprotected) header.d=gmail.com header.i=@gmail.com header.b="N2mER7R3"; dkim-atps=neutral Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by ozlabs.org (Postfix) with ESMTP id 3yJ2Mf0Cd3z9t5x for ; Fri, 20 Oct 2017 08:37:34 +1100 (AEDT) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1751738AbdJSVhd (ORCPT ); Thu, 19 Oct 2017 17:37:33 -0400 Received: from mail-wr0-f196.google.com ([209.85.128.196]:54774 "EHLO mail-wr0-f196.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1750977AbdJSVhb (ORCPT ); Thu, 19 Oct 2017 17:37:31 -0400 Received: by mail-wr0-f196.google.com with SMTP id o44so9659463wrf.11; Thu, 19 Oct 2017 14:37:30 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:to:cc:subject:date:message-id; bh=VzelHHVsuT6hGQCVB7EC0rgTjpt4q1MriH0gXupNJQg=; b=N2mER7R3FKU5cRH9lqpQfLn1eMEL3BxkjraFAd4aZ8iR4Cm7y31aeXEt6Ac27bnQIX XjJhXTAdGkndzr0aOTjsyKzAISYkVOQ1eaE5UR4u7z0JzIJlZuL/7KXMUoHxMFuVwKGZ 2hNAQdvO7RYCOAvrJGBOr46R5FzQiV3zwI2trBV9fwG12Y3XLPM9cxQ7vDxv4x6hpGkm 9fl3ajcS4fisoinpZvst+iqDoSjPlNpvj+uBH5gFbfcUrWugRVgAI2uK52YzTjv2wP+k me0E1wAvQZd/bT2rqFvidEKciHVieOuwWyCzL/bzXL95uQhmnicK45+RdaRV98gQfSuF M+/w== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id; bh=VzelHHVsuT6hGQCVB7EC0rgTjpt4q1MriH0gXupNJQg=; b=cHq4CluQbeqvQlXQsmbJrPH2JrF2Ul9/Z18hOMfgbuKaM8G4G5OuTNPkboLYcUaK7S 4I1ldpDQ5OYEwi+9uHyZAVE/jp9VGhiebpVgt22hQHJ9QawWyV0anSu8RzyOiRG8Wo7w zSvCCpevZOiV+iwkZr6IPC1wXlKCczMhDLI6CTt7Q1zRq1P06ZGXJjr/XZi4U0xw6ks+ k3z2iqVU38ernqlhUPjbLcRUJB7D6Ijhcl7PYF0hPL2ko6f152LacU36F5yk6YX/JCNy BJaDzj733HcbuMCla910E0CGYN0YKrfG8KrwpEmQNG65wjWYXdkXhXC7qDd39/nW4dua 688w== X-Gm-Message-State: AMCzsaX3kT+wVqlUAl7BqJ6UZn/cDHtVNDqO7IwW4VTiQzaxGFV4GZ/Z sdthqit2fMxeJDRLz1KVFtU= X-Google-Smtp-Source: ABhQp+RtmUFfHA1uaEWXPax2eW7/yMqrMXG2DhlFm9KoWjE2uKzwFDULPeQmY5On4IhhSHhuFMB2Ig== X-Received: by 10.223.139.153 with SMTP id o25mr2554983wra.192.1508449049930; Thu, 19 Oct 2017 14:37:29 -0700 (PDT) Received: from localhost.localdomain (ppp109-252-91-27.pppoe.spdop.ru. [109.252.91.27]) by smtp.gmail.com with ESMTPSA id q74sm7349086wrb.51.2017.10.19.14.37.27 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Thu, 19 Oct 2017 14:37:28 -0700 (PDT) From: Dmitry Osipenko To: Thierry Reding , Jonathan Hunter , Greg Kroah-Hartman , Rob Herring , Mauro Carvalho Chehab , Stephen Warren , Vladimir Zapolskiy Cc: Dan Carpenter , linux-media@vger.kernel.org, linux-tegra@vger.kernel.org, devel@driverdev.osuosl.org, devicetree@vger.kernel.org, linux-kernel@vger.kernel.org Subject: [PATCH v4 0/5] NVIDIA Tegra20 video decoder driver Date: Fri, 20 Oct 2017 00:34:20 +0300 Message-Id: X-Mailer: git-send-email 2.14.2 Sender: linux-tegra-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-tegra@vger.kernel.org VDE driver provides accelerated video decoding to NVIDIA Tegra SoC's, it is a result of reverse-engineering efforts. Driver has been tested on Toshiba AC100 and Acer A500, it should work on any Tegra20 device. In userspace this driver is utilized by libvdpau-tegra [0] that implements VDPAU interface, so any video player that supports VDPAU can provide accelerated video decoding on Tegra20 on Linux. [0] https://github.com/grate-driver/libvdpau-tegra Change log: v4: - Added mmio-sram "IRAM DT node" patch from Vladimir Zapolskiy to the series, I modified it to cover all Tegra's and not only Tegra20 - Utilized genalloc for the reservation of IRAM region as per Vladimir's suggestion, VDE driver now selects SRAM driver in Kconfig - Added defconfig patch to the series - Described VDE registers in DT per HW unit, excluding BSE-A / UCQ and holes between the units - Extended DT compatibility property with Tegra30/114/124/132 in the binding doc. - Removed BSE-A interrupt from the DT binding because it's very likely that Audio Bitstream Engine isn't integrated with VDE - Removed UCQ interrupt from the DT binding because in TRM it is represented as a distinct HW block that probably should have its own driver - Addressed v3 review comments: factored out DT binding addition into a standalone patch, moved binding to media/, removed clocks/resets-names v3: - Suppressed compilation warnings reported by 'kbuild test robot' v2: - Addressed v1 review comments from Stephen Warren and Dan Carpenter - Implemented runtime PM - Miscellaneous code cleanups - Changed 'TODO' - CC'd media maintainers for the review as per Greg's K-H request, v1 can be viewed at https://lkml.org/lkml/2017/9/25/606 Dmitry Osipenko (4): media: dt: bindings: Add binding for NVIDIA Tegra Video Decoder Engine staging: Introduce NVIDIA Tegra video decoder driver ARM: dts: tegra20: Add video decoder node ARM: defconfig: tegra: Enable Video Decoder driver Vladimir Zapolskiy (1): ARM: tegra: Add device tree node to describe IRAM .../devicetree/bindings/media/nvidia,tegra-vde.txt | 55 + arch/arm/boot/dts/tegra114.dtsi | 8 + arch/arm/boot/dts/tegra124.dtsi | 8 + arch/arm/boot/dts/tegra20.dtsi | 35 + arch/arm/boot/dts/tegra30.dtsi | 8 + arch/arm/configs/tegra_defconfig | 2 +- drivers/staging/Kconfig | 2 + drivers/staging/Makefile | 1 + drivers/staging/tegra-vde/Kconfig | 7 + drivers/staging/tegra-vde/Makefile | 1 + drivers/staging/tegra-vde/TODO | 5 + drivers/staging/tegra-vde/uapi.h | 101 ++ drivers/staging/tegra-vde/vde.c | 1209 ++++++++++++++++++++ 13 files changed, 1441 insertions(+), 1 deletion(-) create mode 100644 Documentation/devicetree/bindings/media/nvidia,tegra-vde.txt create mode 100644 drivers/staging/tegra-vde/Kconfig create mode 100644 drivers/staging/tegra-vde/Makefile create mode 100644 drivers/staging/tegra-vde/TODO create mode 100644 drivers/staging/tegra-vde/uapi.h create mode 100644 drivers/staging/tegra-vde/vde.c