From 56d4690860ec6cd05ef3c746e42bee3be623292f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?J=C3=A9r=C3=B4me=20Duval?= Date: Sun, 24 May 2009 23:15:04 +0000 Subject: [PATCH] wakeup() means wake any waiting threads, so we use the relevant flags. this gives a reliable dv receive stream here. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@30849 a95241bf-73f2-0310-859d-f6bbb57e9c96 --- headers/private/firewire/fwglue.h | 2 ++ src/add-ons/kernel/bus_managers/firewire/fwohci.c | 6 ++---- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/headers/private/firewire/fwglue.h b/headers/private/firewire/fwglue.h index ee6c2bdb38..c26f4ed87c 100644 --- a/headers/private/firewire/fwglue.h +++ b/headers/private/firewire/fwglue.h @@ -38,6 +38,8 @@ typedef uint32_t bus_size_t; #define mtx_destroy mutex_destroy #define mtx_init(lockaddr, name, type, opts) mutex_init(lockaddr, name) +#define wakeup(i) release_sem_etc(i->Sem, 0, B_RELEASE_IF_WAITING_ONLY | B_RELEASE_ALL) + #define splfw() 0 #define splx(s) diff --git a/src/add-ons/kernel/bus_managers/firewire/fwohci.c b/src/add-ons/kernel/bus_managers/firewire/fwohci.c index 4201423a31..4120609688 100644 --- a/src/add-ons/kernel/bus_managers/firewire/fwohci.c +++ b/src/add-ons/kernel/bus_managers/firewire/fwohci.c @@ -2209,8 +2209,7 @@ fwohci_tbuf_update(struct fwohci_softc *sc, int dmach) FW_GUNLOCK(fc); splx(s); if (w) -// wakeup(it); - release_sem(it->Sem); + wakeup(it); } static void @@ -2275,8 +2274,7 @@ fwohci_rbuf_update(struct fwohci_softc *sc, int dmach) if (ir->flag & FWXFERQ_HANDLER) ir->hand(ir); else -// wakeup(ir); - release_sem(ir->Sem); + wakeup(ir); } void