Received: by 2002:a05:6358:d09b:b0:dc:cd0c:909e with SMTP id jc27csp10007268rwb; Thu, 24 Nov 2022 23:11:39 -0800 (PST) X-Google-Smtp-Source: AA0mqf7lnoZLt4OXpQLAZ53xcJhq9nkFZE1dwAEAKF2xWrzk2ie8uPASqR3REYpVdX2++42qphVI X-Received: by 2002:a05:6a00:1409:b0:56b:e1d8:e7a1 with SMTP id l9-20020a056a00140900b0056be1d8e7a1mr17354063pfu.28.1669360299363; Thu, 24 Nov 2022 23:11:39 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1669360299; cv=none; d=google.com; s=arc-20160816; b=E3b+Dr8QWkX6KRS3U7hF4DmfnWYvDSv+4qtAYR8WLeWfLwK8Xn8nhMSdGtVhAg8aOm poF0h1LIXY6XeHgQaHzX7spSdxFU9VgWdeO7Q/bqzGqSao+FLPCWp5GbXIKCKE/Dz2VG lVN5Cgyv79O23F40fR7BV4lVX1/Up4+BxXeUpBDCPRbODooZ2u9Pfi5ExHScpyMd0FqH PT5ugisCGFVPuzrg5SAbBYh975kQUuu5avfgfKZ7whwhkY0XeM3dbcoxOXSoKF70AcQF +6OLU3NsoW6A9cmg1rnF/ezrerVZR64ZwsOMYziS4voNdPpoiSIEljPB1qHSkH1R3WKQ TcHw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:cc:to:subject:message-id:date:from:in-reply-to :references:mime-version:dkim-signature; bh=hoX4Z40MQwuszANnlGBImjuiii34Bm6IVdSkNEROGlk=; b=O5rnBdfJWIvCF6y0AqF+z5lZhCe45VQOy4jAnwKmzi98r6PGEfYDVePTdxk5BrAldx TqfdmnKYFixJlNAbu56t/rR+yI57Yvl/jEHjcxi8d1XsfgoqHi3ckd7/FDdalFZ0j7+K YFFG3DUDo5VzVKcuOuDred3EmSl+zJUBS/FsR6GNPcvhv7UA0gPW5y+JglhVF7yDVXWF cSYXgd0VD8xTz5lA741nRh52WzP9qU46V1JGfK7BteMzpEw1/dnp1NTuapVdy4DeGEo+ GMw3F++PZdDWNBVIl12F+PJBW2hCBmIwgNG6Gx0vi2dSWUG7car46WjD6nirOhxZ2pk7 PtJA== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@chromium.org header.s=google header.b=DYIALqhs; 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=chromium.org Return-Path: Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id z18-20020aa78892000000b00571e1bb9312si3382042pfe.173.2022.11.24.23.11.28; Thu, 24 Nov 2022 23:11:39 -0800 (PST) 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=@chromium.org header.s=google header.b=DYIALqhs; 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=chromium.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S229705AbiKYG7Q (ORCPT + 87 others); Fri, 25 Nov 2022 01:59:16 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:59954 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S229685AbiKYG7M (ORCPT ); Fri, 25 Nov 2022 01:59:12 -0500 Received: from mail-ej1-x62c.google.com (mail-ej1-x62c.google.com [IPv6:2a00:1450:4864:20::62c]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 1926F2CC97 for ; Thu, 24 Nov 2022 22:59:11 -0800 (PST) Received: by mail-ej1-x62c.google.com with SMTP id i10so8265092ejg.6 for ; Thu, 24 Nov 2022 22:59:11 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=chromium.org; s=google; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:from:to:cc:subject:date:message-id:reply-to; bh=hoX4Z40MQwuszANnlGBImjuiii34Bm6IVdSkNEROGlk=; b=DYIALqhs5m9PNMHPE8yqYIxFmhgXWCNuD1nJkRncSHnTb9KsT2SEjTxLyCLcf07SND BuT1B67WTp6kKWo3FOST5wFfrrVouCr3lzbeI1KGFJ8ZBam/NFoSzrxJ91QWhGAFY65h a9xen1l7WE8m+vLpAI2NRR5TH2Q/wtYpx+7Hs= 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=hoX4Z40MQwuszANnlGBImjuiii34Bm6IVdSkNEROGlk=; b=kKZ6BPqV02/CyHxhQuTID4b7sgj3zvN97bxBaSf7ZQWmqF/7miq7TaM4RS3TCI/fX5 H6g1v7HsKOMGmLT3BoXJm5FUamvozabfrsl7Fcqn3bdqeZ9YE70KSUzl0UHCKaEXSZ1p ZySQA1Lgdau6kathHzUIC4qOSXwwfprjyE0XwRftHnW8qd7N2V17cASIS55mbkK+fmOG izCRUvKY0R1jqDWi5d1gjHhwr3zN50ssHfjpr9lu81xtCzwd6LTsneN7mUVZm9rlC+hs G0Gm3xEys0CDrNBImVbwQhDlJqKqiiZ6nYw8op2Y8FwTXiGturA6nIVgSM8euGMd1FYe Zz9g== X-Gm-Message-State: ANoB5pmlGW7ES6CVaOBCRn0HWIuMXoGW8Hd3nRb4A2v1WkNWK1N+AAXB i6xZbWaWt8VJEZxtsA5sA//4A3Blq8X6qQxkRitkxCf3g+o= X-Received: by 2002:a17:906:b1c6:b0:7ad:e82b:b66b with SMTP id bv6-20020a170906b1c600b007ade82bb66bmr14937894ejb.453.1669359549666; Thu, 24 Nov 2022 22:59:09 -0800 (PST) MIME-Version: 1.0 References: <20221124102056.393220-1-treapking@chromium.org> <20221124102056.393220-6-treapking@chromium.org> In-Reply-To: From: Pin-yen Lin Date: Fri, 25 Nov 2022 14:58:58 +0800 Message-ID: Subject: Re: [PATCH v6 5/7] drm/bridge: anx7625: Register Type C mode switches To: Andy Shevchenko Cc: Andrzej Hajda , Neil Armstrong , Robert Foss , Laurent Pinchart , Jonas Karlman , Jernej Skrabec , David Airlie , Daniel Vetter , Rob Herring , Krzysztof Kozlowski , Daniel Scally , Heikki Krogerus , Sakari Ailus , Greg Kroah-Hartman , "Rafael J . Wysocki" , Prashant Malani , Benson Leung , Guenter Roeck , Javier Martinez Canillas , Stephen Boyd , dri-devel@lists.freedesktop.org, Hsin-Yi Wang , Thomas Zimmermann , devicetree@vger.kernel.org, chrome-platform@lists.linux.dev, linux-acpi@vger.kernel.org, Marek Vasut , Xin Ji , Lyude Paul , =?UTF-8?B?TsOtY29sYXMgRiAuIFIgLiBBIC4gUHJhZG8=?= , AngeloGioacchino Del Regno , linux-kernel@vger.kernel.org, Allen Chen Content-Type: text/plain; charset="UTF-8" X-Spam-Status: No, score=-2.1 required=5.0 tests=BAYES_00,DKIMWL_WL_HIGH, DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,RCVD_IN_DNSWL_NONE, SPF_HELO_NONE,SPF_PASS 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 Hi Andy, Thanks for reviewing the patch. On Thu, Nov 24, 2022 at 8:18 PM Andy Shevchenko wrote: > > On Thu, Nov 24, 2022 at 06:20:54PM +0800, Pin-yen Lin wrote: > > Register USB Type-C mode switches when the "mode-switch" property and > > relevant port are available in Device Tree. Configure the crosspoint > > switch based on the entered alternate mode for a specific Type-C > > connector. > > ... > > > +static void anx7625_typec_two_ports_update(struct anx7625_data *ctx) > > +{ > > + if (ctx->typec_ports[0].dp_connected && ctx->typec_ports[1].dp_connected) > > + /* Both ports available, do nothing to retain the current one. */ > > + return; > > > + else if (ctx->typec_ports[0].dp_connected) > > This 'else' is redundant. I would rewrite above as > > /* Check if both ports available and do nothing to retain the current one */ > if (ctx->typec_ports[0].dp_connected && ctx->typec_ports[1].dp_connected) > return; > > if (ctx->typec_ports[0].dp_connected) > > > + anx7625_set_crosspoint_switch(ctx, TYPEC_ORIENTATION_NORMAL); > > + else if (ctx->typec_ports[1].dp_connected) > > + anx7625_set_crosspoint_switch(ctx, TYPEC_ORIENTATION_REVERSE); > > +} Thanks for the detailed suggestion. I'll adapt this in v7. > > ... > > > + data->dp_connected = (state->alt && state->alt->svid == USB_TYPEC_DP_SID && > > + state->alt->mode == USB_TYPEC_DP_MODE); > > Parentheses are not needed. Will fix this in v7. > > ... > > > + /* > > + * <0 1> refers to SSRX1/SSTX1, and <2 3> refers to SSRX2/SSTX2. > > + */ > > + for (i = 0; i < num_lanes; i++) { > > > + if (port_num != -1 && port_num != dp_lanes[i] / 2) { > > + dev_err(dev, "Invalid data lane numbers\n"); > > + return -EINVAL; > > + } > > According to Rob Linux must not validate device tree. If you need it, use > proper YAML schema. > > > + port_num = dp_lanes[i] / 2; > > + } > I'll remove this from the driver in v7. > ... > > > + if (!ctx->num_typec_switches) { > > + dev_warn(dev, "No Type-C switches node found\n"); > > > + return ret; > > Why not to return 0 explicitly? Will update to just "return 0" in v7. > > > + } > > ... > > > + ctx->typec_ports = devm_kcalloc( > > Broken indentation. Will fix in v7 > > > + dev, ctx->num_typec_switches, sizeof(struct anx7625_port_data), > > + GFP_KERNEL); > > + if (!ctx->typec_ports) > > + return -ENOMEM; > > ... > > > +struct anx7625_port_data { > > > + bool dp_connected; > > You can save some bytes on some architectures if move this to be last field. Thanks for the suggestion. I'll do so in v7 > > > + struct typec_mux_dev *typec_mux; > > + struct anx7625_data *ctx; > > +}; > > -- > With Best Regards, > Andy Shevchenko > >