From patchwork Tue Apr 9 20:54:24 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: "Rob Herring (Arm)" X-Patchwork-Id: 10892437 Return-Path: Received: from mail.wl.linuxfoundation.org (pdx-wl-mail.web.codeaurora.org [172.30.200.125]) by pdx-korg-patchwork-2.web.codeaurora.org (Postfix) with ESMTP id 598C917E6 for ; Tue, 9 Apr 2019 20:54:42 +0000 (UTC) Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id 41E75286A1 for ; Tue, 9 Apr 2019 20:54:42 +0000 (UTC) Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486) id 35F362012F; Tue, 9 Apr 2019 20:54:42 +0000 (UTC) X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on pdx-wl-mail.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-5.2 required=2.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,MAILING_LIST_MULTI,RCVD_IN_DNSWL_MED autolearn=ham version=3.3.1 Received: from bombadil.infradead.org (bombadil.infradead.org [198.137.202.133]) (using TLSv1.2 with cipher AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.wl.linuxfoundation.org (Postfix) with ESMTPS id AA95A2012F for ; Tue, 9 Apr 2019 20:54:40 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lists.infradead.org; s=bombadil.20170209; h=Sender: Content-Transfer-Encoding:Content-Type:Cc:List-Subscribe:List-Help:List-Post: List-Archive:List-Unsubscribe:List-Id:MIME-Version:Message-Id:Date:Subject:To :From:Reply-To:Content-ID:Content-Description:Resent-Date:Resent-From: Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID:In-Reply-To:References: List-Owner; bh=UFgVY40Lw1oQrOdlIm5V9lRp3rcIKc/ko1lre1m/eC0=; b=HU3t1uV7PTZOSB dvy6oDo46JUwREURnfmEFtuW9I25Dv8gFQPCdyC0A5TiDqPi+VkqQVXYigd47FblERBuQbNo5PBzU 6IVuYKG81ckVSq/cqIED8crTODL5EH7iqfClU0WWkfPmrYyYqwD6HcfOAplEtZKd7woJzFIWPACfJ xILhdfnBeeuJCJ4FvOXVm+Bm4nysh+Bpk6B+jE/5yfKL3ZY/XsHZhmp2klTUKjtk6ELtgWAFJGVnY nOwxWV9Gjagc455eEDajnKEvccj9VUj7AEIVQmk3rQh2a2hAphy7EeUDSbwVsnyXXjTyNJsONYcuX kMezcVcgXtUhYHZXCB0w==; Received: from localhost ([127.0.0.1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.90_1 #2 (Red Hat Linux)) id 1hDxlL-0004VA-2E; Tue, 09 Apr 2019 20:54:35 +0000 Received: from mail-oi1-f193.google.com ([209.85.167.193]) by bombadil.infradead.org with esmtps (Exim 4.90_1 #2 (Red Hat Linux)) id 1hDxlG-0004UT-Rf for linux-arm-kernel@lists.infradead.org; Tue, 09 Apr 2019 20:54:32 +0000 Received: by mail-oi1-f193.google.com with SMTP id e5so14841630oii.0 for ; Tue, 09 Apr 2019 13:54:30 -0700 (PDT) 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:mime-version :content-transfer-encoding; bh=OQOCMV3xKrmHqHY1PVCBaCxVJYAiJpfExHpXaR163xc=; b=iUctJFxM9vpljvU29U80iYzrzlb932Qjy6b/fqyttoyXyHl5qovlOc6qHvRRIeO1aP qJYhQQBBZNvkUvR7jospx6Wv5/C5Oy3Sp0l9Ef3RHLy7xLRNnMj/ImM+NuvwRfS+v3zr Bja7CX6eu1/Q7kcED3VtOvj0NvT+lBttj/DCffOsY1cMRsds+QlrUocWF4QB/ujeBfVh O7U53501IXPPapYBoUSVA89WAWUB8cvrFcPQFBHqKQh2SZDFxUXmOw5yYA79Omlcu60d 3YEbZTxRzvAHsSL2RUbQNE+M+eZDO7JDV9R8xCFdvkODo9s+buySAONXQ2H5f/qNgerY B4jA== X-Gm-Message-State: APjAAAWfknsxqWyArRgr1o9cf5wZM1BIxdVx3+ZVRMJX6EaALGjSnueR ffiIVr4kxS/CJtXaBwcnfw== X-Google-Smtp-Source: APXvYqzEDQZ7uqfTLestu2+gWF7kbkRYF6dpRyRzZVYhYW3aFz+roUub5HfG+RvptTkyfEeN5bo6lw== X-Received: by 2002:aca:b886:: with SMTP id i128mr207754oif.169.1554843268821; Tue, 09 Apr 2019 13:54:28 -0700 (PDT) Received: from xps15.herring.priv (24-155-109-49.dyn.grandenetworks.net. [24.155.109.49]) by smtp.googlemail.com with ESMTPSA id o66sm6472175oig.11.2019.04.09.13.54.27 (version=TLS1_3 cipher=AEAD-AES256-GCM-SHA384 bits=256/256); Tue, 09 Apr 2019 13:54:28 -0700 (PDT) From: Rob Herring To: dri-devel@lists.freedesktop.org Subject: [PATCH v3 0/3] Initial Panfrost driver Date: Tue, 9 Apr 2019 15:54:24 -0500 Message-Id: <20190409205427.6943-1-robh@kernel.org> X-Mailer: git-send-email 2.19.1 MIME-Version: 1.0 X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20190409_135430_897458_78513780 X-CRM114-Status: GOOD ( 11.96 ) X-BeenThere: linux-arm-kernel@lists.infradead.org X-Mailman-Version: 2.1.21 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: Sean Paul , Lyude Paul , Eric Anholt , Maxime Ripard , Maarten Lankhorst , Joerg Roedel , Neil Armstrong , Will Deacon , linux-kernel@vger.kernel.org, Steven Price , David Airlie , iommu@lists.linux-foundation.org, Boris Brezillon , Alyssa Rosenzweig , Daniel Vetter , Robin Murphy , linux-arm-kernel@lists.infradead.org Sender: "linux-arm-kernel" Errors-To: linux-arm-kernel-bounces+patchwork-linux-arm=patchwork.kernel.org@lists.infradead.org X-Virus-Scanned: ClamAV using ClamSMTP Here's v3 of the panfrost driver. Lot's of changes from review comments and further testing. Details are in each patch. Of note, a problem with MMU page faults has been addressed improving the stability. In the process, the TLB invalidate has been optimized which Tomeu says has improved the performance some. Several dependencies have been applied already, but the first 2 patches are the remaining dependencies. We need to take the iommu change via drm-misc or we need a stable branch. I'm hoping this is the last version. I'm hoping to apply this to drm-misc this week before -rc5 cutoff. A git branch is here[1]. Rob [1] git://git.kernel.org/pub/scm/linux/kernel/git/robh/linux.git panfrost-rebase-v3 Rob Herring (3): iommu: io-pgtable: Add ARM Mali midgard MMU page table format drm: Add a drm_gem_objects_lookup helper drm/panfrost: Add initial panfrost driver MAINTAINERS | 9 + drivers/gpu/drm/Kconfig | 2 + drivers/gpu/drm/Makefile | 1 + drivers/gpu/drm/drm_gem.c | 93 ++- drivers/gpu/drm/panfrost/Kconfig | 14 + drivers/gpu/drm/panfrost/Makefile | 12 + drivers/gpu/drm/panfrost/TODO | 27 + drivers/gpu/drm/panfrost/panfrost_devfreq.c | 218 ++++++++ drivers/gpu/drm/panfrost/panfrost_devfreq.h | 14 + drivers/gpu/drm/panfrost/panfrost_device.c | 252 +++++++++ drivers/gpu/drm/panfrost/panfrost_device.h | 124 ++++ drivers/gpu/drm/panfrost/panfrost_drv.c | 460 +++++++++++++++ drivers/gpu/drm/panfrost/panfrost_features.h | 309 ++++++++++ drivers/gpu/drm/panfrost/panfrost_gem.c | 95 ++++ drivers/gpu/drm/panfrost/panfrost_gem.h | 29 + drivers/gpu/drm/panfrost/panfrost_gpu.c | 362 ++++++++++++ drivers/gpu/drm/panfrost/panfrost_gpu.h | 19 + drivers/gpu/drm/panfrost/panfrost_issues.h | 176 ++++++ drivers/gpu/drm/panfrost/panfrost_job.c | 560 +++++++++++++++++++ drivers/gpu/drm/panfrost/panfrost_job.h | 51 ++ drivers/gpu/drm/panfrost/panfrost_mmu.c | 369 ++++++++++++ drivers/gpu/drm/panfrost/panfrost_mmu.h | 17 + drivers/gpu/drm/panfrost/panfrost_regs.h | 298 ++++++++++ drivers/iommu/io-pgtable-arm.c | 91 ++- drivers/iommu/io-pgtable.c | 1 + include/drm/drm_gem.h | 2 + include/linux/io-pgtable.h | 7 + include/uapi/drm/panfrost_drm.h | 142 +++++ 28 files changed, 3722 insertions(+), 32 deletions(-) create mode 100644 drivers/gpu/drm/panfrost/Kconfig create mode 100644 drivers/gpu/drm/panfrost/Makefile create mode 100644 drivers/gpu/drm/panfrost/TODO create mode 100644 drivers/gpu/drm/panfrost/panfrost_devfreq.c create mode 100644 drivers/gpu/drm/panfrost/panfrost_devfreq.h create mode 100644 drivers/gpu/drm/panfrost/panfrost_device.c create mode 100644 drivers/gpu/drm/panfrost/panfrost_device.h create mode 100644 drivers/gpu/drm/panfrost/panfrost_drv.c create mode 100644 drivers/gpu/drm/panfrost/panfrost_features.h create mode 100644 drivers/gpu/drm/panfrost/panfrost_gem.c create mode 100644 drivers/gpu/drm/panfrost/panfrost_gem.h create mode 100644 drivers/gpu/drm/panfrost/panfrost_gpu.c create mode 100644 drivers/gpu/drm/panfrost/panfrost_gpu.h create mode 100644 drivers/gpu/drm/panfrost/panfrost_issues.h create mode 100644 drivers/gpu/drm/panfrost/panfrost_job.c create mode 100644 drivers/gpu/drm/panfrost/panfrost_job.h create mode 100644 drivers/gpu/drm/panfrost/panfrost_mmu.c create mode 100644 drivers/gpu/drm/panfrost/panfrost_mmu.h create mode 100644 drivers/gpu/drm/panfrost/panfrost_regs.h create mode 100644 include/uapi/drm/panfrost_drm.h --- 2.19.1