36
36
#include <linux/ktime.h>
37
37
#include <linux/math.h>
38
38
#include <linux/module.h>
39
- #include <linux/mutex.h>
40
39
#include <linux/of.h>
41
40
#include <linux/platform_device.h>
42
41
#include <linux/pwm.h>
56
55
struct mchp_core_pwm_chip {
57
56
struct clk * clk ;
58
57
void __iomem * base ;
59
- struct mutex lock ; /* protects the shared period */
60
58
ktime_t update_timestamp ;
61
59
u32 sync_update_mask ;
62
60
u16 channel_enabled ;
@@ -360,17 +358,10 @@ static int mchp_core_pwm_apply(struct pwm_chip *chip, struct pwm_device *pwm,
360
358
const struct pwm_state * state )
361
359
{
362
360
struct mchp_core_pwm_chip * mchp_core_pwm = to_mchp_core_pwm (chip );
363
- int ret ;
364
-
365
- mutex_lock (& mchp_core_pwm -> lock );
366
361
367
362
mchp_core_pwm_wait_for_sync_update (mchp_core_pwm , pwm -> hwpwm );
368
363
369
- ret = mchp_core_pwm_apply_locked (chip , pwm , state );
370
-
371
- mutex_unlock (& mchp_core_pwm -> lock );
372
-
373
- return ret ;
364
+ return mchp_core_pwm_apply_locked (chip , pwm , state );
374
365
}
375
366
376
367
static int mchp_core_pwm_get_state (struct pwm_chip * chip , struct pwm_device * pwm ,
@@ -381,8 +372,6 @@ static int mchp_core_pwm_get_state(struct pwm_chip *chip, struct pwm_device *pwm
381
372
u16 prescale , period_steps ;
382
373
u8 duty_steps , posedge , negedge ;
383
374
384
- mutex_lock (& mchp_core_pwm -> lock );
385
-
386
375
mchp_core_pwm_wait_for_sync_update (mchp_core_pwm , pwm -> hwpwm );
387
376
388
377
if (mchp_core_pwm -> channel_enabled & (1 << pwm -> hwpwm ))
@@ -415,8 +404,6 @@ static int mchp_core_pwm_get_state(struct pwm_chip *chip, struct pwm_device *pwm
415
404
posedge = readb_relaxed (mchp_core_pwm -> base + MCHPCOREPWM_POSEDGE (pwm -> hwpwm ));
416
405
negedge = readb_relaxed (mchp_core_pwm -> base + MCHPCOREPWM_NEGEDGE (pwm -> hwpwm ));
417
406
418
- mutex_unlock (& mchp_core_pwm -> lock );
419
-
420
407
if (negedge == posedge ) {
421
408
state -> duty_cycle = state -> period ;
422
409
state -> period *= 2 ;
@@ -469,8 +456,6 @@ static int mchp_core_pwm_probe(struct platform_device *pdev)
469
456
& mchp_core_pwm -> sync_update_mask ))
470
457
mchp_core_pwm -> sync_update_mask = 0 ;
471
458
472
- mutex_init (& mchp_core_pwm -> lock );
473
-
474
459
chip -> ops = & mchp_core_pwm_ops ;
475
460
476
461
mchp_core_pwm -> channel_enabled = readb_relaxed (mchp_core_pwm -> base + MCHPCOREPWM_EN (0 ));
0 commit comments