From nobody Mon Dec 15 22:08:05 2025 Received: from mail-lj1-f175.google.com (mail-lj1-f175.google.com [209.85.208.175]) (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 7FB7E1E49F for ; Mon, 8 Dec 2025 16:17:15 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.208.175 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1765210638; cv=none; b=W3a8fdj0FbFlGvRqC1Ca+ZfKU4bUZH2WQBkQWz3IiJKAbKL5fFqyiXwdLgHxtXsRAoRA4yysPUf0+mhyxNXwK2JyD8Kp/XsXIovJ++fau9gR8Gy6A8g70ldCUuingjOViHBtppKZC1IKKcgbGRWE75ykkXgS/t3ouR5VlChz12s= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1765210638; c=relaxed/simple; bh=asAbh6olhh6SeZuPJapqrlpNWiZq36e/WPBJg5R25oY=; h=From:To:Cc:Subject:Date:Message-Id:MIME-Version; b=uTvCzveQRd7pZef0sM2hkQ6okeQo4ot1TVOjYKG9CzNtrJxzkJugn9tj0aRaI+rPJEOaKEnCG+q5McMOnWtVECUSEIH2fl8t1FXW9vSh5rO0ky3OuzR83iqrVUi46gZ8WQ5XJUVjLFrF4iIj1nyHm5gmrsQxdG0UXpMT62QQfxs= 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=PkhqnCNh; arc=none smtp.client-ip=209.85.208.175 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="PkhqnCNh" Received: by mail-lj1-f175.google.com with SMTP id 38308e7fff4ca-37b935df7bfso39508491fa.2 for ; Mon, 08 Dec 2025 08:17:15 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1765210633; x=1765815433; 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; bh=z7nJjXMSCH3O7i7wnN70ip0JHlJNLYigJVTNMrHiOuQ=; b=PkhqnCNh/2pKHvYGxu3FKOt3uCS7OG3lBntAyRW+tTJd/otmtNWv4OpmSZK+CJns2P fo6EiofK/kDiwYMekKDcM7hFoDi252ixcwbl5y/W88aulImWi+meBy07CO9FwvsMjIfY fpQv7AQ+bVS3Hm6xGMMDAKfT5+MyczliPJj9lNuTSzG9JVojGzLo3p0nu3U4PYP8rvSm 3uLMMK1cfp7MVjX98J+1P8LgkXr1UOIe834GzQVUmMGKMRaDSJaWmw/Of5onwp/pyKlO qLq4tM+wuQs3WXBlhYTvolAtKP4pJEs2ISghnpaunyrq0ao7mLQZFdouXuD2VyVbLzsx Ecdw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1765210633; x=1765815433; 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; bh=z7nJjXMSCH3O7i7wnN70ip0JHlJNLYigJVTNMrHiOuQ=; b=BYZq6MSVPgqfDKz1xAE4XDawijTtuhaL/fw4Li8MpkmVq7M69w9oRrKl7zkHXKEZ/W ZGnvD28oxImSlh2tGxJNlJufgnDtKsubXv4u4s/vkdrGTefb+cB/IAoOAhWNYmDyJNvL HItGYpm3dWVGfybBpJH3mvlsnNQDbZfmeGCi51wjdnl8vVCAxp6Y/9qk3T08wnmIwmEK m0jINa7TNhX0bpY6GXU15P3tLaG+3YkbedGln/wA9+KziuRTeeQ7n7vJPItXpXzMYKsL xpApjCi+ZkTKJOgiEKkNK5OeYH4b6gRj+5rGKUMAH6GDdXyZ6pIUYJx7h+T+5eRGB4J5 lgoA== X-Forwarded-Encrypted: i=1; AJvYcCW5YFOVVsPvtl4g1t6GXjHOooS7REuHEOH2WAP6QU0kT2hAjbC6pN0hHpDY9zxbRaA00PDeDBrqh7mZMWg=@vger.kernel.org X-Gm-Message-State: AOJu0YzQEBBu9HvOgmb3dK6FXf6ucPsiZnYoRTfnLRVBAt6F1ysVK9PE CvU3z1vn5k74w53/F5zxuAUJU2TTTqv9+wmrctRBTpOGyZ6sO96tLvnh X-Gm-Gg: ASbGncuKPM8oUONHEZEFwqbtyJoL1WdUMPyiY3hENM0MdTZzMlsB3aLgR98KE37Cd6M oe2MsQkWrFmyEzNCJ4cWh20gddowRHBDPq05Sle/I8gP/l7WzB6Z+NfQ4qbJ6GjYRyW2fa9GtpP McPb5gwF7uAF/10LVsMzsnFsxENvp/w18k5ODDsWongjC/VOjsxqWX0eZSU/7NLeXJDleWwmyHM tDdYzsNVxG/p7Z/HE+6/KhPfOEEQTupfTSyjw55pUcmuLOZSXhCYhZZ/GE7fAGjxfSjQCT6dOso txcCYJcDxKwrL7NYVjD55Q6NIZH5wlNBvStsjHqfyCf93yYtffssJzwQEAhX0Z/yJyVUdwwuVSv mE7pdT4907c4TxvTBqVsqmE+NKo1gzwiLYkgvC9XE4sAMPglz5lIlB9IgBhYbuprFeaaW7dRJJo Gg2nBDHoehOjt/it1BBTk= X-Google-Smtp-Source: AGHT+IFr7FhRxhcTqn7kcvbJ5tpva+b++9boYdL4/5/yGrtNZJDW6W18YZ4mLRoP6TNs6AH6QeklVg== X-Received: by 2002:a05:651c:4212:b0:37f:a216:e450 with SMTP id 38308e7fff4ca-37fa216e503mr2482261fa.13.1765210633270; Mon, 08 Dec 2025 08:17:13 -0800 (PST) Received: from vovchkir.localdomain ([95.161.223.42]) by smtp.googlemail.com with ESMTPSA id 38308e7fff4ca-37e706634cdsm39921711fa.48.2025.12.08.08.17.12 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 08 Dec 2025 08:17:12 -0800 (PST) From: Vladimir Yakovlev To: Dmitry Baryshkov Cc: Vladimir Yakovlev , Andrzej Hajda , Neil Armstrong , Robert Foss , Laurent Pinchart , Jonas Karlman , Jernej Skrabec , Maarten Lankhorst , Maxime Ripard , Thomas Zimmermann , David Airlie , Simona Vetter , dri-devel@lists.freedesktop.org, linux-kernel@vger.kernel.org Subject: [PATCH] drm/bridge: lontium-lt9611uxc: use irq as optional parameter Date: Mon, 8 Dec 2025 19:17:08 +0300 Message-Id: <20251208161708.3763458-1-vovchkir@gmail.com> X-Mailer: git-send-email 2.34.1 Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" On some systems the interrupt pin may not be used. In this case we exclude DRM_BRIDGE_OP_HPD from supported operations, after which a polling thread is started to detect the connection. (the default polling period for DRM is 10 seconds) Signed-off-by: Vladimir Yakovlev --- drivers/gpu/drm/bridge/lontium-lt9611uxc.c | 26 ++++++++++++++-------- 1 file changed, 17 insertions(+), 9 deletions(-) diff --git a/drivers/gpu/drm/bridge/lontium-lt9611uxc.c b/drivers/gpu/drm/b= ridge/lontium-lt9611uxc.c index 3868ad05e011..4d550cd1a9a1 100644 --- a/drivers/gpu/drm/bridge/lontium-lt9611uxc.c +++ b/drivers/gpu/drm/bridge/lontium-lt9611uxc.c @@ -851,19 +851,25 @@ static int lt9611uxc_probe(struct i2c_client *client) init_waitqueue_head(<9611uxc->wq); INIT_WORK(<9611uxc->work, lt9611uxc_hpd_work); =20 - ret =3D request_threaded_irq(client->irq, NULL, - lt9611uxc_irq_thread_handler, - IRQF_ONESHOT, "lt9611uxc", lt9611uxc); - if (ret) { - dev_err(dev, "failed to request irq\n"); - goto err_disable_regulators; + if (client->irq) { + ret =3D request_threaded_irq(client->irq, NULL, + lt9611uxc_irq_thread_handler, + IRQF_ONESHOT, "lt9611uxc", lt9611uxc); + if (ret) { + dev_err(dev, "failed to request irq\n"); + goto err_disable_regulators; + } + dev_dbg(dev, "Uses IRQ\n"); + } else { + dev_warn(dev, "The interrupt (IRQ) is not specified in the DTS.\n"); + dev_warn(dev, "Check the interrupt (IRQ) or polling will be used!!!\n"); } =20 i2c_set_clientdata(client, lt9611uxc); =20 lt9611uxc->bridge.of_node =3D client->dev.of_node; lt9611uxc->bridge.ops =3D DRM_BRIDGE_OP_DETECT | DRM_BRIDGE_OP_EDID; - if (lt9611uxc->hpd_supported) + if (lt9611uxc->hpd_supported && client->irq) lt9611uxc->bridge.ops |=3D DRM_BRIDGE_OP_HPD; lt9611uxc->bridge.type =3D DRM_MODE_CONNECTOR_HDMIA; =20 @@ -892,7 +898,8 @@ static int lt9611uxc_probe(struct i2c_client *client) return 0; =20 err_remove_bridge: - free_irq(client->irq, lt9611uxc); + if (client->irq) + free_irq(client->irq, lt9611uxc); cancel_work_sync(<9611uxc->work); drm_bridge_remove(<9611uxc->bridge); =20 @@ -910,7 +917,8 @@ static void lt9611uxc_remove(struct i2c_client *client) { struct lt9611uxc *lt9611uxc =3D i2c_get_clientdata(client); =20 - free_irq(client->irq, lt9611uxc); + if (client->irq) + free_irq(client->irq, lt9611uxc); cancel_work_sync(<9611uxc->work); lt9611uxc_audio_exit(lt9611uxc); drm_bridge_remove(<9611uxc->bridge); --=20 2.34.1