Skip to content

Commit f6bfa5e

Browse files
committed
Use USBD_MAX_BULK_MPS as filebuf size
1 parent 744545d commit f6bfa5e

File tree

3 files changed

+9
-7
lines changed

3 files changed

+9
-7
lines changed

subsys/usb/device_next/class/usbd_mtp.c

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -78,7 +78,7 @@ static uint8_t mtp_get_bulk_in(struct usbd_class_data *const c_data)
7878
struct mtp_data *data = usbd_class_get_private(c_data);
7979
struct mtp_desc *desc = data->desc;
8080

81-
if (usbd_bus_speed(uds_ctx) == USBD_SPEED_HS) {
81+
if (USBD_SUPPORTS_HIGH_SPEED && usbd_bus_speed(uds_ctx) == USBD_SPEED_HS) {
8282
return desc->if0_hs_in_ep.bEndpointAddress;
8383
}
8484

@@ -91,7 +91,7 @@ static uint8_t mtp_get_bulk_out(struct usbd_class_data *const c_data)
9191
struct mtp_data *data = usbd_class_get_private(c_data);
9292
struct mtp_desc *desc = data->desc;
9393

94-
if (usbd_bus_speed(uds_ctx) == USBD_SPEED_HS) {
94+
if (USBD_SUPPORTS_HIGH_SPEED && usbd_bus_speed(uds_ctx) == USBD_SPEED_HS) {
9595
return desc->if0_hs_out_ep.bEndpointAddress;
9696
}
9797

@@ -278,7 +278,7 @@ static void *usbd_mtp_get_desc(struct usbd_class_data *const c_data, const enum
278278
{
279279
struct mtp_data *data = usbd_class_get_private(c_data);
280280

281-
if (speed == USBD_SPEED_HS) {
281+
if (USBD_SUPPORTS_HIGH_SPEED && speed == USBD_SPEED_HS) {
282282
return data->hs_desc;
283283
}
284284

@@ -296,7 +296,7 @@ static int usbd_mtp_init(struct usbd_class_data *c_data)
296296
struct usb_device_descriptor *usbd_desc;
297297
struct usbd_desc_node *d_nd;
298298

299-
if (usbd_bus_speed(c_data->uds_ctx) == USBD_SPEED_HS) {
299+
if (USBD_SUPPORTS_HIGH_SPEED && usbd_bus_speed(c_data->uds_ctx) == USBD_SPEED_HS) {
300300
usbd_desc = (struct usb_device_descriptor *)c_data->uds_ctx->hs_desc;
301301
} else {
302302
usbd_desc = (struct usb_device_descriptor *)c_data->uds_ctx->fs_desc;

subsys/usb/device_next/class/usbd_mtp_class.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -845,7 +845,7 @@ static int continue_get_object(struct mtp_context* ctx, struct net_buf *buf)
845845
int len = 0;
846846
int total_chunks = (ctx->filestate.total_size / ctx->max_packet_size);
847847

848-
memset(ctx->filebuf, 0x00, 512);
848+
memset(ctx->filebuf, 0x00, sizeof(ctx->filebuf));
849849

850850
if (ctx->filestate.transferred < ctx->filestate.total_size) {
851851
len = MIN(ctx->max_packet_size,

subsys/usb/device_next/class/usbd_mtp_class.h

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@
88
#define _USBD_MTP_CLASS_H_
99

1010
#include <zephyr/fs/fs.h>
11+
#include <zephyr/usb/usbd.h>
1112

1213
#define MAX_PATH_LEN 128
1314

@@ -16,7 +17,7 @@ struct mtp_context {
1617
bool op_canceled;
1718
uint16_t op_code;
1819
uint16_t max_packet_size;
19-
uint8_t filebuf[512]; /* Use USB HS MPS */
20+
uint8_t filebuf[USBD_MAX_BULK_MPS];
2021

2122
bool more_data_needed;
2223
int (*extra_data_fn)(struct mtp_context* ctx, struct net_buf *buf_in);
@@ -37,7 +38,8 @@ bool mtp_packet_pending(struct mtp_context* ctx);
3738
bool mtp_needs_more_data(struct mtp_context* ctx, struct net_buf *buf);
3839
int mtp_commands_handler(struct mtp_context* ctx, struct net_buf *buf_in, struct net_buf *buf);
3940
int mtp_get_pending_packet(struct mtp_context* ctx, struct net_buf *buf);
40-
int mtp_control_handler(struct mtp_context* ctx, uint8_t request, struct net_buf *buf);
41+
int mtp_control_to_host(struct mtp_context* ctx, uint8_t request, struct net_buf *const buf);
42+
int mtp_control_to_dev(struct mtp_context* ctx, uint8_t request, const struct net_buf *const buf);
4143
int mtp_init(struct mtp_context* ctx, const char *manufacturer, const char *model, const char *device_version, const char *serial_number);
4244

4345
#endif /* _USBD_MTP_CLASS_H_ */

0 commit comments

Comments
 (0)