|
@@ -88,33 +88,31 @@ static DEVICE_ATTR(wusb_trust_timeout, 0644, wusb_trust_timeout_show,
|
|
wusb_trust_timeout_store);
|
|
wusb_trust_timeout_store);
|
|
|
|
|
|
/*
|
|
/*
|
|
- * Show & store the current WUSB CHID
|
|
|
|
|
|
+ * Show the current WUSB CHID.
|
|
*/
|
|
*/
|
|
static ssize_t wusb_chid_show(struct device *dev,
|
|
static ssize_t wusb_chid_show(struct device *dev,
|
|
struct device_attribute *attr, char *buf)
|
|
struct device_attribute *attr, char *buf)
|
|
{
|
|
{
|
|
struct wusbhc *wusbhc = usbhc_dev_to_wusbhc(dev);
|
|
struct wusbhc *wusbhc = usbhc_dev_to_wusbhc(dev);
|
|
|
|
+ const struct wusb_ckhdid *chid;
|
|
ssize_t result = 0;
|
|
ssize_t result = 0;
|
|
|
|
|
|
if (wusbhc->wuie_host_info != NULL)
|
|
if (wusbhc->wuie_host_info != NULL)
|
|
- result += ckhdid_printf(buf, PAGE_SIZE,
|
|
|
|
- &wusbhc->wuie_host_info->CHID);
|
|
|
|
|
|
+ chid = &wusbhc->wuie_host_info->CHID;
|
|
|
|
+ else
|
|
|
|
+ chid = &wusb_ckhdid_zero;
|
|
|
|
+
|
|
|
|
+ result += ckhdid_printf(buf, PAGE_SIZE, chid);
|
|
|
|
+ result += sprintf(buf + result, "\n");
|
|
|
|
+
|
|
return result;
|
|
return result;
|
|
}
|
|
}
|
|
|
|
|
|
/*
|
|
/*
|
|
- * Store a new CHID
|
|
|
|
- *
|
|
|
|
- * This will (FIXME) trigger many changes.
|
|
|
|
- *
|
|
|
|
- * - Send an all zeros CHID and it will stop the controller
|
|
|
|
- * - Send a non-zero CHID and it will start it
|
|
|
|
- * (unless it was started, it will just change the CHID,
|
|
|
|
- * diconnecting all devices first).
|
|
|
|
|
|
+ * Store a new CHID.
|
|
*
|
|
*
|
|
- * So first we scan the MMC we are sent and then we act on it. We
|
|
|
|
- * read it in the same format as we print it, an ASCII string of 16
|
|
|
|
- * hex bytes.
|
|
|
|
|
|
+ * - Write an all zeros CHID and it will stop the controller
|
|
|
|
+ * - Write a non-zero CHID and it will start it.
|
|
*
|
|
*
|
|
* See wusbhc_chid_set() for more info.
|
|
* See wusbhc_chid_set() for more info.
|
|
*/
|
|
*/
|