Skip to content

Commit

Permalink
V4L/DVB (8893): pvrusb2: Add comment elaborating on direct use of swa…
Browse files Browse the repository at this point in the history
…b32()

Signed-off-by: Mike Isely <isely@pobox.com>
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
  • Loading branch information
Mike Isely authored and Mauro Carvalho Chehab committed Oct 12, 2008
1 parent 83512e2 commit 5f33df1
Showing 1 changed file with 11 additions and 0 deletions.
11 changes: 11 additions & 0 deletions drivers/media/video/pvrusb2/pvrusb2-hdw.c
Original file line number Diff line number Diff line change
Expand Up @@ -1313,6 +1313,17 @@ int pvr2_upload_firmware2(struct pvr2_hdw *hdw)
if (bcnt > FIRMWARE_CHUNK_SIZE) bcnt = FIRMWARE_CHUNK_SIZE;
memcpy(fw_ptr, fw_entry->data + fw_done, bcnt);
/* Usbsnoop log shows that we must swap bytes... */
/* Some background info: The data being swapped here is a
firmware image destined for the mpeg encoder chip that
lives at the other end of a USB endpoint. The encoder
chip always talks in 32 bit chunks and its storage is
organized into 32 bit words. However from the file
system to the encoder chip everything is purely a byte
stream. The firmware file's contents are always 32 bit
swapped from what the encoder expects. Thus the need
always exists to swap the bytes regardless of the endian
type of the host processor and therefore swab32() makes
the most sense. */
for (icnt = 0; icnt < bcnt/4 ; icnt++)
((u32 *)fw_ptr)[icnt] = swab32(((u32 *)fw_ptr)[icnt]);

Expand Down

0 comments on commit 5f33df1

Please sign in to comment.