From d9508b30e096b5cc44a4fdbf2d6b99ca173a43f1 Mon Sep 17 00:00:00 2001 From: David Brownell Date: Sun, 3 Jan 2010 12:59:51 -0800 Subject: [PATCH] JTAG/drivers: amt_jtagaccel fixes + cleanup Build fixes: it failed abysmally with PPDEV enabled. Swapped a build-time error with a FIXME comment in the affected macros. Cleanup: remove "&" before function pointers, and excess indent, for the interface struct declaration. Signed-off-by: David Brownell --- src/jtag/drivers/amt_jtagaccel.c | 57 ++++++++++++++++++++++++-------- 1 file changed, 43 insertions(+), 14 deletions(-) diff --git a/src/jtag/drivers/amt_jtagaccel.c b/src/jtag/drivers/amt_jtagaccel.c index 8ba15838..de7cdcb6 100644 --- a/src/jtag/drivers/amt_jtagaccel.c +++ b/src/jtag/drivers/amt_jtagaccel.c @@ -55,13 +55,41 @@ static int rtck_enabled = 0; #if PARPORT_USE_PPDEV == 1 static int device_handle; -static int addr_mode = IEEE1284_MODE_EPP | IEEE1284_ADDR ; -#define AMT_AW(val) do { ioctl(device_handle, PPSETMODE, &addr_mode); write(device_handle, &val, 1); } while (0) -#define AMT_AR(val) do { ioctl(device_handle, PPSETMODE, &addr_mode); read(device_handle, &val, 1); } while (0) - -static int data_mode = IEEE1284_MODE_EPP | IEEE1284_DATA ; -#define AMT_DW(val) do { ioctl(device_handle, PPSETMODE, &data_mode); write(device_handle, &val, 1); } while (0) -#define AMT_DR(val) do { ioctl(device_handle, PPSETMODE, &data_mode); read(device_handle, &val, 1); } while (0) +static const int addr_mode = IEEE1284_MODE_EPP | IEEE1284_ADDR; + +/* FIXME do something sane when these ioctl/read/write calls fail. */ + +#define AMT_AW(val) \ + do { \ + int __retval; \ + \ + __retval = ioctl(device_handle, PPSETMODE, &addr_mode); \ + __retval = write(device_handle, &val, 1); \ + } while (0) +#define AMT_AR(val) \ + do { \ + int __retval; \ + \ + __retval = ioctl(device_handle, PPSETMODE, &addr_mode); \ + __retval = read(device_handle, &val, 1); \ + } while (0) + +static const int data_mode = IEEE1284_MODE_EPP | IEEE1284_DATA; + +#define AMT_DW(val) \ + do { \ + int __retval; \ + \ + __retval = ioctl(device_handle, PPSETMODE, &data_mode); \ + __retval = write(device_handle, &val, 1); \ + } while (0) +#define AMT_DR(val) \ + do { \ + int __retval; \ + \ + __retval = ioctl(device_handle, PPSETMODE, &data_mode); \ + __retval = read(device_handle, &val, 1); \ + } while (0) #else @@ -559,10 +587,11 @@ static const struct command_registration amtjtagaccel_command_handlers[] = { }; struct jtag_interface amt_jtagaccel_interface = { - .name = "amt_jtagaccel", - .commands = amtjtagaccel_command_handlers, - .init = &amt_jtagaccel_init, - .quit = &amt_jtagaccel_quit, - .speed = &amt_jtagaccel_speed, - .execute_queue = &amt_jtagaccel_execute_queue, - }; + .name = "amt_jtagaccel", + .commands = amtjtagaccel_command_handlers, + + .init = amt_jtagaccel_init, + .quit = amt_jtagaccel_quit, + .speed = amt_jtagaccel_speed, + .execute_queue = amt_jtagaccel_execute_queue, +}; -- 2.39.5