1 // SPDX-License-Identifier: GPL-2.0 2 /* 3 * Wireless USB Host Controller 4 * UWB Protocol Adaptation Layer (PAL) glue. 5 * 6 * Copyright (C) 2008 Cambridge Silicon Radio Ltd. 7 */ 8 #include "wusbhc.h" 9 wusbhc_channel_changed(struct uwb_pal * pal,int channel)10static void wusbhc_channel_changed(struct uwb_pal *pal, int channel) 11 { 12 struct wusbhc *wusbhc = container_of(pal, struct wusbhc, pal); 13 14 dev_dbg(wusbhc->dev, "%s: channel = %d\n", __func__, channel); 15 if (channel < 0) 16 wusbhc_stop(wusbhc); 17 else 18 wusbhc_start(wusbhc); 19 } 20 21 /** 22 * wusbhc_pal_register - register the WUSB HC as a UWB PAL 23 * @wusbhc: the WUSB HC 24 */ wusbhc_pal_register(struct wusbhc * wusbhc)25int wusbhc_pal_register(struct wusbhc *wusbhc) 26 { 27 uwb_pal_init(&wusbhc->pal); 28 29 wusbhc->pal.name = "wusbhc"; 30 wusbhc->pal.device = wusbhc->usb_hcd.self.controller; 31 wusbhc->pal.rc = wusbhc->uwb_rc; 32 wusbhc->pal.channel_changed = wusbhc_channel_changed; 33 34 return uwb_pal_register(&wusbhc->pal); 35 } 36 37 /** 38 * wusbhc_pal_unregister - unregister the WUSB HC as a UWB PAL 39 * @wusbhc: the WUSB HC 40 */ wusbhc_pal_unregister(struct wusbhc * wusbhc)41void wusbhc_pal_unregister(struct wusbhc *wusbhc) 42 { 43 if (wusbhc->uwb_rc) 44 uwb_pal_unregister(&wusbhc->pal); 45 } 46