Unverified Commit c3d4f695 authored by openeuler-ci-bot's avatar openeuler-ci-bot Committed by Gitee
Browse files
parents 4a354665 b65dacb3
Loading
Loading
Loading
Loading
+14 −0
Original line number Diff line number Diff line
@@ -816,6 +816,8 @@ static int edge_detector_update(struct line *line,
				unsigned int line_idx,
				u64 eflags, bool polarity_change)
{
	u64 errflags;
	int ret;
	unsigned int debounce_period_us =
		gpio_v2_line_config_debounce_period(lc, line_idx);

@@ -827,6 +829,18 @@ static int edge_detector_update(struct line *line,
	if (debounce_period_us && READ_ONCE(line->sw_debounced)) {
		line->eflags = eflags;
		WRITE_ONCE(line->desc->debounce_period_us, debounce_period_us);
		/*
		 * ensure event fifo is initialised if edge detection
		 * is now enabled.
		 */
		errflags = eflags & GPIO_V2_LINE_EDGE_FLAGS;
		if (errflags && !kfifo_initialized(&line->req->events)) {
			ret = kfifo_alloc(&line->req->events,
					  line->req->event_buffer_size,
					  GFP_KERNEL);
			if (ret)
				return ret;
		}
		return 0;
	}