mirror of
https://github.com/pikvm/ustreamer.git
synced 2026-03-12 10:33:42 +00:00
removed some checks in gpio
This commit is contained in:
@@ -123,42 +123,31 @@ static void _gpio_output_init(us_gpio_output_s *output, struct gpiod_chip *chip)
|
|||||||
|
|
||||||
if (output->pin >= 0) {
|
if (output->pin >= 0) {
|
||||||
# ifdef HAVE_GPIOD2
|
# ifdef HAVE_GPIOD2
|
||||||
struct gpiod_line_settings *line_settings = NULL;
|
struct gpiod_line_settings *line_settings;
|
||||||
struct gpiod_line_config *line_config = NULL;
|
|
||||||
struct gpiod_request_config *request_config = NULL;
|
|
||||||
|
|
||||||
assert(line_settings = gpiod_line_settings_new());
|
assert(line_settings = gpiod_line_settings_new());
|
||||||
if (gpiod_line_settings_set_direction(line_settings, GPIOD_LINE_DIRECTION_OUTPUT) < 0) {
|
assert(!gpiod_line_settings_set_direction(line_settings, GPIOD_LINE_DIRECTION_OUTPUT));
|
||||||
US_LOG_PERROR("GPIO: Can't set output direction for pin=%d as %s", output->pin, output->consumer);
|
assert(!gpiod_line_settings_set_output_value(line_settings, false));
|
||||||
goto done;
|
|
||||||
}
|
|
||||||
if (gpiod_line_settings_set_output_value(line_settings, false) < 0) {
|
|
||||||
US_LOG_PERROR("GPIO: Can't set default output value for pin=%d as %s", output->pin, output->consumer);
|
|
||||||
goto done;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
struct gpiod_line_config *line_config;
|
||||||
assert(line_config = gpiod_line_config_new());
|
assert(line_config = gpiod_line_config_new());
|
||||||
const unsigned offset = output->pin;
|
const unsigned offset = output->pin;
|
||||||
if (gpiod_line_config_add_line_settings(line_config, &offset, 1, line_settings) < 0) {
|
assert(!gpiod_line_config_add_line_settings(line_config, &offset, 1, line_settings));
|
||||||
US_LOG_PERROR("GPIO: Can't set line settings for pin=%d as %s", output->pin, output->consumer);
|
|
||||||
goto done;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
struct gpiod_request_config *request_config;
|
||||||
assert(request_config = gpiod_request_config_new());
|
assert(request_config = gpiod_request_config_new());
|
||||||
gpiod_request_config_set_consumer(request_config, output->consumer);
|
gpiod_request_config_set_consumer(request_config, output->consumer);
|
||||||
|
|
||||||
if ((output->line = gpiod_chip_request_lines(chip, request_config, line_config)) == NULL) {
|
if ((output->line = gpiod_chip_request_lines(chip, request_config, line_config)) == NULL) {
|
||||||
US_LOG_PERROR("GPIO: Can't request pin=%d as %s", output->pin, output->consumer);
|
US_LOG_PERROR("GPIO: Can't request pin=%d as %s", output->pin, output->consumer);
|
||||||
goto done;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
done:
|
gpiod_request_config_free(request_config);
|
||||||
US_DELETE(request_config, gpiod_request_config_free);
|
gpiod_line_config_free(line_config);
|
||||||
US_DELETE(line_config, gpiod_line_config_free);
|
gpiod_line_settings_free(line_settings);
|
||||||
US_DELETE(line_settings, gpiod_line_settings_free);
|
|
||||||
if (output->line == NULL) {
|
if (output->line == NULL) {
|
||||||
_gpio_output_destroy(output);
|
_gpio_output_destroy(output);
|
||||||
}
|
}
|
||||||
|
|
||||||
# else
|
# else
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user