From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-8.2 required=3.0 tests=HEADER_FROM_DIFFERENT_DOMAINS, INCLUDES_PATCH,MAILING_LIST_MULTI,SIGNED_OFF_BY,SPF_HELO_NONE,SPF_PASS, URIBL_BLOCKED,USER_AGENT_SANE_1 autolearn=ham autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id 3B87EFA372A for ; Wed, 16 Oct 2019 12:27:02 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by mail.kernel.org (Postfix) with ESMTP id 1B3EE21925 for ; Wed, 16 Oct 2019 12:27:02 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S2393038AbfJPM1A (ORCPT ); Wed, 16 Oct 2019 08:27:00 -0400 Received: from kirsty.vergenet.net ([202.4.237.240]:33866 "EHLO kirsty.vergenet.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S2390650AbfJPM1A (ORCPT ); Wed, 16 Oct 2019 08:27:00 -0400 Received: from penelope.horms.nl (ip4dab7138.direct-adsl.nl [77.171.113.56]) by kirsty.vergenet.net (Postfix) with ESMTPA id 530E325AD78; Wed, 16 Oct 2019 23:26:58 +1100 (AEDT) Received: by penelope.horms.nl (Postfix, from userid 7100) id 40923E22490; Wed, 16 Oct 2019 14:26:56 +0200 (CEST) Date: Wed, 16 Oct 2019 14:26:56 +0200 From: Simon Horman To: "Ben Dooks (Codethink)" Cc: linux-kernel@lists.codethink.co.uk, Greg Kroah-Hartman , Yoshihiro Shimoda , Geert Uytterhoeven , linux-usb@vger.kernel.org, linux-kernel@vger.kernel.org Subject: Re: [PATCH] usb: renesas_usbhs: fix __le16 warnings Message-ID: <20191016122656.3jpmes4rnz47u5wc@verge.net.au> References: <20191015155044.11858-1-ben.dooks@codethink.co.uk> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20191015155044.11858-1-ben.dooks@codethink.co.uk> Organisation: Horms Solutions BV User-Agent: NeoMutt/20170113 (1.7.2) Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On Tue, Oct 15, 2019 at 04:50:44PM +0100, Ben Dooks (Codethink) wrote: > Fix the warnings generated by casting to/from __le16 without > using the correct functions. > > Fixes the following sparse warnings: > > drivers/usb/renesas_usbhs/common.c:165:25: warning: incorrect type in assignment (different base types) > drivers/usb/renesas_usbhs/common.c:165:25: expected restricted __le16 [usertype] wValue > drivers/usb/renesas_usbhs/common.c:165:25: got unsigned short > drivers/usb/renesas_usbhs/common.c:166:25: warning: incorrect type in assignment (different base types) > drivers/usb/renesas_usbhs/common.c:166:25: expected restricted __le16 [usertype] wIndex > drivers/usb/renesas_usbhs/common.c:166:25: got unsigned short > drivers/usb/renesas_usbhs/common.c:167:25: warning: incorrect type in assignment (different base types) > drivers/usb/renesas_usbhs/common.c:167:25: expected restricted __le16 [usertype] wLength > drivers/usb/renesas_usbhs/common.c:167:25: got unsigned short > drivers/usb/renesas_usbhs/common.c:173:39: warning: incorrect type in argument 3 (different base types) > drivers/usb/renesas_usbhs/common.c:173:39: expected unsigned short [usertype] data > drivers/usb/renesas_usbhs/common.c:173:39: got restricted __le16 [usertype] wValue > drivers/usb/renesas_usbhs/common.c:174:39: warning: incorrect type in argument 3 (different base types) > drivers/usb/renesas_usbhs/common.c:174:39: expected unsigned short [usertype] data > drivers/usb/renesas_usbhs/common.c:174:39: got restricted __le16 [usertype] wIndex > drivers/usb/renesas_usbhs/common.c:175:39: warning: incorrect type in argument 3 (different base types) > drivers/usb/renesas_usbhs/common.c:175:39: expected unsigned short [usertype] data > > Note. I belive this to be correct, and should be a no-op on arm. > > Signed-off-by: Ben Dooks > --- > Cc: Greg Kroah-Hartman > Cc: Yoshihiro Shimoda > Cc: Simon Horman > Cc: Geert Uytterhoeven > Cc: linux-usb@vger.kernel.org > Cc: linux-kernel@vger.kernel.org > --- > drivers/usb/renesas_usbhs/common.c | 12 ++++++------ > 1 file changed, 6 insertions(+), 6 deletions(-) > > diff --git a/drivers/usb/renesas_usbhs/common.c b/drivers/usb/renesas_usbhs/common.c > index 4c3de777ef6c..a3c30b609433 100644 > --- a/drivers/usb/renesas_usbhs/common.c > +++ b/drivers/usb/renesas_usbhs/common.c > @@ -162,17 +162,17 @@ void usbhs_usbreq_get_val(struct usbhs_priv *priv, struct usb_ctrlrequest *req) > req->bRequest = (val >> 8) & 0xFF; > req->bRequestType = (val >> 0) & 0xFF; > > - req->wValue = usbhs_read(priv, USBVAL); > - req->wIndex = usbhs_read(priv, USBINDX); > - req->wLength = usbhs_read(priv, USBLENG); > + req->wValue = cpu_to_le16(usbhs_read(priv, USBVAL)); > + req->wIndex = cpu_to_le16(usbhs_read(priv, USBINDX)); > + req->wLength = cpu_to_le16(usbhs_read(priv, USBLENG)); usbhs_read is backed by readl which performs a le->cpu conversion. Rather than have a double conversion perhaps it would be nicer to introduce usbhs_read_le. Likewise for write. > } > > void usbhs_usbreq_set_val(struct usbhs_priv *priv, struct usb_ctrlrequest *req) > { > usbhs_write(priv, USBREQ, (req->bRequest << 8) | req->bRequestType); > - usbhs_write(priv, USBVAL, req->wValue); > - usbhs_write(priv, USBINDX, req->wIndex); > - usbhs_write(priv, USBLENG, req->wLength); > + usbhs_write(priv, USBVAL, le16_to_cpu(req->wValue)); > + usbhs_write(priv, USBINDX, le16_to_cpu(req->wIndex)); > + usbhs_write(priv, USBLENG, le16_to_cpu(req->wLength)); > > usbhs_bset(priv, DCPCTR, SUREQ, SUREQ); > } > -- > 2.23.0 >