ALSA: usb-audio: scarlett2: Don't copy struct scarlett2_config
authorGeoffrey D. Bennett <g@b4.vu>
Sun, 20 Jun 2021 16:46:48 +0000 (02:16 +0930)
committerTakashi Iwai <tiwai@suse.de>
Mon, 21 Jun 2021 06:38:03 +0000 (08:38 +0200)
scarlett2_usb_set_config() and scarlett2_usb_get_config() were copying
struct scarlett2_config. Use a pointer instead.

Signed-off-by: Geoffrey D. Bennett <g@b4.vu>
Link: https://lore.kernel.org/r/20210620164648.GA9231@m.b4.vu
Signed-off-by: Takashi Iwai <tiwai@suse.de>
sound/usb/mixer_scarlett_gen2.c

index 49c4662531a3b757209d261a53ff9aedcd6f3845..45fd540920b9b45b8a69dfce2a2a0b21a2afb14e 100644 (file)
@@ -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 */