mirror of
https://github.com/torvalds/linux.git
synced 2026-05-12 16:18:45 +02:00
ALSA: usb-audio: Optimize the copy of packet sizes for implicit fb handling
We did manual copies over loop for the packet data update of the implicit feedback, but this can be optimized with a simple memcpy(). Along with it, change the data type of snd_usb_packet_info struct to align with other (from uint32_t to int). No functional changes but only code optimizations. Link: https://patch.msgid.link/20260216141209.1849200-3-tiwai@suse.de Signed-off-by: Takashi Iwai <tiwai@suse.de>
This commit is contained in:
parent
cf044e4419
commit
36adb51ac0
|
|
@ -90,7 +90,7 @@ struct snd_usb_endpoint {
|
|||
struct snd_urb_ctx urb[MAX_URBS];
|
||||
|
||||
struct snd_usb_packet_info {
|
||||
uint32_t packet_size[MAX_PACKS_HS];
|
||||
int packet_size[MAX_PACKS_HS];
|
||||
int packets;
|
||||
} next_packet[MAX_URBS];
|
||||
unsigned int next_packet_head; /* ring buffer offset to read */
|
||||
|
|
|
|||
|
|
@ -462,7 +462,7 @@ int snd_usb_queue_pending_output_urbs(struct snd_usb_endpoint *ep,
|
|||
while (ep_state_running(ep)) {
|
||||
struct snd_usb_packet_info *packet;
|
||||
struct snd_urb_ctx *ctx = NULL;
|
||||
int err, i;
|
||||
int err;
|
||||
|
||||
scoped_guard(spinlock_irqsave, &ep->lock) {
|
||||
if ((!implicit_fb || ep->next_packet_queued > 0) &&
|
||||
|
|
@ -482,8 +482,8 @@ int snd_usb_queue_pending_output_urbs(struct snd_usb_endpoint *ep,
|
|||
/* copy over the length information */
|
||||
if (implicit_fb) {
|
||||
ctx->packets = packet->packets;
|
||||
for (i = 0; i < packet->packets; i++)
|
||||
ctx->packet_size[i] = packet->packet_size[i];
|
||||
memcpy(ctx->packet_size, packet->packet_size,
|
||||
packet->packets * sizeof(packet->packet_size[0]));
|
||||
}
|
||||
|
||||
/* call the data handler to fill in playback data */
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user