Received: by 2002:ad5:474a:0:0:0:0:0 with SMTP id i10csp3409429imu; Wed, 7 Nov 2018 09:53:12 -0800 (PST) X-Google-Smtp-Source: AJdET5en8M0DhQLfeestMY4Rq1eyjoh741wgJpHgciJJfxQ0e8BW2HTMuCAySll6CKZ1QyaqsZDx X-Received: by 2002:a17:902:3041:: with SMTP id u59-v6mr1179639plb.265.1541613192415; Wed, 07 Nov 2018 09:53:12 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1541613192; cv=none; d=google.com; s=arc-20160816; b=0Ebfgj9dRZ9C9wKXLC9OtE8/8/8i+mtfzPrs6ZShOrg1L0I012/hP2aeCqyGZnw8Gr NmMw4k6lb8DUySkp7ldvidW9RgFJv5dj1WvOpbc9k+ji/bEhH022LOLe7I04S4zIrIhG RTd3O+7tExGGVTlJ7KT/xQUHJhQwEGlDAN4dg8iQeKUViQVbKln8pOmaylZ2kV4fkrkd OlbomoH9/YsMBcglt584p7D0TsOuWiCHdqJNJPiJbfT5I7H49Xga7qvq6vZhKQPwxCSn P7wDbcvqB1hWURi9k0vr1HtKbnmV37HWI5CYqJWjiyYTpJsA4UF4cyhVFhCJAIx6YMcX R5/w== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:references:in-reply-to:message-id:date :subject:cc:to:from:dkim-signature; bh=OygCHiJePEOneZV50DJ2O1gOHT76AeilXC+YiA82M5Q=; b=dHstgkLAmDFIblHm2AAZ8p4pMiQqP/qtZf5EhWnnNBSb6d2lRIMqiZ1VtHLjFsylyi L08xjHxxpkwkbrVl0v/55YtgelLhaB5BJi2LTGNXM1RH0dxq+rxNsVqN9LXEXo35iHEi 4/S1TZMv49fTHdv48B4WRUQ6a0WpClBalf2xmUWHnv+mUk+2ZIQsuWhUXL8shC1/hHfO LrB/f/Zrnzz2c5m6baG3fj6FzZmdtiuxLPN7Mu9XBmpLXC4ZMY5zzlWlRlTr3bgu4RgW E8MmElxuQL0hxiNUK/nxxEj78SdxJwub+26pLlwSY1tH6LS/X8b2p5iMI/bLvheM4nB4 dkuA== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@kernel.org header.s=default header.b=a6Zhbfti; 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=NONE dis=NONE) header.from=kernel.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id 62-v6si1281502plf.308.2018.11.07.09.52.57; Wed, 07 Nov 2018 09:53:12 -0800 (PST) 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=@kernel.org header.s=default header.b=a6Zhbfti; 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=NONE dis=NONE) header.from=kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1731653AbeKHDX3 (ORCPT + 99 others); Wed, 7 Nov 2018 22:23:29 -0500 Received: from mail.kernel.org ([198.145.29.99]:53264 "EHLO mail.kernel.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1728131AbeKHDX3 (ORCPT ); Wed, 7 Nov 2018 22:23:29 -0500 Received: from localhost.localdomain (rrcs-67-79-197-43.sw.biz.rr.com [67.79.197.43]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-SHA256 (128/128 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPSA id BA624208A3; Wed, 7 Nov 2018 17:52:00 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=default; t=1541613121; bh=SCfjFI72ZliedsViQFWiX/Xb9nSBdgE202Prn8Nu58E=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=a6ZhbftidWUpLd37BiY/E/0DImspYAKLBAMTIGSTmShlBAHwMAWgVDtEcBs7bvUnP qP3dcgIIo51AhzbjnY/5orVRdiAuj6I1sQItkX4XqAATRFimPL9slHBhhOGMJUssXc NdtImrRkqAr6JD6zHy4Kgu4PIixnoNFrZ2HyI4gg= From: Alan Tull To: Greg Kroah-Hartman Cc: Moritz Fischer , Alan Tull , linux-kernel@vger.kernel.org, linux-fpga@vger.kernel.org, Mike Looijmans Subject: [PATCH 4/4] zynq-fpga: Only route PR via PCAP when required Date: Wed, 7 Nov 2018 11:51:48 -0600 Message-Id: <1541613108-29660-5-git-send-email-atull@kernel.org> X-Mailer: git-send-email 2.7.4 In-Reply-To: <1541613108-29660-1-git-send-email-atull@kernel.org> References: <1541613108-29660-1-git-send-email-atull@kernel.org> Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org From: Mike Looijmans The Xilinx Zynq FPGA driver takes ownership of the PR interface, making it impossible to use the ICAP interface for partial reconfiguration. This patch changes the driver to only activate PR over PCAP while the device is actively being accessed by the driver for programming. This allows both PCAP and ICAP interfaces to be used for PR. Signed-off-by: Mike Looijmans Reviewed-by: Moritz Fischer Acked-by: Alan Tull --- drivers/fpga/zynq-fpga.c | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/drivers/fpga/zynq-fpga.c b/drivers/fpga/zynq-fpga.c index bb82efe..57b0e67 100644 --- a/drivers/fpga/zynq-fpga.c +++ b/drivers/fpga/zynq-fpga.c @@ -501,6 +501,10 @@ static int zynq_fpga_ops_write_complete(struct fpga_manager *mgr, if (err) return err; + /* Release 'PR' control back to the ICAP */ + zynq_fpga_write(priv, CTRL_OFFSET, + zynq_fpga_read(priv, CTRL_OFFSET) & ~CTRL_PCAP_PR_MASK); + err = zynq_fpga_poll_timeout(priv, INT_STS_OFFSET, intr_status, intr_status & IXR_PCFG_DONE_MASK, INIT_POLL_DELAY, -- 2.7.4