Kernel: Fix USB FS device default max packet size
Apparently this is a common non spec compliant issue on many controllers/devices. thanks @sasdallas
This commit is contained in:
parent
ee3f10313a
commit
7e472a9c1d
|
@ -40,10 +40,9 @@ namespace Kernel
|
||||||
switch (m_speed_class)
|
switch (m_speed_class)
|
||||||
{
|
{
|
||||||
case USB::SpeedClass::LowSpeed:
|
case USB::SpeedClass::LowSpeed:
|
||||||
case USB::SpeedClass::FullSpeed:
|
|
||||||
m_endpoints[0].max_packet_size = 8;
|
m_endpoints[0].max_packet_size = 8;
|
||||||
is_ls_or_fs_device_on_hs_hub = m_info.parent_hub && (m_info.parent_hub->speed_class() == USB::SpeedClass::HighSpeed);
|
|
||||||
break;
|
break;
|
||||||
|
case USB::SpeedClass::FullSpeed:
|
||||||
case USB::SpeedClass::HighSpeed:
|
case USB::SpeedClass::HighSpeed:
|
||||||
m_endpoints[0].max_packet_size = 64;
|
m_endpoints[0].max_packet_size = 64;
|
||||||
break;
|
break;
|
||||||
|
@ -53,6 +52,16 @@ namespace Kernel
|
||||||
default: ASSERT_NOT_REACHED();
|
default: ASSERT_NOT_REACHED();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
switch (m_speed_class)
|
||||||
|
{
|
||||||
|
case USB::SpeedClass::LowSpeed:
|
||||||
|
case USB::SpeedClass::FullSpeed:
|
||||||
|
is_ls_or_fs_device_on_hs_hub = m_info.parent_hub && (m_info.parent_hub->speed_class() == USB::SpeedClass::HighSpeed);
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
m_input_context = TRY(DMARegion::create(33 * context_size));
|
m_input_context = TRY(DMARegion::create(33 * context_size));
|
||||||
memset(reinterpret_cast<void*>(m_input_context->vaddr()), 0, m_input_context->size());
|
memset(reinterpret_cast<void*>(m_input_context->vaddr()), 0, m_input_context->size());
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue