Received: by 2002:a05:6a10:d5a5:0:0:0:0 with SMTP id gn37csp198719pxb; Wed, 6 Oct 2021 03:05:58 -0700 (PDT) X-Google-Smtp-Source: ABdhPJycpr1rxZBsMb3B2ptmDnpBgcWmmkBVPFVS+wJIRQJSQ2OKJPfBM+MzNlU6G5wUBc/GFahc X-Received: by 2002:a17:906:c041:: with SMTP id bm1mr19484780ejb.280.1633514758626; Wed, 06 Oct 2021 03:05:58 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1633514758; cv=none; d=google.com; s=arc-20160816; b=EIxnsNBQxXZKQpwnaPuy7ogRis4H9sDo7HwKAzczXIRu6dKj/ggc3fz9kYilj43wNr zAWvpWqarV/vjMZC508X4J7f+ucLG954KQddb18nGkUuSkAmzkZb7v36piFvdhSjKmwf Crc5QUYb+etvXbrxkpIKeeE4Z1vFh8hdAlj1QyHBtrUydgbsUam1zqb6kDdYAAmQpFA3 iyiBi8iVQsLRT9ZWJEWEv50NRtK8nR2mJVOobrb//utwi3y9fhDeBrynrmHke2HHnka2 aqTtmtL7z5i2zsFE2RBMPWNfR2jp+m92topAPRgxvh1u7VB19S/LVithTnd4nmJj3FM7 +NKw== 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=Uau9/pR+8X0YYImoS0Wg4cgXBZAlRqGIWfRwQoTAlIs=; b=Jlc1sKCyy9BbLtt5fmaCLTO1MEotMKcxMe5FOnF+eIUBD7pjxJZ297saRvQYot0Zhw KIOFvKe8/dy1D59cSej1O1CcR+QS0WBbXJAkhhEvE6R/DJmsq9ZWfjid/ehpzAAY6DvH GZI4f713+Xcp169ZhXegqBuDmLU1NrQPIa7je/8kSUynNn1G+YJFsbCSLmy3KVPvpm4w eiXmBYxwDLDL0kRDYUxtrGi2YxdSsaMXb16quiY9iApjIXDCEWiT6IqJNNOw9VvOEnO0 /uuZOLbbFSF/Db64iKHchYWuHBnqbcJucPLo0+eUu4+aWVFMSvXZHf5NWqhQbfTDZhVN cxhQ== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@gmail.com header.s=20210112 header.b=FqojcO+6; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=QUARANTINE dis=NONE) header.from=gmail.com Return-Path: Received: from vger.kernel.org (vger.kernel.org. [23.128.96.18]) by mx.google.com with ESMTP id m4si24308438ejl.583.2021.10.06.03.05.33; Wed, 06 Oct 2021 03:05:58 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) client-ip=23.128.96.18; Authentication-Results: mx.google.com; dkim=pass header.i=@gmail.com header.s=20210112 header.b=FqojcO+6; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=QUARANTINE dis=NONE) header.from=gmail.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S237929AbhJFKES (ORCPT + 99 others); Wed, 6 Oct 2021 06:04:18 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:59982 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S230143AbhJFKEQ (ORCPT ); Wed, 6 Oct 2021 06:04:16 -0400 Received: from mail-ua1-x929.google.com (mail-ua1-x929.google.com [IPv6:2607:f8b0:4864:20::929]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 58A5BC061749; Wed, 6 Oct 2021 03:02:24 -0700 (PDT) Received: by mail-ua1-x929.google.com with SMTP id g13so724887uaj.3; Wed, 06 Oct 2021 03:02:24 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; h=mime-version:references:in-reply-to:from:date:message-id:subject:to :cc; bh=Uau9/pR+8X0YYImoS0Wg4cgXBZAlRqGIWfRwQoTAlIs=; b=FqojcO+6S1vzBTjYbWbeynWCuPHepeTAT1FG+f7XggYRcYHFl2NcgAaFsGUz/WQF/J osO5xGm/MsCLkelJrr/BzPvAv8HIa84pyjyLbs0KX3evk7wEGs80Qhe3mYmEiIgcN5uG TaThcXRoYFOIrfAFeFAgD12BzFzzmH/YHX8Zzmwd4remXoiWpHXVDeVD920edl5SR896 rWR/pWGkDTTjHxc9pjNmdFsNB4Ikvq75kYEliY3zH58Wau8goW+mNCBtJwWynW42Jk2/ hJeKDbd0ttf7WP1sTQqhwM5oZf7bBp7ZtULYYJQtBbSP+Ki7cmrSVGEdLKts7ivbVwXe uMzQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:mime-version:references:in-reply-to:from:date :message-id:subject:to:cc; bh=Uau9/pR+8X0YYImoS0Wg4cgXBZAlRqGIWfRwQoTAlIs=; b=Lw99BchxYEKvh301aUMWA2BnimWl26+QJ4L1HyUF3mHPXhQfif3ArsXOF88oZ+ZkeZ rQkBE/AqBwv/xteZtZJD1HkzQGNAueIYquGiiuzmT+BIdlUxOo9lWM6+9YD8owNDE4VC 97U/gbHiZgm7jaV1hyWJrxuwholvgSZKqrpJjLS4UcUjRphlMZVh2OO6pmVF3SYU72vn mQxLZD9OKoqrWKshPlGXn2wBHSqSIxVROFftzC94+A+0ueXshd0Yv7HgLkSxkXob2w0M LFGSoGedfqE9QqchQENNNRx3up9ros4l8yMC5UKBoPrembOWnPbSyQFNOfbSECUSql0h 2IsQ== X-Gm-Message-State: AOAM530LJZQ15TpuJnk0p34RUDXEOqLH36H1Q5MpQR7fJcVyuiCsr8xR DzM0irBKpXnBIkJsbvvoC780h9eGVN0Jrq8G9z4= X-Received: by 2002:ab0:5548:: with SMTP id u8mr16315316uaa.0.1633514543473; Wed, 06 Oct 2021 03:02:23 -0700 (PDT) MIME-Version: 1.0 References: <20211006061204.2854-1-sergio.paracuellos@gmail.com> <20211006061204.2854-4-sergio.paracuellos@gmail.com> <20211006082903.GZ2048@kadam> In-Reply-To: <20211006082903.GZ2048@kadam> From: Sergio Paracuellos Date: Wed, 6 Oct 2021 12:02:12 +0200 Message-ID: Subject: Re: [PATCH 3/4] clk: ralink: make system controller node a reset provider To: Dan Carpenter Cc: Stephen Boyd , "open list:COMMON CLK FRAMEWORK" , Greg KH , "open list:OPEN FIRMWARE AND FLATTENED DEVICE TREE BINDINGS" , Rob Herring , linux-staging@lists.linux.dev, NeilBrown , linux-kernel , John Crispin Content-Type: text/plain; charset="UTF-8" Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Hi Dan, Thanks for the review. Comments below. On Wed, Oct 6, 2021 at 10:29 AM Dan Carpenter wrote: > > On Wed, Oct 06, 2021 at 08:12:03AM +0200, Sergio Paracuellos wrote: > > @@ -398,6 +401,76 @@ static void __init mt7621_clk_init(struct device_node *node) > > } > > CLK_OF_DECLARE_DRIVER(mt7621_clk, "mediatek,mt7621-sysc", mt7621_clk_init); > > > > +struct mt7621_rst { > > + struct reset_controller_dev rcdev; > > + struct regmap *sysc; > > +}; > > + > > +static inline struct mt7621_rst *to_mt7621_rst(struct reset_controller_dev *dev) > > No need to mark this as inline. The compiler should do it automatically > or it will ignore the inline. Ok, I have other functions to_* with the same inline syntax, that's why I have added also here. I think I will maintain it to be coherent and can be removed afterwards with another patch not belonging to this series. > > > +{ > > + return container_of(dev, struct mt7621_rst, rcdev); > > +} > > + > > +static int mt7621_assert_device(struct reset_controller_dev *rcdev, > > + unsigned long id) > > +{ > > + struct mt7621_rst *data = to_mt7621_rst(rcdev); > > + struct regmap *sysc = data->sysc; > > + > > + if (id == MT7621_RST_SYS) > > + return -1; > > Please, return proper error codes. Current code at 'reset.c' of the arch was returning -1 in this case. I guess it is better to change it to -EINVAL. > > > + > > + return regmap_update_bits(sysc, SYSC_REG_RESET_CTRL, BIT(id), BIT(id)); > > +} > > + > > +static int mt7621_deassert_device(struct reset_controller_dev *rcdev, > > + unsigned long id) > > +{ > > + struct mt7621_rst *data = to_mt7621_rst(rcdev); > > + struct regmap *sysc = data->sysc; > > + > > + if (id == MT7621_RST_SYS) > > + return -1; > > Here too. Will change to -EINVAL. > > > + > > + return regmap_update_bits(sysc, SYSC_REG_RESET_CTRL, BIT(id), 0); > > +} > > + > > +static int mt7621_reset_device(struct reset_controller_dev *rcdev, > > + unsigned long id) > > +{ > > + int ret; > > + > > + ret = mt7621_assert_device(rcdev, id); > > + if (ret < 0) > > + return ret; > > + > > + return mt7621_deassert_device(rcdev, id); > > +} > > + > > +static const struct reset_control_ops reset_ops = { > > + .reset = mt7621_reset_device, > > + .assert = mt7621_assert_device, > > + .deassert = mt7621_deassert_device > > +}; > > + > > +static int mt7621_reset_init(struct device *dev, struct regmap *sysc) > > +{ > > + struct mt7621_rst *rst_data; > > + > > + rst_data = kzalloc(sizeof(*rst_data), GFP_KERNEL); > > > Can we use devm_ to allocate this or do we need to clean up if > devm_reset_controller_register() fails? Also a free in the release > function I suppose. (Please, use devm_). True, yes we can use devm_ for this. Will change it, thanks. > > > > + if (!rst_data) > > + return -ENOMEM; > > + > > + rst_data->sysc = sysc; > > + rst_data->rcdev.ops = &reset_ops; > > + rst_data->rcdev.owner = THIS_MODULE; > > + rst_data->rcdev.nr_resets = 32; > > + rst_data->rcdev.of_reset_n_cells = 1; > > + rst_data->rcdev.of_node = dev_of_node(dev); > > + > > + return devm_reset_controller_register(dev, &rst_data->rcdev); > > +} > > > regards, > dan carpenter > I will properly take into account your comments and send v2. Thanks, Sergio Paracuellos