Skip to content

Commit

Permalink
---
Browse files Browse the repository at this point in the history
yaml
---
r: 235911
b: refs/heads/master
c: 8bfef50
h: refs/heads/master
i:
  235909: df3b9b2
  235907: a94aab2
  235903: bac6e37
v: v3
  • Loading branch information
Marek Belisko authored and Greg Kroah-Hartman committed Feb 9, 2011
1 parent 31b54a1 commit d45818b
Show file tree
Hide file tree
Showing 2 changed files with 48 additions and 58 deletions.
2 changes: 1 addition & 1 deletion [refs]
Original file line number Diff line number Diff line change
@@ -1,2 +1,2 @@
---
refs/heads/master: 71e3335d5593b202ad266b828927efe1b88d88d2
refs/heads/master: 8bfef502595acf6a8b6f8f77f0cf919f94021c08
104 changes: 47 additions & 57 deletions trunk/drivers/staging/ft1000/ft1000-usb/ft1000_hw.c
Original file line number Diff line number Diff line change
Expand Up @@ -365,68 +365,58 @@ int fix_ft1000_read_dpram32(struct ft1000_device *ft1000dev, u16 indx,
//---------------------------------------------------------------------------
int fix_ft1000_write_dpram32(struct ft1000_device *ft1000dev, u16 indx, u8 *buffer)
{
u16 pos1;
u16 pos2;
u16 i;
u8 buf[32];
u8 resultbuffer[32];
u8 *pdata;
int ret = STATUS_SUCCESS;

//DEBUG("fix_ft1000_write_dpram32: Entered:\n");

pos1 = (indx / 4)*4;
pdata = buffer;
ret = ft1000_read_dpram32(ft1000dev, pos1, buf, 16);
if (ret == STATUS_SUCCESS)
{
pos2 = (indx % 4)*4;
buf[pos2++] = *buffer++;
buf[pos2++] = *buffer++;
buf[pos2++] = *buffer++;
buf[pos2++] = *buffer++;
ret = ft1000_write_dpram32(ft1000dev, pos1, buf, 16);
}
else
{
DEBUG("fix_ft1000_write_dpram32: DPRAM32 Read failed\n");
u16 pos1;
u16 pos2;
u16 i;
u8 buf[32];
u8 resultbuffer[32];
u8 *pdata;
int ret = STATUS_SUCCESS;

pos1 = (indx / 4) * 4;
pdata = buffer;
ret = ft1000_read_dpram32(ft1000dev, pos1, buf, 16);

return ret;
}

ret = ft1000_read_dpram32(ft1000dev, pos1, (u8 *)&resultbuffer[0], 16);
if (ret == STATUS_SUCCESS)
{
buffer = pdata;
for (i=0; i<16; i++)
{
if (buf[i] != resultbuffer[i]){
if (ret == STATUS_SUCCESS) {
pos2 = (indx % 4)*4;
buf[pos2++] = *buffer++;
buf[pos2++] = *buffer++;
buf[pos2++] = *buffer++;
buf[pos2++] = *buffer++;
ret = ft1000_write_dpram32(ft1000dev, pos1, buf, 16);
} else {
DEBUG("fix_ft1000_write_dpram32: DPRAM32 Read failed\n");
return ret;
}

ret = STATUS_FAILURE;
}
}
}
ret = ft1000_read_dpram32(ft1000dev, pos1, (u8 *)&resultbuffer[0], 16);

if (ret == STATUS_FAILURE)
{
ret = ft1000_write_dpram32(ft1000dev, pos1, (u8 *)&tempbuffer[0], 16);
ret = ft1000_read_dpram32(ft1000dev, pos1, (u8 *)&resultbuffer[0], 16);
if (ret == STATUS_SUCCESS)
{
buffer = pdata;
for (i=0; i<16; i++)
{
if (tempbuffer[i] != resultbuffer[i])
{
ret = STATUS_FAILURE;
DEBUG("fix_ft1000_write_dpram32 Failed to write\n");
}
}
}
}
if (ret == STATUS_SUCCESS) {
buffer = pdata;
for (i = 0; i < 16; i++) {
if (buf[i] != resultbuffer[i])
ret = STATUS_FAILURE;
}
}

return ret;
if (ret == STATUS_FAILURE) {
ret = ft1000_write_dpram32(ft1000dev, pos1,
(u8 *)&tempbuffer[0], 16);
ret = ft1000_read_dpram32(ft1000dev, pos1,
(u8 *)&resultbuffer[0], 16);
if (ret == STATUS_SUCCESS) {
buffer = pdata;
for (i = 0; i < 16; i++) {
if (tempbuffer[i] != resultbuffer[i]) {
ret = STATUS_FAILURE;
DEBUG("%s Failed to write\n",
__func__);
}
}
}
}

return ret;
}


Expand Down

0 comments on commit d45818b

Please sign in to comment.