]> xenbits.xensource.com Git - seabios.git/commitdiff
sdcard: fix typo causing 32bit write to 16bit block_size field
authorKevin O'Connor <kevin@koconnor.net>
Tue, 17 Nov 2015 19:54:11 +0000 (14:54 -0500)
committerGerd Hoffmann <kraxel@redhat.com>
Fri, 15 Jan 2016 09:49:03 +0000 (10:49 +0100)
The block_size field is 16bits and only 16bit writes should be used
with it.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
(cherry picked from commit 8f7dc5ab820beac980f0d40f3934a5ae04771349)

src/hw/sdcard.c

index 0617d24b1a37c8a2b800c0cc4f4047dc50e55c34..e01e1bb0289c055009a3fa1af89b921239f7ca55 100644 (file)
@@ -224,7 +224,7 @@ sdcard_pio_transfer(struct sddrive_s *drive, int cmd, u32 addr
                     , void *data, int count)
 {
     // Send command
-    writel(&drive->regs->block_size, DISK_SECTOR_SIZE);
+    writew(&drive->regs->block_size, DISK_SECTOR_SIZE);
     writew(&drive->regs->block_count, count);
     int isread = cmd != SC_WRITE_SINGLE && cmd != SC_WRITE_MULTIPLE;
     u16 tmode = ((count > 1 ? ST_MULTIPLE|ST_AUTO_CMD12|ST_BLOCKCOUNT : 0)