* Some cleanup of some really bad style introduced by myself

* No functional change


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@42412 a95241bf-73f2-0310-859d-f6bbb57e9c96
This commit is contained in:
Alexander von Gluck IV
2011-07-11 20:02:19 +00:00
parent 3fe7883778
commit b8d5c5cec2
@@ -40,9 +40,9 @@ mutex gUSBLock;
// auto-release helper class
class USBSmartLock {
public:
USBSmartLock() { mutex_lock(&gUSBLock); }
~USBSmartLock() { mutex_unlock(&gUSBLock); }
public:
USBSmartLock() { mutex_lock(&gUSBLock); }
~USBSmartLock() { mutex_unlock(&gUSBLock); }
};
@@ -56,38 +56,35 @@ BeceemDevice::ReadRegister(unsigned int reg, size_t size, uint32_t* buffer)
return B_BAD_VALUE;
}
size_t actualLength = 0;
int retries = 0;
status_t result = B_ERROR;
size_t actualLength = 0;
int retries = 0;
status_t result = B_ERROR;
do {
result = gUSBModule->send_request(fDevice,
0xC0 | USB_REQTYPE_ENDPOINT_OUT, 0x02,
(reg & 0xFFFF),
((reg >> 16) & 0xFFFF),
size, buffer,
&actualLength);
retries++ ;
if (-ENODEV == result)
{
TRACE_ALWAYS("Error: Device was removed during USB read\n");
break;
}
result = gUSBModule->send_request(fDevice,
0xC0 | USB_REQTYPE_ENDPOINT_OUT, 0x02,
(reg & 0xFFFF),
((reg >> 16) & 0xFFFF),
size, buffer,
&actualLength);
retries++ ;
if (-ENODEV == result) {
TRACE_ALWAYS("Error: Device was removed during USB read\n");
break;
}
} while (result < 0 && retries < MAX_USB_IO_RETRIES);
if (result < 0) {
TRACE_ALWAYS("Error: USB read request failure."
" Result: %d; Attempt: %d.\n",
result, retries);
" Result: %d; Attempt: %d.\n", result, retries);
return result;
}
if (size != actualLength) {
TRACE_ALWAYS("Error: Size mismatch on USB read request."
" Asked: %d; Got: %d; Attempt: %d.\n",
size, actualLength, retries);
" Asked: %d; Got: %d; Attempt: %d.\n", size, actualLength, retries);
}
return result;
@@ -104,23 +101,22 @@ BeceemDevice::WriteRegister(unsigned int reg, size_t size, uint32_t* buffer)
return B_BAD_VALUE;
}
size_t actualLength = 0;
int retries = 0;
status_t result;
size_t actualLength = 0;
int retries = 0;
status_t result;
do {
result = gUSBModule->send_request(fDevice,
0x40 | USB_REQTYPE_ENDPOINT_OUT, 0x01,
(reg & 0xFFFF),
((reg >> 16) & 0xFFFF),
size, buffer,
&actualLength);
retries++ ;
if (-ENODEV == result)
{
TRACE_ALWAYS("Error: Device was removed during USB write\n");
break;
}
result = gUSBModule->send_request(fDevice,
0x40 | USB_REQTYPE_ENDPOINT_OUT, 0x01,
(reg & 0xFFFF),
((reg >> 16) & 0xFFFF),
size, buffer,
&actualLength);
retries++ ;
if (-ENODEV == result) {
TRACE_ALWAYS("Error: Device was removed during USB write\n");
break;
}
} while (result < 0 && retries < MAX_USB_IO_RETRIES);
@@ -143,36 +139,38 @@ BeceemDevice::WriteRegister(unsigned int reg, size_t size, uint32_t* buffer)
status_t
BeceemDevice::BizarroReadRegister(unsigned int reg, size_t size, uint32_t* buffer)
BeceemDevice::BizarroReadRegister(unsigned int reg, size_t size,
uint32_t* buffer)
{
// NET_TO_HOST long
// Read then flip
status_t Status = ReadRegister(reg, size, buffer);
status_t status = ReadRegister(reg, size, buffer);
convertEndian(false, size, buffer);
return Status;
return status;
}
status_t
BeceemDevice::BizarroWriteRegister(unsigned int reg, size_t size, uint32_t* buffer)
BeceemDevice::BizarroWriteRegister(unsigned int reg, size_t size,
uint32_t* buffer)
{
// HOST_TO_NET long
volatile uint32_t reload = *buffer;
volatile uint32_t reload = *buffer;
convertEndian(true, size, buffer);
status_t Status = WriteRegister(reg, size, buffer);
status_t status = WriteRegister(reg, size, buffer);
// Flip then write
// as we modified the input data, and other things
// outside this function may need it, restore the original val.
*buffer = reload;
return Status;
return status;
}
@@ -195,7 +193,7 @@ BeceemDevice::BeceemDevice(usb_device device, const char *description)
fHasConnection(false)
{
const usb_device_descriptor
*deviceDescriptor = gUSBModule->get_device_descriptor(device);
*deviceDescriptor = gUSBModule->get_device_descriptor(device);
if (deviceDescriptor == NULL) {
TRACE_ALWAYS("Error of getting USB device descriptor.\n");
@@ -299,9 +297,8 @@ BeceemDevice::Open(uint32 flags)
return B_ERROR;
status_t result = StartDevice();
if (result != B_OK) {
if (result != B_OK)
return result;
}
// setup state notifications
result = gUSBModule->queue_interrupt(fNotifyEndpoint, fNotifyBuffer,
@@ -551,9 +548,8 @@ BeceemDevice::Control(uint32 op, void *buffer, size_t length)
void
BeceemDevice::Removed()
{
fHasConnection = false;
pwmxdevice->driverHalt = true;
fHasConnection = false;
pwmxdevice->driverHalt = true;
TRACE("Debug: Pre InsideNotify\n");
@@ -594,37 +590,37 @@ BeceemDevice::IdentifyChipset()
}
switch(pwmxdevice->deviceChipID) {
case T3:
case T3:
TRACE_ALWAYS(
"Info: Identified Beceem T3 baseband chipset (0x%x)\n",
pwmxdevice->deviceChipID);
break;
case T3B:
case T3B:
TRACE_ALWAYS(
"Info: Identified Beceem T3B baseband chipset (0x%x)\n",
pwmxdevice->deviceChipID);
break;
case T3LPB:
case T3LPB:
TRACE_ALWAYS(
"Info: Identified Beceem T3LPB baseband chipset (0x%x)\n",
pwmxdevice->deviceChipID);
break;
case BCS250_BC:
case BCS250_BC:
TRACE_ALWAYS(
"Info: Identified Beceem BC250_BC baseband chipset (0x%x)\n",
pwmxdevice->deviceChipID);
break;
case BCS220_2:
case BCS220_2:
TRACE_ALWAYS(
"Info: Identified Beceem BCS220_2 baseband chipset (0x%x)\n",
pwmxdevice->deviceChipID);
break;
case BCS220_2BC:
case BCS220_2BC:
TRACE_ALWAYS(
"Info: Identified Beceem BCS220_2BC baseband chipset (0x%x)\n",
pwmxdevice->deviceChipID);
break;
case BCS220_3:
case BCS220_3:
TRACE_ALWAYS(
"Info: Identified Beceem BCS220_3 baseband chipset (0x%x)\n",
pwmxdevice->deviceChipID);
@@ -643,9 +639,6 @@ BeceemDevice::IdentifyChipset()
status_t
BeceemDevice::SetupDevice(bool deviceReplugged)
{
unsigned int value = 0;
unsigned long dwReadValue = 0;
pwmxdevice->driverState = STATE_INIT;
// ID the Beceem chipset
@@ -658,15 +651,14 @@ BeceemDevice::SetupDevice(bool deviceReplugged)
if (LoadConfig() != B_OK)
return B_ERROR;
if (pwmxdevice->deviceChipID >= T3LPB)
{
if (pwmxdevice->deviceChipID >= T3LPB) {
unsigned int value = 0;
BizarroReadRegister(SYS_CFG, sizeof(value), &value);
pwmxdevice->syscfgBefFw = value;
if ((value & 0x60)== 0)
{
TRACE("Debug: CPU is FlashBoot\n");
pwmxdevice->CPUFlashBoot = true;
}
pwmxdevice->syscfgBefFw = value;
if ((value & 0x60) == 0) {
TRACE("Debug: CPU is FlashBoot\n");
pwmxdevice->CPUFlashBoot = true;
}
}
// take a quick break to let things settle
@@ -686,7 +678,7 @@ BeceemDevice::SetupDevice(bool deviceReplugged)
return B_ERROR;
} else {
TRACE("Debug: DDR Initialization successful.\n");
pwmxdevice->driverDDRinit = true;
pwmxdevice->driverDDRinit = true;
}
// Push vendor configuration to device
@@ -714,14 +706,13 @@ BeceemDevice::SetupDevice(bool deviceReplugged)
TRACE("Debug: Raw PARAM pointer: 0x%x\n", pwmxdevice->hwParamPtr);
if (pwmxdevice->hwParamPtr < DSD_START_OFFSET ||
pwmxdevice->hwParamPtr > pwmxdevice->nvmDSDSize - DSD_START_OFFSET)
{
if (pwmxdevice->hwParamPtr < DSD_START_OFFSET
|| pwmxdevice->hwParamPtr > pwmxdevice->nvmDSDSize - DSD_START_OFFSET) {
TRACE_ALWAYS("Error: DSD Status checksum mismatch\n");
return B_ERROR;
}
dwReadValue = pwmxdevice->hwParamPtr;
unsigned long dwReadValue = pwmxdevice->hwParamPtr;
// hw paramater pointer
dwReadValue = dwReadValue + DSD_START_OFFSET;
// add DSD start offset
@@ -752,14 +743,14 @@ BeceemDevice::SetupDevice(bool deviceReplugged)
CPURun();
}
ether_address address;
ether_address address;
if (ReadMACFromNVM(&address) != B_OK)
return B_ERROR;
TRACE("MAC address is: %02x:%02x:%02x:%02x:%02x:%02x\n",
address.ebyte[0], address.ebyte[1], address.ebyte[2],
address.ebyte[3], address.ebyte[4], address.ebyte[5]);
address.ebyte[0], address.ebyte[1], address.ebyte[2],
address.ebyte[3], address.ebyte[4], address.ebyte[5]);
if (deviceReplugged) {
// this might be the same device that was replugged - read the
@@ -867,8 +858,8 @@ BeceemDevice::_SetupEndpoints()
}
int notifyEndpoint = -1;
int readEndpoint = -1;
int writeEndpoint = -1;
int readEndpoint = -1;
int writeEndpoint = -1;
for (size_t ep = 0; ep < interface->endpoint_count; ep++) {
usb_endpoint_descriptor *epd = interface->endpoint[ep].descr;
@@ -893,7 +884,7 @@ BeceemDevice::_SetupEndpoints()
} else if ((epd->attributes & USB_ENDPOINT_ATTR_MASK)
== USB_ENDPOINT_ATTR_ISOCHRONOUS) {
// Isochronous endpoint
// TODO : do we need the Isochronous USB endpoints this device provides?
// TODO : do we need the Isochronous USB endpoints?
// http://www.beyondlogic.org/usbnutshell/usb4.shtml#Isochronous
} else {
// Strange...
@@ -911,13 +902,13 @@ BeceemDevice::_SetupEndpoints()
}
TRACE("Debug: USB Endpoints configured: notify %d; read %d; write %d\n",
notifyEndpoint, readEndpoint, writeEndpoint);
notifyEndpoint, readEndpoint, writeEndpoint);
gUSBModule->set_configuration(fDevice, config);
fNotifyEndpoint = interface->endpoint[notifyEndpoint].handle;
fReadEndpoint = interface->endpoint[readEndpoint ].handle;
fWriteEndpoint = interface->endpoint[writeEndpoint ].handle;
fReadEndpoint = interface->endpoint[readEndpoint].handle;
fWriteEndpoint = interface->endpoint[writeEndpoint].handle;
return B_OK;
}
@@ -1014,39 +1005,35 @@ BeceemDevice::StartDevice()
status_t
BeceemDevice::LoadConfig()
{
size_t file_size = 0;
unsigned int* buffer = 0;
struct stat cfgStat;
int dtaread = 0;
int dtaread = 0;
int fh = open(FIRM_CFG, O_RDONLY);
struct stat cfgStat;
if (fh == B_ERROR || fstat(fh, &cfgStat) < 0) {
TRACE_ALWAYS("Error: Unable to open the configuration at %s\n", FIRM_CFG);
return fh;
}
file_size = cfgStat.st_size;
size_t file_size = cfgStat.st_size;
buffer=(unsigned int*)malloc(MAX_USB_TRANSFER);
unsigned int* buffer = (unsigned int*)malloc(MAX_USB_TRANSFER);
if (!buffer) {
TRACE_ALWAYS("Error: Memory allocation error.\n");
return B_ERROR;
}
dtaread = read(fh , buffer, MAX_USB_TRANSFER);
dtaread = read(fh, buffer, MAX_USB_TRANSFER);
if (dtaread < 0)
{
if (dtaread < 0) {
TRACE_ALWAYS("Error: Error reading from vendor configuration.\n");
close(fh);
free(buffer);
return B_ERROR;
}
if (file_size != sizeof(VENDORCFG))
{
if (file_size != sizeof(VENDORCFG)) {
TRACE_ALWAYS("Error: Size mismatch in vendor configuration struct!\n");
close(fh);
free(buffer);
@@ -1127,43 +1114,38 @@ BeceemDevice::DumpConfig()
status_t
BeceemDevice::PushConfig(unsigned int loc)
{
size_t file_size = 0;
unsigned int* buffer = 0;
struct stat cfgStat;
status_t result;
int chipwriteloc = 0;
int readposition = 0;
int fh = open(FIRM_CFG, O_RDONLY);
struct stat cfgStat;
if (fh == B_ERROR || fstat(fh, &cfgStat) < 0) {
TRACE_ALWAYS("Error: Unable to open the configuration at %s\n", FIRM_CFG);
TRACE_ALWAYS("Error: Unable to open the configuration at %s\n",
FIRM_CFG);
return fh;
}
file_size = cfgStat.st_size;
size_t file_size = cfgStat.st_size;
TRACE_ALWAYS("Info: Vendor configuration to be pushed to 0x%x on device.\n",
loc);
buffer=(unsigned int*)malloc(MAX_USB_TRANSFER);
unsigned int* buffer = (unsigned int*)malloc(MAX_USB_TRANSFER);
if (!buffer) {
TRACE_ALWAYS("Error: Memory allocation error.\n");
return B_ERROR;
}
int chipwriteloc = 0;
int readposition = 0;
status_t result;
// We have to spoon feed the data to the usb device as it is probbably too
// much to be written in one go.
while (1)
{
readposition = read(fh , buffer, MAX_USB_TRANSFER);
while (1) {
readposition = read(fh, buffer, MAX_USB_TRANSFER);
if (readposition <= 0)
{
if (readposition < 0)
{
if (readposition <= 0) {
if (readposition < 0) {
TRACE_ALWAYS("Error: Error reading firmware.\n");
result = B_ERROR;
} else {
@@ -1179,23 +1161,22 @@ BeceemDevice::PushConfig(unsigned int loc)
// As readposition should always be less then MAX_USB_TRANSFER
// and we have checked the validity of read's output above.
if (WriteRegister(loc + chipwriteloc, readposition, buffer) != B_OK)
{
if (WriteRegister(loc + chipwriteloc, readposition, buffer) != B_OK) {
TRACE_ALWAYS("Write failure\n");
result = B_ERROR;
break;
}
// +1 as we don't want to write the same sector twice
chipwriteloc += (MAX_USB_TRANSFER+1);
chipwriteloc += MAX_USB_TRANSFER + 1;
}
close(fh);
free(buffer);
if (result < 0)
{
TRACE_ALWAYS("Error: Push of vendor configuration failed :%d\n", result);
if (result < 0) {
TRACE_ALWAYS("Error: Push of vendor configuration failed: %d\n",
result);
return B_ERROR;
} else {
TRACE_ALWAYS("Info: Push of vendor configuration was successful.\n");
@@ -1207,16 +1188,9 @@ BeceemDevice::PushConfig(unsigned int loc)
status_t
BeceemDevice::PushFirmware(unsigned int loc)
{
size_t file_size = 0;
int chipwriteloc = 0;
int readposition = 0;
unsigned int* buffer = 0;
struct stat firmStat;
status_t result;
int fh = open(FIRM_BIN, O_RDONLY);
struct stat firmStat;
if (fh == B_ERROR || fstat(fh, &firmStat) < 0) {
TRACE_ALWAYS("Error: Unable to open the firmware at %s\n", FIRM_BIN);
return fh;
@@ -1226,36 +1200,37 @@ BeceemDevice::PushFirmware(unsigned int loc)
// The size of the firmware can very slightly
// CLEAR 1900 Beceem firmware is 2018596
// Sprint 1901 Beceem firmware is 2028080
file_size = firmStat.st_size;
size_t file_size = firmStat.st_size;
TRACE_ALWAYS("Info: %ld byte firmware to be pushed to 0x%x on device.\n",
file_size, loc);
// For the push we load the file into the buffer
buffer=(unsigned int*)malloc(MAX_USB_TRANSFER);
unsigned int* buffer = (unsigned int*)malloc(MAX_USB_TRANSFER);
if (!buffer) {
TRACE_ALWAYS("Error: Memory allocation error.\n");
return B_ERROR;
}
// TODO : Firmware Download : investigate this, SHADOW clearing thing causes a KDL atm
// TODO : Firmware Download : investigate this, SHADOW clearing causes a KDL
#if 0
// Clear the NVM SHADOW signature always before fw download.
WriteRegister(EEPROM_CAL_DATA_INTERNAL_LOC-4, 1, 0);
WriteRegister(EEPROM_CAL_DATA_INTERNAL_LOC-8, 1, 0);
#endif
int chipwriteloc = 0;
int readposition = 0;
status_t result;
// We have to spoon feed the data to the usb device as it is probbably too
// much to be written in one go.
while (1)
{
readposition = read(fh , buffer, MAX_USB_TRANSFER);
while (1) {
readposition = read(fh, buffer, MAX_USB_TRANSFER);
if (readposition <= 0)
{
if (readposition < 0)
{
if (readposition <= 0) {
if (readposition < 0) {
TRACE_ALWAYS("Error: Error reading firmware.\n");
result = B_ERROR;
} else {
@@ -1271,22 +1246,20 @@ BeceemDevice::PushFirmware(unsigned int loc)
// As readposition should always be less then MAX_USB_TRANSFER
// and we have checked the validity of read's output above.
if (WriteRegister(loc + chipwriteloc, readposition, buffer) != B_OK)
{
if (WriteRegister(loc + chipwriteloc, readposition, buffer) != B_OK) {
TRACE_ALWAYS("Write failure\n");
result = B_ERROR;
break;
}
// +1 as we don't want to write the same sector twice
chipwriteloc += (MAX_USB_TRANSFER+1);
chipwriteloc += MAX_USB_TRANSFER + 1;
}
free(buffer);
close(fh);
if (result != B_OK)
{
if (result != B_OK) {
TRACE_ALWAYS("Error: Push of firmware to device failed :%d\n",
result);
return B_ERROR;
@@ -1323,13 +1296,13 @@ BeceemDevice::GetLinkState(ether_link_state *linkState)
linkState->media = IFM_ETHER | IFM_100_TX;
if (fHasConnection == false) {
linkState->quality = 0;
linkState->speed = 100000000;
linkState->quality = 0;
linkState->speed = 100000000;
} else {
linkState->quality = 1.0;
linkState->media |= IFM_ACTIVE;
linkState->quality = 1.0;
linkState->media |= IFM_ACTIVE;
// 40Mbits is the maximum theoretical speed for a 802.16e connection.
linkState->speed = 100000000;
linkState->speed = 100000000;
}
return B_OK;