Commit 29672631 authored by Geoffrey D. Bennett's avatar Geoffrey D. Bennett Committed by Takashi Iwai
Browse files

ALSA: usb-audio: scarlett2: Don't copy struct scarlett2_config



scarlett2_usb_set_config() and scarlett2_usb_get_config() were copying
struct scarlett2_config. Use a pointer instead.

Signed-off-by: default avatarGeoffrey D. Bennett <g@b4.vu>
Link: https://lore.kernel.org/r/20210620164648.GA9231@m.b4.vu


Signed-off-by: default avatarTakashi Iwai <tiwai@suse.de>
parent 64c02a9d
Loading
Loading
Loading
Loading
+10 −10
Original line number Diff line number Diff line
@@ -706,8 +706,8 @@ static int scarlett2_usb_set_config(
	struct usb_mixer_interface *mixer,
	int config_item_num, int index, int value)
{
	const struct scarlett2_config config_item =
	       scarlett2_config_items[config_item_num];
	const struct scarlett2_config *config_item =
	       &scarlett2_config_items[config_item_num];
	struct {
		__le32 offset;
		__le32 bytes;
@@ -721,17 +721,17 @@ static int scarlett2_usb_set_config(
	cancel_delayed_work_sync(&private->work);

	/* Send the configuration parameter data */
	req.offset = cpu_to_le32(config_item.offset + index * config_item.size);
	req.bytes = cpu_to_le32(config_item.size);
	req.offset = cpu_to_le32(config_item->offset + index * config_item->size);
	req.bytes = cpu_to_le32(config_item->size);
	req.value = cpu_to_le32(value);
	err = scarlett2_usb(mixer, SCARLETT2_USB_SET_DATA,
			    &req, sizeof(u32) * 2 + config_item.size,
			    &req, sizeof(u32) * 2 + config_item->size,
			    NULL, 0);
	if (err < 0)
		return err;

	/* Activate the change */
	req2 = cpu_to_le32(config_item.activate);
	req2 = cpu_to_le32(config_item->activate);
	err = scarlett2_usb(mixer, SCARLETT2_USB_DATA_CMD,
			    &req2, sizeof(req2), NULL, 0);
	if (err < 0)
@@ -764,11 +764,11 @@ static int scarlett2_usb_get_config(
	struct usb_mixer_interface *mixer,
	int config_item_num, int count, void *buf)
{
	const struct scarlett2_config config_item =
	       scarlett2_config_items[config_item_num];
	int size = config_item.size * count;
	const struct scarlett2_config *config_item =
		&scarlett2_config_items[config_item_num];
	int size = config_item->size * count;

	return scarlett2_usb_get(mixer, config_item.offset, buf, size);
	return scarlett2_usb_get(mixer, config_item->offset, buf, size);
}

/* Send a USB message to get volume status; result placed in *buf */