| From 3acd3e3bab95ec3622ff98da313290ee823a0f68 Mon Sep 17 00:00:00 2001 |
| From: Takashi Iwai <tiwai@suse.de> |
| Date: Wed, 25 Jul 2018 17:11:38 +0200 |
| Subject: ALSA: vxpocket: Fix invalid endian conversions |
| |
| From: Takashi Iwai <tiwai@suse.de> |
| |
| commit 3acd3e3bab95ec3622ff98da313290ee823a0f68 upstream. |
| |
| The endian conversions used in vxp_dma_read() and vxp_dma_write() are |
| superfluous and even wrong on big-endian machines, as inw() and outw() |
| already do conversions. Kill them. |
| |
| Cc: <stable@vger.kernel.org> |
| Signed-off-by: Takashi Iwai <tiwai@suse.de> |
| Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org> |
| |
| --- |
| sound/pcmcia/vx/vxp_ops.c | 10 +++++----- |
| 1 file changed, 5 insertions(+), 5 deletions(-) |
| |
| --- a/sound/pcmcia/vx/vxp_ops.c |
| +++ b/sound/pcmcia/vx/vxp_ops.c |
| @@ -375,7 +375,7 @@ static void vxp_dma_write(struct vx_core |
| length >>= 1; /* in 16bit words */ |
| /* Transfer using pseudo-dma. */ |
| for (; length > 0; length--) { |
| - outw(cpu_to_le16(*addr), port); |
| + outw(*addr, port); |
| addr++; |
| } |
| addr = (unsigned short *)runtime->dma_area; |
| @@ -385,7 +385,7 @@ static void vxp_dma_write(struct vx_core |
| count >>= 1; /* in 16bit words */ |
| /* Transfer using pseudo-dma. */ |
| for (; count > 0; count--) { |
| - outw(cpu_to_le16(*addr), port); |
| + outw(*addr, port); |
| addr++; |
| } |
| vx_release_pseudo_dma(chip); |
| @@ -417,7 +417,7 @@ static void vxp_dma_read(struct vx_core |
| length >>= 1; /* in 16bit words */ |
| /* Transfer using pseudo-dma. */ |
| for (; length > 0; length--) |
| - *addr++ = le16_to_cpu(inw(port)); |
| + *addr++ = inw(port); |
| addr = (unsigned short *)runtime->dma_area; |
| pipe->hw_ptr = 0; |
| } |
| @@ -425,12 +425,12 @@ static void vxp_dma_read(struct vx_core |
| count >>= 1; /* in 16bit words */ |
| /* Transfer using pseudo-dma. */ |
| for (; count > 1; count--) |
| - *addr++ = le16_to_cpu(inw(port)); |
| + *addr++ = inw(port); |
| /* Disable DMA */ |
| pchip->regDIALOG &= ~VXP_DLG_DMAREAD_SEL_MASK; |
| vx_outb(chip, DIALOG, pchip->regDIALOG); |
| /* Read the last word (16 bits) */ |
| - *addr = le16_to_cpu(inw(port)); |
| + *addr = inw(port); |
| /* Disable 16-bit accesses */ |
| pchip->regDIALOG &= ~VXP_DLG_DMA16_SEL_MASK; |
| vx_outb(chip, DIALOG, pchip->regDIALOG); |