remove irq protect when allocates devnum

This commit is contained in:
sakumisu
2022-10-01 16:15:25 +08:00
parent 972c935ead
commit 212a727cbd
5 changed files with 2 additions and 107 deletions

View File

@@ -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);
}
}