serdev: only match serdev devices
Only serdev devices (a.k.a. clients or slaves) are bound to drivers so bail out early from match() in case the device is not a serdev device (i.e. if it's a serdev controller). Signed-off-by: Johan Hovold <johan@kernel.org> Reviewed-by: Sebastian Reichel <sebastian.reichel@collabora.co.uk> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
This commit is contained in:
parent
2460942f51
commit
7ee69102db
|
@ -63,6 +63,11 @@ static const struct device_type serdev_device_type = {
|
||||||
.release = serdev_device_release,
|
.release = serdev_device_release,
|
||||||
};
|
};
|
||||||
|
|
||||||
|
static bool is_serdev_device(const struct device *dev)
|
||||||
|
{
|
||||||
|
return dev->type == &serdev_device_type;
|
||||||
|
}
|
||||||
|
|
||||||
static void serdev_ctrl_release(struct device *dev)
|
static void serdev_ctrl_release(struct device *dev)
|
||||||
{
|
{
|
||||||
struct serdev_controller *ctrl = to_serdev_controller(dev);
|
struct serdev_controller *ctrl = to_serdev_controller(dev);
|
||||||
|
@ -76,6 +81,9 @@ static const struct device_type serdev_ctrl_type = {
|
||||||
|
|
||||||
static int serdev_device_match(struct device *dev, struct device_driver *drv)
|
static int serdev_device_match(struct device *dev, struct device_driver *drv)
|
||||||
{
|
{
|
||||||
|
if (!is_serdev_device(dev))
|
||||||
|
return 0;
|
||||||
|
|
||||||
/* TODO: platform matching */
|
/* TODO: platform matching */
|
||||||
if (acpi_driver_match_device(dev, drv))
|
if (acpi_driver_match_device(dev, drv))
|
||||||
return 1;
|
return 1;
|
||||||
|
|
Loading…
Reference in New Issue