Hi all, On Mon, 11 Jan 2021 13:08:51 +1100 Stephen Rothwell <sfr@xxxxxxxxxxxxxxxx> wrote: > > Today's linux-next merge of the char-misc tree got conflicts in: > > include/linux/mod_devicetable.h > scripts/mod/devicetable-offsets.c > scripts/mod/file2alias.c > > between commit: > > eb0e90a82098 ("platform/surface: aggregator: Add dedicated bus and device type") > > from the drivers-x86 tree and commits: > > 9326eecd9365 ("fpga: dfl: move dfl_device_id to mod_devicetable.h") > 4a224acec597 ("fpga: dfl: add dfl bus support to MODULE_DEVICE_TABLE()") > > from the char-misc tree. > > I fixed it up (see below) and can carry the fix as necessary. This > is now fixed as far as linux-next is concerned, but any non trivial > conflicts should be mentioned to your upstream maintainer when your tree > is submitted for merging. You may also want to consider cooperating > with the maintainer of the conflicting tree to minimise any particularly > complex conflicts. > > -- > Cheers, > Stephen Rothwell > > diff --cc include/linux/mod_devicetable.h > index 935060955152,b8dae34eca10..000000000000 > --- a/include/linux/mod_devicetable.h > +++ b/include/linux/mod_devicetable.h > @@@ -846,22 -846,28 +846,46 @@@ struct auxiliary_device_id > kernel_ulong_t driver_data; > }; > > +/* Surface System Aggregator Module */ > + > +#define SSAM_MATCH_TARGET 0x1 > +#define SSAM_MATCH_INSTANCE 0x2 > +#define SSAM_MATCH_FUNCTION 0x4 > + > +struct ssam_device_id { > + __u8 match_flags; > + > + __u8 domain; > + __u8 category; > + __u8 target; > + __u8 instance; > + __u8 function; > + > + kernel_ulong_t driver_data; > +}; > + > + /* > + * DFL (Device Feature List) > + * > + * DFL defines a linked list of feature headers within the device MMIO space to > + * provide an extensible way of adding features. Software can walk through these > + * predefined data structures to enumerate features. It is now used in the FPGA. > + * See Documentation/fpga/dfl.rst for more information. > + * > + * The dfl bus type is introduced to match the individual feature devices (dfl > + * devices) for specific dfl drivers. > + */ > + > + /** > + * struct dfl_device_id - dfl device identifier > + * @type: DFL FIU type of the device. See enum dfl_id_type. > + * @feature_id: feature identifier local to its DFL FIU type. > + * @driver_data: driver specific data. > + */ > + struct dfl_device_id { > + __u16 type; > + __u16 feature_id; > + kernel_ulong_t driver_data; > + }; > + > #endif /* LINUX_MOD_DEVICETABLE_H */ > diff --cc scripts/mod/devicetable-offsets.c > index f078eeb0a961,1b14f3cde4e5..000000000000 > --- a/scripts/mod/devicetable-offsets.c > +++ b/scripts/mod/devicetable-offsets.c > @@@ -246,13 -246,9 +246,17 @@@ int main(void > DEVID(auxiliary_device_id); > DEVID_FIELD(auxiliary_device_id, name); > > + DEVID(ssam_device_id); > + DEVID_FIELD(ssam_device_id, match_flags); > + DEVID_FIELD(ssam_device_id, domain); > + DEVID_FIELD(ssam_device_id, category); > + DEVID_FIELD(ssam_device_id, target); > + DEVID_FIELD(ssam_device_id, instance); > + DEVID_FIELD(ssam_device_id, function); > + > + DEVID(dfl_device_id); > + DEVID_FIELD(dfl_device_id, type); > + DEVID_FIELD(dfl_device_id, feature_id); > + > return 0; > } > diff --cc scripts/mod/file2alias.c > index d21d2871387b,7ebabeb1e9c9..000000000000 > --- a/scripts/mod/file2alias.c > +++ b/scripts/mod/file2alias.c > @@@ -1375,28 -1375,18 +1375,40 @@@ static int do_auxiliary_entry(const cha > return 1; > } > > +/* > + * Looks like: ssam:dNcNtNiNfN > + * > + * N is exactly 2 digits, where each is an upper-case hex digit. > + */ > +static int do_ssam_entry(const char *filename, void *symval, char *alias) > +{ > + DEF_FIELD(symval, ssam_device_id, match_flags); > + DEF_FIELD(symval, ssam_device_id, domain); > + DEF_FIELD(symval, ssam_device_id, category); > + DEF_FIELD(symval, ssam_device_id, target); > + DEF_FIELD(symval, ssam_device_id, instance); > + DEF_FIELD(symval, ssam_device_id, function); > + > + sprintf(alias, "ssam:d%02Xc%02X", domain, category); > + ADD(alias, "t", match_flags & SSAM_MATCH_TARGET, target); > + ADD(alias, "i", match_flags & SSAM_MATCH_INSTANCE, instance); > + ADD(alias, "f", match_flags & SSAM_MATCH_FUNCTION, function); > + > + 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) > { > @@@ -1472,7 -1462,7 +1484,8 @@@ static const struct devtable devtable[ > {"wmi", SIZE_wmi_device_id, do_wmi_entry}, > {"mhi", SIZE_mhi_device_id, do_mhi_entry}, > {"auxiliary", SIZE_auxiliary_device_id, do_auxiliary_entry}, > + {"ssam", SIZE_ssam_device_id, do_ssam_entry}, > + {"dfl", SIZE_dfl_device_id, do_dfl_entry}, > }; > > /* Create MODULE_ALIAS() statements. With the merge window about to open, this is a reminder that this conflict still exists. -- Cheers, Stephen Rothwell
Attachment:
pgpqcslie52Cf.pgp
Description: OpenPGP digital signature