Hi >The cdns3_host_init() function is declared in host-export.h >but host.c does not include it. Add the include to have >the declaration present (and remove the declaration of >cdns3_host_exit which is now static). > >Fixes the following sparse warning: > >drivers/usb/cdns3/host.c:58:5: warning: symbol 'cdns3_host_init' was not declared. Should it be static? It should not be static. It can be called from core.c file. It will be static only if CONFIG_USB_CDNS3_HOST will not be defined and in this case function will be declared in host-export.h as static. For me It doesn't look like driver issue. > >Signed-off-by: Ben Dooks <ben.dooks@xxxxxxxxxxxxxxx> >--- >Cc: Greg Kroah-Hartman <gregkh@xxxxxxxxxxxxxxxxxxx> >Cc: Pawel Laszczak <pawell@xxxxxxxxxxx> >Cc: Felipe Balbi <felipe.balbi@xxxxxxxxxxxxxxx> >Cc: "Ben Dooks >Cc: linux-usb@xxxxxxxxxxxxxxx >--- > drivers/usb/cdns3/host-export.h | 1 - > drivers/usb/cdns3/host.c | 1 + > 2 files changed, 1 insertion(+), 1 deletion(-) > >diff --git a/drivers/usb/cdns3/host-export.h b/drivers/usb/cdns3/host-export.h >index b498a170b7e8..ae11810f8826 100644 >--- a/drivers/usb/cdns3/host-export.h >+++ b/drivers/usb/cdns3/host-export.h >@@ -12,7 +12,6 @@ > #ifdef CONFIG_USB_CDNS3_HOST > > int cdns3_host_init(struct cdns3 *cdns); >-void cdns3_host_exit(struct cdns3 *cdns); We can't remove this function. It is invoked from core.c file. If you remove it from host-export.h then it will not be visible there. > > #else > >diff --git a/drivers/usb/cdns3/host.c b/drivers/usb/cdns3/host.c >index 2733a8f71fcd..ad788bf3fe4f 100644 >--- a/drivers/usb/cdns3/host.c >+++ b/drivers/usb/cdns3/host.c >@@ -12,6 +12,7 @@ > #include <linux/platform_device.h> > #include "core.h" > #include "drd.h" >+#include "host-export.h" Why host must include this file. This function is implemented In host.c and is used only in core.c file . > > static int __cdns3_host_init(struct cdns3 *cdns) > { >-- >2.23.0 Regards, Pawell