Lines Matching refs:bus
46 struct mei_device *bus; in __mei_cl_send() local
53 bus = cl->dev; in __mei_cl_send()
55 mutex_lock(&bus->device_lock); in __mei_cl_send()
56 if (bus->dev_state != MEI_DEV_ENABLED) { in __mei_cl_send()
88 mutex_unlock(&bus->device_lock); in __mei_cl_send()
106 struct mei_device *bus; in __mei_cl_recv() local
114 bus = cl->dev; in __mei_cl_recv()
116 mutex_lock(&bus->device_lock); in __mei_cl_recv()
117 if (bus->dev_state != MEI_DEV_ENABLED) { in __mei_cl_recv()
133 mutex_unlock(&bus->device_lock); in __mei_cl_recv()
144 mutex_lock(&bus->device_lock); in __mei_cl_recv()
171 mutex_unlock(&bus->device_lock); in __mei_cl_recv()
225 struct mei_device *bus; in mei_cl_bus_event_work() local
229 bus = cldev->bus; in mei_cl_bus_event_work()
238 mutex_lock(&bus->device_lock); in mei_cl_bus_event_work()
240 mutex_unlock(&bus->device_lock); in mei_cl_bus_event_work()
305 struct mei_device *bus = cldev->bus; in mei_cldev_register_event_cb() local
318 mutex_lock(&bus->device_lock); in mei_cldev_register_event_cb()
320 mutex_unlock(&bus->device_lock); in mei_cldev_register_event_cb()
326 mutex_lock(&bus->device_lock); in mei_cldev_register_event_cb()
328 mutex_unlock(&bus->device_lock); in mei_cldev_register_event_cb()
411 struct mei_device *bus = cldev->bus; in mei_cldev_enable() local
418 mutex_lock(&bus->device_lock); in mei_cldev_enable()
419 cl = mei_cl_alloc_linked(bus, MEI_HOST_CLIENT_ID_ANY); in mei_cldev_enable()
420 mutex_unlock(&bus->device_lock); in mei_cldev_enable()
428 mutex_lock(&bus->device_lock); in mei_cldev_enable()
445 mutex_unlock(&bus->device_lock); in mei_cldev_enable()
461 struct mei_device *bus; in mei_cldev_disable() local
470 bus = cldev->bus; in mei_cldev_disable()
474 mutex_lock(&bus->device_lock); in mei_cldev_disable()
477 dev_err(bus->dev, "Already disconnected"); in mei_cldev_disable()
484 dev_err(bus->dev, "Could not disconnect from the ME client"); in mei_cldev_disable()
494 mutex_unlock(&bus->device_lock); in mei_cldev_disable()
732 static struct mei_device *mei_dev_bus_get(struct mei_device *bus) in mei_dev_bus_get() argument
734 if (bus) in mei_dev_bus_get()
735 get_device(bus->dev); in mei_dev_bus_get()
737 return bus; in mei_dev_bus_get()
740 static void mei_dev_bus_put(struct mei_device *bus) in mei_dev_bus_put() argument
742 if (bus) in mei_dev_bus_put()
743 put_device(bus->dev); in mei_dev_bus_put()
754 mei_dev_bus_put(cldev->bus); in mei_cl_bus_dev_release()
783 static struct mei_cl_device *mei_cl_bus_dev_alloc(struct mei_device *bus, in mei_cl_bus_dev_alloc() argument
793 cldev->dev.parent = bus->dev; in mei_cl_bus_dev_alloc()
794 cldev->dev.bus = &mei_cl_bus_type; in mei_cl_bus_dev_alloc()
796 cldev->bus = mei_dev_bus_get(bus); in mei_cl_bus_dev_alloc()
814 static bool mei_cl_bus_dev_setup(struct mei_device *bus, in mei_cl_bus_dev_setup() argument
838 dev_dbg(cldev->bus->dev, "adding %pUL:%02X\n", in mei_cl_bus_dev_add()
869 WARN_ON(!mutex_is_locked(&cldev->bus->cl_bus_lock)); in mei_cl_bus_dev_destroy()
898 void mei_cl_bus_remove_devices(struct mei_device *bus) in mei_cl_bus_remove_devices() argument
902 mutex_lock(&bus->cl_bus_lock); in mei_cl_bus_remove_devices()
903 list_for_each_entry_safe(cldev, next, &bus->device_list, bus_list) in mei_cl_bus_remove_devices()
905 mutex_unlock(&bus->cl_bus_lock); in mei_cl_bus_remove_devices()
918 static void mei_cl_bus_dev_init(struct mei_device *bus, in mei_cl_bus_dev_init() argument
923 WARN_ON(!mutex_is_locked(&bus->cl_bus_lock)); in mei_cl_bus_dev_init()
925 dev_dbg(bus->dev, "initializing %pUl", mei_me_cl_uuid(me_cl)); in mei_cl_bus_dev_init()
930 cldev = mei_cl_bus_dev_alloc(bus, me_cl); in mei_cl_bus_dev_init()
935 list_add_tail(&cldev->bus_list, &bus->device_list); in mei_cl_bus_dev_init()
945 void mei_cl_bus_rescan(struct mei_device *bus) in mei_cl_bus_rescan() argument
950 mutex_lock(&bus->cl_bus_lock); in mei_cl_bus_rescan()
952 down_read(&bus->me_clients_rwsem); in mei_cl_bus_rescan()
953 list_for_each_entry(me_cl, &bus->me_clients, list) in mei_cl_bus_rescan()
954 mei_cl_bus_dev_init(bus, me_cl); in mei_cl_bus_rescan()
955 up_read(&bus->me_clients_rwsem); in mei_cl_bus_rescan()
957 list_for_each_entry_safe(cldev, n, &bus->device_list, bus_list) { in mei_cl_bus_rescan()
967 if (mei_cl_bus_dev_setup(bus, cldev)) in mei_cl_bus_rescan()
974 mutex_unlock(&bus->cl_bus_lock); in mei_cl_bus_rescan()
976 dev_dbg(bus->dev, "rescan end"); in mei_cl_bus_rescan()
986 cldrv->driver.bus = &mei_cl_bus_type; in __mei_cldev_driver_register()