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/ice40-spi.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/ice40-spi.c')
-rw-r--r-- | drivers/fpga/ice40-spi.c | 21 |
1 files changed, 17 insertions, 4 deletions
diff --git a/drivers/fpga/ice40-spi.c b/drivers/fpga/ice40-spi.c index 7fca82023062..5981c7ee7a7d 100644 --- a/drivers/fpga/ice40-spi.c +++ b/drivers/fpga/ice40-spi.c | |||
@@ -133,6 +133,7 @@ static int ice40_fpga_probe(struct spi_device *spi) | |||
133 | { | 133 | { |
134 | struct device *dev = &spi->dev; | 134 | struct device *dev = &spi->dev; |
135 | struct ice40_fpga_priv *priv; | 135 | struct ice40_fpga_priv *priv; |
136 | struct fpga_manager *mgr; | ||
136 | int ret; | 137 | int ret; |
137 | 138 | ||
138 | priv = devm_kzalloc(&spi->dev, sizeof(*priv), GFP_KERNEL); | 139 | priv = devm_kzalloc(&spi->dev, sizeof(*priv), GFP_KERNEL); |
@@ -174,14 +175,26 @@ static int ice40_fpga_probe(struct spi_device *spi) | |||
174 | return ret; | 175 | return ret; |
175 | } | 176 | } |
176 | 177 | ||
177 | /* Register with the FPGA manager */ | 178 | mgr = fpga_mgr_create(dev, "Lattice iCE40 FPGA Manager", |
178 | return fpga_mgr_register(dev, "Lattice iCE40 FPGA Manager", | 179 | &ice40_fpga_ops, priv); |
179 | &ice40_fpga_ops, priv); | 180 | if (!mgr) |
181 | return -ENOMEM; | ||
182 | |||
183 | spi_set_drvdata(spi, mgr); | ||
184 | |||
185 | ret = fpga_mgr_register(mgr); | ||
186 | if (ret) | ||
187 | fpga_mgr_free(mgr); | ||
188 | |||
189 | return ret; | ||
180 | } | 190 | } |
181 | 191 | ||
182 | static int ice40_fpga_remove(struct spi_device *spi) | 192 | static int ice40_fpga_remove(struct spi_device *spi) |
183 | { | 193 | { |
184 | fpga_mgr_unregister(&spi->dev); | 194 | struct fpga_manager *mgr = spi_get_drvdata(spi); |
195 | |||
196 | fpga_mgr_unregister(mgr); | ||
197 | |||
185 | return 0; | 198 | return 0; |
186 | } | 199 | } |
187 | 200 | ||