Received: by 2002:ac0:aa62:0:0:0:0:0 with SMTP id w31-v6csp288237ima; Wed, 24 Oct 2018 00:59:21 -0700 (PDT) X-Google-Smtp-Source: AJdET5dFsYrENNK9sTIDi5mbUTiewPLzxj0b48+vciOtVC2Q/SxhPVQRG7lrvocthcxVTI+w/0DQ X-Received: by 2002:a17:902:34a:: with SMTP id 68-v6mr1606470pld.184.1540367961549; Wed, 24 Oct 2018 00:59:21 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1540367961; cv=none; d=google.com; s=arc-20160816; b=QkZpsbTIA+2mNgN+3HARBwymaCAN/HaaIAbEBuKkwU1Kg/kQ6q4QaOuHJJaOBzOdZL L6GMiOXEZ+BWiFlGr0uA4GAcEnaEOCmYzHwxzYVmMgxMs4VtbE5EKi01KKKK3zxE3mEs NBT6kgWDXp4UlXQkIcC2+qQfewzLlDX2NJraL0Jk1b3Fr2y3y/gDIHjPI0vV3U1plbml YtKFmSzTgMoA0jbAJ6R4l2nF5ouQpkUsU1OGr9VMUwQLTW/8uuwaqhwGzrktp2trtV6o YWgRTEdNT7JIv5HKFQTrj99sgVvRmk55lou5xrAjExUZKwh/IM4kR1PvMugvP/LH0RmA SQxw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:in-reply-to:references:message-id:date :subject:cc:to:from; bh=Ikg6hA5kurNLR1vV7DHyKcn3bLz/l6gxYD8y0FlNJPA=; b=Ah+SRr1kmzfOMWJklf1nUORG1W4msGxgxBFGNlZl1f6FnukOiNsFOU2oWZJY1Jakp0 bVMeP0EMYW9bp8XNKsHbs6HZyUnib06YMfSsD+KpFEqJSB+gOMp6wgX9x5EytPQ/3Asg Sa65v52TZmnAqQUQZzYixQVJQDqkS2gnV9Gn+ennKXP6QZMYP+lMC5/HbrcXXTS9zalz SDVG9YYKgsNuJUvSDMCnKpZQov9p+K69GB2VygUk3OkId+Lh79Zzo09LQuy0mzHFVtjf SVOg/xakV2MfwwPsCNXbHfyKgowxbXU13pGV8Jo3OcazcAd5riYIgXhzQaWTIewfVDCD NHUQ== ARC-Authentication-Results: i=1; mx.google.com; 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 Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id c191-v6si1126271pga.402.2018.10.24.00.59.06; Wed, 24 Oct 2018 00:59:21 -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; 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 Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1727668AbeJXQUO (ORCPT + 99 others); Wed, 24 Oct 2018 12:20:14 -0400 Received: from atl4mhob13.registeredsite.com ([209.17.115.51]:51832 "EHLO atl4mhob13.registeredsite.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1726832AbeJXQUO (ORCPT ); Wed, 24 Oct 2018 12:20:14 -0400 Received: from mailpod.hostingplatform.com (atl4qobmail03pod0.registeredsite.com [10.30.71.205]) by atl4mhob13.registeredsite.com (8.14.4/8.14.4) with ESMTP id w9O7rAOV022222 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-GCM-SHA384 bits=256 verify=FAIL) for ; Wed, 24 Oct 2018 03:53:10 -0400 Received: (qmail 14926 invoked by uid 0); 24 Oct 2018 07:53:09 -0000 X-TCPREMOTEIP: 81.173.50.109 X-Authenticated-UID: mike@milosoftware.com Received: from unknown (HELO mikebuntu.TOPIC.LOCAL) (mike@milosoftware.com@81.173.50.109) by 0 with ESMTPA; 24 Oct 2018 07:53:09 -0000 From: Mike Looijmans To: linux-fpga@vger.kernel.org Cc: linux-arm-kernel@lists.infradead.org, linux-kernel@vger.kernel.org, michal.simek@xilinx.com, mdf@kernel.org, atull@kernel.org, git@xilinx.com, Mike Looijmans Subject: [PATCH v2] zynq-fpga: Only route PR via PCAP when required Date: Wed, 24 Oct 2018 09:53:03 +0200 Message-Id: <1540367583-5413-1-git-send-email-mike.looijmans@topic.nl> X-Mailer: git-send-email 1.9.1 References: <1540276279-2903-1-git-send-email-mike.looijmans@topic.nl> In-Reply-To: <1540276279-2903-1-git-send-email-mike.looijmans@topic.nl> Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org 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 --- v2: Move the register setting in between the clock enable/disable 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 3110e00..ff3a427 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, -- 1.9.1