From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mail-qk2-f13.google.com (mail-qk2-f13.google.com [74.125.230.205]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id BC5062D7DC8 for ; Sun, 13 Sep 2026 01:43:42 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=74.125.230.205 ARC-Seal:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1789263824; cv=none; b=ifrjbx/Lkn9z8E4CAw7Tfi5pQ9gvDLpxIljLbmeMa4mQE/gFmZm1PXIwORPyqUgqL8BA/3ZsoHfXI3STv2dY5xfxxE03ZrWj0dk/WKsBHrjENrQLIgp+WlK04bpxMxXPMQmkhaxTTsRewm9I9NEY2VOf4XFpD61DOR9QqeNp/Lc= ARC-Message-Signature:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1789263824; c=relaxed/simple; bh=xbqmWE7TjVXjZipAzoB6FiWnOv6WAhfUg92RHYzDPuk=; h=From:To:Cc:Subject:Date:Message-ID:MIME-Version; b=LW9pvKJm2Z1P6oc04+X5d2ILRhkbFsa0mxPqoeIw3EvDDHAVKUIGZOZJnq4EReRr8xYvPDAFDbfi8ri+p2kb7idw30M/+E0mXkvxSdvFX/FAnyTGGgfxsV5wzNsoI1i4kE9WW3cAqLSHZyX5cAbWx0dQdAWAA+mgexadnsMwohA= ARC-Authentication-Results:i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com; spf=pass smtp.mailfrom=gmail.com; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b=LV1702K3; arc=none smtp.client-ip=74.125.230.205 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=gmail.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="LV1702K3" Received: by mail-qk2-f13.google.com with SMTP id d75a77b69052e-530e2f50d01so11464991cf.0 for ; Sat, 12 Sep 2026 18:43:42 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20251104; t=1789263822; x=1789868622; darn=vger.kernel.org; h=content-transfer-encoding:mime-version:message-id:date:subject:cc :to:from:from:to:cc:subject:date:message-id:reply-to:content-type; bh=iZgRUJgrir4HbmBZI5QyozVncxVzl2w6YsVJNS43te0=; b=LV1702K31p9vOXXy4tMlpZ17y2Ok8J6yKTTmvV7uishbEAxzinjkbXFqK/m55hR2nG SV23I2+vuHaRJ+6yRl0H8aUSY9AjU0y7gR5LP49lQxwVcf1wWtOxVC/DuGOURyYlfsbw TTzhgweGhF2Vp2glF5bgAdiitoj0LWRyitc04pBmzIXdSpiI7Wc85MroXtmZiJgFwu0x ZDQLYESd2G/vfTgzIajFGV22FXwpnZ1OifvHfHRTuF3sKOwTbhQLGv2LA63ScC3y5JPp 9kbMXSv34k8FzayiVrZJYG56c82QZgittsZBBE0JlFL5gnw5wX43EoEddIUJYGGmyZET XJAw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1789263822; x=1789868622; h=content-transfer-encoding:mime-version:message-id:date:subject:cc :to:from:x-gm-gg:x-gm-message-state:from:to:cc:subject:date :message-id:reply-to:content-type; bh=iZgRUJgrir4HbmBZI5QyozVncxVzl2w6YsVJNS43te0=; b=UyQia2XwUC+4OuxlZi6h4zwuUge/Oo7easUDcy/k9u490y2wAGGhlB5nMEhhQkofvS oTtaA+gxHBf8Sl7iWU6Ei3aRisaXEKLUY2qMyK17AcHK7GzjL7WIgYxc+psFZzyrtPkM kCKmIbBaURoswT+Jzsrmt3WqV/d3yofNbD+M89hJLQDWhbCi9Q0exs8dV334uTm8LkCg 8mAm53hNHvlpMVK+CUoRoqssKUN/p5ykLC+gNR7y5jFYgDDMExhg2dp7RPmjcxB5ZJb2 /SgdE/rI+q6dV318CH2JBk2UkKOwXuLvycBGDQAB/CxLg2DzWWq7NMYspxEua4W4jGwf QJDQ== X-Forwarded-Encrypted: i=1; AKwUvBzvvB+9gaWd/PD3t/7FuGfyF2Ryzk1ZN58jGjBq6+QugFCRcJw9sSKUkePfEv0S7gwD3cThMECACbul2g==@vger.kernel.org X-Gm-Message-State: AFuF++nttiVVmaMFSM8pygJpBc+h9JBZr+W3nPx25wjBjZpCpQsms9+L N4C88O0RIbnHhHIQbI8PyZH5OGZEC8vXFCmt37nbv9/bu50Za9ZdpEs= X-Gm-Gg: AYBFou0CY8E+sp6b1yQQ4r8PCAl2codQFq41y7oJ2QQSwnNQqMfvqISi5Zdv8DCHSk0 ZTsohgOq0cw6yKGiBP/fKSv7raC7Tw1aNIN6tDGbcsbk8oFYS82s4bPf1V5OfYUjQcH3aEFncDw xc9CyRYTdcI2L15MxlloLoVGsJBKKYDfF3yoLRkRAiJdmG87hd7HmumC5u1zOx+5vxjXpxA5iv0 /Ac/o2/Z2AhmA46mr2ON9TA+38T8QMnoqdYcNuPQ3LBpKeYlNXX0E/5gBo7otKrAG+T/oM1wbkI MX/nLdboI1ibuP2qiPQLGfoZqo4i8/JlzNWfXKB3GEMpszSX86WJChb6CWnKPFn9Zr2975nqTGF 3MVqxKsEZ+9aJQ+pyPvVbiBP8vHemOszhPQhbNAEHIMKGznuQwKDRoU7z9H1leUgcLixMe+61Sb jGvARkFwKKQ8oaJDBFlEJFITnaF60EB5XLKpy5O4HvqgPOvSEglM9KkncywsVKHVDoMM9nICIai NeRXKaIFS4E1P9PIbaw0CjxjS/sKKgKk5l1ZUVE4gNSYqDz5oltdgbO0SmqrdJEZM4WMo+AqJDf vf+1aval4oc+nZRfIBRcVu7UOn5Z6tlkAQ== X-Received: by 2002:a05:622a:138c:b0:530:fc42:f4bf with SMTP id d75a77b69052e-530fc42f6fbmr4960731cf.24.1789263821700; Sat, 12 Sep 2026 18:43:41 -0700 (PDT) Received: from localhost.localdomain ([104.39.73.78]) by smtp.gmail.com with ESMTPSA id d75a77b69052e-530ca45b61dsm59685581cf.6.2026.09.12.18.43.39 (version=TLS1_3 cipher=TLS_CHACHA20_POLY1305_SHA256 bits=256/256); Sat, 12 Sep 2026 18:43:41 -0700 (PDT) From: Myeonghun Pak To: Jacopo Mondi , Sakari Ailus , Mauro Carvalho Chehab Cc: Akinobu Mita , linux-media@vger.kernel.org, linux-kernel@vger.kernel.org, stable@vger.kernel.org, Ijae Kim Subject: [PATCH] media: i2c: ov772x: power off sensor on ID read errors Date: Sat, 12 Sep 2026 21:43:35 -0400 Message-ID: <20260913014335.37568-1-mhun512@gmail.com> X-Mailer: git-send-email 2.50.1 Precedence: bulk X-Mailing-List: linux-media@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: 8bit ov772x_video_probe() powers on the sensor before reading the product and manufacturer IDs. Since the register read error checks were added, any read failure returns directly and leaves the clock enabled and the powerdown GPIO asserted. Route those failures through the existing power-off path. This covers the old OV7720 and OV7725 sensors while preserving the direct return when power-on itself fails, the product-ID mismatch path, and control setup behavior. This issue was identified during our ongoing static-analysis research while reviewing kernel code. Fixes: 30f3b17eaf49 ("media: ov772x: add checks for register read errors") Cc: stable@vger.kernel.org Assisted-by: OpenAI:GPT-5.6 Co-developed-by: Ijae Kim Signed-off-by: Ijae Kim Signed-off-by: Myeonghun Pak --- drivers/media/i2c/ov772x.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/drivers/media/i2c/ov772x.c b/drivers/media/i2c/ov772x.c index be3ba284ee..e20a109d60 100644 --- a/drivers/media/i2c/ov772x.c +++ b/drivers/media/i2c/ov772x.c @@ -1280,10 +1280,10 @@ static int ov772x_video_probe(struct ov772x_priv *priv) /* Check and show product ID and manufacturer ID. */ ret = regmap_read(priv->regmap, PID, &pid); if (ret < 0) - return ret; + goto done; ret = regmap_read(priv->regmap, VER, &ver); if (ret < 0) - return ret; + goto done; switch (VERSION(pid, ver)) { case OV7720: @@ -1301,10 +1301,10 @@ static int ov772x_video_probe(struct ov772x_priv *priv) ret = regmap_read(priv->regmap, MIDH, &midh); if (ret < 0) - return ret; + goto done; ret = regmap_read(priv->regmap, MIDL, &midl); if (ret < 0) - return ret; + goto done; dev_info(&client->dev, "%s Product ID %0x:%0x Manufacturer ID %x:%x\n", -- 2.47.1