From ca8b296409c9800923fd431af15345e4da872bc0 Mon Sep 17 00:00:00 2001 From: H Hartley Sweeten Date: Tue, 9 Apr 2013 16:30:11 -0700 Subject: 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 --- drivers/staging/comedi/drivers.c | 26 ++++++++++++++++++++++---- 1 file changed, 22 insertions(+), 4 deletions(-) (limited to 'drivers/staging/comedi/drivers.c') 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) -- cgit v1.2.3