• F
    usb: gadget: bcm63xx_udc: fix build failure on DMA channel code · 2d1f7af3
    Florian Fainelli 提交于
    Commit 3dc6475c ("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>
    Cc: <stable@vger.kernel.org>
    Signed-off-by: NFlorian Fainelli <florian@openwrt.org>
    Signed-off-by: NFelipe Balbi <balbi@ti.com>
    2d1f7af3
bcm63xx_udc.c 66.5 KB