Received: by 10.223.185.116 with SMTP id b49csp3393372wrg; Tue, 13 Feb 2018 01:43:20 -0800 (PST) X-Google-Smtp-Source: AH8x227g77X6mK2lvvXh+iyZlclO5jEXor3rWBnStcgMYF4geH950a0jLFARFQwfuJrHFXgJOvAS X-Received: by 10.99.108.7 with SMTP id h7mr524396pgc.292.1518515000866; Tue, 13 Feb 2018 01:43:20 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1518515000; cv=none; d=google.com; s=arc-20160816; b=OUWp0GoUGW9gtEIkApmn6j+ETR/eeI1rtucqwB9CeJhErd0hmmdURtksEBF2amUyWV yPOOJOWfdOQTqABJVWt56JcNrJ6R4qXp5GD+iCW02/5YsrPjGb5/QHce/l/tdLRO4PHU hZsv+beW1PIKw65b+nGzWEbX0Cy11zLUZqd3UjsF/GVNumhwCZNp/ByFE9wxUQPYqf+6 DaOQBJO2HPaFn3OqAtwBH8XxTyDFXubZ/vf2Pk+6/kU9PvrN77qM3ySBlgJqjRnjbmVP gGVnmgXXuwBD8QydICK/2DkL5RwRjBdRKnTcElBRyZUevviS7upBjh4s3QXxHQce3X4g UUDQ== 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:arc-authentication-results; bh=syXP816FkKCjpkQbULvatIFKIUFvgym942reFh88RKQ=; b=JXk8aseWYk+Bape0m3ao2sOb9grxEpV8sAIa8dquWL3qkK669wQJfSEpyLg7KDE8xi L85flETzW8zSz4e8qMMVS4XcJN5SvLdXThn+2YeqHR9x/HubplhVJhkRdzecqej+/E/4 TiB3N4kUO+OMQHEDr28Zu2mtqShlvRgi3E/SRLLmzOUwGg/r5Oonz02n1+o7X9jL806R AaZk56/xKBmIj7NL1B5fPgiYapvHy61xjvDQ5Ky+6kEJaLiHsOkxZYeujXwyATnMsAfU JdJPm48MLt95FiX0eEnKZ+pKsjRyBW3R0yp6D9e/xoPtTTwrqPVmWzXqrJUQg7YeLFYc Szaw== 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 k3si7683947pff.157.2018.02.13.01.43.06; Tue, 13 Feb 2018 01:43:20 -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; 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 S934560AbeBMJkk (ORCPT + 99 others); Tue, 13 Feb 2018 04:40:40 -0500 Received: from mga03.intel.com ([134.134.136.65]:27128 "EHLO mga03.intel.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S934775AbeBMJft (ORCPT ); Tue, 13 Feb 2018 04:35:49 -0500 X-Amp-Result: SKIPPED(no attachment in message) X-Amp-File-Uploaded: False Received: from fmsmga003.fm.intel.com ([10.253.24.29]) by orsmga103.jf.intel.com with ESMTP/TLS/DHE-RSA-AES256-GCM-SHA384; 13 Feb 2018 01:35:49 -0800 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.46,507,1511856000"; d="scan'208";a="26889588" Received: from hao-dev.bj.intel.com ([10.238.157.61]) by FMSMGA003.fm.intel.com with ESMTP; 13 Feb 2018 01:35:47 -0800 From: Wu Hao To: atull@kernel.org, mdf@kernel.org, linux-fpga@vger.kernel.org, linux-kernel@vger.kernel.org Cc: linux-api@vger.kernel.org, luwei.kang@intel.com, yi.z.zhang@intel.com, hao.wu@intel.com Subject: [PATCH v4 15/24] fpga: dfl-fme-pr: add compat_id support for dfl-fme-region platform device. Date: Tue, 13 Feb 2018 17:24:44 +0800 Message-Id: <1518513893-4719-16-git-send-email-hao.wu@intel.com> X-Mailer: git-send-email 2.7.4 In-Reply-To: <1518513893-4719-1-git-send-email-hao.wu@intel.com> References: <1518513893-4719-1-git-send-email-hao.wu@intel.com> Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org This patch adds compat_id support when driver creates the platform device for dfl-fme-region. It allows dfl-fme-region platform driver to create fpga-region with correct compat_id. Signed-off-by: Wu Hao --- drivers/fpga/dfl-fme-pr.c | 20 ++++++++++++++++++++ drivers/fpga/dfl-fme-pr.h | 3 +++ 2 files changed, 23 insertions(+) diff --git a/drivers/fpga/dfl-fme-pr.c b/drivers/fpga/dfl-fme-pr.c index 526e90b..c17170b 100644 --- a/drivers/fpga/dfl-fme-pr.c +++ b/drivers/fpga/dfl-fme-pr.c @@ -314,6 +314,25 @@ static void fpga_fme_destroy_bridges(struct feature_platform_data *pdata) } /** + * fpga_fme_get_region_compat_id - read region compat_id from hardware + * + * @dev: fme device. + */ +static struct fpga_region_compat_id +fpga_fme_get_region_compat_id(struct device *dev) +{ + struct fpga_region_compat_id compat_id; + void __iomem *fme_pr; + + fme_pr = get_feature_ioaddr_by_id(dev, FME_FEATURE_ID_PR_MGMT); + + compat_id.id_l = readq(fme_pr + FME_PR_INTFC_ID_L); + compat_id.id_h = readq(fme_pr + FME_PR_INTFC_ID_H); + + return compat_id; +} + +/** * fpga_fme_create_region - create fpga region platform device as child * * @pdata: fme platform device's pdata @@ -339,6 +358,7 @@ fpga_fme_create_region(struct feature_platform_data *pdata, region_pdata.mgr = mgr; region_pdata.br = br; + region_pdata.compat_id = fpga_fme_get_region_compat_id(dev); /* * Each FPGA device may have more than one port, so allocate platform diff --git a/drivers/fpga/dfl-fme-pr.h b/drivers/fpga/dfl-fme-pr.h index 11bd001..ef6c95a 100644 --- a/drivers/fpga/dfl-fme-pr.h +++ b/drivers/fpga/dfl-fme-pr.h @@ -19,6 +19,7 @@ #define __DFL_FME_PR_H #include +#include /** * struct fme_region - FME fpga region data structure @@ -39,11 +40,13 @@ struct fme_region { * @mgr: platform device of the FPGA manager. * @br: platform device of the FPGA bridge. * @region_id: region id (same as port_id). + * @compat_id: compat id of the FPGA region. */ struct fme_region_pdata { struct platform_device *mgr; struct platform_device *br; int region_id; + struct fpga_region_compat_id compat_id; }; /** -- 2.7.4