aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/i3c/master.c
diff options
context:
space:
mode:
authorVitor Soares <Vitor.Soares@synopsys.com>2019-07-19 15:30:54 +0200
committerBoris Brezillon <boris.brezillon@collabora.com>2019-07-27 11:22:19 +0200
commit934d24a5e1508e73c0001afb54a3916e4270428f (patch)
tree6d0ea86ce4114ad395d6d4cf7d3e9c62938e9310 /drivers/i3c/master.c
parentLinus 5.3-rc1 (diff)
downloadlinux-dev-934d24a5e1508e73c0001afb54a3916e4270428f.tar.xz
linux-dev-934d24a5e1508e73c0001afb54a3916e4270428f.zip
i3c: move i3c_device_match_id to device.c and export it
Some I3C device drivers need to know which entry matches the i3c_device object passed to the probe function Let's move i3c_device_match_id() to device.c and export it so it can be used by drivers. Signed-off-by: Vitor Soares <vitor.soares@synopsys.com> Signed-off-by: Boris Brezillon <boris.brezillon@collabora.com>
Diffstat (limited to 'drivers/i3c/master.c')
-rw-r--r--drivers/i3c/master.c45
1 files changed, 0 insertions, 45 deletions
diff --git a/drivers/i3c/master.c b/drivers/i3c/master.c
index d6f8b038a896..c58729081899 100644
--- a/drivers/i3c/master.c
+++ b/drivers/i3c/master.c
@@ -276,51 +276,6 @@ static const struct device_type i3c_device_type = {
.uevent = i3c_device_uevent,
};
-static const struct i3c_device_id *
-i3c_device_match_id(struct i3c_device *i3cdev,
- const struct i3c_device_id *id_table)
-{
- struct i3c_device_info devinfo;
- const struct i3c_device_id *id;
-
- i3c_device_get_info(i3cdev, &devinfo);
-
- /*
- * The lower 32bits of the provisional ID is just filled with a random
- * value, try to match using DCR info.
- */
- if (!I3C_PID_RND_LOWER_32BITS(devinfo.pid)) {
- u16 manuf = I3C_PID_MANUF_ID(devinfo.pid);
- u16 part = I3C_PID_PART_ID(devinfo.pid);
- u16 ext_info = I3C_PID_EXTRA_INFO(devinfo.pid);
-
- /* First try to match by manufacturer/part ID. */
- for (id = id_table; id->match_flags != 0; id++) {
- if ((id->match_flags & I3C_MATCH_MANUF_AND_PART) !=
- I3C_MATCH_MANUF_AND_PART)
- continue;
-
- if (manuf != id->manuf_id || part != id->part_id)
- continue;
-
- if ((id->match_flags & I3C_MATCH_EXTRA_INFO) &&
- ext_info != id->extra_info)
- continue;
-
- return id;
- }
- }
-
- /* Fallback to DCR match. */
- for (id = id_table; id->match_flags != 0; id++) {
- if ((id->match_flags & I3C_MATCH_DCR) &&
- id->dcr == devinfo.dcr)
- return id;
- }
-
- return NULL;
-}
-
static int i3c_device_match(struct device *dev, struct device_driver *drv)
{
struct i3c_device *i3cdev;