diff options
author | Linus Torvalds <torvalds@linux-foundation.org> | 2018-06-05 19:20:22 -0400 |
---|---|---|
committer | Linus Torvalds <torvalds@linux-foundation.org> | 2018-06-05 19:20:22 -0400 |
commit | abf7dba7c4f77d781f6df50fefb19a64c5dc331f (patch) | |
tree | 38648731b502d5aec508f3b33f6616190e598eb6 /drivers/fpga/altera-pr-ip-core.c | |
parent | 07c4dd3435aa387d3b58f4e941dc516513f14507 (diff) | |
parent | b23220fe054e92f616b82450fae8cd3ab176cc60 (diff) |
Merge tag 'char-misc-4.18-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/char-misc
Pull char/misc driver updates from Greg KH:
"Here is the "big" char and misc driver patches for 4.18-rc1.
It's not a lot of stuff here, but there are some highlights:
- coreboot driver updates
- soundwire driver updates
- android binder updates
- fpga big sync, mostly documentation
- lots of minor driver updates
All of these have been in linux-next for a while with no reported
issues"
* tag 'char-misc-4.18-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/char-misc: (81 commits)
vmw_balloon: fixing double free when batching mode is off
MAINTAINERS: Add driver-api/fpga path
fpga: clarify that unregister functions also free
documentation: fpga: move fpga-region.txt to driver-api
documentation: fpga: add bridge document to driver-api
documentation: fpga: move fpga-mgr.txt to driver-api
Documentation: fpga: move fpga overview to driver-api
fpga: region: kernel-doc fixes
fpga: bridge: kernel-doc fixes
fpga: mgr: kernel-doc fixes
fpga: use SPDX
fpga: region: change api, add fpga_region_create/free
fpga: bridge: change api, don't use drvdata
fpga: manager: change api, don't use drvdata
fpga: region: don't use drvdata in common fpga code
Drivers: hv: vmbus: Removed an unnecessary cast from void *
ver_linux: Drop redundant calls to system() to test if file is readable
ver_linux: Move stderr redirection from function parameter to function body
misc: IBM Virtual Management Channel Driver (VMC)
rpmsg: Correct support for MODULE_DEVICE_TABLE()
...
Diffstat (limited to 'drivers/fpga/altera-pr-ip-core.c')
-rw-r--r-- | drivers/fpga/altera-pr-ip-core.c | 31 |
1 files changed, 17 insertions, 14 deletions
diff --git a/drivers/fpga/altera-pr-ip-core.c b/drivers/fpga/altera-pr-ip-core.c index a7b31f9797ce..65e0b6a2c031 100644 --- a/drivers/fpga/altera-pr-ip-core.c +++ b/drivers/fpga/altera-pr-ip-core.c | |||
@@ -1,3 +1,4 @@ | |||
1 | // SPDX-License-Identifier: GPL-2.0 | ||
1 | /* | 2 | /* |
2 | * Driver for Altera Partial Reconfiguration IP Core | 3 | * Driver for Altera Partial Reconfiguration IP Core |
3 | * | 4 | * |
@@ -5,18 +6,6 @@ | |||
5 | * | 6 | * |
6 | * Based on socfpga-a10.c Copyright (C) 2015-2016 Altera Corporation | 7 | * Based on socfpga-a10.c Copyright (C) 2015-2016 Altera Corporation |
7 | * by Alan Tull <atull@opensource.altera.com> | 8 | * by Alan Tull <atull@opensource.altera.com> |
8 | * | ||
9 | * This program is free software; you can redistribute it and/or modify it | ||
10 | * under the terms and conditions of the GNU General Public License, | ||
11 | * version 2, as published by the Free Software Foundation. | ||
12 | * | ||
13 | * This program is distributed in the hope it will be useful, but WITHOUT | ||
14 | * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or | ||
15 | * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for | ||
16 | * more details. | ||
17 | * | ||
18 | * You should have received a copy of the GNU General Public License along with | ||
19 | * this program. If not, see <http://www.gnu.org/licenses/>. | ||
20 | */ | 9 | */ |
21 | #include <linux/delay.h> | 10 | #include <linux/delay.h> |
22 | #include <linux/fpga/altera-pr-ip-core.h> | 11 | #include <linux/fpga/altera-pr-ip-core.h> |
@@ -187,6 +176,8 @@ static const struct fpga_manager_ops alt_pr_ops = { | |||
187 | int alt_pr_register(struct device *dev, void __iomem *reg_base) | 176 | int alt_pr_register(struct device *dev, void __iomem *reg_base) |
188 | { | 177 | { |
189 | struct alt_pr_priv *priv; | 178 | struct alt_pr_priv *priv; |
179 | struct fpga_manager *mgr; | ||
180 | int ret; | ||
190 | u32 val; | 181 | u32 val; |
191 | 182 | ||
192 | priv = devm_kzalloc(dev, sizeof(*priv), GFP_KERNEL); | 183 | priv = devm_kzalloc(dev, sizeof(*priv), GFP_KERNEL); |
@@ -201,15 +192,27 @@ int alt_pr_register(struct device *dev, void __iomem *reg_base) | |||
201 | (val & ALT_PR_CSR_STATUS_MSK) >> ALT_PR_CSR_STATUS_SFT, | 192 | (val & ALT_PR_CSR_STATUS_MSK) >> ALT_PR_CSR_STATUS_SFT, |
202 | (int)(val & ALT_PR_CSR_PR_START)); | 193 | (int)(val & ALT_PR_CSR_PR_START)); |
203 | 194 | ||
204 | return fpga_mgr_register(dev, dev_name(dev), &alt_pr_ops, priv); | 195 | mgr = fpga_mgr_create(dev, dev_name(dev), &alt_pr_ops, priv); |
196 | if (!mgr) | ||
197 | return -ENOMEM; | ||
198 | |||
199 | dev_set_drvdata(dev, mgr); | ||
200 | |||
201 | ret = fpga_mgr_register(mgr); | ||
202 | if (ret) | ||
203 | fpga_mgr_free(mgr); | ||
204 | |||
205 | return ret; | ||
205 | } | 206 | } |
206 | EXPORT_SYMBOL_GPL(alt_pr_register); | 207 | EXPORT_SYMBOL_GPL(alt_pr_register); |
207 | 208 | ||
208 | int alt_pr_unregister(struct device *dev) | 209 | int alt_pr_unregister(struct device *dev) |
209 | { | 210 | { |
211 | struct fpga_manager *mgr = dev_get_drvdata(dev); | ||
212 | |||
210 | dev_dbg(dev, "%s\n", __func__); | 213 | dev_dbg(dev, "%s\n", __func__); |
211 | 214 | ||
212 | fpga_mgr_unregister(dev); | 215 | fpga_mgr_unregister(mgr); |
213 | 216 | ||
214 | return 0; | 217 | return 0; |
215 | } | 218 | } |