Re: [PATCH v3 4/7] clk: ingenic: tcu: Use contextual data instead of global variable
Thierry Reding <[email protected]>
| Newsgroups | gmane.linux.ports.riscv,gmane.linux.ports.arm.kernel,gmane.linux.ports.mips,gmane.linux.ports.ppc64.devel,gmane.linux.ports.sh.devel,gmane.linux.kernel.pci,gmane.linux.acpi.devel,gmane.linux.kernel |
|---|---|
| Message-ID | <5psq67p7ozmfz6mbi626q2uixqtbtfpejkhud5fv6wqr66xasz@ksiokkf5qsgr> |
On Wed, Oct 29, 2025 at 12:56:47PM -0500, Bjorn Helgaas wrote: > On Wed, Oct 29, 2025 at 05:33:33PM +0100, Thierry Reding wrote: > > From: Thierry Reding <[email protected]> > > > > Pass the driver-specific data via the syscore struct and use it in the > > syscore ops. > > Some of these things in drivers/clk/ are also platform_device drivers > (though not this one) and use generic power management, e.g., > > https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/tree/drivers/clk/qcom/q6sstop-qcs404.c?id=v6.17#n209 > > I have no idea if that's desirable or practical here, but using the > platform_device model instead of syscore could have advantages in > terms of modeling device dependencies and ordering. Similar to the MIPS/Alchemy PCI driver, although there's no git log reference in this case, I suspect this was not in driver PM on purpose. The pattern I've seen quite often is very low-level device driver code doing this using syscore_ops because they run very late/early during suspend/resume, respectively, so the driver PM callbacks often aren't sufficient. In recent years, some of the issues have been alleviated by things such as device links, so a conversion may work now. However, often these are also exotic and/or old devices that are difficult to find testers for, so I've been trying to keep the changes in this series as minimal as possible, so that we can be reasonably sure things will continue to work just by reviewing the code. The most important bit in the series is patch 1, which lays the groundwork for avoiding these global variables for new code. Also, in particular I have a concrete case where the global variable approach doesn't work because an IP block that used to be a guaranteed singleton now no longer is. I have looked at various drivers that I ended up not converting because they use a global variable not only for syscore but also for other things and fixing that up would've been way out of scope of this series. Thierry _______________________________________________ linux-riscv mailing list [email protected] http://lists.infradead.org/mailman/listinfo/linux-riscv
signature.asc
(application/pgp-signature, 833 B)
-----BEGIN PGP SIGNATURE----- iQIzBAABCgAdFiEEiOrDCAFJzPfAjcif3SOs138+s6EFAmkDWcwACgkQ3SOs138+ s6Hg1w//bfwZK2UyWYgH0DjUdLRkw/JLbu/3memPliSQO+SxPOEf7uwnD1QnAiQ3 AaL3UiueXsnj30IkhBnqYoPaFQRz3G5Ag/PFIKX3kireFrAExwZP/9AKWiJflD1I gh+QOfqgZ1HpJr3QSmmjosBmkm5T7a/J5dUNuCcZoRcya8QmACQqg3sWy8gj4BdT Hy/aq2/JWEEJs1pLE5SvCexBqTP5gxTj8MTuNgqm3hRDtZc4TQnKNZIcJwgOruMX Wy4rrgBPQiASKxxP7ksI7iXCTOYM61AlEm39RUFNcGKI9iOw1YxFn2LuVIPoFJc6 H92dgYcRmcEgy/oWPc8yTs9iX2POH5p/40/nb53U3sj6iQVhEMoVIGmIuxEX9RHL VHkn3RNfYCZlwqDtwCCoN6DWBW2PNUAX3dsD1ng3ZZHuDH2lbQaQudKRi7MGhAxm ADqiAfq1HO8Fk6uo5BFMtpieue14jJFHaQs21TkOlurf/LH9GT2qO52/8KtcxYx8 F8pXjAM4Ps+sj+Er6h1Tb6PpXrpJ1lvGqagYTEJpWQuWyjXLGeseMpif2ucjdzjp 4qfcE13QtePpLlbO8kklfDMdo6+uClFAMgWMM0jWWFtczIaUWmwRYcDGUbW4RbHt H6TJJVsDtuaQNx9wfo+vq3oMZviuttJPzFqYefIOL7oACIZD6sk= =0K07 -----END PGP SIGNATURE-----