Loading drivers/ide/ide-iops.c +20 −87 Original line number Original line Diff line number Diff line Loading @@ -400,97 +400,30 @@ const struct ide_tp_ops default_tp_ops = { .output_data = ide_output_data, .output_data = ide_output_data, }; }; void ide_fix_driveid (struct hd_driveid *id) void ide_fix_driveid(struct hd_driveid *driveid) { { #ifndef __LITTLE_ENDIAN #ifndef __LITTLE_ENDIAN # ifdef __BIG_ENDIAN # ifdef __BIG_ENDIAN u16 *id = (u16 *)driveid; int i; int i; u16 *stringcast; for (i = 0; i < 256; i++) { id->config = __le16_to_cpu(id->config); /* these words are accessed as two 8-bit values */ id->cyls = __le16_to_cpu(id->cyls); if (i == 47 || i == 49 || i == 51 || i == 52 || i == 59) id->reserved2 = __le16_to_cpu(id->reserved2); continue; id->heads = __le16_to_cpu(id->heads); if (i == 60 || i == 61) /* ->lba_capacity is 32-bit */ id->track_bytes = __le16_to_cpu(id->track_bytes); continue; id->sector_bytes = __le16_to_cpu(id->sector_bytes); if (i == 98 || i == 99) /* ->spg is 32-bit */ id->sectors = __le16_to_cpu(id->sectors); continue; id->vendor0 = __le16_to_cpu(id->vendor0); if (i > 99 && i < 104) /* ->lba_capacity_2 is 64-bit */ id->vendor1 = __le16_to_cpu(id->vendor1); continue; id->vendor2 = __le16_to_cpu(id->vendor2); stringcast = (u16 *)&id->serial_no[0]; id[i] = __le16_to_cpu(id[i]); for (i = 0; i < (20/2); i++) } stringcast[i] = __le16_to_cpu(stringcast[i]); id->buf_type = __le16_to_cpu(id->buf_type); driveid->lba_capacity = __le32_to_cpu(driveid->lba_capacity); id->buf_size = __le16_to_cpu(id->buf_size); driveid->spg = __le32_to_cpu(driveid->spg); id->ecc_bytes = __le16_to_cpu(id->ecc_bytes); driveid->lba_capacity_2 = __le64_to_cpu(driveid->lba_capacity_2); stringcast = (u16 *)&id->fw_rev[0]; for (i = 0; i < (8/2); i++) stringcast[i] = __le16_to_cpu(stringcast[i]); stringcast = (u16 *)&id->model[0]; for (i = 0; i < (40/2); i++) stringcast[i] = __le16_to_cpu(stringcast[i]); id->dword_io = __le16_to_cpu(id->dword_io); id->reserved50 = __le16_to_cpu(id->reserved50); id->field_valid = __le16_to_cpu(id->field_valid); id->cur_cyls = __le16_to_cpu(id->cur_cyls); id->cur_heads = __le16_to_cpu(id->cur_heads); id->cur_sectors = __le16_to_cpu(id->cur_sectors); id->cur_capacity0 = __le16_to_cpu(id->cur_capacity0); id->cur_capacity1 = __le16_to_cpu(id->cur_capacity1); id->lba_capacity = __le32_to_cpu(id->lba_capacity); id->dma_1word = __le16_to_cpu(id->dma_1word); id->dma_mword = __le16_to_cpu(id->dma_mword); id->eide_pio_modes = __le16_to_cpu(id->eide_pio_modes); id->eide_dma_min = __le16_to_cpu(id->eide_dma_min); id->eide_dma_time = __le16_to_cpu(id->eide_dma_time); id->eide_pio = __le16_to_cpu(id->eide_pio); id->eide_pio_iordy = __le16_to_cpu(id->eide_pio_iordy); for (i = 0; i < 2; ++i) id->words69_70[i] = __le16_to_cpu(id->words69_70[i]); for (i = 0; i < 4; ++i) id->words71_74[i] = __le16_to_cpu(id->words71_74[i]); id->queue_depth = __le16_to_cpu(id->queue_depth); for (i = 0; i < 4; ++i) id->words76_79[i] = __le16_to_cpu(id->words76_79[i]); id->major_rev_num = __le16_to_cpu(id->major_rev_num); id->minor_rev_num = __le16_to_cpu(id->minor_rev_num); id->command_set_1 = __le16_to_cpu(id->command_set_1); id->command_set_2 = __le16_to_cpu(id->command_set_2); id->cfsse = __le16_to_cpu(id->cfsse); id->cfs_enable_1 = __le16_to_cpu(id->cfs_enable_1); id->cfs_enable_2 = __le16_to_cpu(id->cfs_enable_2); id->csf_default = __le16_to_cpu(id->csf_default); id->dma_ultra = __le16_to_cpu(id->dma_ultra); id->trseuc = __le16_to_cpu(id->trseuc); id->trsEuc = __le16_to_cpu(id->trsEuc); id->CurAPMvalues = __le16_to_cpu(id->CurAPMvalues); id->mprc = __le16_to_cpu(id->mprc); id->hw_config = __le16_to_cpu(id->hw_config); id->acoustic = __le16_to_cpu(id->acoustic); id->msrqs = __le16_to_cpu(id->msrqs); id->sxfert = __le16_to_cpu(id->sxfert); id->sal = __le16_to_cpu(id->sal); id->spg = __le32_to_cpu(id->spg); id->lba_capacity_2 = __le64_to_cpu(id->lba_capacity_2); for (i = 0; i < 22; i++) id->words104_125[i] = __le16_to_cpu(id->words104_125[i]); id->last_lun = __le16_to_cpu(id->last_lun); id->word127 = __le16_to_cpu(id->word127); id->dlf = __le16_to_cpu(id->dlf); id->csfo = __le16_to_cpu(id->csfo); for (i = 0; i < 26; i++) id->words130_155[i] = __le16_to_cpu(id->words130_155[i]); id->word156 = __le16_to_cpu(id->word156); for (i = 0; i < 3; i++) id->words157_159[i] = __le16_to_cpu(id->words157_159[i]); id->cfa_power = __le16_to_cpu(id->cfa_power); for (i = 0; i < 15; i++) id->words161_175[i] = __le16_to_cpu(id->words161_175[i]); for (i = 0; i < 30; i++) id->words176_205[i] = __le16_to_cpu(id->words176_205[i]); for (i = 0; i < 49; i++) id->words206_254[i] = __le16_to_cpu(id->words206_254[i]); id->integrity_word = __le16_to_cpu(id->integrity_word); # else # else # error "Please fix <asm/byteorder.h>" # error "Please fix <asm/byteorder.h>" # endif # endif Loading Loading
drivers/ide/ide-iops.c +20 −87 Original line number Original line Diff line number Diff line Loading @@ -400,97 +400,30 @@ const struct ide_tp_ops default_tp_ops = { .output_data = ide_output_data, .output_data = ide_output_data, }; }; void ide_fix_driveid (struct hd_driveid *id) void ide_fix_driveid(struct hd_driveid *driveid) { { #ifndef __LITTLE_ENDIAN #ifndef __LITTLE_ENDIAN # ifdef __BIG_ENDIAN # ifdef __BIG_ENDIAN u16 *id = (u16 *)driveid; int i; int i; u16 *stringcast; for (i = 0; i < 256; i++) { id->config = __le16_to_cpu(id->config); /* these words are accessed as two 8-bit values */ id->cyls = __le16_to_cpu(id->cyls); if (i == 47 || i == 49 || i == 51 || i == 52 || i == 59) id->reserved2 = __le16_to_cpu(id->reserved2); continue; id->heads = __le16_to_cpu(id->heads); if (i == 60 || i == 61) /* ->lba_capacity is 32-bit */ id->track_bytes = __le16_to_cpu(id->track_bytes); continue; id->sector_bytes = __le16_to_cpu(id->sector_bytes); if (i == 98 || i == 99) /* ->spg is 32-bit */ id->sectors = __le16_to_cpu(id->sectors); continue; id->vendor0 = __le16_to_cpu(id->vendor0); if (i > 99 && i < 104) /* ->lba_capacity_2 is 64-bit */ id->vendor1 = __le16_to_cpu(id->vendor1); continue; id->vendor2 = __le16_to_cpu(id->vendor2); stringcast = (u16 *)&id->serial_no[0]; id[i] = __le16_to_cpu(id[i]); for (i = 0; i < (20/2); i++) } stringcast[i] = __le16_to_cpu(stringcast[i]); id->buf_type = __le16_to_cpu(id->buf_type); driveid->lba_capacity = __le32_to_cpu(driveid->lba_capacity); id->buf_size = __le16_to_cpu(id->buf_size); driveid->spg = __le32_to_cpu(driveid->spg); id->ecc_bytes = __le16_to_cpu(id->ecc_bytes); driveid->lba_capacity_2 = __le64_to_cpu(driveid->lba_capacity_2); stringcast = (u16 *)&id->fw_rev[0]; for (i = 0; i < (8/2); i++) stringcast[i] = __le16_to_cpu(stringcast[i]); stringcast = (u16 *)&id->model[0]; for (i = 0; i < (40/2); i++) stringcast[i] = __le16_to_cpu(stringcast[i]); id->dword_io = __le16_to_cpu(id->dword_io); id->reserved50 = __le16_to_cpu(id->reserved50); id->field_valid = __le16_to_cpu(id->field_valid); id->cur_cyls = __le16_to_cpu(id->cur_cyls); id->cur_heads = __le16_to_cpu(id->cur_heads); id->cur_sectors = __le16_to_cpu(id->cur_sectors); id->cur_capacity0 = __le16_to_cpu(id->cur_capacity0); id->cur_capacity1 = __le16_to_cpu(id->cur_capacity1); id->lba_capacity = __le32_to_cpu(id->lba_capacity); id->dma_1word = __le16_to_cpu(id->dma_1word); id->dma_mword = __le16_to_cpu(id->dma_mword); id->eide_pio_modes = __le16_to_cpu(id->eide_pio_modes); id->eide_dma_min = __le16_to_cpu(id->eide_dma_min); id->eide_dma_time = __le16_to_cpu(id->eide_dma_time); id->eide_pio = __le16_to_cpu(id->eide_pio); id->eide_pio_iordy = __le16_to_cpu(id->eide_pio_iordy); for (i = 0; i < 2; ++i) id->words69_70[i] = __le16_to_cpu(id->words69_70[i]); for (i = 0; i < 4; ++i) id->words71_74[i] = __le16_to_cpu(id->words71_74[i]); id->queue_depth = __le16_to_cpu(id->queue_depth); for (i = 0; i < 4; ++i) id->words76_79[i] = __le16_to_cpu(id->words76_79[i]); id->major_rev_num = __le16_to_cpu(id->major_rev_num); id->minor_rev_num = __le16_to_cpu(id->minor_rev_num); id->command_set_1 = __le16_to_cpu(id->command_set_1); id->command_set_2 = __le16_to_cpu(id->command_set_2); id->cfsse = __le16_to_cpu(id->cfsse); id->cfs_enable_1 = __le16_to_cpu(id->cfs_enable_1); id->cfs_enable_2 = __le16_to_cpu(id->cfs_enable_2); id->csf_default = __le16_to_cpu(id->csf_default); id->dma_ultra = __le16_to_cpu(id->dma_ultra); id->trseuc = __le16_to_cpu(id->trseuc); id->trsEuc = __le16_to_cpu(id->trsEuc); id->CurAPMvalues = __le16_to_cpu(id->CurAPMvalues); id->mprc = __le16_to_cpu(id->mprc); id->hw_config = __le16_to_cpu(id->hw_config); id->acoustic = __le16_to_cpu(id->acoustic); id->msrqs = __le16_to_cpu(id->msrqs); id->sxfert = __le16_to_cpu(id->sxfert); id->sal = __le16_to_cpu(id->sal); id->spg = __le32_to_cpu(id->spg); id->lba_capacity_2 = __le64_to_cpu(id->lba_capacity_2); for (i = 0; i < 22; i++) id->words104_125[i] = __le16_to_cpu(id->words104_125[i]); id->last_lun = __le16_to_cpu(id->last_lun); id->word127 = __le16_to_cpu(id->word127); id->dlf = __le16_to_cpu(id->dlf); id->csfo = __le16_to_cpu(id->csfo); for (i = 0; i < 26; i++) id->words130_155[i] = __le16_to_cpu(id->words130_155[i]); id->word156 = __le16_to_cpu(id->word156); for (i = 0; i < 3; i++) id->words157_159[i] = __le16_to_cpu(id->words157_159[i]); id->cfa_power = __le16_to_cpu(id->cfa_power); for (i = 0; i < 15; i++) id->words161_175[i] = __le16_to_cpu(id->words161_175[i]); for (i = 0; i < 30; i++) id->words176_205[i] = __le16_to_cpu(id->words176_205[i]); for (i = 0; i < 49; i++) id->words206_254[i] = __le16_to_cpu(id->words206_254[i]); id->integrity_word = __le16_to_cpu(id->integrity_word); # else # else # error "Please fix <asm/byteorder.h>" # error "Please fix <asm/byteorder.h>" # endif # endif Loading