From 4d81a7b6016bd691179ca5a1d4fc6c44b9b6410b Mon Sep 17 00:00:00 2001 From: Siarzhuk Zharski Date: Thu, 15 Oct 2009 19:11:38 +0000 Subject: [PATCH] -add broadcast flag to Rx Control register during start of device. This solves the "1200-seconds paradox" sorced by ignoring the "arp who-has" requests send as broadcasts. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@33603 a95241bf-73f2-0310-859d-f6bbb57e9c96 --- src/add-ons/kernel/drivers/network/usb_asix/AX88172Device.cpp | 3 ++- src/add-ons/kernel/drivers/network/usb_asix/AX88178Device.cpp | 2 +- src/add-ons/kernel/drivers/network/usb_asix/AX88772Device.cpp | 2 +- 3 files changed, 4 insertions(+), 3 deletions(-) diff --git a/src/add-ons/kernel/drivers/network/usb_asix/AX88172Device.cpp b/src/add-ons/kernel/drivers/network/usb_asix/AX88172Device.cpp index e16f4b0bcf..28beb9a984 100644 --- a/src/add-ons/kernel/drivers/network/usb_asix/AX88172Device.cpp +++ b/src/add-ons/kernel/drivers/network/usb_asix/AX88172Device.cpp @@ -177,7 +177,8 @@ AX88172Device::StartDevice() } } - uint16 rxcontrol = RXCTL_START | RXCTL_MULTICAST | RXCTL_UNICAST; + uint16 rxcontrol = RXCTL_START | RXCTL_MULTICAST + | RXCTL_UNICAST | RXCTL_BROADCAST; status_t result = WriteRXControlRegister(rxcontrol); if(result != B_OK) { TRACE_ALWAYS("Error of writing %#04x RX Control:%#010x\n", rxcontrol, result); diff --git a/src/add-ons/kernel/drivers/network/usb_asix/AX88178Device.cpp b/src/add-ons/kernel/drivers/network/usb_asix/AX88178Device.cpp index 27e95f64ef..c94ac5d5b0 100644 --- a/src/add-ons/kernel/drivers/network/usb_asix/AX88178Device.cpp +++ b/src/add-ons/kernel/drivers/network/usb_asix/AX88178Device.cpp @@ -317,7 +317,7 @@ AX88178Device::StartDevice() "%d bytes of %d written.\n", actualLength, sizeof(fIPG)); } - uint16 rxcontrol = RXCTL_START | RXCTL_MULTICAST; + uint16 rxcontrol = RXCTL_START | RXCTL_MULTICAST | RXCTL_BROADCAST; result = WriteRXControlRegister(rxcontrol); if(result != B_OK) { TRACE_ALWAYS("Error of writing %#04x RX Control:%#010x\n", rxcontrol, result); diff --git a/src/add-ons/kernel/drivers/network/usb_asix/AX88772Device.cpp b/src/add-ons/kernel/drivers/network/usb_asix/AX88772Device.cpp index 9cfb5af2f3..5bcba7f7bd 100644 --- a/src/add-ons/kernel/drivers/network/usb_asix/AX88772Device.cpp +++ b/src/add-ons/kernel/drivers/network/usb_asix/AX88772Device.cpp @@ -294,7 +294,7 @@ AX88772Device::StartDevice() "%d bytes of %d written.\n", actualLength, sizeof(fIPG)); } - uint16 rxcontrol = RXCTL_START | RXCTL_MULTICAST; + uint16 rxcontrol = RXCTL_START | RXCTL_MULTICAST | RXCTL_BROADCAST; result = WriteRXControlRegister(rxcontrol); if(result != B_OK) { TRACE_ALWAYS("Error of writing %#04x RX Control:%#010x\n", rxcontrol, result);