glights            50 drivers/staging/greybus/light.c 	struct gb_lights	*glights;
glights            73 drivers/staging/greybus/light.c 	return channel->light->glights->connection;
glights            78 drivers/staging/greybus/light.c 	return light->glights->connection;
glights          1003 drivers/staging/greybus/light.c static int gb_lights_light_config(struct gb_lights *glights, u8 id)
glights          1005 drivers/staging/greybus/light.c 	struct gb_light *light = &glights->lights[id];
glights          1011 drivers/staging/greybus/light.c 	light->glights = glights;
glights          1016 drivers/staging/greybus/light.c 	ret = gb_operation_sync(glights->connection,
glights          1116 drivers/staging/greybus/light.c static void gb_lights_release(struct gb_lights *glights)
glights          1120 drivers/staging/greybus/light.c 	if (!glights)
glights          1123 drivers/staging/greybus/light.c 	mutex_lock(&glights->lights_lock);
glights          1124 drivers/staging/greybus/light.c 	if (!glights->lights)
glights          1127 drivers/staging/greybus/light.c 	for (i = 0; i < glights->lights_count; i++)
glights          1128 drivers/staging/greybus/light.c 		gb_lights_light_release(&glights->lights[i]);
glights          1130 drivers/staging/greybus/light.c 	kfree(glights->lights);
glights          1133 drivers/staging/greybus/light.c 	mutex_unlock(&glights->lights_lock);
glights          1134 drivers/staging/greybus/light.c 	mutex_destroy(&glights->lights_lock);
glights          1135 drivers/staging/greybus/light.c 	kfree(glights);
glights          1138 drivers/staging/greybus/light.c static int gb_lights_get_count(struct gb_lights *glights)
glights          1143 drivers/staging/greybus/light.c 	ret = gb_operation_sync(glights->connection, GB_LIGHTS_TYPE_GET_LIGHTS,
glights          1151 drivers/staging/greybus/light.c 	glights->lights_count = resp.lights_count;
glights          1156 drivers/staging/greybus/light.c static int gb_lights_create_all(struct gb_lights *glights)
glights          1158 drivers/staging/greybus/light.c 	struct gb_connection *connection = glights->connection;
glights          1162 drivers/staging/greybus/light.c 	mutex_lock(&glights->lights_lock);
glights          1163 drivers/staging/greybus/light.c 	ret = gb_lights_get_count(glights);
glights          1167 drivers/staging/greybus/light.c 	glights->lights = kcalloc(glights->lights_count,
glights          1169 drivers/staging/greybus/light.c 	if (!glights->lights) {
glights          1174 drivers/staging/greybus/light.c 	for (i = 0; i < glights->lights_count; i++) {
glights          1175 drivers/staging/greybus/light.c 		ret = gb_lights_light_config(glights, i);
glights          1184 drivers/staging/greybus/light.c 	mutex_unlock(&glights->lights_lock);
glights          1188 drivers/staging/greybus/light.c static int gb_lights_register_all(struct gb_lights *glights)
glights          1190 drivers/staging/greybus/light.c 	struct gb_connection *connection = glights->connection;
glights          1194 drivers/staging/greybus/light.c 	mutex_lock(&glights->lights_lock);
glights          1195 drivers/staging/greybus/light.c 	for (i = 0; i < glights->lights_count; i++) {
glights          1196 drivers/staging/greybus/light.c 		ret = gb_lights_light_register(&glights->lights[i]);
glights          1204 drivers/staging/greybus/light.c 	mutex_unlock(&glights->lights_lock);
glights          1212 drivers/staging/greybus/light.c 	struct gb_lights *glights = gb_connection_get_data(connection);
glights          1236 drivers/staging/greybus/light.c 	if (light_id >= glights->lights_count ||
glights          1237 drivers/staging/greybus/light.c 	    !glights->lights[light_id].ready) {
glights          1246 drivers/staging/greybus/light.c 		light = &glights->lights[light_id];
glights          1248 drivers/staging/greybus/light.c 		mutex_lock(&glights->lights_lock);
glights          1250 drivers/staging/greybus/light.c 		ret = gb_lights_light_config(glights, light_id);
glights          1255 drivers/staging/greybus/light.c 		mutex_unlock(&glights->lights_lock);
glights          1266 drivers/staging/greybus/light.c 	struct gb_lights *glights;
glights          1276 drivers/staging/greybus/light.c 	glights = kzalloc(sizeof(*glights), GFP_KERNEL);
glights          1277 drivers/staging/greybus/light.c 	if (!glights)
glights          1280 drivers/staging/greybus/light.c 	mutex_init(&glights->lights_lock);
glights          1289 drivers/staging/greybus/light.c 	glights->connection = connection;
glights          1290 drivers/staging/greybus/light.c 	gb_connection_set_data(connection, glights);
glights          1292 drivers/staging/greybus/light.c 	greybus_set_drvdata(bundle, glights);
glights          1303 drivers/staging/greybus/light.c 	ret = gb_lights_create_all(glights);
glights          1313 drivers/staging/greybus/light.c 	ret = gb_lights_register_all(glights);
glights          1326 drivers/staging/greybus/light.c 	gb_lights_release(glights);
glights          1332 drivers/staging/greybus/light.c 	struct gb_lights *glights = greybus_get_drvdata(bundle);
glights          1337 drivers/staging/greybus/light.c 	gb_connection_disable(glights->connection);
glights          1338 drivers/staging/greybus/light.c 	gb_connection_destroy(glights->connection);
glights          1340 drivers/staging/greybus/light.c 	gb_lights_release(glights);