
Hi,
sparse complains:
sound/firewire/fireworks/fireworks_transaction.c:127:18: warning: restricted __be32 degrades to integer
t = (struct snd_efw_transaction *)data; length = min_t(size_t, t->length * sizeof(t->length), length);
't->length' is still a big-endian value. This means that the driver ends up always using 'length'.
sound/firewire/bebob/bebob_maudio.c:100:17: warning: incorrect type in initializer (different base types) sound/firewire/bebob/bebob_maudio.c:100:17: expected restricted __be32 sound/firewire/bebob/bebob_maudio.c:100:17: got int
__be32 cues[3] = { MAUDIO_BOOTLOADER_CUE1, MAUDIO_BOOTLOADER_CUE2, MAUDIO_BOOTLOADER_CUE3 };
rcode = fw_run_transaction(device->card, TCODE_WRITE_BLOCK_REQUEST, device->node_id, device->generation, device->max_speed, BEBOB_ADDR_REG_REQ, cues, sizeof(cues));
The three MAUDIO_BOOTLOADER_CUEx values will end up as a different byte sequence on big-endian machines. The simplest way to have these twelve bytes unchanged on the bus is to have a twelve-byte array in the driver.
Regards, Clemens