Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1760185AbcLPJVW (ORCPT ); Fri, 16 Dec 2016 04:21:22 -0500 Received: from mout.kundenserver.de ([217.72.192.73]:63704 "EHLO mout.kundenserver.de" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1760118AbcLPJVO (ORCPT ); Fri, 16 Dec 2016 04:21:14 -0500 From: Arnd Bergmann To: Mugunthan V N Cc: Arnd Bergmann , Grygorii Strashko , "David S. Miller" , Ivan Khoronzhuk , =?UTF-8?q?Uwe=20Kleine-K=C3=B6nig?= , linux-omap@vger.kernel.org, netdev@vger.kernel.org, linux-kernel@vger.kernel.org Subject: [PATCH net 2/3] cpsw/netcp: davinci_cpdma: sanitize inter-module API Date: Fri, 16 Dec 2016 10:19:58 +0100 Message-Id: <20161216092017.2560717-2-arnd@arndb.de> X-Mailer: git-send-email 2.9.0 In-Reply-To: <20161216092017.2560717-1-arnd@arndb.de> References: <20161216092017.2560717-1-arnd@arndb.de> X-Provags-ID: V03:K0:zDo77/Rvj+NTIbvojoaZuhDwXVk4lb1jsyja/DAuoesMQkiqUGc 4ysQJWbsYTGnTc2CJT7wcU6yG9Sv5XUTJzA0wy/jUXC5nznjvVycmDtBuDHSm1hXYCsMyBH mV94w/3jVMoVi40sLGnMKAnfImwzSBBziftkusG958vIm5P3ZIxXko5mvG+6M05d9nFlfl5 ngzm0NO5F2Tn9UjlURiLw== X-UI-Out-Filterresults: notjunk:1;V01:K0:GzcrrNnEugg=:nkocb7j5cVuqIcNbgdc2Jg Q/tCMTOnwabcWHD7LH2tE9uafhfKOoUBH3EPnODEOV03loDmK9b1RKUWFUuGY+ynWtjZP9FyI kE3Sx0gfPhHCAALM7owGfFQQq2q3LdGjOJhb6y3Mv7K8GyJXfGISQq5vaVKIsiyistVH9JiEy ork8t3Xw1epfaAQ81hwTcEMa9tk8Drm0hpg4K5IxF+1dtZGtzutgcULFqkd5F8cpd5ZKIapow wNGK7Nom7zaqqwK+dsknr6v566yjmhF3pe+rKnXYHWXuKooznbBD/s9v1lWu9y4cNQ22zKX39 1c57ww16O25ksAiFVkwGM3OJ4E3HIXMhC8RBCl8AGJDAci0I+I2Yu1+St0/KeodrTUF9OU5mM BsIHQlmkRPt74dQPFbVgBhwBBgHT3a+w90+c+LUqe+Z+QKFe7UZ8dotzR+6SwX8o/ZYBeBkph 8l2rPVFNKZdCx5AaHzeL7JnWTeRPTrJNzzSUCbI7JcRmkDrav5bcvPTG/M4K1ygTLMj5KrCEb /qMykmk4pFibE86Pnd2T5JRaMMlSdnUSW/MeQwFOPjC3phLyhOP4+CI9Id/EW2fCyYCOXbr5h XftTALI28K33qzXUpI8cpQqM1RVQ3cUXfhXc1OPQDr1Q2YJevqNrWh9yBlkOkAo/FfZdUH8I3 CI6NsjqgG6kQzCMlOlIrqzCiht729FX75WmIUgQzOkyg9H3tklDehXc8pK/It0Q6TxNU= Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Length: 4094 Lines: 122 The davinci_cpdma module is a helper library that is used by the actual device drivers and does nothing by itself, so all its API functions need to be exported. Four new functions were added recently without an export, so now we get a build error: ERROR: "cpdma_chan_set_weight" [drivers/net/ethernet/ti/ti_cpsw.ko] undefined! ERROR: "cpdma_chan_get_rate" [drivers/net/ethernet/ti/ti_cpsw.ko] undefined! ERROR: "cpdma_chan_get_min_rate" [drivers/net/ethernet/ti/ti_cpsw.ko] undefined! ERROR: "cpdma_chan_set_rate" [drivers/net/ethernet/ti/ti_cpsw.ko] undefined! This exports those symbols. After taking a closer look, I found two more global functions in this file that are not exported and not used anywhere, so they can obviously be removed. There is also one function that is only used internally in this module, and should be 'static'. Fixes: 8f32b90981dc ("net: ethernet: ti: davinci_cpdma: add set rate for a channel") Fixes: 0fc6432cc78d ("net: ethernet: ti: davinci_cpdma: add weight function for channels") Signed-off-by: Arnd Bergmann --- drivers/net/ethernet/ti/davinci_cpdma.c | 59 ++++++++++----------------------- drivers/net/ethernet/ti/davinci_cpdma.h | 4 --- 2 files changed, 17 insertions(+), 46 deletions(-) diff --git a/drivers/net/ethernet/ti/davinci_cpdma.c b/drivers/net/ethernet/ti/davinci_cpdma.c index 36518fc5c7cc..b9d40f0cdf6c 100644 --- a/drivers/net/ethernet/ti/davinci_cpdma.c +++ b/drivers/net/ethernet/ti/davinci_cpdma.c @@ -628,6 +628,23 @@ int cpdma_ctlr_destroy(struct cpdma_ctlr *ctlr) } EXPORT_SYMBOL_GPL(cpdma_ctlr_destroy); +static int cpdma_chan_int_ctrl(struct cpdma_chan *chan, bool enable) +{ + unsigned long flags; + + spin_lock_irqsave(&chan->lock, flags); + if (chan->state != CPDMA_STATE_ACTIVE) { + spin_unlock_irqrestore(&chan->lock, flags); + return -EINVAL; + } + + dma_reg_write(chan->ctlr, enable ? chan->int_set : chan->int_clear, + chan->mask); + spin_unlock_irqrestore(&chan->lock, flags); + + return 0; +} + int cpdma_ctlr_int_ctrl(struct cpdma_ctlr *ctlr, bool enable) { unsigned long flags; @@ -1274,46 +1291,4 @@ int cpdma_chan_stop(struct cpdma_chan *chan) } EXPORT_SYMBOL_GPL(cpdma_chan_stop); -int cpdma_chan_int_ctrl(struct cpdma_chan *chan, bool enable) -{ - unsigned long flags; - - spin_lock_irqsave(&chan->lock, flags); - if (chan->state != CPDMA_STATE_ACTIVE) { - spin_unlock_irqrestore(&chan->lock, flags); - return -EINVAL; - } - - dma_reg_write(chan->ctlr, enable ? chan->int_set : chan->int_clear, - chan->mask); - spin_unlock_irqrestore(&chan->lock, flags); - - return 0; -} - -int cpdma_control_get(struct cpdma_ctlr *ctlr, int control) -{ - unsigned long flags; - int ret; - - spin_lock_irqsave(&ctlr->lock, flags); - ret = _cpdma_control_get(ctlr, control); - spin_unlock_irqrestore(&ctlr->lock, flags); - - return ret; -} - -int cpdma_control_set(struct cpdma_ctlr *ctlr, int control, int value) -{ - unsigned long flags; - int ret; - - spin_lock_irqsave(&ctlr->lock, flags); - ret = _cpdma_control_set(ctlr, control, value); - spin_unlock_irqrestore(&ctlr->lock, flags); - - return ret; -} -EXPORT_SYMBOL_GPL(cpdma_control_set); - MODULE_LICENSE("GPL"); diff --git a/drivers/net/ethernet/ti/davinci_cpdma.h b/drivers/net/ethernet/ti/davinci_cpdma.h index 4a167db2abab..36d0a09a3d44 100644 --- a/drivers/net/ethernet/ti/davinci_cpdma.h +++ b/drivers/net/ethernet/ti/davinci_cpdma.h @@ -87,7 +87,6 @@ int cpdma_chan_process(struct cpdma_chan *chan, int quota); int cpdma_ctlr_int_ctrl(struct cpdma_ctlr *ctlr, bool enable); void cpdma_ctlr_eoi(struct cpdma_ctlr *ctlr, u32 value); -int cpdma_chan_int_ctrl(struct cpdma_chan *chan, bool enable); u32 cpdma_ctrl_rxchs_state(struct cpdma_ctlr *ctlr); u32 cpdma_ctrl_txchs_state(struct cpdma_ctlr *ctlr); bool cpdma_check_free_tx_desc(struct cpdma_chan *chan); @@ -111,7 +110,4 @@ enum cpdma_control { CPDMA_RX_BUFFER_OFFSET, /* read-write */ }; -int cpdma_control_get(struct cpdma_ctlr *ctlr, int control); -int cpdma_control_set(struct cpdma_ctlr *ctlr, int control, int value); - #endif -- 2.9.0