On 7/9/21 6:42 AM, trix@xxxxxxxxxx wrote:
From: Tom Rix <trix@xxxxxxxxxx>
A followup to
https://lore.kernel.org/linux-fpga/aa06a7ca-eff3-5c0d-f3b0-f1d9ddb74526@xxxxxxxxxx/
The current storing of compat_id in fpga_manager is dfl specific.
This makes the refactoring of the release()'s complicated because there
is a dfl specific flavor of register().
Keeping the compat_id sysfs abi, each implementation through the new
compat_id_show() fpga_region op can print out whatever value they need
to the sysfs. Currently only dfl does.
Since there are now two ops for fpga_region, give fpga_region its
own ops table. Add a wrapper for get_bridges().
Changes from
v1
Completely written to keep sysfs abi
Moritz and Hao,
Can you comment on v2 ?
The compat_id abi is unchanged, so dfl's opae userspace access will not
change.
For ever other board, the nonuse error is the same.
Otherwise, the new region ops is consistent with manger ops.
I can split this first patch out if the refactor of compat_id is
contentious .
Tom
Tom Rix (4):
fpga: region: introduce fpga_region_ops
fpga: region: introduce compat_id_show op
fpga: dfl: implement the compat_id_show region op
fpga: remove compat_id from fpga_manager and fpga_region
Documentation/driver-api/fpga/fpga-region.rst | 6 ++-
drivers/fpga/dfl-fme-mgr.c | 23 ++++++-----
drivers/fpga/dfl-fme-pr.c | 2 +-
drivers/fpga/dfl-fme-region.c | 21 +++++++++-
drivers/fpga/dfl.h | 14 +++++++
drivers/fpga/fpga-region.c | 40 ++++++++++---------
drivers/fpga/of-fpga-region.c | 6 ++-
include/linux/fpga/fpga-mgr.h | 13 ------
include/linux/fpga/fpga-region.h | 26 +++++++++---
9 files changed, 99 insertions(+), 52 deletions(-)