| From a0548b26901f082684ad1fb3ba397d2de3a1406a Mon Sep 17 00:00:00 2001 |
| From: Geert Uytterhoeven <geert@linux-m68k.org> |
| Date: Wed, 27 Oct 2021 10:08:49 +0200 |
| Subject: usb: gadget: Mark USB_FSL_QE broken on 64-bit |
| MIME-Version: 1.0 |
| Content-Type: text/plain; charset=UTF-8 |
| Content-Transfer-Encoding: 8bit |
| |
| From: Geert Uytterhoeven <geert@linux-m68k.org> |
| |
| commit a0548b26901f082684ad1fb3ba397d2de3a1406a upstream. |
| |
| On 64-bit: |
| |
| drivers/usb/gadget/udc/fsl_qe_udc.c: In function ‘qe_ep0_rx’: |
| drivers/usb/gadget/udc/fsl_qe_udc.c:842:13: error: cast from pointer to integer of different size [-Werror=pointer-to-int-cast] |
| 842 | vaddr = (u32)phys_to_virt(in_be32(&bd->buf)); |
| | ^ |
| In file included from drivers/usb/gadget/udc/fsl_qe_udc.c:41: |
| drivers/usb/gadget/udc/fsl_qe_udc.c:843:28: error: cast to pointer from integer of different size [-Werror=int-to-pointer-cast] |
| 843 | frame_set_data(pframe, (u8 *)vaddr); |
| | ^ |
| |
| The driver assumes physical and virtual addresses are 32-bit, hence it |
| cannot work on 64-bit platforms. |
| |
| Acked-by: Li Yang <leoyang.li@nxp.com> |
| Signed-off-by: Geert Uytterhoeven <geert@linux-m68k.org> |
| Link: https://lore.kernel.org/r/20211027080849.3276289-1-geert@linux-m68k.org |
| Cc: stable <stable@vger.kernel.org> |
| Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org> |
| --- |
| drivers/usb/gadget/udc/Kconfig | 1 + |
| 1 file changed, 1 insertion(+) |
| |
| --- a/drivers/usb/gadget/udc/Kconfig |
| +++ b/drivers/usb/gadget/udc/Kconfig |
| @@ -330,6 +330,7 @@ config USB_AMD5536UDC |
| config USB_FSL_QE |
| tristate "Freescale QE/CPM USB Device Controller" |
| depends on FSL_SOC && (QUICC_ENGINE || CPM) |
| + depends on !64BIT || BROKEN |
| help |
| Some of Freescale PowerPC processors have a Full Speed |
| QE/CPM2 USB controller, which support device mode with 4 |