diff options
author | H Hartley Sweeten <hsweeten@visionengravers.com> | 2013-04-09 16:30:11 -0700 |
---|---|---|
committer | Greg Kroah-Hartman <gregkh@linuxfoundation.org> | 2013-04-11 12:47:53 -0700 |
commit | ca8b296409c9800923fd431af15345e4da872bc0 (patch) | |
tree | 129ee516c6e2bc28dd5a6e595e3ce2b09f95ebb1 /drivers/staging/comedi/drivers.c | |
parent | 07e6ed00b15f7c7fd856857e5edf4d890c3a94e9 (diff) |
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 <hsweeten@visionengravers.com>
Cc: Ian Abbott <abbotti@mev.co.uk>
Cc: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Diffstat (limited to 'drivers/staging/comedi/drivers.c')
-rw-r--r-- | drivers/staging/comedi/drivers.c | 26 |
1 files changed, 22 insertions, 4 deletions
diff --git a/drivers/staging/comedi/drivers.c b/drivers/staging/comedi/drivers.c index 6456a642204..c8ebaed5c4b 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) |