From 17828b7413cf114e61c533bbbb136e171ca20271 Mon Sep 17 00:00:00 2001 From: dim Date: Wed, 7 Sep 2016 19:21:52 +0000 Subject: [PATCH] MFC r305388: With clang 3.9.0, compiling uplcom results in the following warnings: sys/dev/usb/serial/uplcom.c:543:29: error: implicit conversion from 'int' to 'int8_t' (aka 'signed char') changes value from 192 to -64 [-Werror,-Wconstant-conversion] if (uplcom_pl2303_do(udev, UT_READ_VENDOR_DEVICE, UPLCOM_SET_REQUEST, 0x8484, 0, 1) ~~~~~~~~~~~~~~~~ ^~~~~~~~~~~~~~~~~~~~~ sys/dev/usb/usb.h:179:53: note: expanded from macro 'UT_READ_VENDOR_DEVICE' #define UT_READ_VENDOR_DEVICE (UT_READ | UT_VENDOR | UT_DEVICE) ~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~ This is because UT_READ is 0x80, so the int8_t argument is wrapped to a negative value. Fix this by using uint8_t instead. Reviewed by: imp, hselasky Differential Revision: https://reviews.freebsd.org/D7776 git-svn-id: svn://svn.freebsd.org/base/stable/10@305557 ccf9f872-aa2e-dd11-9fc8-001c23d0bc1f --- sys/dev/usb/serial/uplcom.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/sys/dev/usb/serial/uplcom.c b/sys/dev/usb/serial/uplcom.c index c194cb7b1..704ee9e1a 100644 --- a/sys/dev/usb/serial/uplcom.c +++ b/sys/dev/usb/serial/uplcom.c @@ -166,7 +166,7 @@ struct uplcom_softc { /* prototypes */ static usb_error_t uplcom_reset(struct uplcom_softc *, struct usb_device *); -static usb_error_t uplcom_pl2303_do(struct usb_device *, int8_t, uint8_t, +static usb_error_t uplcom_pl2303_do(struct usb_device *, uint8_t, uint8_t, uint16_t, uint16_t, uint16_t); static int uplcom_pl2303_init(struct usb_device *, uint8_t); static void uplcom_free(struct ucom_softc *); @@ -513,7 +513,7 @@ uplcom_reset(struct uplcom_softc *sc, struct usb_device *udev) } static usb_error_t -uplcom_pl2303_do(struct usb_device *udev, int8_t req_type, uint8_t request, +uplcom_pl2303_do(struct usb_device *udev, uint8_t req_type, uint8_t request, uint16_t value, uint16_t index, uint16_t length) { struct usb_device_request req; -- 2.45.0