@@ -31,6 +31,7 @@
#include <linux/slab.h>
#include <linux/input/tegra_kbc.h>
#include <linux/clk/tegra.h>
+#include <linux/err.h>
#define KBC_MAX_DEBOUNCE_CNT 0x3ffu
@@ -615,10 +616,10 @@ static int tegra_kbc_probe(struct platform_device *pdev)
spin_lock_init(&kbc->lock);
setup_timer(&kbc->timer, tegra_kbc_keypress_timer, (unsigned long)kbc);
- kbc->mmio = devm_request_and_ioremap(&pdev->dev, res);
- if (!kbc->mmio) {
+ kbc->mmio = devm_ioremap_resource(&pdev->dev, res);
+ if (IS_ERR(kbc->mmio)) {
dev_err(&pdev->dev, "Cannot request memregion/iomap address\n");
- return -EBUSY;
+ return PTR_ERR(kbc->mmio);
}
kbc->clk = devm_clk_get(&pdev->dev, NULL);
Use the newly introduced devm_ioremap_resource() instead of devm_request_and_ioremap() which provides more consistent error handling. Signed-off-by: Sachin Kamat <sachin.kamat@linaro.org> Cc: Dmitry Torokhov <dmitry.torokhov@gmail.com> Cc: linux-input@vger.kernel.org --- Compile tested with linux-next (20130128) --- drivers/input/keyboard/tegra-kbc.c | 7 ++++--- 1 files changed, 4 insertions(+), 3 deletions(-)