Received: by 10.213.65.68 with SMTP id h4csp450180imn; Sun, 25 Mar 2018 04:01:43 -0700 (PDT) X-Google-Smtp-Source: AG47ELsO5Fzw/mSD+fXVrO9e3Xlf0C/pJagnhTr89tBaV4iI0FkNQuHaTgzt2Ko6HetDH01bIvfH X-Received: by 10.98.236.220 with SMTP id e89mr23855731pfm.173.1521975703529; Sun, 25 Mar 2018 04:01:43 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1521975703; cv=none; d=google.com; s=arc-20160816; b=JzQqKfBudZdTynxvbBoUPqJGbUIFxhkKC5ABi78UtrmiqGhMifBssAy+DNutImf8uF wKzQcNsy49TjJYt01XOrtDnHxFzu1oRxQALkCNYYjqvl5OCSQG/VuQS/qr/9EIj+1AMH mFMoWJ8pLm9CH5UV1azRYyjJO9dySrtGyzOGmeFa7/i1vHZ71JAExWtjUmbkaaFZol/6 2Exu2cb4EVIyGHPe6KX1edO5O39G0PEhDuncCNCokUAQf3Tb/DBho15Q6yN4DX+DztEP eafdl7oVSY7tZikR7MOV0QW5TyYZwXl3ZbBdgYt8U4jpUKkLHdEGHlatXbSBWwlyWQJ3 Lykw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:content-transfer-encoding:mime-version :references:in-reply-to:message-id:date:subject:to:from :dkim-signature:arc-authentication-results; bh=vCGY06RJ5Lq2OAe9BUfditdbs1jONExtXlRLaImSE+8=; b=BccOaMqlAfcdzWPyOmOZUqEjXKYyp/K4Y2NmvyxRLAhSYGVTp4CJim/QnpOGmeEKUn dbXb9Uysvww9vbfvIqmNR1BO1ojk30AhfHo+5hAYTRfZdmmXAaz5KHH48AK070ffDmP1 ZsRJgv1wzE/Y1aufVRSWxhKJtAxyhJpdxk9CV/N+95MH3a1ZNNmCgmydX0+71fTjwC70 ypdU1Wr3+krVJA1x9eS2MSamMljw6k7NhZuJXb9/FMgGYozGiblxTmWzMqXgHARd8DyG +4yyuyaa2vpAUFa++F92j+N+FRLUkmfleOOezsI2X/h8bPS951C0ht/BPWnn9irwq1+i eUWA== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@gmail.com header.s=20161025 header.b=DVDcq5qR; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=QUARANTINE dis=NONE) header.from=gmail.com Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id o1-v6si12747423pld.255.2018.03.25.04.01.29; Sun, 25 Mar 2018 04:01:43 -0700 (PDT) Received-SPF: pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) client-ip=209.132.180.67; Authentication-Results: mx.google.com; dkim=pass header.i=@gmail.com header.s=20161025 header.b=DVDcq5qR; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=QUARANTINE dis=NONE) header.from=gmail.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1751962AbeCYLAY (ORCPT + 99 others); Sun, 25 Mar 2018 07:00:24 -0400 Received: from mail-wm0-f65.google.com ([74.125.82.65]:37152 "EHLO mail-wm0-f65.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1752577AbeCYLAI (ORCPT ); Sun, 25 Mar 2018 07:00:08 -0400 Received: by mail-wm0-f65.google.com with SMTP id r131so3701193wmb.2; Sun, 25 Mar 2018 04:00:08 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:to:subject:date:message-id:in-reply-to:references:mime-version :content-transfer-encoding; bh=vCGY06RJ5Lq2OAe9BUfditdbs1jONExtXlRLaImSE+8=; b=DVDcq5qRhnk4alCeqATWqlCaca3y7KoeR9ikD/3mIUoPZ/VII8c855nBX7lCbJk5Ea h/SLRJOIDqPxuL9FXmvzZT+H0J1S955T2XddWJaEvFMMdVFid+EiQLJWdP0yziJ+K783 CWG5qV9x3xvr6ghNh/MfNtlgKuPcs5xPdos60kBkCApc3Fh6NaOwBZm1/O9nTlFP35ip aTB5GOImQJ8O1e1JdRN2VgRnPEWvzN/biYiQjRA0mPrKYahsrfYHIuBSRAh6eOz7JMKF Gx47j7+KvwPIy+HIVcoT31eBJyfE3MoIpFmO4fGg9mnciczC7W1wYaQwbXief3XennJG +vIA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=vCGY06RJ5Lq2OAe9BUfditdbs1jONExtXlRLaImSE+8=; b=C6onaw1lbSgdBzIhf8Zj89WYvT4g2pvq9HAq1IwUNuI1/pa5SoDAWQRRUa0DJw1C3U uuiJmHTcTsRY8sODWnJ0kIeyQF4MuYISz4EL8s7ArF8q44WvTdMjjQ63PwBpE8Gff0Gd VsjTmvKXgcDg7VVIsPpmz8nyWtdzeOO3nN5UVX9EpwovYfOsEsjOLmP0hrIdp5dCR3Z2 Hf5Hv93ow0kgPaY/xu5vy6dIPEHyrdgu8yy8g6s78SaZF0assWgGJChb7bdL1EKZEwC5 6L36RcXBlZdg4NTd6pZX8sqDD9RaPOsFz+xS/rotAZJAFdmi1rJ+CirgDMMy5ArOeuFl R/Fw== X-Gm-Message-State: AElRT7FEDVW8t60j1vYPaKc93hAGeumQjK4WLyMURma9daOjo1g2Cxsh V3XEwvXQwi/N7ioWRouxpWcAGg== X-Received: by 10.28.149.71 with SMTP id x68mr13791277wmd.78.1521975607380; Sun, 25 Mar 2018 04:00:07 -0700 (PDT) Received: from baker.fritz.box ([2a02:908:1257:4460:80f2:8bcd:4355:2edc]) by smtp.gmail.com with ESMTPSA id z3sm20492230wme.3.2018.03.25.04.00.06 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Sun, 25 Mar 2018 04:00:06 -0700 (PDT) From: "=?UTF-8?q?Christian=20K=C3=B6nig?=" X-Google-Original-From: =?UTF-8?q?Christian=20K=C3=B6nig?= To: linaro-mm-sig@lists.linaro.org, linux-media@vger.kernel.org, dri-devel@lists.freedesktop.org, amd-gfx@lists.freedesktop.org, linux-kernel@vger.kernel.org Subject: [PATCH 7/8] drm/amdgpu: add amdgpu_gem_attach Date: Sun, 25 Mar 2018 12:59:59 +0200 Message-Id: <20180325110000.2238-7-christian.koenig@amd.com> X-Mailer: git-send-email 2.14.1 In-Reply-To: <20180325110000.2238-1-christian.koenig@amd.com> References: <20180325110000.2238-1-christian.koenig@amd.com> MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Check if we can do peer2peer on the PCIe bus. Signed-off-by: Christian König --- drivers/gpu/drm/amd/amdgpu/amdgpu_prime.c | 24 ++++++++++++++++++++++++ 1 file changed, 24 insertions(+) diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_prime.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_prime.c index 2566268806c3..133596df0775 100644 --- a/drivers/gpu/drm/amd/amdgpu/amdgpu_prime.c +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_prime.c @@ -134,6 +134,29 @@ amdgpu_gem_prime_import_sg_table(struct drm_device *dev, return obj; } +static int amdgpu_gem_attach(struct dma_buf *dma_buf, struct device *dev, + struct dma_buf_attachment *attach) +{ + struct drm_gem_object *obj = dma_buf->priv; + struct amdgpu_bo *bo = gem_to_amdgpu_bo(obj); + struct amdgpu_device *adev = amdgpu_ttm_adev(bo->tbo.bdev); + + if (!attach->peer2peer) + return 0; + + if (!dev_is_pci(dev)) + goto no_peer2peer; + + if (!pci_peer_traffic_supported(adev->pdev, to_pci_dev(dev))) + goto no_peer2peer; + + return 0; + +no_peer2peer: + attach->peer2peer = false; + return 0; +} + static struct sg_table * amdgpu_gem_map_dma_buf(struct dma_buf_attachment *attach, enum dma_data_direction dir) @@ -274,6 +297,7 @@ static int amdgpu_gem_begin_cpu_access(struct dma_buf *dma_buf, } static const struct dma_buf_ops amdgpu_dmabuf_ops = { + .attach = amdgpu_gem_attach, .map_dma_buf = amdgpu_gem_map_dma_buf, .unmap_dma_buf = amdgpu_gem_unmap_dma_buf, .release = drm_gem_dmabuf_release, -- 2.14.1