Message ID | 20201210165804.44234-6-mdf@kernel.org (mailing list archive) |
---|---|
State | Superseded, archived |
Headers | show |
Series | FPGA DFL Changes for 5.11 | expand |
On 12/10/20 8:58 AM, Moritz Fischer wrote: > From: Xu Yilun <yilun.xu@intel.com> > > Device Feature List (DFL) is a linked list of feature headers within the > device MMIO space. It is used by FPGA to enumerate multiple sub features > within it. Each feature can be uniquely identified by DFL type and > feature id, which can be read out from feature headers. > > A dfl bus helps DFL framework modularize DFL device drivers for > different sub features. The dfl bus matches its devices and drivers by > DFL type and feature id. > > This patch adds dfl bus support to MODULE_DEVICE_TABLE() by adding info > about struct dfl_device_id in devicetable-offsets.c and add a dfl entry > point in file2alias.c. > > Signed-off-by: Xu Yilun <yilun.xu@intel.com> > Signed-off-by: Wu Hao <hao.wu@intel.com> > Signed-off-by: Matthew Gerlach <matthew.gerlach@linux.intel.com> > Signed-off-by: Russ Weight <russell.h.weight@intel.com> > Signed-off-by: Moritz Fischer <mdf@kernel.org> > Acked-by: Wu Hao <hao.wu@intel.com> > --- > scripts/mod/devicetable-offsets.c | 4 ++++ > scripts/mod/file2alias.c | 13 +++++++++++++ > 2 files changed, 17 insertions(+) > > diff --git a/scripts/mod/devicetable-offsets.c b/scripts/mod/devicetable-offsets.c > index 27007c18e754..d8350eea6d1a 100644 > --- a/scripts/mod/devicetable-offsets.c > +++ b/scripts/mod/devicetable-offsets.c > @@ -243,5 +243,9 @@ int main(void) > DEVID(mhi_device_id); > DEVID_FIELD(mhi_device_id, chan); addition of auxiliary_device_id causes a trivial conflict. Do you want me resolve and resend the set ? Tom > > + DEVID(dfl_device_id); > + DEVID_FIELD(dfl_device_id, type); > + DEVID_FIELD(dfl_device_id, feature_id); > + > return 0; > }
On Mon, Dec 14, 2020 at 05:43:53AM -0800, Tom Rix wrote: > > On 12/10/20 8:58 AM, Moritz Fischer wrote: > > From: Xu Yilun <yilun.xu@intel.com> > > > > Device Feature List (DFL) is a linked list of feature headers within the > > device MMIO space. It is used by FPGA to enumerate multiple sub features > > within it. Each feature can be uniquely identified by DFL type and > > feature id, which can be read out from feature headers. > > > > A dfl bus helps DFL framework modularize DFL device drivers for > > different sub features. The dfl bus matches its devices and drivers by > > DFL type and feature id. > > > > This patch adds dfl bus support to MODULE_DEVICE_TABLE() by adding info > > about struct dfl_device_id in devicetable-offsets.c and add a dfl entry > > point in file2alias.c. > > > > Signed-off-by: Xu Yilun <yilun.xu@intel.com> > > Signed-off-by: Wu Hao <hao.wu@intel.com> > > Signed-off-by: Matthew Gerlach <matthew.gerlach@linux.intel.com> > > Signed-off-by: Russ Weight <russell.h.weight@intel.com> > > Signed-off-by: Moritz Fischer <mdf@kernel.org> > > Acked-by: Wu Hao <hao.wu@intel.com> > > --- > > scripts/mod/devicetable-offsets.c | 4 ++++ > > scripts/mod/file2alias.c | 13 +++++++++++++ > > 2 files changed, 17 insertions(+) > > > > diff --git a/scripts/mod/devicetable-offsets.c b/scripts/mod/devicetable-offsets.c > > index 27007c18e754..d8350eea6d1a 100644 > > --- a/scripts/mod/devicetable-offsets.c > > +++ b/scripts/mod/devicetable-offsets.c > > @@ -243,5 +243,9 @@ int main(void) > > DEVID(mhi_device_id); > > DEVID_FIELD(mhi_device_id, chan); > > addition of auxiliary_device_id causes a trivial conflict. > > Do you want me resolve and resend the set ? Seems we should wait until 5.11-rc1, I'll rebase and resolve the conflict then. Thanks, Yilun
diff --git a/scripts/mod/devicetable-offsets.c b/scripts/mod/devicetable-offsets.c index 27007c18e754..d8350eea6d1a 100644 --- a/scripts/mod/devicetable-offsets.c +++ b/scripts/mod/devicetable-offsets.c @@ -243,5 +243,9 @@ int main(void) DEVID(mhi_device_id); DEVID_FIELD(mhi_device_id, chan); + DEVID(dfl_device_id); + DEVID_FIELD(dfl_device_id, type); + DEVID_FIELD(dfl_device_id, feature_id); + return 0; } diff --git a/scripts/mod/file2alias.c b/scripts/mod/file2alias.c index 2417dd1dee33..8a438c94dcd9 100644 --- a/scripts/mod/file2alias.c +++ b/scripts/mod/file2alias.c @@ -1368,6 +1368,18 @@ static int do_mhi_entry(const char *filename, void *symval, char *alias) return 1; } +/* Looks like: dfl:tNfN */ +static int do_dfl_entry(const char *filename, void *symval, char *alias) +{ + DEF_FIELD(symval, dfl_device_id, type); + DEF_FIELD(symval, dfl_device_id, feature_id); + + sprintf(alias, "dfl:t%04Xf%04X", type, feature_id); + + add_wildcard(alias); + return 1; +} + /* Does namelen bytes of name exactly match the symbol? */ static bool sym_is(const char *name, unsigned namelen, const char *symbol) { @@ -1442,6 +1454,7 @@ static const struct devtable devtable[] = { {"tee", SIZE_tee_client_device_id, do_tee_entry}, {"wmi", SIZE_wmi_device_id, do_wmi_entry}, {"mhi", SIZE_mhi_device_id, do_mhi_entry}, + {"dfl", SIZE_dfl_device_id, do_dfl_entry}, }; /* Create MODULE_ALIAS() statements.