mei: bus: add me client device list infrastructure
authorTomas Winkler <tomas.winkler@intel.com>
Thu, 23 Jul 2015 12:08:42 +0000 (15:08 +0300)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Tue, 4 Aug 2015 00:21:59 +0000 (17:21 -0700)
Instead of holding the list of host clients (me_cl)
we want to keep the list me client devices (mei_cl_device)
This way we can create host to me client connection only when needed.
Add list head to mei_cl_device and cl_bus_lock
Add bus_added flag to the me client (mei_me_client) to track if
the appropriate mei_cl_device was already created and is_added
flag to mei_cl_device to track if it was already added to the device
list across the bus rescans

Signed-off-by: Tomas Winkler <tomas.winkler@intel.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
drivers/misc/mei/bus.c
drivers/misc/mei/init.c
drivers/misc/mei/mei_dev.h
include/linux/mei_cl_bus.h

index 963731e..34b14dd 100644 (file)
@@ -657,6 +657,7 @@ struct mei_cl_device *mei_cl_add_device(struct mei_device *bus,
        cldev->dev.bus = &mei_cl_bus_type;
        cldev->dev.type = &mei_cl_device_type;
        cldev->bus      = mei_dev_bus_get(bus);
+       INIT_LIST_HEAD(&cldev->bus_list);
 
        strlcpy(cldev->name, name, sizeof(cldev->name));
 
index 00c3865..15000e9 100644 (file)
@@ -390,6 +390,7 @@ void mei_device_init(struct mei_device *dev,
        INIT_LIST_HEAD(&dev->me_clients);
        mutex_init(&dev->device_lock);
        init_rwsem(&dev->me_clients_rwsem);
+       mutex_init(&dev->cl_bus_lock);
        init_waitqueue_head(&dev->wait_hw_ready);
        init_waitqueue_head(&dev->wait_pg);
        init_waitqueue_head(&dev->wait_hbm_start);
Simple merge
Simple merge