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);