/* Handler called for class specific interface request. 
This function handles all class specific interface requests to a usb audio device. If request is properly server then 0 is returned. Returning negative value will lead to set stall on IN EP0. */
static int handle_interface_req(struct usb_setup_packet *pSetup, int32_t *len, uint8_t **data)
/* Handler called for class specific interface request. 
This function handles all class specific interface requests to a usb audio device. If request is properly server then 0 is returned. Returning negative value will lead to set stall on IN EP0. */
static int handle_interface_req(struct usb_setup_packet *pSetup, int32_t *len, uint8_t **data)
{
	struct usb_audio_dev_data *audio_dev_data;
	struct usb_audio_entity entity;
	uint8_t entity_id = ((pSetup->wIndex) >> 8) & 0xFF;
	entity.id = entity_id;
	audio_dev_data = get_audio_dev_data_by_entity(&entity);
	if (audio_dev_data == NULL) {
		LOG_ERR("Device data not found for entity %u", entity.id);
		return -ENODEV;
	}
	switch (entity.subtype) {
	case USB_AUDIO_FEATURE_UNIT:
		return handle_feature_unit_req(audio_dev_data,
					       pSetup, len, data);
	default:
		LOG_INF("Currently not supported");
		return -ENODEV;
	}
	return 0;
}