gcam              183 drivers/staging/greybus/camera.c #define gcam_dbg(gcam, format...)	dev_dbg(&gcam->bundle->dev, format)
gcam              184 drivers/staging/greybus/camera.c #define gcam_info(gcam, format...)	dev_info(&gcam->bundle->dev, format)
gcam              185 drivers/staging/greybus/camera.c #define gcam_err(gcam, format...)	dev_err(&gcam->bundle->dev, format)
gcam              222 drivers/staging/greybus/camera.c static int gb_camera_get_max_pkt_size(struct gb_camera *gcam,
gcam              235 drivers/staging/greybus/camera.c 			gcam_err(gcam, "unsupported greybus image format: %d\n",
gcam              244 drivers/staging/greybus/camera.c 				gcam_err(gcam,
gcam              253 drivers/staging/greybus/camera.c 				gcam_err(gcam,
gcam              271 drivers/staging/greybus/camera.c 		struct gb_camera *gcam,
gcam              279 drivers/staging/greybus/camera.c 		gcam_err(gcam, "response padding != 0\n");
gcam              284 drivers/staging/greybus/camera.c 		gcam_err(gcam, "got #streams %u > request %u\n",
gcam              293 drivers/staging/greybus/camera.c 			gcam_err(gcam, "stream #%u padding != 0\n", i);
gcam              305 drivers/staging/greybus/camera.c static int gb_camera_set_intf_power_mode(struct gb_camera *gcam, u8 intf_id,
gcam              308 drivers/staging/greybus/camera.c 	struct gb_svc *svc = gcam->connection->hd->svc;
gcam              336 drivers/staging/greybus/camera.c static int gb_camera_set_power_mode(struct gb_camera *gcam, bool hs)
gcam              338 drivers/staging/greybus/camera.c 	struct gb_interface *intf = gcam->connection->intf;
gcam              339 drivers/staging/greybus/camera.c 	struct gb_svc *svc = gcam->connection->hd->svc;
gcam              342 drivers/staging/greybus/camera.c 	ret = gb_camera_set_intf_power_mode(gcam, intf->interface_id, hs);
gcam              344 drivers/staging/greybus/camera.c 		gcam_err(gcam, "failed to set module interface to %s (%d)\n",
gcam              349 drivers/staging/greybus/camera.c 	ret = gb_camera_set_intf_power_mode(gcam, svc->ap_intf_id, hs);
gcam              351 drivers/staging/greybus/camera.c 		gb_camera_set_intf_power_mode(gcam, intf->interface_id, !hs);
gcam              352 drivers/staging/greybus/camera.c 		gcam_err(gcam, "failed to set AP interface to %s (%d)\n",
gcam              380 drivers/staging/greybus/camera.c static int gb_camera_setup_data_connection(struct gb_camera *gcam,
gcam              393 drivers/staging/greybus/camera.c 	conn = gb_connection_create_offloaded(gcam->bundle, gcam->data_cport_id,
gcam              399 drivers/staging/greybus/camera.c 	gcam->data_connection = conn;
gcam              400 drivers/staging/greybus/camera.c 	gb_connection_set_data(conn, gcam);
gcam              407 drivers/staging/greybus/camera.c 	ret = gb_camera_set_power_mode(gcam, true);
gcam              428 drivers/staging/greybus/camera.c 	ret = gb_camera_get_max_pkt_size(gcam, resp);
gcam              435 drivers/staging/greybus/camera.c 	ret = gb_hd_output(gcam->connection->hd, &csi_cfg,
gcam              439 drivers/staging/greybus/camera.c 		gcam_err(gcam, "failed to start the CSI transmitter\n");
gcam              451 drivers/staging/greybus/camera.c 	gb_camera_set_power_mode(gcam, false);
gcam              453 drivers/staging/greybus/camera.c 	gb_connection_disable(gcam->data_connection);
gcam              455 drivers/staging/greybus/camera.c 	gb_connection_destroy(gcam->data_connection);
gcam              456 drivers/staging/greybus/camera.c 	gcam->data_connection = NULL;
gcam              460 drivers/staging/greybus/camera.c static void gb_camera_teardown_data_connection(struct gb_camera *gcam)
gcam              469 drivers/staging/greybus/camera.c 	ret = gb_hd_output(gcam->connection->hd, &csi_cfg,
gcam              474 drivers/staging/greybus/camera.c 		gcam_err(gcam, "failed to stop the CSI transmitter\n");
gcam              477 drivers/staging/greybus/camera.c 	gb_camera_set_power_mode(gcam, false);
gcam              480 drivers/staging/greybus/camera.c 	gb_connection_disable(gcam->data_connection);
gcam              481 drivers/staging/greybus/camera.c 	gb_connection_destroy(gcam->data_connection);
gcam              482 drivers/staging/greybus/camera.c 	gcam->data_connection = NULL;
gcam              489 drivers/staging/greybus/camera.c static int gb_camera_capabilities(struct gb_camera *gcam,
gcam              494 drivers/staging/greybus/camera.c 	ret = gb_pm_runtime_get_sync(gcam->bundle);
gcam              498 drivers/staging/greybus/camera.c 	mutex_lock(&gcam->mutex);
gcam              500 drivers/staging/greybus/camera.c 	if (!gcam->connection) {
gcam              505 drivers/staging/greybus/camera.c 	ret = gb_camera_operation_sync_flags(gcam->connection,
gcam              511 drivers/staging/greybus/camera.c 		gcam_err(gcam, "failed to retrieve capabilities: %d\n", ret);
gcam              514 drivers/staging/greybus/camera.c 	mutex_unlock(&gcam->mutex);
gcam              516 drivers/staging/greybus/camera.c 	gb_pm_runtime_put_autosuspend(gcam->bundle);
gcam              521 drivers/staging/greybus/camera.c static int gb_camera_configure_streams(struct gb_camera *gcam,
gcam              562 drivers/staging/greybus/camera.c 	mutex_lock(&gcam->mutex);
gcam              564 drivers/staging/greybus/camera.c 	ret = gb_pm_runtime_get_sync(gcam->bundle);
gcam              568 drivers/staging/greybus/camera.c 	if (!gcam->connection) {
gcam              573 drivers/staging/greybus/camera.c 	ret = gb_camera_operation_sync_flags(gcam->connection,
gcam              581 drivers/staging/greybus/camera.c 	ret = gb_camera_configure_streams_validate_response(gcam, resp,
gcam              605 drivers/staging/greybus/camera.c 	if (gcam->state == GB_CAMERA_STATE_CONFIGURED) {
gcam              606 drivers/staging/greybus/camera.c 		gb_camera_teardown_data_connection(gcam);
gcam              607 drivers/staging/greybus/camera.c 		gcam->state = GB_CAMERA_STATE_UNCONFIGURED;
gcam              616 drivers/staging/greybus/camera.c 		gb_pm_runtime_put_noidle(gcam->bundle);
gcam              626 drivers/staging/greybus/camera.c 	gb_pm_runtime_get_noresume(gcam->bundle);
gcam              629 drivers/staging/greybus/camera.c 	ret = gb_camera_setup_data_connection(gcam, resp, csi_params);
gcam              632 drivers/staging/greybus/camera.c 		gb_operation_sync(gcam->connection,
gcam              638 drivers/staging/greybus/camera.c 		gb_pm_runtime_put_noidle(gcam->bundle);
gcam              642 drivers/staging/greybus/camera.c 	gcam->state = GB_CAMERA_STATE_CONFIGURED;
gcam              645 drivers/staging/greybus/camera.c 	gb_pm_runtime_put_autosuspend(gcam->bundle);
gcam              648 drivers/staging/greybus/camera.c 	mutex_unlock(&gcam->mutex);
gcam              654 drivers/staging/greybus/camera.c static int gb_camera_capture(struct gb_camera *gcam, u32 request_id,
gcam              676 drivers/staging/greybus/camera.c 	mutex_lock(&gcam->mutex);
gcam              678 drivers/staging/greybus/camera.c 	if (!gcam->connection) {
gcam              683 drivers/staging/greybus/camera.c 	ret = gb_operation_sync(gcam->connection, GB_CAMERA_TYPE_CAPTURE,
gcam              686 drivers/staging/greybus/camera.c 	mutex_unlock(&gcam->mutex);
gcam              693 drivers/staging/greybus/camera.c static int gb_camera_flush(struct gb_camera *gcam, u32 *request_id)
gcam              698 drivers/staging/greybus/camera.c 	mutex_lock(&gcam->mutex);
gcam              700 drivers/staging/greybus/camera.c 	if (!gcam->connection) {
gcam              705 drivers/staging/greybus/camera.c 	ret = gb_operation_sync(gcam->connection, GB_CAMERA_TYPE_FLUSH, NULL, 0,
gcam              715 drivers/staging/greybus/camera.c 	mutex_unlock(&gcam->mutex);
gcam              722 drivers/staging/greybus/camera.c 	struct gb_camera *gcam = gb_connection_get_data(op->connection);
gcam              727 drivers/staging/greybus/camera.c 		gcam_err(gcam, "Unsupported unsolicited event: %u\n", op->type);
gcam              734 drivers/staging/greybus/camera.c 		gcam_err(gcam, "Wrong event size received (%zu < %zu)\n",
gcam              741 drivers/staging/greybus/camera.c 	gcam_dbg(gcam, "received metadata for request %u, frame %u, stream %u\n",
gcam              774 drivers/staging/greybus/camera.c 	struct gb_camera *gcam = priv;
gcam              778 drivers/staging/greybus/camera.c 	ret = gb_camera_capabilities(gcam, data, &capabilities_len);
gcam              789 drivers/staging/greybus/camera.c 	struct gb_camera *gcam = priv;
gcam              813 drivers/staging/greybus/camera.c 	ret = gb_camera_configure_streams(gcam, &gb_nstreams,
gcam              847 drivers/staging/greybus/camera.c 	struct gb_camera *gcam = priv;
gcam              849 drivers/staging/greybus/camera.c 	return gb_camera_capture(gcam, request_id, streams, num_frames,
gcam              855 drivers/staging/greybus/camera.c 	struct gb_camera *gcam = priv;
gcam              857 drivers/staging/greybus/camera.c 	return gb_camera_flush(gcam, request_id);
gcam              871 drivers/staging/greybus/camera.c static ssize_t gb_camera_debugfs_capabilities(struct gb_camera *gcam,
gcam              875 drivers/staging/greybus/camera.c 		&gcam->debugfs.buffers[GB_CAMERA_DEBUGFS_BUFFER_CAPABILITIES];
gcam              885 drivers/staging/greybus/camera.c 	ret = gb_camera_capabilities(gcam, caps, &size);
gcam              907 drivers/staging/greybus/camera.c static ssize_t gb_camera_debugfs_configure_streams(struct gb_camera *gcam,
gcam              911 drivers/staging/greybus/camera.c 		&gcam->debugfs.buffers[GB_CAMERA_DEBUGFS_BUFFER_STREAMS];
gcam              976 drivers/staging/greybus/camera.c 	ret = gb_camera_configure_streams(gcam, &nstreams, &flags, streams,
gcam             1001 drivers/staging/greybus/camera.c static ssize_t gb_camera_debugfs_capture(struct gb_camera *gcam,
gcam             1034 drivers/staging/greybus/camera.c 	ret = gb_camera_capture(gcam, request_id, streams_mask, num_frames, 0,
gcam             1042 drivers/staging/greybus/camera.c static ssize_t gb_camera_debugfs_flush(struct gb_camera *gcam,
gcam             1046 drivers/staging/greybus/camera.c 		&gcam->debugfs.buffers[GB_CAMERA_DEBUGFS_BUFFER_FLUSH];
gcam             1050 drivers/staging/greybus/camera.c 	ret = gb_camera_flush(gcam, &req_id);
gcam             1063 drivers/staging/greybus/camera.c 	ssize_t (*execute)(struct gb_camera *gcam, char *buf, size_t len);
gcam             1094 drivers/staging/greybus/camera.c 	struct gb_camera *gcam = file_inode(file)->i_private;
gcam             1100 drivers/staging/greybus/camera.c 		ret = op->execute(gcam, NULL, 0);
gcam             1105 drivers/staging/greybus/camera.c 	buffer = &gcam->debugfs.buffers[op->buffer];
gcam             1116 drivers/staging/greybus/camera.c 	struct gb_camera *gcam = file_inode(file)->i_private;
gcam             1134 drivers/staging/greybus/camera.c 	ret = op->execute(gcam, kbuf, len);
gcam             1164 drivers/staging/greybus/camera.c static int gb_camera_debugfs_init(struct gb_camera *gcam)
gcam             1166 drivers/staging/greybus/camera.c 	struct gb_connection *connection = gcam->connection;
gcam             1174 drivers/staging/greybus/camera.c 		 gcam->bundle->id);
gcam             1176 drivers/staging/greybus/camera.c 	gcam->debugfs.root = debugfs_create_dir(dirname, gb_debugfs_get());
gcam             1178 drivers/staging/greybus/camera.c 	gcam->debugfs.buffers =
gcam             1180 drivers/staging/greybus/camera.c 				   sizeof(*gcam->debugfs.buffers)));
gcam             1181 drivers/staging/greybus/camera.c 	if (!gcam->debugfs.buffers)
gcam             1188 drivers/staging/greybus/camera.c 		gcam->debugfs.buffers[i].length = 0;
gcam             1191 drivers/staging/greybus/camera.c 				    gcam->debugfs.root, gcam,
gcam             1198 drivers/staging/greybus/camera.c static void gb_camera_debugfs_cleanup(struct gb_camera *gcam)
gcam             1200 drivers/staging/greybus/camera.c 	debugfs_remove_recursive(gcam->debugfs.root);
gcam             1202 drivers/staging/greybus/camera.c 	vfree(gcam->debugfs.buffers);
gcam             1209 drivers/staging/greybus/camera.c static void gb_camera_cleanup(struct gb_camera *gcam)
gcam             1211 drivers/staging/greybus/camera.c 	gb_camera_debugfs_cleanup(gcam);
gcam             1213 drivers/staging/greybus/camera.c 	mutex_lock(&gcam->mutex);
gcam             1214 drivers/staging/greybus/camera.c 	if (gcam->data_connection) {
gcam             1215 drivers/staging/greybus/camera.c 		gb_connection_disable(gcam->data_connection);
gcam             1216 drivers/staging/greybus/camera.c 		gb_connection_destroy(gcam->data_connection);
gcam             1217 drivers/staging/greybus/camera.c 		gcam->data_connection = NULL;
gcam             1220 drivers/staging/greybus/camera.c 	if (gcam->connection) {
gcam             1221 drivers/staging/greybus/camera.c 		gb_connection_disable(gcam->connection);
gcam             1222 drivers/staging/greybus/camera.c 		gb_connection_destroy(gcam->connection);
gcam             1223 drivers/staging/greybus/camera.c 		gcam->connection = NULL;
gcam             1225 drivers/staging/greybus/camera.c 	mutex_unlock(&gcam->mutex);
gcam             1239 drivers/staging/greybus/camera.c 	struct gb_camera *gcam;
gcam             1270 drivers/staging/greybus/camera.c 	gcam = kzalloc(sizeof(*gcam), GFP_KERNEL);
gcam             1271 drivers/staging/greybus/camera.c 	if (!gcam)
gcam             1274 drivers/staging/greybus/camera.c 	mutex_init(&gcam->mutex);
gcam             1276 drivers/staging/greybus/camera.c 	gcam->bundle = bundle;
gcam             1277 drivers/staging/greybus/camera.c 	gcam->state = GB_CAMERA_STATE_UNCONFIGURED;
gcam             1278 drivers/staging/greybus/camera.c 	gcam->data_cport_id = data_cport_id;
gcam             1287 drivers/staging/greybus/camera.c 	gcam->connection = conn;
gcam             1288 drivers/staging/greybus/camera.c 	gb_connection_set_data(conn, gcam);
gcam             1294 drivers/staging/greybus/camera.c 	ret = gb_camera_debugfs_init(gcam);
gcam             1298 drivers/staging/greybus/camera.c 	gcam->module.priv = gcam;
gcam             1299 drivers/staging/greybus/camera.c 	gcam->module.ops = &gb_cam_ops;
gcam             1300 drivers/staging/greybus/camera.c 	gcam->module.interface_id = gcam->connection->intf->interface_id;
gcam             1301 drivers/staging/greybus/camera.c 	gcam->module.release = gb_camera_release_module;
gcam             1302 drivers/staging/greybus/camera.c 	ret = gb_camera_register(&gcam->module);
gcam             1306 drivers/staging/greybus/camera.c 	greybus_set_drvdata(bundle, gcam);
gcam             1308 drivers/staging/greybus/camera.c 	gb_pm_runtime_put_autosuspend(gcam->bundle);
gcam             1313 drivers/staging/greybus/camera.c 	gb_camera_cleanup(gcam);
gcam             1314 drivers/staging/greybus/camera.c 	kfree(gcam);
gcam             1320 drivers/staging/greybus/camera.c 	struct gb_camera *gcam = greybus_get_drvdata(bundle);
gcam             1327 drivers/staging/greybus/camera.c 	gb_camera_cleanup(gcam);
gcam             1328 drivers/staging/greybus/camera.c 	gb_camera_unregister(&gcam->module);
gcam             1340 drivers/staging/greybus/camera.c 	struct gb_camera *gcam = greybus_get_drvdata(bundle);
gcam             1342 drivers/staging/greybus/camera.c 	if (gcam->data_connection)
gcam             1343 drivers/staging/greybus/camera.c 		gb_connection_disable(gcam->data_connection);
gcam             1345 drivers/staging/greybus/camera.c 	gb_connection_disable(gcam->connection);
gcam             1353 drivers/staging/greybus/camera.c 	struct gb_camera *gcam = greybus_get_drvdata(bundle);
gcam             1356 drivers/staging/greybus/camera.c 	ret = gb_connection_enable(gcam->connection);
gcam             1358 drivers/staging/greybus/camera.c 		gcam_err(gcam, "failed to enable connection: %d\n", ret);
gcam             1362 drivers/staging/greybus/camera.c 	if (gcam->data_connection) {
gcam             1363 drivers/staging/greybus/camera.c 		ret = gb_connection_enable(gcam->data_connection);
gcam             1365 drivers/staging/greybus/camera.c 			gcam_err(gcam,