At Sat, 29 Nov 2014 00:59:30 +0900, Takashi Sakamoto wrote:
The 'struct snd_card' has 4 members for name. They're 'driver', 'shortname', 'longname' and 'mixername'. This commit names these 4 members according to two members in model-specific structure and reduce rest of members in the structure.
The reason that alias names are still used is that currently supported devices, Griffin FireWave and LaCie Firewire Speaker have too long names for model and vendor field in their config rom to be over allocated buffer for the names.
Signed-off-by: Takashi Sakamoto o-takashi@sakamocchi.jp
sound/firewire/oxfw/oxfw.c | 51 +++++++++++++++++++++++++++------------------- sound/firewire/oxfw/oxfw.h | 3 +-- 2 files changed, 31 insertions(+), 23 deletions(-)
diff --git a/sound/firewire/oxfw/oxfw.c b/sound/firewire/oxfw/oxfw.c index 951d9a4..3308253 100644 --- a/sound/firewire/oxfw/oxfw.c +++ b/sound/firewire/oxfw/oxfw.c @@ -25,14 +25,34 @@ MODULE_AUTHOR("Clemens Ladisch clemens@ladisch.de"); MODULE_LICENSE("GPL v2"); MODULE_ALIAS("snd-firewire-speakers");
-static u32 oxfw_read_firmware_version(struct fw_unit *unit) +static int name_card(struct snd_oxfw *oxfw) {
- __be32 data;
- struct fw_device *fw_dev = fw_parent_device(oxfw->unit);
- const char *d, *v, *m;
- u32 firmware; int err;
- err = snd_fw_transaction(unit, TCODE_READ_QUADLET_REQUEST,
OXFORD_FIRMWARE_ID_ADDRESS, &data, 4, 0);
- return err >= 0 ? be32_to_cpu(data) : 0;
- err = snd_fw_transaction(oxfw->unit, TCODE_READ_QUADLET_REQUEST,
OXFORD_FIRMWARE_ID_ADDRESS, &firmware, 4, 0);
- if (err < 0)
goto end;
- be32_to_cpus(&firmware);
- d = oxfw->device_info->driver_name;
- v = oxfw->device_info->vendor_name;
- m = oxfw->device_info->driver_name;
- strcpy(oxfw->card->driver, d);
- strcpy(oxfw->card->shortname, m);
- strcpy(oxfw->card->mixername, m);
So, this ends up with the identical strings for both driver and shortname? This doesn't sound like an improvement.
thanks,
Takashi