@@ -56,7 +56,7 @@ struct atmel_tcb_pwm_chip {
56
56
struct clk * clk ;
57
57
struct clk * gclk ;
58
58
struct clk * slow_clk ;
59
- struct atmel_tcb_pwm_device * pwms [NPWM ];
59
+ struct atmel_tcb_pwm_device pwms [NPWM ];
60
60
struct atmel_tcb_channel bkup ;
61
61
};
62
62
@@ -72,7 +72,7 @@ static int atmel_tcb_pwm_set_polarity(struct pwm_chip *chip,
72
72
enum pwm_polarity polarity )
73
73
{
74
74
struct atmel_tcb_pwm_chip * tcbpwmc = to_tcb_chip (chip );
75
- struct atmel_tcb_pwm_device * tcbpwm = tcbpwmc -> pwms [pwm -> hwpwm ];
75
+ struct atmel_tcb_pwm_device * tcbpwm = & tcbpwmc -> pwms [pwm -> hwpwm ];
76
76
77
77
tcbpwm -> polarity = polarity ;
78
78
@@ -83,19 +83,13 @@ static int atmel_tcb_pwm_request(struct pwm_chip *chip,
83
83
struct pwm_device * pwm )
84
84
{
85
85
struct atmel_tcb_pwm_chip * tcbpwmc = to_tcb_chip (chip );
86
- struct atmel_tcb_pwm_device * tcbpwm ;
86
+ struct atmel_tcb_pwm_device * tcbpwm = & tcbpwmc -> pwms [ pwm -> hwpwm ] ;
87
87
unsigned cmr ;
88
88
int ret ;
89
89
90
- tcbpwm = devm_kzalloc (chip -> dev , sizeof (* tcbpwm ), GFP_KERNEL );
91
- if (!tcbpwm )
92
- return - ENOMEM ;
93
-
94
90
ret = clk_prepare_enable (tcbpwmc -> clk );
95
- if (ret ) {
96
- devm_kfree (chip -> dev , tcbpwm );
91
+ if (ret )
97
92
return ret ;
98
- }
99
93
100
94
tcbpwm -> polarity = PWM_POLARITY_NORMAL ;
101
95
tcbpwm -> duty = 0 ;
@@ -130,25 +124,20 @@ static int atmel_tcb_pwm_request(struct pwm_chip *chip,
130
124
regmap_write (tcbpwmc -> regmap , ATMEL_TC_REG (tcbpwmc -> channel , CMR ), cmr );
131
125
spin_unlock (& tcbpwmc -> lock );
132
126
133
- tcbpwmc -> pwms [pwm -> hwpwm ] = tcbpwm ;
134
-
135
127
return 0 ;
136
128
}
137
129
138
130
static void atmel_tcb_pwm_free (struct pwm_chip * chip , struct pwm_device * pwm )
139
131
{
140
132
struct atmel_tcb_pwm_chip * tcbpwmc = to_tcb_chip (chip );
141
- struct atmel_tcb_pwm_device * tcbpwm = tcbpwmc -> pwms [pwm -> hwpwm ];
142
133
143
134
clk_disable_unprepare (tcbpwmc -> clk );
144
- tcbpwmc -> pwms [pwm -> hwpwm ] = NULL ;
145
- devm_kfree (chip -> dev , tcbpwm );
146
135
}
147
136
148
137
static void atmel_tcb_pwm_disable (struct pwm_chip * chip , struct pwm_device * pwm )
149
138
{
150
139
struct atmel_tcb_pwm_chip * tcbpwmc = to_tcb_chip (chip );
151
- struct atmel_tcb_pwm_device * tcbpwm = tcbpwmc -> pwms [pwm -> hwpwm ];
140
+ struct atmel_tcb_pwm_device * tcbpwm = & tcbpwmc -> pwms [pwm -> hwpwm ];
152
141
unsigned cmr ;
153
142
enum pwm_polarity polarity = tcbpwm -> polarity ;
154
143
@@ -205,7 +194,7 @@ static void atmel_tcb_pwm_disable(struct pwm_chip *chip, struct pwm_device *pwm)
205
194
static int atmel_tcb_pwm_enable (struct pwm_chip * chip , struct pwm_device * pwm )
206
195
{
207
196
struct atmel_tcb_pwm_chip * tcbpwmc = to_tcb_chip (chip );
208
- struct atmel_tcb_pwm_device * tcbpwm = tcbpwmc -> pwms [pwm -> hwpwm ];
197
+ struct atmel_tcb_pwm_device * tcbpwm = & tcbpwmc -> pwms [pwm -> hwpwm ];
209
198
u32 cmr ;
210
199
enum pwm_polarity polarity = tcbpwm -> polarity ;
211
200
@@ -290,7 +279,7 @@ static int atmel_tcb_pwm_config(struct pwm_chip *chip, struct pwm_device *pwm,
290
279
int duty_ns , int period_ns )
291
280
{
292
281
struct atmel_tcb_pwm_chip * tcbpwmc = to_tcb_chip (chip );
293
- struct atmel_tcb_pwm_device * tcbpwm = tcbpwmc -> pwms [pwm -> hwpwm ];
282
+ struct atmel_tcb_pwm_device * tcbpwm = & tcbpwmc -> pwms [pwm -> hwpwm ];
294
283
struct atmel_tcb_pwm_device * atcbpwm = NULL ;
295
284
int i = 0 ;
296
285
int slowclk = 0 ;
@@ -337,9 +326,9 @@ static int atmel_tcb_pwm_config(struct pwm_chip *chip, struct pwm_device *pwm,
337
326
period = div_u64 (period_ns , min );
338
327
339
328
if (pwm -> hwpwm == 0 )
340
- atcbpwm = tcbpwmc -> pwms [1 ];
329
+ atcbpwm = & tcbpwmc -> pwms [1 ];
341
330
else
342
- atcbpwm = tcbpwmc -> pwms [0 ];
331
+ atcbpwm = & tcbpwmc -> pwms [0 ];
343
332
344
333
/*
345
334
* PWM devices provided by the TCB driver are grouped by 2.
0 commit comments