staging: fsl-mc: add support for device table matching
Move the definition of fsl_mc_device_id to its proper location in mod_devicetable.h, and add fsl-mc bus support to devicetable-offsets.c and file2alias.c to enable device table matching. With this patch udev based module loading of fsl-mc drivers is supported. Signed-off-by: Stuart Yoder <stuart.yoder@nxp.com> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
This commit is contained in:
parent
57538afb42
commit
0afef45654
|
@ -50,19 +50,6 @@ struct fsl_mc_driver {
|
|||
#define to_fsl_mc_driver(_drv) \
|
||||
container_of(_drv, struct fsl_mc_driver, driver)
|
||||
|
||||
/**
|
||||
* struct fsl_mc_device_id - MC object device Id entry for driver matching
|
||||
* @vendor: vendor ID
|
||||
* @obj_type: MC object type
|
||||
*
|
||||
* Type of entries in the "device Id" table for MC object devices supported by
|
||||
* a MC object device driver. The last entry of the table has vendor set to 0x0
|
||||
*/
|
||||
struct fsl_mc_device_id {
|
||||
u16 vendor;
|
||||
const char obj_type[16];
|
||||
};
|
||||
|
||||
/**
|
||||
* enum fsl_mc_pool_type - Types of allocatable MC bus resources
|
||||
*
|
||||
|
|
|
@ -657,4 +657,20 @@ struct ulpi_device_id {
|
|||
kernel_ulong_t driver_data;
|
||||
};
|
||||
|
||||
/**
|
||||
* struct fsl_mc_device_id - MC object device identifier
|
||||
* @vendor: vendor ID
|
||||
* @obj_type: MC object type
|
||||
* @ver_major: MC object version major number
|
||||
* @ver_minor: MC object version minor number
|
||||
*
|
||||
* Type of entries in the "device Id" table for MC object devices supported by
|
||||
* a MC object device driver. The last entry of the table has vendor set to 0x0
|
||||
*/
|
||||
struct fsl_mc_device_id {
|
||||
__u16 vendor;
|
||||
const char obj_type[16];
|
||||
};
|
||||
|
||||
|
||||
#endif /* LINUX_MOD_DEVICETABLE_H */
|
||||
|
|
|
@ -202,5 +202,9 @@ int main(void)
|
|||
DEVID_FIELD(hda_device_id, rev_id);
|
||||
DEVID_FIELD(hda_device_id, api_version);
|
||||
|
||||
DEVID(fsl_mc_device_id);
|
||||
DEVID_FIELD(fsl_mc_device_id, vendor);
|
||||
DEVID_FIELD(fsl_mc_device_id, obj_type);
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
|
|
@ -1289,6 +1289,18 @@ static int do_hda_entry(const char *filename, void *symval, char *alias)
|
|||
}
|
||||
ADD_TO_DEVTABLE("hdaudio", hda_device_id, do_hda_entry);
|
||||
|
||||
/* Looks like: fsl-mc:vNdN */
|
||||
static int do_fsl_mc_entry(const char *filename, void *symval,
|
||||
char *alias)
|
||||
{
|
||||
DEF_FIELD(symval, fsl_mc_device_id, vendor);
|
||||
DEF_FIELD_ADDR(symval, fsl_mc_device_id, obj_type);
|
||||
|
||||
sprintf(alias, "fsl-mc:v%08Xd%s", vendor, *obj_type);
|
||||
return 1;
|
||||
}
|
||||
ADD_TO_DEVTABLE("fslmc", fsl_mc_device_id, do_fsl_mc_entry);
|
||||
|
||||
/* Does namelen bytes of name exactly match the symbol? */
|
||||
static bool sym_is(const char *name, unsigned namelen, const char *symbol)
|
||||
{
|
||||
|
|
Loading…
Reference in New Issue