Hello Alex, On Fri, Jan 26, 2024 at 08:56:33AM -0600, Alex Elder wrote: > On 1/25/24 6:09 AM, Uwe Kleine-König wrote: > > This function allocates a struct pwm_chip and driver data. Compared to > > the status quo the split into pwm_chip and driver data is new, otherwise > > it doesn't change anything relevant (yet). > > > > The intention is that after all drivers are switched to use this > > allocation function, its possible to add a struct device to struct > > pwm_chip to properly track the latter's lifetime without touching all > > drivers again. Proper lifetime tracking is a necessary precondition to > > introduce character device support for PWMs (that implements atomic > > setting and doesn't suffer from the sysfs overhead of the /sys/class/pwm > > userspace support). > > > > The new function pwmchip_priv() (obviously?) only works for chips > > allocated with devm_pwmchip_alloc(). > > I think this looks good. Two questions: > - Should you explicitly align the private data? Or do you believe > the default alignment (currently pointer size aligned) is adequate? I'm not aware of a requirement for a higher order alignment (but I might well miss something). I did my tests on arm, nothing exploded there. Maybe the conservative approach of asserting the same alignment as kmalloc would be a good idea. I'll think and research about that. iio uses ARCH_DMA_MINALIGN, net uses 32 (NETDEV_ALIGN). > - Is there a non-devres version of the allocation function? Patch #109 introduces a non-devres variant. As it's not used it's a static function though. Can easily be changed is a use case pops up. Best regards Uwe -- Pengutronix e.K. | Uwe Kleine-König | Industrial Linux Solutions | https://www.pengutronix.de/ |
Attachment:
signature.asc
Description: PGP signature