From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id DA9C9253F30; Mon, 23 Jun 2025 13:35:08 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=10.30.226.201 ARC-Seal:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1750685708; cv=none; b=gm41ScdDAkppc6dretDvQOYQQS7P/1UL+MLHuf9x7RH1kyjBgJwT/HkDuMXkeMq9EBTJwXj3h1xYINwIyekgY8Sl3ucFPHxZjccoZGK7CgUefLLpKDOpTHXLRyiV+nCzn5pVBzkK7gKFWy+ItfreCcQa01UEv+Qcppk71qt7dIY= ARC-Message-Signature:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1750685708; c=relaxed/simple; bh=9F9saG+n8PKWstulGJP0Z8nES/RzYJxx0tHggCnxWkQ=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=kHKINRHIchE3w1pn7dTLAGjLOVxggiB0DBnD2m3yhyp8EDMLNI2zITPtD35KUP12it5Y9FwRC92dcsOr00twbOQypoUsnyiM8bMoQQax6+ZTub5aYdic/5sssYlY/n+rwD7zzF25jZWYybrV4NbsTUc4qWaYUbJkKcuZHEBOQr0= ARC-Authentication-Results:i=1; smtp.subspace.kernel.org; dkim=pass (1024-bit key) header.d=linuxfoundation.org header.i=@linuxfoundation.org header.b=W+S87aoL; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (1024-bit key) header.d=linuxfoundation.org header.i=@linuxfoundation.org header.b="W+S87aoL" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 2BD4EC4CEEA; Mon, 23 Jun 2025 13:35:08 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=linuxfoundation.org; s=korg; t=1750685708; bh=9F9saG+n8PKWstulGJP0Z8nES/RzYJxx0tHggCnxWkQ=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=W+S87aoLz1WM9juMQOtU42jI8uIpi4oV/2KxY4NbJz16LRYvw5xkeqMIn+moDxI4j BROD0q+6pv3ojSN5q5yBfmp6uNAHOUPOyzFNMO907igVE+xyUqVYcvTPosbnLwXCiU YhtLls8QNQONRKRq1tYD7lNpXhSxR5+avXbHE668= From: Greg Kroah-Hartman To: stable@vger.kernel.org Cc: Greg Kroah-Hartman , patches@lists.linux.dev, Michael Chang , Hans Verkuil , Sasha Levin Subject: [PATCH 6.15 254/592] media: nuvoton: npcm-video: Fix stuck due to no video signal error Date: Mon, 23 Jun 2025 15:03:32 +0200 Message-ID: <20250623130706.338899480@linuxfoundation.org> X-Mailer: git-send-email 2.50.0 In-Reply-To: <20250623130700.210182694@linuxfoundation.org> References: <20250623130700.210182694@linuxfoundation.org> User-Agent: quilt/0.68 X-stable: review X-Patchwork-Hint: ignore Precedence: bulk X-Mailing-List: stable@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: 8bit 6.15-stable review patch. If anyone has any objections, please let me know. ------------------ From: Michael Chang [ Upstream commit 497f1fb94759fa0c638f15c12b1ab3e586bccfcb ] Fix the issue when start_frame and detect_resolution functions are executed at the same time, which may cause driver stops capturing due to status of no video signal error. Signed-off-by: Michael Chang Signed-off-by: Hans Verkuil Signed-off-by: Sasha Levin --- drivers/media/platform/nuvoton/npcm-video.c | 15 +++++++++------ 1 file changed, 9 insertions(+), 6 deletions(-) diff --git a/drivers/media/platform/nuvoton/npcm-video.c b/drivers/media/platform/nuvoton/npcm-video.c index 7a9d8928ae401..3022fdcf66ec7 100644 --- a/drivers/media/platform/nuvoton/npcm-video.c +++ b/drivers/media/platform/nuvoton/npcm-video.c @@ -863,7 +863,6 @@ static void npcm_video_detect_resolution(struct npcm_video *video) struct regmap *gfxi = video->gfx_regmap; unsigned int dispst; - video->v4l2_input_status = V4L2_IN_ST_NO_SIGNAL; det->width = npcm_video_hres(video); det->height = npcm_video_vres(video); @@ -892,12 +891,16 @@ static void npcm_video_detect_resolution(struct npcm_video *video) clear_bit(VIDEO_RES_CHANGING, &video->flags); } - if (det->width && det->height) + if (det->width && det->height) { video->v4l2_input_status = 0; - - dev_dbg(video->dev, "Got resolution[%dx%d] -> [%dx%d], status %d\n", - act->width, act->height, det->width, det->height, - video->v4l2_input_status); + dev_dbg(video->dev, "Got resolution[%dx%d] -> [%dx%d], status %d\n", + act->width, act->height, det->width, det->height, + video->v4l2_input_status); + } else { + video->v4l2_input_status = V4L2_IN_ST_NO_SIGNAL; + dev_err(video->dev, "Got invalid resolution[%dx%d]\n", det->width, + det->height); + } } static int npcm_video_set_resolution(struct npcm_video *video, -- 2.39.5