1
0
Fork 0
forked from len0rd/rockbox

ata: Correct parsing of the logical sector size in the IDENTIFY DEVICE

....It's specified in 16-bit words, not bytes.  So multiply it by 2.

(This hasn't been a problem in practice as everything uses 512B logical
 sectors so far..)

Change-Id: I0b1abd0f6184330f0b7f5c000c5ad547038f7c95
This commit is contained in:
Solomon Peachy 2024-10-31 21:50:09 -04:00
parent d401501fda
commit 0a11b06d93
3 changed files with 8 additions and 8 deletions

View file

@ -1145,8 +1145,8 @@ void ata_spin(void)
void ata_get_info(IF_MD(int drive,) struct storage_info *info)
{
/* Logical sector size */
if ((ata_identify_data[106] & 0xd000) == 0x5000)
info->sector_size = ata_identify_data[117] | (ata_identify_data[118] << 16);
if ((ata_identify_data[106] & 0xd000) == 0x5000) /* B14, B12 */
info->sector_size = (ata_identify_data[117] | (ata_identify_data[118] << 16)) * 2;
else
info->sector_size = SECTOR_SIZE;