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 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(-) -- 2.26.3