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@xxxxxxxxxxxxxxxxxxx> Cc: Ian Abbott <abbotti@xxxxxxxxx> Cc: Greg Kroah-Hartman <gregkh@xxxxxxxxxxxxxxxxxxx> --- drivers/staging/comedi/comedidev.h | 2 ++ drivers/staging/comedi/drivers.c | 26 ++++++++++++++++++++++---- 2 files changed, 24 insertions(+), 4 deletions(-) diff --git a/drivers/staging/comedi/comedidev.h b/drivers/staging/comedi/comedidev.h index 77ea996..26c5556 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 6456a64..c8ebaed 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) -- 1.8.1.4 _______________________________________________ devel mailing list devel@xxxxxxxxxxxxxxxxxxxxxx http://driverdev.linuxdriverproject.org/mailman/listinfo/devel