From: H Hartley Sweeten Date: Tue, 9 Apr 2013 23:30:11 +0000 (-0700) Subject: staging: comedi: drivers: refactor comedi_request_region() X-Git-Tag: Ubuntu-5.2.0-15.16~15862^2~119 X-Git-Url: https://git.proxmox.com/?a=commitdiff_plain;h=ca8b296409c9800923fd431af15345e4da872bc0;p=mirror_ubuntu-eoan-kernel.git staging: comedi: drivers: refactor comedi_request_region() Split comedi_request_region() into two helper functions. __comedi_request_region() Handles the actual request_region() call. comedi_request_region() Calls __comedi_request_region() and then sets dev->iobase if the request was successful. This allows drivers to use the __comedi_request_region() helper to handle the request without setting the dev->iobase. Signed-off-by: H Hartley Sweeten Cc: Ian Abbott Cc: Greg Kroah-Hartman Signed-off-by: Greg Kroah-Hartman --- diff --git a/drivers/staging/comedi/comedidev.h b/drivers/staging/comedi/comedidev.h index 77ea9962dd88..26c55569813f 100644 --- a/drivers/staging/comedi/comedidev.h +++ b/drivers/staging/comedi/comedidev.h @@ -348,6 +348,8 @@ void comedi_buf_memcpy_from(struct comedi_async *async, unsigned int offset, int comedi_alloc_subdevices(struct comedi_device *, int); +int __comedi_request_region(struct comedi_device *, + unsigned long start, unsigned long len); int comedi_request_region(struct comedi_device *, unsigned long start, unsigned long len); diff --git a/drivers/staging/comedi/drivers.c b/drivers/staging/comedi/drivers.c index 6456a6422048..c8ebaed5c4b5 100644 --- a/drivers/staging/comedi/drivers.c +++ b/drivers/staging/comedi/drivers.c @@ -338,13 +338,13 @@ static void comedi_report_boards(struct comedi_driver *driv) } /** - * comedi_request_region() - Request an I/O reqion for a legacy driver. + * __comedi_request_region() - Request an I/O reqion for a legacy driver. * @dev: comedi_device struct * @start: base address of the I/O reqion * @len: length of the I/O region */ -int comedi_request_region(struct comedi_device *dev, - unsigned long start, unsigned long len) +int __comedi_request_region(struct comedi_device *dev, + unsigned long start, unsigned long len) { if (!start) { dev_warn(dev->class_dev, @@ -358,10 +358,28 @@ int comedi_request_region(struct comedi_device *dev, dev->board_name, start, len); return -EIO; } - dev->iobase = start; return 0; } +EXPORT_SYMBOL_GPL(__comedi_request_region); + +/** + * comedi_request_region() - Request an I/O reqion for a legacy driver. + * @dev: comedi_device struct + * @start: base address of the I/O reqion + * @len: length of the I/O region + */ +int comedi_request_region(struct comedi_device *dev, + unsigned long start, unsigned long len) +{ + int ret; + + ret = __comedi_request_region(dev, start, len); + if (ret == 0) + dev->iobase = start; + + return ret; +} EXPORT_SYMBOL_GPL(comedi_request_region); int comedi_device_attach(struct comedi_device *dev, struct comedi_devconfig *it)