improved debug output

remove some warnings


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@16383 a95241bf-73f2-0310-859d-f6bbb57e9c96
This commit is contained in:
Marcus Overhagen
2006-02-13 18:47:01 +00:00
parent edb9601e2c
commit 4730cb7663
5 changed files with 53 additions and 33 deletions
@@ -25,21 +25,21 @@ bool gMultiplexingActive = false;
sem_id gControllerSem; sem_id gControllerSem;
inline uint8 uint8
ps2_read_ctrl() ps2_read_ctrl(void)
{ {
return gIsa->read_io_8(PS2_PORT_CTRL); return gIsa->read_io_8(PS2_PORT_CTRL);
} }
inline uint8 uint8
ps2_read_data() ps2_read_data(void)
{ {
return gIsa->read_io_8(PS2_PORT_DATA); return gIsa->read_io_8(PS2_PORT_DATA);
} }
inline void void
ps2_write_ctrl(uint8 ctrl) ps2_write_ctrl(uint8 ctrl)
{ {
TRACE(("ps2_write_ctrl 0x%02x\n", ctrl)); TRACE(("ps2_write_ctrl 0x%02x\n", ctrl));
@@ -48,7 +48,7 @@ ps2_write_ctrl(uint8 ctrl)
} }
inline void void
ps2_write_data(uint8 data) ps2_write_data(uint8 data)
{ {
TRACE(("ps2_write_data 0x%02x\n", data)); TRACE(("ps2_write_data 0x%02x\n", data));
@@ -58,7 +58,7 @@ ps2_write_data(uint8 data)
status_t status_t
ps2_wait_read() ps2_wait_read(void)
{ {
int i; int i;
for (i = 0; i < PS2_CTRL_WAIT_TIMEOUT / 50; i++) { for (i = 0; i < PS2_CTRL_WAIT_TIMEOUT / 50; i++) {
@@ -71,7 +71,7 @@ ps2_wait_read()
status_t status_t
ps2_wait_write() ps2_wait_write(void)
{ {
int i; int i;
for (i = 0; i < PS2_CTRL_WAIT_TIMEOUT / 50; i++) { for (i = 0; i < PS2_CTRL_WAIT_TIMEOUT / 50; i++) {
@@ -86,7 +86,7 @@ ps2_wait_write()
// #pragma mark - // #pragma mark -
void void
ps2_flush() ps2_flush(void)
{ {
int i; int i;
@@ -100,7 +100,7 @@ ps2_flush()
if (!(ctrl & PS2_STATUS_OUTPUT_BUFFER_FULL)) if (!(ctrl & PS2_STATUS_OUTPUT_BUFFER_FULL))
return; return;
data = ps2_read_data(); data = ps2_read_data();
TRACE(("ps2_flush: ctrl 0x%02x, data 0x%02x (%s)\n", ctrl, data, (ctrl & PS2_STATUS_AUX_DATA) ? "aux" : "keyb")); dprintf("ps2: ps2_flush: ctrl 0x%02x, data 0x%02x (%s)\n", ctrl, data, (ctrl & PS2_STATUS_AUX_DATA) ? "aux" : "keyb");
snooze(100); snooze(100);
} }
@@ -118,6 +118,10 @@ ps2_command(uint8 cmd, const uint8 *out, int out_count, uint8 *in, int in_count)
acquire_sem(gControllerSem); acquire_sem(gControllerSem);
atomic_add(&sIgnoreInterrupts, 1); atomic_add(&sIgnoreInterrupts, 1);
dprintf("ps2: ps2_command cmd 0x%02x, out %d, in %d\n", cmd, out_count, in_count);
for (i = 0; i < out_count; i++)
dprintf("ps2: ps2_command out 0x%02x", out[i]);
res = ps2_wait_write(); res = ps2_wait_write();
if (res == B_OK) if (res == B_OK)
ps2_write_ctrl(cmd); ps2_write_ctrl(cmd);
@@ -126,14 +130,22 @@ ps2_command(uint8 cmd, const uint8 *out, int out_count, uint8 *in, int in_count)
res = ps2_wait_write(); res = ps2_wait_write();
if (res == B_OK) if (res == B_OK)
ps2_write_data(out[i]); ps2_write_data(out[i]);
else
dprintf("ps2: ps2_command out byte %d failed\n", i);
} }
for (i = 0; res == B_OK && i < in_count; i++) { for (i = 0; res == B_OK && i < in_count; i++) {
res = ps2_wait_read(); res = ps2_wait_read();
if (res == B_OK) if (res == B_OK)
in[i] = ps2_read_data(); in[i] = ps2_read_data();
else
dprintf("ps2: ps2_command in byte %d failed\n", i);
} }
for (i = 0; i < in_count; i++)
dprintf("ps2: ps2_command in 0x%02x", in[i]);
dprintf("ps2: ps2_command result 0x%08lx\n", res);
atomic_add(&sIgnoreInterrupts, -1); atomic_add(&sIgnoreInterrupts, -1);
release_sem(gControllerSem); release_sem(gControllerSem);
@@ -44,10 +44,14 @@ extern sem_id gControllerSem;
status_t ps2_init(void); status_t ps2_init(void);
void ps2_uninit(void); void ps2_uninit(void);
extern status_t ps2_wait_read(); uint8 ps2_read_ctrl(void);
extern status_t ps2_wait_write(); uint8 ps2_read_data(void);
void ps2_write_ctrl(uint8 ctrl);
void ps2_write_data(uint8 data);
status_t ps2_wait_read(void);
status_t ps2_wait_write(void);
extern void ps2_flush(); void ps2_flush(void);
extern status_t ps2_command(uint8 cmd, const uint8 *out, int out_count, uint8 *in, int in_count); extern status_t ps2_command(uint8 cmd, const uint8 *out, int out_count, uint8 *in, int in_count);
+18 -15
View File
@@ -68,7 +68,7 @@ ps2_dev_publish(ps2_dev *dev)
status = devfs_publish_device(dev->name, NULL, status = devfs_publish_device(dev->name, NULL,
(atomic_get(&dev->flags) & PS2_FLAG_KEYB) ? &gKeyboardDeviceHooks : &gMouseDeviceHooks); (atomic_get(&dev->flags) & PS2_FLAG_KEYB) ? &gKeyboardDeviceHooks : &gMouseDeviceHooks);
TRACE(("devfs_publish_device %s, status = 0x%08x\n", dev->name, status)); dprintf("ps2: devfs_publish_device %s, status = 0x%08lx\n", dev->name, status);
} }
@@ -151,14 +151,16 @@ ps2_dev_command(ps2_dev *dev, uint8 cmd, const uint8 *out, int out_count, uint8
{ {
status_t res; status_t res;
bigtime_t start; bigtime_t start;
int i, count;
int32 sem_count; int32 sem_count;
int i;
dprintf("ps2_dev_command %02x, %d out, in %d, dev %s\n", cmd, out_count, in_count, dev->name); dprintf("ps2: ps2_dev_command cmd 0x%02x, out %d, in %d, dev %s\n", cmd, out_count, in_count, dev->name);
for (i = 0; i < out_count; i++)
dprintf("ps2: ps2_dev_command out 0x%02x", out[i]);
res = get_sem_count(dev->result_sem, &sem_count); res = get_sem_count(dev->result_sem, &sem_count);
if (res == B_OK && sem_count != 0) { if (res == B_OK && sem_count != 0) {
dprintf("ps2_dev_command: sem_count %ld, fixing!\n", sem_count); dprintf("ps2: ps2_dev_command: sem_count %ld, fixing!\n", sem_count);
if (sem_count > 0) if (sem_count > 0)
acquire_sem_etc(dev->result_sem, sem_count, 0, 0); acquire_sem_etc(dev->result_sem, sem_count, 0, 0);
else else
@@ -200,17 +202,17 @@ ps2_dev_command(ps2_dev *dev, uint8 cmd, const uint8 *out, int out_count, uint8
start = system_time(); start = system_time();
res = acquire_sem_etc(dev->result_sem, 1, B_RELATIVE_TIMEOUT, 4000000); res = acquire_sem_etc(dev->result_sem, 1, B_RELATIVE_TIMEOUT, 4000000);
dprintf("ps2_dev_command wait for ack res %08x, wait-time %Ld\n", res, system_time() - start); dprintf("ps2: ps2_dev_command wait for ack res 0x%08lx, wait-time %Ld\n", res, system_time() - start);
if (res != B_OK) if (res != B_OK)
break; break;
if (atomic_get(&dev->flags) & PS2_FLAG_ACK) { if (atomic_get(&dev->flags) & PS2_FLAG_ACK) {
dprintf("ps2_dev_command got ACK\n"); dprintf("ps2: ps2_dev_command got ACK\n");
} }
if (atomic_get(&dev->flags) & PS2_FLAG_NACK) { if (atomic_get(&dev->flags) & PS2_FLAG_NACK) {
dprintf("ps2_dev_command got NACK\n"); dprintf("ps2: ps2_dev_command got NACK\n");
res = B_ERROR; res = B_ERROR;
break; break;
} }
@@ -218,20 +220,21 @@ ps2_dev_command(ps2_dev *dev, uint8 cmd, const uint8 *out, int out_count, uint8
} }
if (res == B_OK && in_count != 0) { if (res == B_OK && in_count != 0) {
dprintf("ps2_dev_command waiting input data\n");
start = system_time(); start = system_time();
res = acquire_sem_etc(dev->result_sem, 1, B_RELATIVE_TIMEOUT, 4000000); res = acquire_sem_etc(dev->result_sem, 1, B_RELATIVE_TIMEOUT, 4000000);
dprintf("ps2: ps2_dev_command wait for input res 0x%08lx, wait-time %Ld\n", res, system_time() - start);
count = in_count - dev->result_buf_cnt; if (dev->result_buf_cnt != 0) {
dprintf("ps2: ps2_dev_command error: %d input bytes not received\n", dev->result_buf_cnt);
dev->result_buf_cnt = 0; dev->result_buf_cnt = 0;
dprintf("ps2_dev_command wait for input res %08x, in %d, wait-time %Ld\n", res, count, system_time() - start);
for (i = 0; i < count; i++)
dprintf("ps2_dev_command data %02x\n", in[i]);
} }
for (i = 0; i < in_count; i++)
dprintf("ps2: ps2_dev_command in 0x%02x\n", in[i]);
}
dprintf("ps2: ps2_dev_command result 0x%08lx\n", res);
atomic_and(&dev->flags, ~PS2_FLAG_CMD); atomic_and(&dev->flags, ~PS2_FLAG_CMD);
return res; return res;
@@ -215,7 +215,7 @@ keyboard_open(const char *name, uint32 flags, void **_cookie)
{ {
status_t status; status_t status;
TRACE(("keyboard open()\n")); dprintf("ps2: keyboard_open\n");
if (atomic_or(&sKeyboardOpenMask, 1) != 0) if (atomic_or(&sKeyboardOpenMask, 1) != 0)
return B_BUSY; return B_BUSY;
@@ -242,7 +242,7 @@ keyboard_open(const char *name, uint32 flags, void **_cookie)
*_cookie = NULL; *_cookie = NULL;
TRACE(("keyboard_open(): done.\n")); dprintf("ps2: keyboard_open success\n");
return B_OK; return B_OK;
err4: err4:
@@ -253,6 +253,7 @@ err2:
err1: err1:
atomic_and(&sKeyboardOpenMask, 0); atomic_and(&sKeyboardOpenMask, 0);
dprintf("ps2: keyboard_open failed\n");
return status; return status;
} }
@@ -130,7 +130,7 @@ ps2_service_thread(void *arg)
// do periodic processing // do periodic processing
} else { } else {
dprintf("ps2_service_thread: Error, status 0x%08x, terminating\n", status); dprintf("ps2_service_thread: Error, status 0x%08lx, terminating\n", status);
break; break;
} }
} }