All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH 0/2] gnss: add USB support
@ 2021-12-20 11:18 Johan Hovold
  2021-12-20 11:19 ` [PATCH 1/2] " Johan Hovold
                   ` (2 more replies)
  0 siblings, 3 replies; 12+ messages in thread
From: Johan Hovold @ 2021-12-20 11:18 UTC (permalink / raw)
  To: Johan Hovold; +Cc: Marc Ferland, linux-usb, linux-kernel

This series adds a generic driver for GNSS receivers with a USB
interface and a first device id for the Sierra Wireless XM1210 receiver.

Johan


Johan Hovold (2):
  gnss: add USB support
  gnss: usb: add support for Sierra Wireless XM1210

 drivers/gnss/Kconfig  |  11 +++
 drivers/gnss/Makefile |   3 +
 drivers/gnss/usb.c    | 210 ++++++++++++++++++++++++++++++++++++++++++
 3 files changed, 224 insertions(+)
 create mode 100644 drivers/gnss/usb.c

-- 
2.32.0


^ permalink raw reply	[flat|nested] 12+ messages in thread
* Re: [PATCH 1/2] gnss: add USB support
  2021-12-20 11:19 ` [PATCH 1/2] " Johan Hovold
@ 2022-01-07  8:15 ` Dan Carpenter
  0 siblings, 0 replies; 12+ messages in thread
From: kernel test robot @ 2022-01-05 17:20 UTC (permalink / raw)
  To: kbuild

