summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorsakumisu <[email protected]>2022-10-01 16:15:25 +0800
committersakumisu <[email protected]>2022-10-01 16:15:53 +0800
commit212a727cbd39fbd26892e152a6a39e8dbefaee0a (patch)
treebc8c77d00a486e52001c7eb461fd801cafb10ca8
parent972c935eadd071350ade148ea3f7c978a9f78d96 (diff)
remove irq protect when allocates devnum
-rw-r--r--class/cdc/usbh_cdc_acm.c23
-rw-r--r--class/hid/usbh_hid.c26
-rw-r--r--class/hub/usbh_hub.c16
-rw-r--r--class/msc/usbh_msc.c22
-rw-r--r--class/video/usbh_video.c22
5 files changed, 2 insertions, 107 deletions
diff --git a/class/cdc/usbh_cdc_acm.c b/class/cdc/usbh_cdc_acm.c
index bb01e88c..77300a9c 100644
--- a/class/cdc/usbh_cdc_acm.c
+++ b/class/cdc/usbh_cdc_acm.c
@@ -12,50 +12,27 @@ static uint32_t g_devinuse = 0;
USB_NOCACHE_RAM_SECTION USB_MEM_ALIGNX struct cdc_line_coding g_cdc_line_coding;
-/****************************************************************************
- * Name: usbh_cdc_acm_devno_alloc
- *
- * Description:
- * Allocate a unique /dev/ttyACM[n] minor number in the range 0-31.
- *
- ****************************************************************************/
-
static int usbh_cdc_acm_devno_alloc(struct usbh_cdc_acm *cdc_acm_class)
{
- size_t flags;
int devno;
- flags = usb_osal_enter_critical_section();
for (devno = 0; devno < 32; devno++) {
uint32_t bitno = 1 << devno;
if ((g_devinuse & bitno) == 0) {
g_devinuse |= bitno;
cdc_acm_class->minor = devno;
- usb_osal_leave_critical_section(flags);
return 0;
}
}
-
- usb_osal_leave_critical_section(flags);
return -EMFILE;
}
-/****************************************************************************
- * Name: usbh_cdc_acm_devno_free
- *
- * Description:
- * Free a /dev/ttyACM[n] minor number so that it can be used.
- *
- ****************************************************************************/
-
static void usbh_cdc_acm_devno_free(struct usbh_cdc_acm *cdc_acm_class)
{
int devno = cdc_acm_class->minor;
if (devno >= 0 && devno < 32) {
- size_t flags = usb_osal_enter_critical_section();
g_devinuse &= ~(1 << devno);
- usb_osal_leave_critical_section(flags);
}
}
diff --git a/class/hid/usbh_hid.c b/class/hid/usbh_hid.c
index 6794a307..9b726007 100644
--- a/class/hid/usbh_hid.c
+++ b/class/hid/usbh_hid.c
@@ -12,50 +12,28 @@ static uint32_t g_devinuse = 0;
USB_NOCACHE_RAM_SECTION USB_MEM_ALIGNX uint8_t g_hid_buf[128];
-/****************************************************************************
- * Name: usbh_hid_devno_alloc
- *
- * Description:
- * Allocate a unique /dev/input[n] minor number in the range 0-31.
- *
- ****************************************************************************/
-
static int usbh_hid_devno_alloc(struct usbh_hid *hid_class)
{
- size_t flags;
int devno;
- flags = usb_osal_enter_critical_section();
for (devno = 0; devno < 32; devno++) {
uint32_t bitno = 1 << devno;
if ((g_devinuse & bitno) == 0) {
g_devinuse |= bitno;
hid_class->minor = devno;
- usb_osal_leave_critical_section(flags);
return 0;
}
}
- usb_osal_leave_critical_section(flags);
return -EMFILE;
}
-/****************************************************************************
- * Name: usbh_hid_devno_free
- *
- * Description:
- * Free a /dev/input[n] minor number so that it can be used.
- *
- ****************************************************************************/
-
static void usbh_hid_devno_free(struct usbh_hid *hid_class)
{
int devno = hid_class->minor;
if (devno >= 0 && devno < 32) {
- size_t flags = usb_osal_enter_critical_section();
g_devinuse &= ~(1 << devno);
- usb_osal_leave_critical_section(flags);
}
}
@@ -118,9 +96,9 @@ int usbh_hid_set_protocol(struct usbh_hid *hid_class, uint8_t protocol)
setup->bRequest = HID_REQUEST_SET_PROTOCOL;
setup->wValue = protocol;
setup->wIndex = 0;
- setup->wLength = 0;
+ setup->wLength = 0;
- return usbh_control_transfer(hid_class->hport->ep0, setup, NULL);
+ return usbh_control_transfer(hid_class->hport->ep0, setup, NULL);
}
int usbh_hid_connect(struct usbh_hubport *hport, uint8_t intf)
diff --git a/class/hub/usbh_hub.c b/class/hub/usbh_hub.c
index e262f872..4796bf45 100644
--- a/class/hub/usbh_hub.c
+++ b/class/hub/usbh_hub.c
@@ -34,14 +34,6 @@ extern int usbh_enumerate(struct usbh_hubport *hport);
static const char *speed_table[] = { "error-speed", "low-speed", "full-speed", "high-speed", "wireless-speed", "super-speed", "superplus-speed" };
-/****************************************************************************
- * Name: usbh_hub_devno_alloc
- *
- * Description:
- * Allocate a unique /dev/hub[n] minor number in the range 2-31.
- *
- ****************************************************************************/
-
static int usbh_hub_devno_alloc(void)
{
int devno;
@@ -57,14 +49,6 @@ static int usbh_hub_devno_alloc(void)
return -EMFILE;
}
-/****************************************************************************
- * Name: usbh_hub_devno_free
- *
- * Description:
- * Free a /dev/hub[n] minor number so that it can be used.
- *
- ****************************************************************************/
-
static void usbh_hub_devno_free(struct usbh_hub *hub)
{
int devno = hub->index;
diff --git a/class/msc/usbh_msc.c b/class/msc/usbh_msc.c
index d85fbf8c..550b0c25 100644
--- a/class/msc/usbh_msc.c
+++ b/class/msc/usbh_msc.c
@@ -13,50 +13,28 @@ static uint32_t g_devinuse = 0;
USB_NOCACHE_RAM_SECTION USB_MEM_ALIGNX uint8_t g_msc_buf[32];
-/****************************************************************************
- * Name: usbh_msc_devno_alloc
- *
- * Description:
- * Allocate a unique /dev/sd[n] minor number in the range 0-31.
- *
- ****************************************************************************/
-
static int usbh_msc_devno_alloc(struct usbh_msc *msc_class)
{
- size_t flags;
int devno;
- flags = usb_osal_enter_critical_section();
for (devno = 0; devno < 26; devno++) {
uint32_t bitno = 1 << devno;
if ((g_devinuse & bitno) == 0) {
g_devinuse |= bitno;
msc_class->sdchar = 'a' + devno;
- usb_osal_leave_critical_section(flags);
return 0;
}
}
- usb_osal_leave_critical_section(flags);
return -EMFILE;
}
-/****************************************************************************
- * Name: usbh_msc_devno_free
- *
- * Description:
- * Free a /dev/sd[n] minor number so that it can be used.
- *
- ****************************************************************************/
-
static void usbh_msc_devno_free(struct usbh_msc *msc_class)
{
int devno = msc_class->sdchar - 'a';
if (devno >= 0 && devno < 26) {
- size_t flags = usb_osal_enter_critical_section();
g_devinuse &= ~(1 << devno);
- usb_osal_leave_critical_section(flags);
}
}
diff --git a/class/video/usbh_video.c b/class/video/usbh_video.c
index f7e9e510..14fd3786 100644
--- a/class/video/usbh_video.c
+++ b/class/video/usbh_video.c
@@ -70,50 +70,28 @@ static void yuyv2rgb565(void *input, void *output, uint32_t len)
}
}
-/****************************************************************************
- * Name: usbh_video_devno_alloc
- *
- * Description:
- * Allocate a unique /dev/video[n] minor number in the range 0-31.
- *
- ****************************************************************************/
-
static int usbh_video_devno_alloc(struct usbh_video *video_class)
{
- size_t flags;
int devno;
- flags = usb_osal_enter_critical_section();
for (devno = 0; devno < 32; devno++) {
uint32_t bitno = 1 << devno;
if ((g_devinuse & bitno) == 0) {
g_devinuse |= bitno;
video_class->minor = devno;
- usb_osal_leave_critical_section(flags);
return 0;
}
}
- usb_osal_leave_critical_section(flags);
return -EMFILE;
}
-/****************************************************************************
- * Name: usbh_video_devno_free
- *
- * Description:
- * Free a /dev/video[n] minor number so that it can be used.
- *
- ****************************************************************************/
-
static void usbh_video_devno_free(struct usbh_video *video_class)
{
int devno = video_class->minor;
if (devno >= 0 && devno < 32) {
- size_t flags = usb_osal_enter_critical_section();
g_devinuse &= ~(1 << devno);
- usb_osal_leave_critical_section(flags);
}
}