Commit c22f03e3 authored by Miguel Gómez Sexto's avatar Miguel Gómez Sexto

library fixes

Signed-off-by: Miguel Gómez Sexto's avatarMiguel Gomez <magomez@igalia.com>
parent 72bcf3bb
...@@ -301,12 +301,9 @@ static int __tdc_chan_to_decimal(int chan) ...@@ -301,12 +301,9 @@ static int __tdc_chan_to_decimal(int chan)
static int __tdc_valid_channel(struct tdc_board *b, int chan) static int __tdc_valid_channel(struct tdc_board *b, int chan)
{ {
int chan_dec; if (chan < 0 || chan > 4) {
chan_dec = __tdc_chan_to_decimal(chan);
if (chan_dec < 0 || chan_dec > 4) {
fprintf(stderr, "%s: Invalid channel: %i\n", fprintf(stderr, "%s: Invalid channel: %i\n",
__func__, chan_dec); __func__, chan);
errno = EINVAL; errno = EINVAL;
return 0; return 0;
} }
...@@ -318,9 +315,9 @@ static int __tdc_valid_channel(struct tdc_board *b, int chan) ...@@ -318,9 +315,9 @@ static int __tdc_valid_channel(struct tdc_board *b, int chan)
return 0; return 0;
} }
if (!(b->chan_config & chan)) { if (!(b->chan_config & (1 << chan))) {
fprintf(stderr, "%s: Channel not enabled: %i\n", fprintf(stderr, "%s: Channel not enabled: %i\n",
__func__, chan_dec); __func__, chan);
errno = EINVAL; errno = EINVAL;
return 0; return 0;
} }
...@@ -331,17 +328,14 @@ static int __tdc_valid_channel(struct tdc_board *b, int chan) ...@@ -331,17 +328,14 @@ static int __tdc_valid_channel(struct tdc_board *b, int chan)
static int __tdc_open_file(struct tdc_board *b, int chan) static int __tdc_open_file(struct tdc_board *b, int chan)
{ {
char fname[128]; char fname[128];
int chan_dec; sprintf(fname, "%s-%i-0-ctrl", b->devbase, chan);
chan_dec = __tdc_chan_to_decimal(chan);
sprintf(fname, "%s-%i-0-ctrl", b->devbase, chan_dec);
/* open file */ /* open file */
if (b->ctrl[chan_dec] <= 0) { if (b->ctrl[chan] <= 0) {
b->ctrl[chan_dec] = open(fname, O_RDONLY | O_NONBLOCK); b->ctrl[chan] = open(fname, O_RDONLY | O_NONBLOCK);
} }
if (b->ctrl[chan_dec] < 0) if (b->ctrl[chan] < 0)
fprintf(stderr, "%s: Error opening file: %s\n", fprintf(stderr, "%s: Error opening file: %s\n",
__func__, fname); __func__, fname);
...@@ -351,20 +345,17 @@ static int __tdc_open_file(struct tdc_board *b, int chan) ...@@ -351,20 +345,17 @@ static int __tdc_open_file(struct tdc_board *b, int chan)
static int __tdc_close_file(struct tdc_board *b, int chan) static int __tdc_close_file(struct tdc_board *b, int chan)
{ {
int ret; int ret;
int chan_dec;
chan_dec = __tdc_chan_to_decimal(chan); ret = close(b->ctrl[chan]);
ret = close(b->ctrl[chan_dec]);
if (ret) { if (ret) {
char fname[128]; char fname[128];
sprintf(fname, "%s-%i-0-ctrl", b->devbase, chan_dec); sprintf(fname, "%s-%i-0-ctrl", b->devbase, chan);
fprintf(stderr, "%s: Error closing file: %s\n", fprintf(stderr, "%s: Error closing file: %s\n",
__func__, fname); __func__, fname);
return -1; return -1;
} }
b->ctrl[chan_dec] = -1; b->ctrl[chan] = -1;
return 0; return 0;
} }
...@@ -375,11 +366,14 @@ int tdc_read(struct tdc_board *b, int chan, struct tdc_time *t, ...@@ -375,11 +366,14 @@ int tdc_read(struct tdc_board *b, int chan, struct tdc_time *t,
int fd, i, j; int fd, i, j;
fd_set set; fd_set set;
int ret = 0; int ret = 0;
int chan_dec;
if (!__tdc_valid_channel(b, chan)) chan_dec = __tdc_chan_to_decimal(chan);
if (!__tdc_valid_channel(b, chan_dec))
return -1; return -1;
fd = __tdc_open_file(b, chan); fd = __tdc_open_file(b, chan_dec);
if (fd < 0) if (fd < 0)
return -1; return -1;
...@@ -394,6 +388,7 @@ int tdc_read(struct tdc_board *b, int chan, struct tdc_time *t, ...@@ -394,6 +388,7 @@ int tdc_read(struct tdc_board *b, int chan, struct tdc_time *t,
t[i].da_capo = ctrl.flags; t[i].da_capo = ctrl.flags;
i++; i++;
ret = i;
continue; continue;
} }
...@@ -427,6 +422,6 @@ int tdc_read(struct tdc_board *b, int chan, struct tdc_time *t, ...@@ -427,6 +422,6 @@ int tdc_read(struct tdc_board *b, int chan, struct tdc_time *t,
} }
} }
__tdc_close_file(b, chan); __tdc_close_file(b, chan_dec);
return ret; return ret;
} }
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment