Received: by 2002:a05:6358:bb9e:b0:b9:5105:a5b4 with SMTP id df30csp4465008rwb; Tue, 6 Sep 2022 07:56:47 -0700 (PDT) X-Google-Smtp-Source: AA6agR5ENidj1GGLpm65F6yBMSCdw3fRYUeI6rzW/NQ/I3nxIABr73cNDMLacOTERHK53rugJxVx X-Received: by 2002:aa7:d447:0:b0:44e:ebb8:b691 with SMTP id q7-20020aa7d447000000b0044eebb8b691mr1273926edr.428.1662476206854; Tue, 06 Sep 2022 07:56:46 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1662476206; cv=none; d=google.com; s=arc-20160816; b=hbsN1clT/nvRO4YIxEqWdNCF5OmKJnNh8QM9Ojb4OdMewKXz+0B7oyaKRlRTCUa185 QYvaTPVUPLOifJmzMeh+BDQBZkbcCCyJEw983moUgEtswvFWJUWGyhh168COMNETyPzj zp/a3JNozuHyxrn8mZ8kzjKbFJ2PlAZxXgZeQ8tpnncLb6b/4r52F4WvbBbR/D16zPXV NH4J5t3HNWo8ef2uVP+YVk/5J0Cw6qe0OlgA9AKwucA1RYpO7f8PpxToocU1nxUuSuxj c+PGSMYbA287Qv1MGlZDp4Jjp4HzZM3ay/OKCPXP2sA0qlAjVof/wtRF/qTb6oWKIOBs QlAA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:content-transfer-encoding:mime-version :user-agent:references:in-reply-to:message-id:date:subject:cc:to :from:dkim-signature; bh=5qfC7F9wgvReQ2XSOCD7ecosoXI2x1WeuJ1hyIdX1nY=; b=qZoGKJtUv699V/2V75JQ/pt+2Z8/s5PgxZ9PimfGdfHKhwtraQcAkZCoflfpeC3rq/ GhPy0mw3NiykMo4q2PSryWM7D3allaQ2bEdB9GENcvfZWa+KpO3WRYUYu98trqukxEev 4103CBEpd725UvQtGqr7bDeQCHzaaTUTyWgNMfIgIo349lfHOQ1M1+q4LIL+hPv5Ckxa 2xlQJotsj2oqWsA9qv8QjpJ4e2zAO2htAxzgUcQ5+i6MqryHUw3jFxcTaS6SqRXHD1XI GdnLRnJxGBl/bPVHFdHwYPjen6tDhwZI80diuAxWI+P2PHIQmv0ggvvRfV3i6cTjaY9c 7hQw== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@linuxfoundation.org header.s=korg header.b=GHVw00TE; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=linuxfoundation.org Return-Path: Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id e20-20020a056402191400b00447fb143ad4si437397edz.417.2022.09.06.07.56.21; Tue, 06 Sep 2022 07:56:46 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) client-ip=2620:137:e000::1:20; Authentication-Results: mx.google.com; dkim=pass header.i=@linuxfoundation.org header.s=korg header.b=GHVw00TE; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=linuxfoundation.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S241088AbiIFOCd (ORCPT + 99 others); Tue, 6 Sep 2022 10:02:33 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:60668 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S240938AbiIFN7I (ORCPT ); Tue, 6 Sep 2022 09:59:08 -0400 Received: from dfw.source.kernel.org (dfw.source.kernel.org [IPv6:2604:1380:4641:c500::1]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 7ADB5832DB; Tue, 6 Sep 2022 06:43:06 -0700 (PDT) Received: from smtp.kernel.org (relay.kernel.org [52.25.139.140]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by dfw.source.kernel.org (Postfix) with ESMTPS id 93D6B61548; Tue, 6 Sep 2022 13:42:19 +0000 (UTC) Received: by smtp.kernel.org (Postfix) with ESMTPSA id 9DEE6C433D7; Tue, 6 Sep 2022 13:42:18 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=linuxfoundation.org; s=korg; t=1662471739; bh=VZDeB/Ki8EK3bieBo8O/ewpnaxgWI/VoASZ8LVQkFUY=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=GHVw00TEuqGrfSP+HEmimPeNUetdjtEFupy2lk8dRnlicQCDhRtYpo8/TBU8cNJYO kVs36O+9klYPaUIrifGVDeYzTc7oj/bR0iANwbTG7d0qYZuazxYtTS/4ps/dLchx04 cyAhMsMyd/d51wWG89X9zBws8sVcgcQR6du4x4tw= From: Greg Kroah-Hartman To: linux-kernel@vger.kernel.org Cc: Greg Kroah-Hartman , stable@vger.kernel.org, Arun R Murthy , Jani Nikula , Rodrigo Vivi , Sasha Levin Subject: [PATCH 5.19 021/155] drm/i915/display: avoid warnings when registering dual panel backlight Date: Tue, 6 Sep 2022 15:29:29 +0200 Message-Id: <20220906132830.318992995@linuxfoundation.org> X-Mailer: git-send-email 2.37.3 In-Reply-To: <20220906132829.417117002@linuxfoundation.org> References: <20220906132829.417117002@linuxfoundation.org> User-Agent: quilt/0.67 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-Spam-Status: No, score=-7.1 required=5.0 tests=BAYES_00,DKIMWL_WL_HIGH, DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,RCVD_IN_DNSWL_HI, SPF_HELO_NONE,SPF_PASS,T_SCC_BODY_TEXT_LINE autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on lindbergh.monkeyblade.net Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org From: Arun R Murthy [ Upstream commit 868e8e5156a1f8d92ca83fdbac6fd52798650792 ] Commit 20f85ef89d94 ("drm/i915/backlight: use unique backlight device names") added support for multiple backlight devices on dual panel systems, but did so with error handling on -EEXIST from backlight_device_register(). Unfortunately, that triggered a warning in dmesg all the way down from sysfs_add_file_mode_ns() and sysfs_warn_dup(). Instead of optimistically always attempting to register with the default name ("intel_backlight", which we have to retain for backward compatibility), check if a backlight device with the name exists first, and, if so, use the card and connector based name. v2: reworked on top of the patch commit 20f85ef89d94 ("drm/i915/backlight: use unique backlight device names") v3: fixed the ref count leak(Jani N) Fixes: 20f85ef89d94 ("drm/i915/backlight: use unique backlight device names") Signed-off-by: Arun R Murthy Signed-off-by: Jani Nikula Link: https://patchwork.freedesktop.org/patch/msgid/20220808035750.3111046-1-arun.r.murthy@intel.com (cherry picked from commit 4234ea30051200fc6016de10e4d58369e60b38f1) Signed-off-by: Rodrigo Vivi Signed-off-by: Sasha Levin --- .../gpu/drm/i915/display/intel_backlight.c | 26 +++++++++---------- 1 file changed, 12 insertions(+), 14 deletions(-) diff --git a/drivers/gpu/drm/i915/display/intel_backlight.c b/drivers/gpu/drm/i915/display/intel_backlight.c index c8e1fc53a881f..79f8a586623dc 100644 --- a/drivers/gpu/drm/i915/display/intel_backlight.c +++ b/drivers/gpu/drm/i915/display/intel_backlight.c @@ -970,26 +970,24 @@ int intel_backlight_device_register(struct intel_connector *connector) if (!name) return -ENOMEM; - bd = backlight_device_register(name, connector->base.kdev, connector, - &intel_backlight_device_ops, &props); - - /* - * Using the same name independent of the drm device or connector - * prevents registration of multiple backlight devices in the - * driver. However, we need to use the default name for backward - * compatibility. Use unique names for subsequent backlight devices as a - * fallback when the default name already exists. - */ - if (IS_ERR(bd) && PTR_ERR(bd) == -EEXIST) { + bd = backlight_device_get_by_name(name); + if (bd) { + put_device(&bd->dev); + /* + * Using the same name independent of the drm device or connector + * prevents registration of multiple backlight devices in the + * driver. However, we need to use the default name for backward + * compatibility. Use unique names for subsequent backlight devices as a + * fallback when the default name already exists. + */ kfree(name); name = kasprintf(GFP_KERNEL, "card%d-%s-backlight", i915->drm.primary->index, connector->base.name); if (!name) return -ENOMEM; - - bd = backlight_device_register(name, connector->base.kdev, connector, - &intel_backlight_device_ops, &props); } + bd = backlight_device_register(name, connector->base.kdev, connector, + &intel_backlight_device_ops, &props); if (IS_ERR(bd)) { drm_err(&i915->drm, -- 2.35.1