clean up
renaming function and variables changing indent size
This commit is contained in:
		| @@ -539,29 +539,29 @@ static void receive_packet(xfer_ctl_t * xfer, /* USB_OTG_OUTEndpointTypeDef * ou | |||||||
| } | } | ||||||
|  |  | ||||||
| // Write a single data packet to EPIN FIFO | // Write a single data packet to EPIN FIFO | ||||||
| static void transmit_fifo_packet(uint8_t fifo_num, uint8_t * src, uint16_t len){ | static void write_fifo_packet(uint8_t fifo_num, uint8_t * src, uint16_t len){ | ||||||
| 	usb_fifo_t tx_fifo = FIFO_BASE(fifo_num); |   usb_fifo_t tx_fifo = FIFO_BASE(fifo_num); | ||||||
|  |  | ||||||
| 	// Pushing full available 32 bit words to fifo |   // Pushing full available 32 bit words to fifo | ||||||
| 	uint16_t full_words = len >> 2; |   uint16_t full_words = len >> 2; | ||||||
| 	for(uint16_t i = 0; i < full_words; i++){ |   for(uint16_t i = 0; i < full_words; i++){ | ||||||
| 		*tx_fifo = (src[3] << 24) | (src[2] << 16) | (src[1] << 8) | src[0]; |     *tx_fifo = (src[3] << 24) | (src[2] << 16) | (src[1] << 8) | src[0]; | ||||||
| 		src += 4; |     src += 4; | ||||||
| 	} |   } | ||||||
|  |  | ||||||
| 	// Write the remaining 1-3 bytes into fifo |   // Write the remaining 1-3 bytes into fifo | ||||||
| 	uint8_t bytes_rem = len & 0x03; |   uint8_t bytes_rem = len & 0x03; | ||||||
| 	if(bytes_rem){ |   if(bytes_rem){ | ||||||
| 		uint32_t tmp_word = 0; |     uint32_t tmp_word = 0; | ||||||
| 		tmp_word |= src[0]; |     tmp_word |= src[0]; | ||||||
| 		if(bytes_rem > 1){ |     if(bytes_rem > 1){ | ||||||
| 			tmp_word |= src[1] << 8; |       tmp_word |= src[1] << 8; | ||||||
| 		} |     } | ||||||
| 		if(bytes_rem > 2){ |     if(bytes_rem > 2){ | ||||||
| 			tmp_word |= src[2] << 16; |       tmp_word |= src[2] << 16; | ||||||
| 		} |     } | ||||||
| 		*tx_fifo = tmp_word; |     *tx_fifo = tmp_word; | ||||||
| 	} |   } | ||||||
| } | } | ||||||
|  |  | ||||||
| static void read_rx_fifo(USB_OTG_OUTEndpointTypeDef * out_ep) { | static void read_rx_fifo(USB_OTG_OUTEndpointTypeDef * out_ep) { | ||||||
| @@ -652,6 +652,7 @@ static void handle_epin_ints(USB_OTG_DeviceTypeDef * dev, USB_OTG_INEndpointType | |||||||
|  |  | ||||||
|     if ( dev->DAINT & (1 << (USB_OTG_DAINT_IEPINT_Pos + n)) ) |     if ( dev->DAINT & (1 << (USB_OTG_DAINT_IEPINT_Pos + n)) ) | ||||||
|     { |     { | ||||||
|  |  | ||||||
|       // IN XFER complete (entire xfer). |       // IN XFER complete (entire xfer). | ||||||
|       if ( in_ep[n].DIEPINT & USB_OTG_DIEPINT_XFRC ) |       if ( in_ep[n].DIEPINT & USB_OTG_DIEPINT_XFRC ) | ||||||
|       { |       { | ||||||
| @@ -667,27 +668,26 @@ static void handle_epin_ints(USB_OTG_DeviceTypeDef * dev, USB_OTG_INEndpointType | |||||||
|         // - 64 bytes or |         // - 64 bytes or | ||||||
|         // - Half of TX FIFO size (configured by DIEPTXF) |         // - Half of TX FIFO size (configured by DIEPTXF) | ||||||
|  |  | ||||||
|       	// Packets to be processed |         uint16_t remaining_packets = (in_ep[n].DIEPTSIZ & USB_OTG_DIEPTSIZ_PKTCNT_Msk) >> USB_OTG_DIEPTSIZ_PKTCNT_Pos; | ||||||
|       	uint16_t tx_packet_amount = (in_ep[n].DIEPTSIZ & USB_OTG_DIEPTSIZ_PKTCNT_Msk) >> USB_OTG_DIEPTSIZ_PKTCNT_Pos; |  | ||||||
|  |  | ||||||
|       	// Process every single packet (only whole packets can be written to fifo) |         // Process every single packet (only whole packets can be written to fifo) | ||||||
|       	for(uint16_t i = 0; i < tx_packet_amount; i++){ |         for(uint16_t i = 0; i < remaining_packets; i++){ | ||||||
|       		// amount of bytes EP still needs to transfer |           uint16_t remaining_bytes = (in_ep[n].DIEPTSIZ & USB_OTG_DIEPTSIZ_XFRSIZ_Msk) >> USB_OTG_DIEPTSIZ_XFRSIZ_Pos; | ||||||
|       		uint16_t tx_remaining = (in_ep[n].DIEPTSIZ & USB_OTG_DIEPTSIZ_XFRSIZ_Msk) >> USB_OTG_DIEPTSIZ_XFRSIZ_Pos; |           // Packet can not be larger than ep max size | ||||||
|       		// Packet can not be larger than ep max size |           uint16_t packet_size = tu_min16(remaining_bytes, xfer->max_size); | ||||||
|       		uint16_t packet_size = (tx_remaining > xfer->max_size) ? xfer->max_size : tx_remaining; |  | ||||||
|  |  | ||||||
|       		// It's only possible to write full packets into FIFO. Therefore DTXFSTS register of current |           // It's only possible to write full packets into FIFO. Therefore DTXFSTS register of current | ||||||
|       		// EP has to be checked if the buffer can take another WHOLE packet |           // EP has to be checked if the buffer can take another WHOLE packet | ||||||
|       		if(packet_size > ((in_ep[n].DTXFSTS & USB_OTG_DTXFSTS_INEPTFSAV_Msk) << 2)){ |           if(packet_size > ((in_ep[n].DTXFSTS & USB_OTG_DTXFSTS_INEPTFSAV_Msk) << 2)){ | ||||||
|       			break; |             break; | ||||||
|       		} |           } | ||||||
|  |  | ||||||
|       		xfer->queued_len = xfer->total_len - tx_remaining; |           // TODO: queued_len can be removed later | ||||||
|  |           xfer->queued_len = xfer->total_len - remaining_bytes; | ||||||
|  |  | ||||||
|       		// Push packet to Tx-FIFO |           // Push packet to Tx-FIFO | ||||||
| 					transmit_fifo_packet(n, (xfer->buffer + xfer->queued_len), packet_size); |           write_fifo_packet(n, (xfer->buffer + xfer->queued_len), packet_size); | ||||||
|       	} |         } | ||||||
|  |  | ||||||
|         // Turn off TXFE if all bytes are written. |         // Turn off TXFE if all bytes are written. | ||||||
|         if (((in_ep[n].DIEPTSIZ & USB_OTG_DIEPTSIZ_XFRSIZ_Msk) >> USB_OTG_DIEPTSIZ_XFRSIZ_Pos) == 0) |         if (((in_ep[n].DIEPTSIZ & USB_OTG_DIEPTSIZ_XFRSIZ_Msk) >> USB_OTG_DIEPTSIZ_XFRSIZ_Pos) == 0) | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user
	 Jan Dümpelmann
					Jan Dümpelmann