input_swap_data (device, iobuf, ATA_SECTORWORDS);
 
-       ident_cpy (dev_desc->revision, iop->fw_rev, sizeof(dev_desc->revision));
-       ident_cpy (dev_desc->vendor, iop->model, sizeof(dev_desc->vendor));
-       ident_cpy (dev_desc->product, iop->serial_no, sizeof(dev_desc->product));
+       ident_cpy ((unsigned char*)dev_desc->revision, iop->fw_rev, sizeof(dev_desc->revision));
+       ident_cpy ((unsigned char*)dev_desc->vendor, iop->model, sizeof(dev_desc->vendor));
+       ident_cpy ((unsigned char*)dev_desc->product, iop->serial_no, sizeof(dev_desc->product));
 #ifdef __LITTLE_ENDIAN
        /*
         * firmware revision and model number have Big Endian Byte
                return;
 
        /* copy device ident strings */
-       ident_cpy(dev_desc->vendor,&iobuf[8],8);
-       ident_cpy(dev_desc->product,&iobuf[16],16);
-       ident_cpy(dev_desc->revision,&iobuf[32],5);
+       ident_cpy((unsigned char*)dev_desc->vendor,&iobuf[8],8);
+       ident_cpy((unsigned char*)dev_desc->product,&iobuf[16],16);
+       ident_cpy((unsigned char*)dev_desc->revision,&iobuf[32],5);
 
        dev_desc->lun=0;
        dev_desc->lba=0;