Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 3fef7f79 authored by Mark Brown's avatar Mark Brown
Browse files

Merge remote-tracking branch 'asoc/fix/wm0010' into asoc-linus

parents 08d0a975 4f8b1914
Loading
Loading
Loading
Loading
+12 −12
Original line number Diff line number Diff line
@@ -410,6 +410,16 @@ static int wm0010_firmware_load(const char *name, struct snd_soc_codec *codec)
			rec->command, rec->length);
		len = rec->length + 8;

		xfer = kzalloc(sizeof(*xfer), GFP_KERNEL);
		if (!xfer) {
			dev_err(codec->dev, "Failed to allocate xfer\n");
			ret = -ENOMEM;
			goto abort;
		}

		xfer->codec = codec;
		list_add_tail(&xfer->list, &xfer_list);

		out = kzalloc(len, GFP_KERNEL);
		if (!out) {
			dev_err(codec->dev,
@@ -417,6 +427,7 @@ static int wm0010_firmware_load(const char *name, struct snd_soc_codec *codec)
			ret = -ENOMEM;
			goto abort1;
		}
		xfer->t.rx_buf = out;

		img = kzalloc(len, GFP_KERNEL);
		if (!img) {
@@ -425,24 +436,13 @@ static int wm0010_firmware_load(const char *name, struct snd_soc_codec *codec)
			ret = -ENOMEM;
			goto abort1;
		}
		xfer->t.tx_buf = img;

		byte_swap_64((u64 *)&rec->command, img, len);

		xfer = kzalloc(sizeof(*xfer), GFP_KERNEL);
		if (!xfer) {
			dev_err(codec->dev, "Failed to allocate xfer\n");
			ret = -ENOMEM;
			goto abort1;
		}

		xfer->codec = codec;
		list_add_tail(&xfer->list, &xfer_list);

		spi_message_init(&xfer->m);
		xfer->m.complete = wm0010_boot_xfer_complete;
		xfer->m.context = xfer;
		xfer->t.tx_buf = img;
		xfer->t.rx_buf = out;
		xfer->t.len = len;
		xfer->t.bits_per_word = 8;