From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by smtp.lore.kernel.org (Postfix) with ESMTP id 8CAF3C433F5 for ; Tue, 11 Oct 2022 19:28:06 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S230062AbiJKT2E (ORCPT ); Tue, 11 Oct 2022 15:28:04 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:59064 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S229716AbiJKT2A (ORCPT ); Tue, 11 Oct 2022 15:28:00 -0400 Received: from mail-pj1-x102c.google.com (mail-pj1-x102c.google.com [IPv6:2607:f8b0:4864:20::102c]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 30F5879EF1 for ; Tue, 11 Oct 2022 12:27:55 -0700 (PDT) Received: by mail-pj1-x102c.google.com with SMTP id fw14so13352853pjb.3 for ; Tue, 11 Oct 2022 12:27:55 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20210112; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:from:to:cc:subject:date:message-id:reply-to; bh=FuHm+hgGem2uQm1De3fL4nSA6/vrttMC3e6Hbii/Ukg=; b=Hi2fY8LxOAmsr7yOOR9k9FUFXnQI+vTxx0FY7PR+l/OBPpmBF0QxtX+YPZutzSF2A3 KmelJEcXqxDE8dhhvzkqwWKenVa+D52e7+BPnXF8R+MrXGSfv0me0XHgnxTXWDEkJEsb cfofsJZfoWt5iUKvKBy6e1jblOJ/++GcBWNybXpE98ZVh0kEiIWCKHrjHdsFY7EWrECy 1+2BkHX/Q7A+g1UpTS89RuMMJnbCJL2eMbk2McO0dpILqxlRSt8893lcqVZTf4H+w2PX NIkYHi9qvU2HROQ9zgdkj45bRF7/KJ8SugtP9+BR9eqID0nJI6C7nYxIYD5hO+pCeZEX k2Ww== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:x-gm-message-state:from:to:cc:subject:date:message-id :reply-to; bh=FuHm+hgGem2uQm1De3fL4nSA6/vrttMC3e6Hbii/Ukg=; b=skt71g/FMofFXWnwNHcYfA7HuIocHZNeExOkxor3No1hLScH9nsksgtVXstejDWFuB lA22RJPPjyD5YIjw3vOGuQahMuQdj57KBGQR6infzAgbgE/kVADfUr8IdiDWP2xEokNd HhLKjlZyEDx2xdiGyeqSzI3cgajHg611mUFh2WlMCrKwAecIrs2T5UaCYr9G/lGariKv oZWPtldQhMQviuYq+1NdjQiLd1FtrixXHqBHRQ8Etel6SE6ulArRbIE76/NbzH6Jz/DS V4s9Z7/nxDHBt+pke5QJuO02fE1cGaOuL4I1m+iBHdU4JvSxJA5n4RDxuPistuL6SFcX sOsQ== X-Gm-Message-State: ACrzQf2LC8cKMswysiEJQO+R5Kbyu2oPXMKoP5BQJEJkmiACEkJlNApR FsixAohl8xR2czkOPocnQtpZWEDz4cp5roDCJrpBmw== X-Google-Smtp-Source: AMsMyM7Mj7CNGxJnZKWZj3/d+Vdy3OpobsmgepPXTQ4L7Q8aMpmyfkAyY6HHD+XVuoibypQeqDbkj38NAVBEd+MZjHI= X-Received: by 2002:a17:90a:e7c4:b0:20d:451f:a988 with SMTP id kb4-20020a17090ae7c400b0020d451fa988mr735341pjb.57.1665516474482; Tue, 11 Oct 2022 12:27:54 -0700 (PDT) MIME-Version: 1.0 References: <20220926214157.843812-1-wonchung@google.com> In-Reply-To: From: Won Chung Date: Tue, 11 Oct 2022 12:27:43 -0700 Message-ID: Subject: Re: [PATCH v2] drm/sysfs: Link DRM connectors to corresponding Type-C connectors To: Heikki Krogerus Cc: bleung@google.com, pmalani@chromium.org, imre.deak@intel.com, maarten.lankhorst@linux.intel.com, mripard@kernel.org, tzimmermann@suse.de, airlied@linux.ie, airlied@gmail.com, daniel@ffwll.ch, linux-kernel@vger.kernel.org Content-Type: text/plain; charset="UTF-8" Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On Tue, Sep 27, 2022 at 2:07 AM Heikki Krogerus wrote: > > On Mon, Sep 26, 2022 at 09:41:57PM +0000, Won Chung wrote: > > Create a symlink pointing to USB Type-C connector for DRM connectors > > when they are created. The link will be created only if the firmware is > > able to describe the connection beween the two connectors. > > > > Signed-off-by: Won Chung > > Acked-by: Heikki Krogerus > > > --- > > Changes from v1: > > - Fix multiple lines to single line > > > > > > drivers/gpu/drm/drm_sysfs.c | 40 +++++++++++++++++++++++++++++++++++++ > > 1 file changed, 40 insertions(+) > > > > diff --git a/drivers/gpu/drm/drm_sysfs.c b/drivers/gpu/drm/drm_sysfs.c > > index 430e00b16eec..6a9904fa9186 100644 > > --- a/drivers/gpu/drm/drm_sysfs.c > > +++ b/drivers/gpu/drm/drm_sysfs.c > > @@ -11,12 +11,14 @@ > > */ > > > > #include > > +#include > > #include > > #include > > #include > > #include > > #include > > #include > > +#include > > #include > > > > #include > > @@ -95,6 +97,34 @@ static char *drm_devnode(struct device *dev, umode_t *mode) > > return kasprintf(GFP_KERNEL, "dri/%s", dev_name(dev)); > > } > > > > +static int typec_connector_bind(struct device *dev, > > + struct device *typec_connector, void *data) > > +{ > > + int ret; > > + > > + ret = sysfs_create_link(&dev->kobj, &typec_connector->kobj, "typec_connector"); > > + if (ret) > > + return ret; > > + > > + ret = sysfs_create_link(&typec_connector->kobj, &dev->kobj, "drm_connector"); > > + if (ret) > > + sysfs_remove_link(&dev->kobj, "typec_connector"); > > + > > + return ret; > > +} > > + > > +static void typec_connector_unbind(struct device *dev, > > + struct device *typec_connector, void *data) > > +{ > > + sysfs_remove_link(&typec_connector->kobj, "drm_connector"); > > + sysfs_remove_link(&dev->kobj, "typec_connector"); > > +} > > + > > +static const struct component_ops typec_connector_ops = { > > + .bind = typec_connector_bind, > > + .unbind = typec_connector_unbind, > > +}; > > + > > static CLASS_ATTR_STRING(version, S_IRUGO, "drm 1.1.0 20060810"); > > > > /** > > @@ -355,6 +385,13 @@ int drm_sysfs_connector_add(struct drm_connector *connector) > > if (connector->ddc) > > return sysfs_create_link(&connector->kdev->kobj, > > &connector->ddc->dev.kobj, "ddc"); > > + > > + if (dev_fwnode(kdev)) { > > + r = component_add(kdev, &typec_connector_ops); > > + if (r) > > + drm_err(dev, "failed to add component\n"); > > + } > > + > > return 0; > > > > err_free: > > @@ -367,6 +404,9 @@ void drm_sysfs_connector_remove(struct drm_connector *connector) > > if (!connector->kdev) > > return; > > > > + if (dev_fwnode(connector->kdev)) > > + component_del(connector->kdev, &typec_connector_ops); > > + > > if (connector->ddc) > > sysfs_remove_link(&connector->kdev->kobj, "ddc"); > > > > thanks, > > -- > heikki Hi upstream DRM maintainers, Can you please take a look at this patch for a review when you have time? Thank you, Won