Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

pwm: sprd: Provide a helper to cast a chip to driver data

Similar to most other PWM drivers provide a static inline function to
calculate driver data from a given pwmchip.

Link: https://lore.kernel.org/r/20230929161918.2410424-8-u.kleine-koenig@pengutronix.de
Signed-off-by: Uwe Kleine-König <u.kleine-koenig@pengutronix.de>
Signed-off-by: Thierry Reding <thierry.reding@gmail.com>

authored by

Uwe Kleine-König and committed by
Thierry Reding
d8a2f6f2 4f9ab690

+7 -4
+7 -4
drivers/pwm/pwm-sprd.c
··· 40 40 struct sprd_pwm_chn chn[SPRD_PWM_CHN_NUM]; 41 41 }; 42 42 43 + static inline struct sprd_pwm_chip* sprd_pwm_from_chip(struct pwm_chip *chip) 44 + { 45 + return container_of(chip, struct sprd_pwm_chip, chip); 46 + } 47 + 43 48 /* 44 49 * The list of clocks required by PWM channels, and each channel has 2 clocks: 45 50 * enable clock and pwm clock. ··· 74 69 static int sprd_pwm_get_state(struct pwm_chip *chip, struct pwm_device *pwm, 75 70 struct pwm_state *state) 76 71 { 77 - struct sprd_pwm_chip *spc = 78 - container_of(chip, struct sprd_pwm_chip, chip); 72 + struct sprd_pwm_chip *spc = sprd_pwm_from_chip(chip); 79 73 struct sprd_pwm_chn *chn = &spc->chn[pwm->hwpwm]; 80 74 u32 val, duty, prescale; 81 75 u64 tmp; ··· 166 162 static int sprd_pwm_apply(struct pwm_chip *chip, struct pwm_device *pwm, 167 163 const struct pwm_state *state) 168 164 { 169 - struct sprd_pwm_chip *spc = 170 - container_of(chip, struct sprd_pwm_chip, chip); 165 + struct sprd_pwm_chip *spc = sprd_pwm_from_chip(chip); 171 166 struct sprd_pwm_chn *chn = &spc->chn[pwm->hwpwm]; 172 167 struct pwm_state *cstate = &pwm->state; 173 168 int ret;