From f56b20666e799ab0967fc07a5718b9bfae6b9ff8 Mon Sep 17 00:00:00 2001 From: Shawn Hoffman Date: Thu, 26 Sep 2024 14:28:31 -0700 Subject: [PATCH 1/2] remove "inline" from "inline __force_inline" see https://github.com/raspberrypi/pico-sdk/issues/659 --- src/pio_usb.c | 2 +- src/pio_usb_host.c | 2 +- src/pio_usb_ll.h | 4 ++-- 3 files changed, 4 insertions(+), 4 deletions(-) diff --git a/src/pio_usb.c b/src/pio_usb.c index e84b6fa..8ac0c0c 100644 --- a/src/pio_usb.c +++ b/src/pio_usb.c @@ -470,7 +470,7 @@ uint8_t __no_inline_not_in_flash_func(pio_usb_ll_encode_tx_data)( return byte_idx; } -static inline __force_inline void prepare_tx_data(endpoint_t *ep) { +static __force_inline void prepare_tx_data(endpoint_t *ep) { uint16_t const xact_len = pio_usb_ll_get_transaction_len(ep); uint8_t buffer[PIO_USB_EP_SIZE + 4]; buffer[0] = USB_SYNC; diff --git a/src/pio_usb_host.c b/src/pio_usb_host.c index 0059ad0..f4d2e23 100644 --- a/src/pio_usb_host.c +++ b/src/pio_usb_host.c @@ -401,7 +401,7 @@ void pio_usb_host_close_device(uint8_t root_idx, uint8_t device_address) { } } -static inline __force_inline endpoint_t * _find_ep(uint8_t root_idx, +static __force_inline endpoint_t * _find_ep(uint8_t root_idx, uint8_t device_address, uint8_t ep_address) { for (int ep_pool_idx = 0; ep_pool_idx < PIO_USB_EP_POOL_CNT; ep_pool_idx++) { endpoint_t *ep = PIO_USB_ENDPOINT(ep_pool_idx); diff --git a/src/pio_usb_ll.h b/src/pio_usb_ll.h index 3b4ac6d..974e210 100644 --- a/src/pio_usb_ll.h +++ b/src/pio_usb_ll.h @@ -154,7 +154,7 @@ bool pio_usb_ll_transfer_start(endpoint_t *ep, uint8_t *buffer, bool pio_usb_ll_transfer_continue(endpoint_t *ep, uint16_t xferred_bytes); void pio_usb_ll_transfer_complete(endpoint_t *ep, uint32_t flag); -static inline __force_inline uint16_t +static __force_inline uint16_t pio_usb_ll_get_transaction_len(endpoint_t *ep) { uint16_t remaining = ep->total_len - ep->actual_len; return (remaining < ep->size) ? remaining : ep->size; @@ -203,7 +203,7 @@ bool pio_usb_device_endpoint_open(uint8_t const *desc_endpoint); bool pio_usb_device_transfer(uint8_t ep_address, uint8_t *buffer, uint16_t buflen); -static inline __force_inline endpoint_t * +static __force_inline endpoint_t * pio_usb_device_get_endpoint_by_address(uint8_t ep_address) { // index = 2*num + dir e.g out1, in1, out2, in2 uint8_t const ep_idx = ((ep_address & 0x7f) << 1) | (ep_address >> 7); From b085b8a66971eacf2b851bf9305ca311855f45d8 Mon Sep 17 00:00:00 2001 From: Shawn Hoffman Date: Thu, 26 Sep 2024 14:31:13 -0700 Subject: [PATCH 2/2] silence "invalid conversion from 'int' to 'port_pin_status_t'" --- src/pio_usb_ll.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/pio_usb_ll.h b/src/pio_usb_ll.h index 974e210..ae41c1b 100644 --- a/src/pio_usb_ll.h +++ b/src/pio_usb_ll.h @@ -140,7 +140,7 @@ pio_usb_bus_get_line_state(root_port_t *root) { uint8_t dp = gpio_get(root->pin_dp) ? 0 : 1; uint8_t dm = gpio_get(root->pin_dm) ? 0 : 1; - return (dm << 1) | dp; + return (port_pin_status_t)((dm << 1) | dp); } //--------------------------------------------------------------------+