From bedbef8ad3e75a304af6361af235302bcc61d06b Mon Sep 17 00:00:00 2001 From: hc <hc@nodka.com> Date: Tue, 14 May 2024 06:39:01 +0000 Subject: [PATCH] 修改内核路径 --- kernel/drivers/net/wireless/rockchip_wlan/rkwifi/bcmdhd/dbus_usb.c | 64 +++++++++++-------------------- 1 files changed, 23 insertions(+), 41 deletions(-) diff --git a/kernel/drivers/net/wireless/rockchip_wlan/rkwifi/bcmdhd/dbus_usb.c b/kernel/drivers/net/wireless/rockchip_wlan/rkwifi/bcmdhd/dbus_usb.c old mode 100644 new mode 100755 index 9683483..edc4109 --- a/kernel/drivers/net/wireless/rockchip_wlan/rkwifi/bcmdhd/dbus_usb.c +++ b/kernel/drivers/net/wireless/rockchip_wlan/rkwifi/bcmdhd/dbus_usb.c @@ -1,3 +1,4 @@ +/* SPDX-License-Identifier: GPL-2.0 */ /* * Dongle BUS interface for USB, OS independent * @@ -54,9 +55,6 @@ #define USB_DEV_ISBAD(u) (u->pub->attrib.devid == 0xDEAD) #define USB_DLGO_SPINWAIT 100 /* wait after DL_GO (ms) */ #define TEST_CHIP 0x4328 - -/* driver info, initialized when bcmsdh_register is called */ -static dbus_driver_t drvinfo = {NULL, NULL, NULL, NULL}; typedef struct { dbus_pub_t *pub; @@ -150,6 +148,10 @@ * attach() is not called at probe and detach() * can be called inside disconnect() */ +static probe_cb_t probe_cb = NULL; +static disconnect_cb_t disconnect_cb = NULL; +static void *probe_arg = NULL; +static void *disc_arg = NULL; static dbus_intf_t *g_dbusintf = NULL; static dbus_intf_t dbus_usb_intf; /** functions called by higher layer DBUS into lower layer */ @@ -159,7 +161,8 @@ */ static void *dbus_usb_attach(dbus_pub_t *pub, void *cbarg, dbus_intf_callbacks_t *cbs); static void dbus_usb_detach(dbus_pub_t *pub, void *info); -static void * dbus_usb_probe(uint16 bus_no, uint16 slot, uint32 hdrlen); +static void * dbus_usb_probe(void *arg, const char *desc, uint32 bustype, + uint16 bus_no, uint16 slot, uint32 hdrlen); /* functions */ @@ -168,10 +171,12 @@ * lower level DBUS functions to call (in both dbus_usb.c and dbus_usb_os.c). */ static void * -dbus_usb_probe(uint16 bus_no, uint16 slot, uint32 hdrlen) +dbus_usb_probe(void *arg, const char *desc, uint32 bustype, uint16 bus_no, + uint16 slot, uint32 hdrlen) { DBUSTRACE(("%s(): \n", __FUNCTION__)); - if (drvinfo.probe) { + if (probe_cb) { + if (g_dbusintf != NULL) { /* First, initialize all lower-level functions as default * so that dbus.c simply calls directly to dbus_usb_os.c. @@ -187,55 +192,32 @@ dbus_usb_intf.dlrun = dbus_usb_dlrun; } - return drvinfo.probe(bus_no, slot, hdrlen); + disc_arg = probe_cb(probe_arg, "DBUS USB", USB_BUS, bus_no, slot, hdrlen); + return disc_arg; } return NULL; } - -static int -dbus_usb_suspend(void *handle) -{ - DBUSTRACE(("%s(): \n", __FUNCTION__)); - - if (drvinfo.suspend) - return drvinfo.suspend(handle); - - return BCME_OK; -} - -static int -dbus_usb_resume(void *handle) -{ - DBUSTRACE(("%s(): \n", __FUNCTION__)); - - if (drvinfo.resume) - drvinfo.resume(handle); - - return 0; -} - -static dbus_driver_t dhd_usb_dbus = { - dbus_usb_probe, - dbus_usb_disconnect, - dbus_usb_suspend, - dbus_usb_resume -}; /** * On return, *intf contains this or lower-level DBUS functions to be called by higher * level (dbus.c) */ int -dbus_bus_register(dbus_driver_t *driver, dbus_intf_t **intf) +dbus_bus_register(int vid, int pid, probe_cb_t prcb, + disconnect_cb_t discb, void *prarg, dbus_intf_t **intf, void *param1, void *param2) { int err; DBUSTRACE(("%s(): \n", __FUNCTION__)); - drvinfo = *driver; + probe_cb = prcb; + disconnect_cb = discb; + probe_arg = prarg; + *intf = &dbus_usb_intf; - err = dbus_bus_osl_register(&dhd_usb_dbus, &g_dbusintf); + err = dbus_bus_osl_register(vid, pid, dbus_usb_probe, + dbus_usb_disconnect, NULL, &g_dbusintf, param1, param2); ASSERT(g_dbusintf); return err; @@ -311,8 +293,8 @@ dbus_usb_disconnect(void *handle) { DBUSTRACE(("%s(): \n", __FUNCTION__)); - if (drvinfo.remove) - drvinfo.remove(handle); + if (disconnect_cb) + disconnect_cb(disc_arg); } /** -- Gitblit v1.6.2