[PATCH v6 003/164] pwm: Provide pwmchip_alloc() function and a devm variant of it
Andy Shevchenko
andriy.shevchenko at linux.intel.com
Wed Feb 14 04:49:26 PST 2024
On Wed, Feb 14, 2024 at 10:30:50AM +0100, 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 pwmchip_alloc().
...
> +#define PWMCHIP_ALIGN ARCH_DMA_MINALIGN
> +
> +static void *pwmchip_priv(struct pwm_chip *chip)
> +{
> + return (void *)chip + ALIGN(sizeof(*chip), PWMCHIP_ALIGN);
> +}
Why not use dma_get_cache_alignment() ?
...
> +/* This is the counterpart to pwmchip_alloc */
pwmchip_alloc()
...
> +EXPORT_SYMBOL_GPL(pwmchip_put);
> +EXPORT_SYMBOL_GPL(pwmchip_alloc);
> +EXPORT_SYMBOL_GPL(devm_pwmchip_alloc);
Are these exported via namespace? If no, can they be from day 1?
...
> +static inline void pwmchip_put(struct pwm_chip *chip)
> +{
> +}
Can be one line, but it's up to the present style in this header.
--
With Best Regards,
Andy Shevchenko
More information about the linux-riscv
mailing list