Skip to content
  • Florian Fainelli's avatar
    usb: gadget: bcm63xx_udc: fix build failure on DMA channel code · a4c937c5
    Florian Fainelli authored
    
    
    commit 2d1f7af3d60dd09794e0738a915d272c6c27abc5 upstream.
    
    Commit 3dc6475 ("bcm63xx_enet: add support Broadcom BCM6345 Ethernet")
    changed the ENETDMA[CS] macros such that they are no longer macros, but
    actual register offset definitions. The bcm63xx_udc driver was not
    updated, and as a result, causes the following build error to pop up:
    
     CC      drivers/usb/gadget/u_ether.o
    drivers/usb/gadget/bcm63xx_udc.c: In function 'iudma_write':
    drivers/usb/gadget/bcm63xx_udc.c:642:24: error: called object '0' is not
    a function
    drivers/usb/gadget/bcm63xx_udc.c: In function 'iudma_reset_channel':
    drivers/usb/gadget/bcm63xx_udc.c:698:46: error: called object '0' is not
    a function
    drivers/usb/gadget/bcm63xx_udc.c:700:49: error: called object '0' is not
    a function
    
    Fix this by updating usb_dmac_{read,write}l and usb_dmas_{read,write}l to
    take an extra channel argument, and use the channel width
    (ENETDMA_CHAN_WIDTH) to offset the register we want to access, hence
    doing again what the macro implicitely did for us.
    
    Cc: Kevin Cernekee <cernekee@gmail.com>
    Cc: Jonas Gorski <jogo@openwrt.org>
    Signed-off-by: default avatarFlorian Fainelli <florian@openwrt.org>
    Signed-off-by: default avatarFelipe Balbi <balbi@ti.com>
    Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
    a4c937c5