[-- Attachment #1: Type: text/plain, Size: 6163 bytes --]

CC: kbuild-all(a)lists.01.org
In-Reply-To: <20211220111901.23206-2-johan@kernel.org>
References: <20211220111901.23206-2-johan@kernel.org>
TO: Johan Hovold <johan@kernel.org>

Hi Johan,

I love your patch! Perhaps something to improve:

[auto build test WARNING on johan-usb-serial/usb-next]
[also build test WARNING on usb/usb-testing linus/master balbi-usb/testing/next peter-chen-usb/for-usb-next v5.16-rc8]
[cannot apply to next-20220105]
[If your patch is applied to the wrong git tree, kindly drop us a note.
And when submitting patch, we suggest to use '--base' as documented in
https://git-scm.com/docs/git-format-patch]

url:    https://github.com/0day-ci/linux/commits/Johan-Hovold/gnss-add-USB-support/20211220-192005
base:   https://git.kernel.org/pub/scm/linux/kernel/git/johan/usb-serial.git usb-next
:::::: branch date: 2 weeks ago
:::::: commit date: 2 weeks ago
config: parisc-randconfig-m031-20220105 (https://download.01.org/0day-ci/archive/20220106/202201060110.w9bLWwnW-lkp(a)intel.com/config)
compiler: hppa-linux-gcc (GCC) 11.2.0

If you fix the issue, kindly add following tag as appropriate
Reported-by: kernel test robot <lkp@intel.com>
Reported-by: Dan Carpenter <dan.carpenter@oracle.com>

smatch warnings:
drivers/gnss/usb.c:155 gnss_usb_probe() warn: missing error code 'ret'

vim +/ret +155 drivers/gnss/usb.c

8b66a253fbf538 Johan Hovold 2021-12-20  116  
8b66a253fbf538 Johan Hovold 2021-12-20  117  static int gnss_usb_probe(struct usb_interface *intf, const struct usb_device_id *id)
8b66a253fbf538 Johan Hovold 2021-12-20  118  {
8b66a253fbf538 Johan Hovold 2021-12-20  119  	struct usb_device *udev = interface_to_usbdev(intf);
8b66a253fbf538 Johan Hovold 2021-12-20  120  	struct usb_endpoint_descriptor *in, *out;
8b66a253fbf538 Johan Hovold 2021-12-20  121  	struct gnss_device *gdev;
8b66a253fbf538 Johan Hovold 2021-12-20  122  	struct gnss_usb *gusb;
8b66a253fbf538 Johan Hovold 2021-12-20  123  	struct urb *urb;
8b66a253fbf538 Johan Hovold 2021-12-20  124  	size_t buf_len;
8b66a253fbf538 Johan Hovold 2021-12-20  125  	void *buf;
8b66a253fbf538 Johan Hovold 2021-12-20  126  	int ret;
8b66a253fbf538 Johan Hovold 2021-12-20  127  
8b66a253fbf538 Johan Hovold 2021-12-20  128  	ret = usb_find_common_endpoints(intf->cur_altsetting, &in, &out, NULL,
8b66a253fbf538 Johan Hovold 2021-12-20  129  			NULL);
8b66a253fbf538 Johan Hovold 2021-12-20  130  	if (ret)
8b66a253fbf538 Johan Hovold 2021-12-20  131  		return ret;
8b66a253fbf538 Johan Hovold 2021-12-20  132  
8b66a253fbf538 Johan Hovold 2021-12-20  133  	gusb = kzalloc(sizeof(*gusb), GFP_KERNEL);
8b66a253fbf538 Johan Hovold 2021-12-20  134  	if (!gusb)
8b66a253fbf538 Johan Hovold 2021-12-20  135  		return -ENOMEM;
8b66a253fbf538 Johan Hovold 2021-12-20  136  
8b66a253fbf538 Johan Hovold 2021-12-20  137  	gdev = gnss_allocate_device(&intf->dev);
8b66a253fbf538 Johan Hovold 2021-12-20  138  	if (!gdev) {
8b66a253fbf538 Johan Hovold 2021-12-20  139  		ret = -ENOMEM;
8b66a253fbf538 Johan Hovold 2021-12-20  140  		goto err_free_gusb;
8b66a253fbf538 Johan Hovold 2021-12-20  141  	}
8b66a253fbf538 Johan Hovold 2021-12-20  142  
8b66a253fbf538 Johan Hovold 2021-12-20  143  	gdev->ops = &gnss_usb_gnss_ops;
8b66a253fbf538 Johan Hovold 2021-12-20  144  	gdev->type = GNSS_TYPE_NMEA;
8b66a253fbf538 Johan Hovold 2021-12-20  145  	gnss_set_drvdata(gdev, gusb);
8b66a253fbf538 Johan Hovold 2021-12-20  146  
8b66a253fbf538 Johan Hovold 2021-12-20  147  	urb = usb_alloc_urb(0, GFP_KERNEL);
8b66a253fbf538 Johan Hovold 2021-12-20  148  	if (!urb)
8b66a253fbf538 Johan Hovold 2021-12-20  149  		goto err_put_gdev;
8b66a253fbf538 Johan Hovold 2021-12-20  150  
8b66a253fbf538 Johan Hovold 2021-12-20  151  	buf_len = max(usb_endpoint_maxp(in), GNSS_USB_READ_BUF_LEN);
8b66a253fbf538 Johan Hovold 2021-12-20  152  
8b66a253fbf538 Johan Hovold 2021-12-20  153  	buf = kzalloc(buf_len, GFP_KERNEL);
8b66a253fbf538 Johan Hovold 2021-12-20  154  	if (!buf)
8b66a253fbf538 Johan Hovold 2021-12-20 @155  		goto err_free_urb;
8b66a253fbf538 Johan Hovold 2021-12-20  156  
8b66a253fbf538 Johan Hovold 2021-12-20  157  	usb_fill_bulk_urb(urb, udev,
8b66a253fbf538 Johan Hovold 2021-12-20  158  			usb_rcvbulkpipe(udev, usb_endpoint_num(in)),
8b66a253fbf538 Johan Hovold 2021-12-20  159  			buf, buf_len, gnss_usb_rx_complete, gusb);
8b66a253fbf538 Johan Hovold 2021-12-20  160  
8b66a253fbf538 Johan Hovold 2021-12-20  161  	gusb->intf = intf;
8b66a253fbf538 Johan Hovold 2021-12-20  162  	gusb->udev = udev;
8b66a253fbf538 Johan Hovold 2021-12-20  163  	gusb->gdev = gdev;
8b66a253fbf538 Johan Hovold 2021-12-20  164  	gusb->read_urb = urb;
8b66a253fbf538 Johan Hovold 2021-12-20  165  	gusb->write_pipe = usb_sndbulkpipe(udev, usb_endpoint_num(out));
8b66a253fbf538 Johan Hovold 2021-12-20  166  
8b66a253fbf538 Johan Hovold 2021-12-20  167  	ret = gnss_register_device(gdev);
8b66a253fbf538 Johan Hovold 2021-12-20  168  	if (ret)
8b66a253fbf538 Johan Hovold 2021-12-20  169  		goto err_free_buf;
8b66a253fbf538 Johan Hovold 2021-12-20  170  
8b66a253fbf538 Johan Hovold 2021-12-20  171  	usb_set_intfdata(intf, gusb);
8b66a253fbf538 Johan Hovold 2021-12-20  172  
8b66a253fbf538 Johan Hovold 2021-12-20  173  	return 0;
8b66a253fbf538 Johan Hovold 2021-12-20  174  
8b66a253fbf538 Johan Hovold 2021-12-20  175  err_free_buf:
8b66a253fbf538 Johan Hovold 2021-12-20  176  	kfree(buf);
8b66a253fbf538 Johan Hovold 2021-12-20  177  err_free_urb:
8b66a253fbf538 Johan Hovold 2021-12-20  178  	usb_free_urb(urb);
8b66a253fbf538 Johan Hovold 2021-12-20  179  err_put_gdev:
8b66a253fbf538 Johan Hovold 2021-12-20  180  	gnss_put_device(gdev);
8b66a253fbf538 Johan Hovold 2021-12-20  181  err_free_gusb:
8b66a253fbf538 Johan Hovold 2021-12-20  182  	kfree(gusb);
8b66a253fbf538 Johan Hovold 2021-12-20  183  
8b66a253fbf538 Johan Hovold 2021-12-20  184  	return ret;
8b66a253fbf538 Johan Hovold 2021-12-20  185  }
8b66a253fbf538 Johan Hovold 2021-12-20  186  

---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all(a)lists.01.org

^ permalink raw reply	[flat|nested] 12+ messages in thread

end of thread, other threads:[~2022-01-07  9:15 UTC | newest]

Thread overview: 12+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2021-12-20 11:18 [PATCH 0/2] gnss: add USB support Johan Hovold
2021-12-20 11:19 ` [PATCH 1/2] " Johan Hovold
2021-12-20 12:49   ` Oliver Neukum
2021-12-20 13:25     ` Johan Hovold
2021-12-20 11:19 ` [PATCH 2/2] gnss: usb: add support for Sierra Wireless XM1210 Johan Hovold
2021-12-20 19:04   ` Marc Ferland
2021-12-22 14:46     ` Johan Hovold
2021-12-20 12:15 ` [PATCH 0/2] gnss: add USB support Greg KH
2021-12-20 13:26   ` Johan Hovold
2022-01-05 17:20 [PATCH 1/2] " kernel test robot
2022-01-07  8:15 ` Dan Carpenter
2022-01-07  9:15 ` Johan Hovold

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.