From: Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org>
To: Ryan Chen <ryan_chen@aspeedtech.com>, Jeremy Kerr <jk@ozlabs.org>,
Rob Herring <robh+dt@kernel.org>,
Krzysztof Kozlowski <krzysztof.kozlowski+dt@linaro.org>,
Joel Stanley <joel@jms.id.au>, Andrew Jeffery <andrew@aj.id.au>,
Philipp Zabel <p.zabel@pengutronix.de>,
"openbmc@lists.ozlabs.org" <openbmc@lists.ozlabs.org>,
"linux-arm-kernel@lists.infradead.org"
<linux-arm-kernel@lists.infradead.org>,
"linux-aspeed@lists.ozlabs.org" <linux-aspeed@lists.ozlabs.org>,
"linux-kernel@vger.kernel.org" <linux-kernel@vger.kernel.org>
Subject: Re: [PATCH v4 3/3] i2c: aspeed: support ast2600 i2c new register mode driver
Date: Tue, 14 Feb 2023 10:32:48 +0100 [thread overview]
Message-ID: <efabae13-9018-1570-8daf-4401fa146441@linaro.org> (raw)
In-Reply-To: <SEZPR06MB5269752C96643832E32F8AD1F2A29@SEZPR06MB5269.apcprd06.prod.outlook.com>
On 14/02/2023 09:57, Ryan Chen wrote:
> Hello Krzysztof,
>
>>
>> On 14/02/2023 07:12, Ryan Chen wrote:
>>> Hello Krzysztof,
>>>>
>>>>> On 02/02/2023 10:16, Ryan Chen wrote:
>>>>>>>>> +static struct platform_driver ast2600_i2c_global_driver = {
>>>>>>>> + .probe = ast2600_i2c_global_probe,
>>>>>>>> + .driver = {
>>>>>>>> + .name = KBUILD_MODNAME,
>>>>>>>> + .of_match_table =
>>>> ast2600_i2c_global_of_match,
>>>>>>>> + },
>>>>>>>> +};
>>>>>>>> +
>>>>>>>> +static int __init ast2600_i2c_global_init(void) {
>>>>>>>> + return
>>>>>>>> +platform_driver_register(&ast2600_i2c_global_driver);
>>>>>>>> +}
>>>>>>>> +device_initcall(ast2600_i2c_global_init);
>>>>>>>
>>>>>>> Maybe module_platform_driver() instead?
>>>>>>
>>>>>> Due to i2c global is top of all i2c bus like the scu, it make sure
>>>>>> the driver is
>>>>> before the i2c bus driver probe.
>>>>>> It is needed use device_initcal function.
>>>>>
>>>>> No, we do not do such ordering. device links and proper resource
>>>>> sharing handle the order. This must be module_platform_driver()
>>>>> (assuming we do not drop entire submission).
>>>>
>>>>
>>>> If global driver use module_platform_driver, does i2c driver will
>>>> latter the global driver probe?
>>>> If yes, I think it will workable.
>>>>>
>>> I find a good way instead.
>>> subsys_initcall(ast2600_i2c_global_init); is better ?
>>
>> Not really, this is not a subsystem. This is module platform driver so use it.
>>
> But, I need i2c-global to be early then i2c-ast2600 driver. The subsys_initcall is needed.
> I2c-global driver to initial full i2c clock and reset, after this, i2c bus driver(i2c-ast2600.c) can work.
I wrote already what gives you the proper ordering. Why they do not or
cannot work here?
> So I suggest to use subsys_initcall in i2c global driver. Is it ok?
So for the third time - no. I gave reason what is the proper solution.
Manual ordering of drivers is error prone, not portable, easy to break
and actually does not work later when the platform grows.
Best regards,
Krzysztof
next prev parent reply other threads:[~2023-02-14 9:33 UTC|newest]
Thread overview: 33+ messages / expand[flat|nested] mbox.gz Atom feed top
2023-02-01 10:33 [PATCH v4 0/3] Add ASPEED AST2600 I2C new controller driver Ryan Chen
2023-02-01 10:33 ` [PATCH v4 1/3] dt-bindings: i2c-ast2600: Add support for AST2600 I2C global controller Ryan Chen
2023-02-02 4:25 ` Jeremy Kerr
2023-02-02 5:15 ` Ryan Chen
2023-02-02 8:52 ` Krzysztof Kozlowski
2023-02-01 10:33 ` [PATCH v4 2/3] dt-bindings: i2c-ast2600: Add support for AST2600 i2C driver Ryan Chen
2023-02-02 8:55 ` Krzysztof Kozlowski
2023-02-02 8:57 ` Krzysztof Kozlowski
2023-02-15 5:43 ` Ryan Chen
2023-02-15 20:17 ` Krzysztof Kozlowski
2023-02-16 9:20 ` Ryan Chen
2023-02-16 9:22 ` Krzysztof Kozlowski
2023-02-16 9:26 ` Ryan Chen
2023-02-17 8:37 ` Krzysztof Kozlowski
2023-02-18 1:19 ` Ryan Chen
2023-02-20 7:59 ` Krzysztof Kozlowski
2023-02-20 9:14 ` Ryan Chen
2023-02-20 10:34 ` Krzysztof Kozlowski
2023-02-16 4:17 ` Dhananjay Phadke
2023-02-16 8:08 ` Krzysztof Kozlowski
2023-02-16 9:17 ` Ryan Chen
2023-02-01 10:33 ` [PATCH v4 3/3] i2c: aspeed: support ast2600 i2c new register mode driver Ryan Chen
2023-02-02 6:04 ` Jeremy Kerr
2023-02-02 9:16 ` Ryan Chen
2023-02-02 9:33 ` Krzysztof Kozlowski
2023-02-02 10:03 ` Ryan Chen
2023-02-14 6:12 ` Ryan Chen
2023-02-14 7:46 ` Krzysztof Kozlowski
2023-02-14 8:57 ` Ryan Chen
2023-02-14 9:32 ` Krzysztof Kozlowski [this message]
2023-02-02 8:59 ` Krzysztof Kozlowski
2023-02-02 9:00 ` [PATCH v4 0/3] Add ASPEED AST2600 I2C new controller driver Krzysztof Kozlowski
2023-02-02 9:02 ` Krzysztof Kozlowski
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=efabae13-9018-1570-8daf-4401fa146441@linaro.org \
--to=krzysztof.kozlowski@linaro.org \
--cc=andrew@aj.id.au \
--cc=jk@ozlabs.org \
--cc=joel@jms.id.au \
--cc=krzysztof.kozlowski+dt@linaro.org \
--cc=linux-arm-kernel@lists.infradead.org \
--cc=linux-aspeed@lists.ozlabs.org \
--cc=linux-kernel@vger.kernel.org \
--cc=openbmc@lists.ozlabs.org \
--cc=p.zabel@pengutronix.de \
--cc=robh+dt@kernel.org \
--cc=ryan_chen@aspeedtech.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox
all inboxes | Powered by JetHome®