summaryrefslogtreecommitdiff
path: root/utils/raspberrypi/ctt/ctt_ccm.py
diff options
context:
space:
mode:
authorLaurent Pinchart <laurent.pinchart@ideasonboard.com>2021-06-15 03:11:30 +0300
committerLaurent Pinchart <laurent.pinchart@ideasonboard.com>2021-06-28 07:02:44 +0300
commit7532caa2c77b966afde643d5550dff6e404e7208 (patch)
treee0b72c4573faeb6a50d0284d9a4988f2379af61a /utils/raspberrypi/ctt/ctt_ccm.py
parentc11cc6f20b4f701afaa24416be2b711e2415d79d (diff)
android: camera_device: Reset config_ if Camera::configure() fails
The config_ pointer is reset in all error paths of the CameraDevice::configureStreams() function, except when Camera::configure() fails. Fix it by using a local unique pointer to store the configuration until the end of the function, to avoid similar issues in the future. Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com> Reviewed-by: Hirokazu Honda <hiroh@chromium.org> Reviewed-by: Umang Jain <umang.jain@ideasonboard.com>
Diffstat (limited to 'utils/raspberrypi/ctt/ctt_ccm.py')
0 files changed, 0 insertions, 0 deletions
n76' href='#n76'>76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111
/* SPDX-License-Identifier: LGPL-2.1-or-later */
/*
 * Copyright (C) 2020, Google Inc.
 *
 * sysfs.cpp - Miscellaneous utility functions to access sysfs
 */

#include "libcamera/internal/sysfs.h"

#include <fstream>
#include <sstream>
#include <sys/stat.h>
#include <sys/sysmacros.h>

#include <libcamera/base/file.h>
#include <libcamera/base/log.h>

/**
 * \file sysfs.h
 * \brief Miscellaneous utility functions to access sysfs
 */

namespace libcamera {

LOG_DEFINE_CATEGORY(SysFs)

namespace sysfs {

/**
 * \brief Retrieve the sysfs path for a character device
 * \param[in] deviceNode Path to character device node
 * \return The sysfs path on success or an empty string on failure
 */
std::string charDevPath(const std::string &deviceNode)
{
	struct stat st;
	int ret = stat(deviceNode.c_str(), &st);
	if (ret < 0) {
		ret = -errno;
		LOG(SysFs, Error)
			<< "Unable to stat '" << deviceNode << "': "
			<< strerror(-ret);
		return {};
	}

	std::ostringstream dev("/sys/dev/char/", std::ios_base::ate);