aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMarek Belisko <marek.belisko@open-nandra.com>2011-03-10 05:51:34 -0500
committerGreg Kroah-Hartman <gregkh@suse.de>2011-03-14 14:51:21 -0400
commitfc796a6502de4c146bf3893390cca43df2d0e539 (patch)
treedcab0196684ad069772ca097a093674d02f84233
parent8b2dab1cf8dec78aecaf1b4cf65fb316562699ca (diff)
staging: ft1000: Fix coding style in ft1000_dsp_prov function.
Signed-off-by: Marek Belisko <marek.belisko@open-nandra.com> Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
-rw-r--r--drivers/staging/ft1000/ft1000-usb/ft1000_hw.c141
1 files changed, 73 insertions, 68 deletions
diff --git a/drivers/staging/ft1000/ft1000-usb/ft1000_hw.c b/drivers/staging/ft1000/ft1000-usb/ft1000_hw.c
index f1b4ce15daa..01877581a57 100644
--- a/drivers/staging/ft1000/ft1000-usb/ft1000_hw.c
+++ b/drivers/staging/ft1000/ft1000-usb/ft1000_hw.c
@@ -1439,92 +1439,97 @@ static bool ft1000_receive_cmd(struct ft1000_device *dev, u16 *pbuffer,
1439 } 1439 }
1440} 1440}
1441 1441
1442
1443static int ft1000_dsp_prov(void *arg) 1442static int ft1000_dsp_prov(void *arg)
1444{ 1443{
1445 struct ft1000_device *dev = (struct ft1000_device *)arg; 1444 struct ft1000_device *dev = (struct ft1000_device *)arg;
1446 struct ft1000_info *info = netdev_priv(dev->net); 1445 struct ft1000_info *info = netdev_priv(dev->net);
1447 u16 tempword; 1446 u16 tempword;
1448 u16 len; 1447 u16 len;
1449 u16 i=0; 1448 u16 i = 0;
1450 struct prov_record *ptr; 1449 struct prov_record *ptr;
1451 struct pseudo_hdr *ppseudo_hdr; 1450 struct pseudo_hdr *ppseudo_hdr;
1452 u16 *pmsg; 1451 u16 *pmsg;
1453 u16 status; 1452 u16 status;
1454 u16 TempShortBuf [256]; 1453 u16 TempShortBuf[256];
1455 1454
1456 DEBUG("*** DspProv Entered\n"); 1455 DEBUG("*** DspProv Entered\n");
1457 1456
1458 while (list_empty(&info->prov_list) == 0) 1457 while (list_empty(&info->prov_list) == 0) {
1459 { 1458 DEBUG("DSP Provisioning List Entry\n");
1460 DEBUG("DSP Provisioning List Entry\n"); 1459
1461 1460 /* Check if doorbell is available */
1462 // Check if doorbell is available 1461 DEBUG("check if doorbell is cleared\n");
1463 DEBUG("check if doorbell is cleared\n"); 1462 status =
1464 status = ft1000_read_register (dev, &tempword, FT1000_REG_DOORBELL); 1463 ft1000_read_register(dev, &tempword, FT1000_REG_DOORBELL);
1465 if (status) 1464 if (status) {
1466 { 1465 DEBUG("ft1000_dsp_prov::ft1000_read_register error\n");
1467 DEBUG("ft1000_dsp_prov::ft1000_read_register error\n"); 1466 break;
1468 break; 1467 }
1469 }
1470 1468
1471 while (tempword & FT1000_DB_DPRAM_TX) { 1469 while (tempword & FT1000_DB_DPRAM_TX) {
1472 mdelay(10); 1470 mdelay(10);
1473 i++; 1471 i++;
1474 if (i==10) { 1472 if (i == 10) {
1475 DEBUG("FT1000:ft1000_dsp_prov:message drop\n"); 1473 DEBUG("FT1000:ft1000_dsp_prov:message drop\n");
1476 return STATUS_FAILURE; 1474 return STATUS_FAILURE;
1477 } 1475 }
1478 ft1000_read_register(dev, &tempword, FT1000_REG_DOORBELL); 1476 ft1000_read_register(dev, &tempword,
1479 } 1477 FT1000_REG_DOORBELL);
1478 }
1480 1479
1481 if ( !(tempword & FT1000_DB_DPRAM_TX) ) { 1480 if (!(tempword & FT1000_DB_DPRAM_TX)) {
1482 DEBUG("*** Provision Data Sent to DSP\n"); 1481 DEBUG("*** Provision Data Sent to DSP\n");
1483
1484 // Send provisioning data
1485 ptr = list_entry(info->prov_list.next, struct prov_record, list);
1486 len = *(u16 *)ptr->pprov_data;
1487 len = htons(len);
1488 len += PSEUDOSZ;
1489
1490 pmsg = (u16 *)ptr->pprov_data;
1491 ppseudo_hdr = (struct pseudo_hdr *)pmsg;
1492 // Insert slow queue sequence number
1493 ppseudo_hdr->seq_num = info->squeseqnum++;
1494 ppseudo_hdr->portsrc = 0;
1495 // Calculate new checksum
1496 ppseudo_hdr->checksum = *pmsg++;
1497 //DEBUG("checksum = 0x%x\n", ppseudo_hdr->checksum);
1498 for (i=1; i<7; i++) {
1499 ppseudo_hdr->checksum ^= *pmsg++;
1500 //DEBUG("checksum = 0x%x\n", ppseudo_hdr->checksum);
1501 }
1502 1482
1503 TempShortBuf[0] = 0; 1483 /* Send provisioning data */
1504 TempShortBuf[1] = htons (len); 1484 ptr =
1505 memcpy(&TempShortBuf[2], ppseudo_hdr, len); 1485 list_entry(info->prov_list.next, struct prov_record,
1486 list);
1487 len = *(u16 *) ptr->pprov_data;
1488 len = htons(len);
1489 len += PSEUDOSZ;
1506 1490
1507 status = ft1000_write_dpram32 (dev, 0, (u8 *)&TempShortBuf[0], (unsigned short)(len+2)); 1491 pmsg = (u16 *) ptr->pprov_data;
1508 status = ft1000_write_register (dev, FT1000_DB_DPRAM_TX, FT1000_REG_DOORBELL); 1492 ppseudo_hdr = (struct pseudo_hdr *)pmsg;
1493 /* Insert slow queue sequence number */
1494 ppseudo_hdr->seq_num = info->squeseqnum++;
1495 ppseudo_hdr->portsrc = 0;
1496 /* Calculate new checksum */
1497 ppseudo_hdr->checksum = *pmsg++;
1498 //DEBUG("checksum = 0x%x\n", ppseudo_hdr->checksum);
1499 for (i = 1; i < 7; i++) {
1500 ppseudo_hdr->checksum ^= *pmsg++;
1501 //DEBUG("checksum = 0x%x\n", ppseudo_hdr->checksum);
1502 }
1509 1503
1510 list_del(&ptr->list); 1504 TempShortBuf[0] = 0;
1511 kfree(ptr->pprov_data); 1505 TempShortBuf[1] = htons(len);
1512 kfree(ptr); 1506 memcpy(&TempShortBuf[2], ppseudo_hdr, len);
1513 } 1507
1514 msleep(10); 1508 status =
1515 } 1509 ft1000_write_dpram32(dev, 0,
1510 (u8 *) &TempShortBuf[0],
1511 (unsigned short)(len + 2));
1512 status =
1513 ft1000_write_register(dev, FT1000_DB_DPRAM_TX,
1514 FT1000_REG_DOORBELL);
1515
1516 list_del(&ptr->list);
1517 kfree(ptr->pprov_data);
1518 kfree(ptr);
1519 }
1520 msleep(10);
1521 }
1516 1522
1517 DEBUG("DSP Provisioning List Entry finished\n"); 1523 DEBUG("DSP Provisioning List Entry finished\n");
1518 1524
1519 msleep(100); 1525 msleep(100);
1520 1526
1521 info->fProvComplete = 1; 1527 info->fProvComplete = 1;
1522 info->CardReady = 1; 1528 info->CardReady = 1;
1523 return STATUS_SUCCESS;
1524 1529
1530 return STATUS_SUCCESS;
1525} 1531}
1526 1532
1527
1528static int ft1000_proc_drvmsg (struct ft1000_device *dev, u16 size) { 1533static int ft1000_proc_drvmsg (struct ft1000_device *dev, u16 size) {
1529 struct ft1000_info *info = netdev_priv(dev->net); 1534 struct ft1000_info *info = netdev_priv(dev->net);
1530 u16 msgtype; 1535 u16 msgtype;