@@ -82,11 +82,11 @@ int pwm_set_frequency(const char *key, float freq) {
8282 unsigned long period_ns ;
8383 struct pwm_exp * pwm ;
8484
85- if (freq <= 0.0 )
85+ if (freq <= 0.0 ) {
8686 return -1 ;
87+ }
8788
8889 pwm = lookup_exported_pwm (key );
89-
9090 if (pwm == NULL ) {
9191 return -1 ;
9292 }
@@ -97,7 +97,9 @@ int pwm_set_frequency(const char *key, float freq) {
9797 pwm -> period_ns = period_ns ;
9898
9999 len = snprintf (buffer , sizeof (buffer ), "%lu" , period_ns );
100- write (pwm -> period_fd , buffer , len );
100+ if (write (pwm -> period_fd , buffer , len ) < 0 ) {
101+ return -1 ;
102+ }
101103 }
102104
103105 return 1 ;
@@ -109,13 +111,14 @@ int pwm_set_polarity(const char *key, int polarity) {
109111 struct pwm_exp * pwm ;
110112
111113 pwm = lookup_exported_pwm (key );
112-
113114 if (pwm == NULL ) {
114115 return -1 ;
115116 }
116117
117118 len = snprintf (buffer , sizeof (buffer ), "%d" , polarity );
118- write (pwm -> polarity_fd , buffer , len );
119+ if (write (pwm -> polarity_fd , buffer , len ) < 0 ) {
120+ return -1 ;
121+ }
119122
120123 return 0 ;
121124}
@@ -125,19 +128,21 @@ int pwm_set_duty_cycle(const char *key, float duty) {
125128 char buffer [20 ];
126129 struct pwm_exp * pwm ;
127130
128- if (duty < 0.0 || duty > 100.0 )
131+ if (duty < 0.0 || duty > 100.0 ) {
129132 return -1 ;
133+ }
130134
131135 pwm = lookup_exported_pwm (key );
132-
133136 if (pwm == NULL ) {
134137 return -1 ;
135138 }
136139
137140 pwm -> duty = (unsigned long )(pwm -> period_ns * (duty / 100.0 ));
138141
139142 len = snprintf (buffer , sizeof (buffer ), "%lu" , pwm -> duty );
140- write (pwm -> duty_fd , buffer , len );
143+ if (write (pwm -> duty_fd , buffer , len ) < 0 ) {
144+ return -1 ;
145+ }
141146
142147 return 0 ;
143148}
@@ -158,7 +163,6 @@ int pwm_start(const char *key, float duty, float freq, int polarity)
158163 }
159164
160165 snprintf (fragment , sizeof (fragment ), "bone_pwm_%s" , key );
161-
162166
163167 if (!load_device_tree (fragment )) {
164168 //error enabling pin for pwm
@@ -176,10 +180,10 @@ int pwm_start(const char *key, float duty, float freq, int polarity)
176180 snprintf (duty_path , sizeof (duty_path ), "%s/duty" , pwm_test_path );
177181 snprintf (polarity_path , sizeof (polarity_path ), "%s/polarity" , pwm_test_path );
178182
179- //add period and duty fd to pwm list
180- if ((period_fd = open (period_path , O_RDWR )) < 0 )
183+ //add period and duty fd to pwm list
184+ if ((period_fd = open (period_path , O_RDWR )) < 0 ) {
181185 return -1 ;
182-
186+ }
183187
184188 if ((duty_fd = open (duty_path , O_RDWR )) < 0 ) {
185189 //error, close already opened period_fd.
0 commit comments