OSDN Git Service

ide-cd: fix ACER/AOpen 24X CDROM speed reporting on big-endian machines
authorBartlomiej Zolnierkiewicz <bzolnier@gmail.com>
Mon, 24 Dec 2007 14:23:43 +0000 (15:23 +0100)
committerBartlomiej Zolnierkiewicz <bzolnier@gmail.com>
Mon, 24 Dec 2007 14:23:43 +0000 (15:23 +0100)
* Fix ACER/AOpen 24X CDROM speed reporting on big-endian machines
  by adding missing le16_to_cpu() calls.

While at it:
* Replace ntohs() by be16_to_cpu().

Acked-by: Sergei Shtylyov <sshtylyov@ru.mvista.com>
Signed-off-by: Bartlomiej Zolnierkiewicz <bzolnier@gmail.com>
drivers/ide/ide-cd.c

index 249834b..97ce584 100644 (file)
@@ -2688,14 +2688,14 @@ void ide_cdrom_update_speed (ide_drive_t *drive, struct atapi_capabilities_page
        if (!drive->id->model[0] &&
            !strncmp(drive->id->fw_rev, "241N", 4)) {
                CDROM_STATE_FLAGS(drive)->current_speed  =
-                       (((unsigned int)cap->curspeed) + (176/2)) / 176;
+                       (le16_to_cpu(cap->curspeed) + (176/2)) / 176;
                CDROM_CONFIG_FLAGS(drive)->max_speed =
-                       (((unsigned int)cap->maxspeed) + (176/2)) / 176;
+                       (le16_to_cpu(cap->maxspeed) + (176/2)) / 176;
        } else {
                CDROM_STATE_FLAGS(drive)->current_speed  =
-                       (ntohs(cap->curspeed) + (176/2)) / 176;
+                       (be16_to_cpu(cap->curspeed) + (176/2)) / 176;
                CDROM_CONFIG_FLAGS(drive)->max_speed =
-                       (ntohs(cap->maxspeed) + (176/2)) / 176;
+                       (be16_to_cpu(cap->maxspeed) + (176/2)) / 176;
        }
 }