Update chopstx
This commit is contained in:
@@ -355,7 +355,7 @@ void usb_lld_init (uint8_t feature)
|
||||
dev_p->state = IN_DATA;
|
||||
|
||||
usb_lld_set_configuration (0);
|
||||
usb_lld_set_feature (feature);
|
||||
dev_p->current_feature = feature;
|
||||
|
||||
/* Reset USB */
|
||||
st103_set_cntr (CNTR_FRES);
|
||||
@@ -478,7 +478,7 @@ static int std_get_status (uint8_t req, struct req_args *arg)
|
||||
uint16_t status_info = 0;
|
||||
|
||||
if (arg->value != 0 || arg->len != 2 || (arg->index >> 8) != 0
|
||||
|| (req & REQUEST_DIR) == 0)
|
||||
|| USB_SETUP_SET (req))
|
||||
return USB_UNSUPPORT;
|
||||
|
||||
if (rcp == DEVICE_RECIPIENT)
|
||||
@@ -551,7 +551,7 @@ static int std_clear_feature (uint8_t req, struct req_args *arg)
|
||||
{
|
||||
uint8_t rcp = req & RECIPIENT;
|
||||
|
||||
if ((req & REQUEST_DIR) == 1)
|
||||
if (USB_SETUP_GET (req))
|
||||
return USB_UNSUPPORT;
|
||||
|
||||
if (rcp == DEVICE_RECIPIENT)
|
||||
@@ -601,7 +601,7 @@ static int std_set_feature (uint8_t req, struct req_args *arg)
|
||||
{
|
||||
uint8_t rcp = req & RECIPIENT;
|
||||
|
||||
if ((req & REQUEST_DIR) == 1)
|
||||
if (USB_SETUP_GET (req))
|
||||
return USB_UNSUPPORT;
|
||||
|
||||
if (rcp == DEVICE_RECIPIENT)
|
||||
@@ -654,7 +654,7 @@ static int std_set_address (uint8_t req, struct req_args *arg)
|
||||
{
|
||||
uint8_t rcp = req & RECIPIENT;
|
||||
|
||||
if ((req & REQUEST_DIR) == 1)
|
||||
if (USB_SETUP_GET (req))
|
||||
return USB_UNSUPPORT;
|
||||
|
||||
if (rcp == DEVICE_RECIPIENT && arg->len == 0 && arg->value <= 127
|
||||
@@ -668,7 +668,7 @@ static int std_get_descriptor (uint8_t req, struct req_args *arg)
|
||||
{
|
||||
uint8_t rcp = req & RECIPIENT;
|
||||
|
||||
if ((req & REQUEST_DIR) == 0)
|
||||
if (USB_SETUP_SET (req))
|
||||
return USB_UNSUPPORT;
|
||||
|
||||
return usb_cb_get_descriptor (rcp, (arg->value >> 8),
|
||||
@@ -679,7 +679,7 @@ static int std_get_configuration (uint8_t req, struct req_args *arg)
|
||||
{
|
||||
uint8_t rcp = req & RECIPIENT;
|
||||
|
||||
if ((req & REQUEST_DIR) == 0)
|
||||
if (USB_SETUP_SET (req))
|
||||
return USB_UNSUPPORT;
|
||||
|
||||
if (rcp == DEVICE_RECIPIENT)
|
||||
@@ -692,7 +692,7 @@ static int std_set_configuration (uint8_t req, struct req_args *arg)
|
||||
{
|
||||
uint8_t rcp = req & RECIPIENT;
|
||||
|
||||
if ((req & REQUEST_DIR) == 1)
|
||||
if (USB_SETUP_GET (req))
|
||||
return USB_UNSUPPORT;
|
||||
|
||||
if (rcp == DEVICE_RECIPIENT && arg->index == 0 && arg->len == 0)
|
||||
@@ -705,7 +705,7 @@ static int std_get_interface (uint8_t req, struct req_args *arg)
|
||||
{
|
||||
uint8_t rcp = req & RECIPIENT;
|
||||
|
||||
if ((req & REQUEST_DIR) == 0)
|
||||
if (USB_SETUP_SET (req))
|
||||
return USB_UNSUPPORT;
|
||||
|
||||
if (rcp == INTERFACE_RECIPIENT)
|
||||
@@ -726,7 +726,7 @@ static int std_set_interface (uint8_t req, struct req_args *arg)
|
||||
{
|
||||
uint8_t rcp = req & RECIPIENT;
|
||||
|
||||
if ((req & REQUEST_DIR) == 1 || rcp != INTERFACE_RECIPIENT
|
||||
if (USB_SETUP_GET (req) || rcp != INTERFACE_RECIPIENT
|
||||
|| arg->len != 0 || (arg->index >> 8) != 0
|
||||
|| (arg->value >> 8) != 0 || dev_p->current_configuration == 0)
|
||||
return USB_UNSUPPORT;
|
||||
@@ -843,27 +843,6 @@ static void handle_out0 (void)
|
||||
dev_p->state = STALLED;
|
||||
}
|
||||
|
||||
static void nop_proc (void)
|
||||
{
|
||||
}
|
||||
|
||||
#define WEAK __attribute__ ((weak, alias ("nop_proc")))
|
||||
void WEAK EP1_IN_Callback (void);
|
||||
void WEAK EP2_IN_Callback (void);
|
||||
void WEAK EP3_IN_Callback (void);
|
||||
void WEAK EP4_IN_Callback (void);
|
||||
void WEAK EP5_IN_Callback (void);
|
||||
void WEAK EP6_IN_Callback (void);
|
||||
void WEAK EP7_IN_Callback (void);
|
||||
|
||||
void WEAK EP1_OUT_Callback (void);
|
||||
void WEAK EP2_OUT_Callback (void);
|
||||
void WEAK EP3_OUT_Callback (void);
|
||||
void WEAK EP4_OUT_Callback (void);
|
||||
void WEAK EP5_OUT_Callback (void);
|
||||
void WEAK EP6_OUT_Callback (void);
|
||||
void WEAK EP7_OUT_Callback (void);
|
||||
|
||||
static void
|
||||
usb_handle_transfer (uint16_t istr_value)
|
||||
{
|
||||
@@ -901,37 +880,21 @@ usb_handle_transfer (uint16_t istr_value)
|
||||
if ((ep_value & EP_CTR_RX))
|
||||
{
|
||||
st103_ep_clear_ctr_rx (ep_index);
|
||||
switch ((ep_index - 1))
|
||||
{
|
||||
case 0: EP1_OUT_Callback (); break;
|
||||
case 1: EP2_OUT_Callback (); break;
|
||||
case 2: EP3_OUT_Callback (); break;
|
||||
case 3: EP4_OUT_Callback (); break;
|
||||
case 4: EP5_OUT_Callback (); break;
|
||||
case 5: EP6_OUT_Callback (); break;
|
||||
case 6: EP7_OUT_Callback (); break;
|
||||
}
|
||||
usb_cb_rx_ready (ep_index);
|
||||
}
|
||||
|
||||
if ((ep_value & EP_CTR_TX))
|
||||
{
|
||||
st103_ep_clear_ctr_tx (ep_index);
|
||||
switch ((ep_index - 1))
|
||||
{
|
||||
case 0: EP1_IN_Callback (); break;
|
||||
case 1: EP2_IN_Callback (); break;
|
||||
case 2: EP3_IN_Callback (); break;
|
||||
case 3: EP4_IN_Callback (); break;
|
||||
case 4: EP5_IN_Callback (); break;
|
||||
case 5: EP6_IN_Callback (); break;
|
||||
case 6: EP7_IN_Callback (); break;
|
||||
}
|
||||
usb_cb_tx_done (ep_index);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
void usb_lld_reset (void)
|
||||
void usb_lld_reset (uint8_t feature)
|
||||
{
|
||||
usb_lld_set_configuration (0);
|
||||
dev_p->current_feature = feature;
|
||||
st103_set_btable ();
|
||||
st103_set_daddr (0);
|
||||
}
|
||||
@@ -1038,11 +1001,6 @@ uint8_t usb_lld_current_configuration (void)
|
||||
return dev_p->current_configuration;
|
||||
}
|
||||
|
||||
void usb_lld_set_feature (uint8_t feature)
|
||||
{
|
||||
dev_p->current_feature = feature;
|
||||
}
|
||||
|
||||
void usb_lld_set_data_to_recv (void *p, size_t len)
|
||||
{
|
||||
data_p->addr = p;
|
||||
|
||||
Reference in New Issue
Block a user