Merge "msm_serial_hs: Fix return value handling from platform_get_irq_by_name"
diff --git a/drivers/tty/serial/msm_serial_hs.c b/drivers/tty/serial/msm_serial_hs.c
index 6078ef1..a6c60ce 100644
--- a/drivers/tty/serial/msm_serial_hs.c
+++ b/drivers/tty/serial/msm_serial_hs.c
@@ -3301,32 +3301,31 @@
if (is_blsp_uart(msm_uport)) {
core_resource = platform_get_resource_byname(pdev,
IORESOURCE_MEM, "core_mem");
- bam_resource = platform_get_resource_byname(pdev,
- IORESOURCE_MEM, "bam_mem");
- core_irqres = platform_get_irq_byname(pdev, "core_irq");
- bam_irqres = platform_get_irq_byname(pdev, "bam_irq");
- wakeup_irqres = platform_get_irq_byname(pdev, "wakeup_irq");
-
if (!core_resource) {
MSM_HS_ERR("Invalid core HSUART Resources.\n");
return -ENXIO;
}
-
+ bam_resource = platform_get_resource_byname(pdev,
+ IORESOURCE_MEM, "bam_mem");
if (!bam_resource) {
MSM_HS_ERR("Invalid BAM HSUART Resources.\n");
return -ENXIO;
}
-
- if (!core_irqres) {
+ core_irqres = platform_get_irq_byname(pdev, "core_irq");
+ if (core_irqres < 0) {
MSM_HS_ERR("Invalid core irqres Resources.\n");
return -ENXIO;
}
- if (!bam_irqres) {
+ bam_irqres = platform_get_irq_byname(pdev, "bam_irq");
+ if (bam_irqres < 0) {
MSM_HS_ERR("Invalid bam irqres Resources.\n");
return -ENXIO;
}
- if (!wakeup_irqres)
+ wakeup_irqres = platform_get_irq_byname(pdev, "wakeup_irq");
+ if (wakeup_irqres < 0) {
+ wakeup_irqres = -1;
MSM_HS_DBG("Wakeup irq not specified.\n");
+ }
uport->mapbase = core_resource->start;
@@ -3390,11 +3389,6 @@
msm_uport->wakeup.inject_rx = pdata->inject_rx_on_wakeup;
msm_uport->wakeup.rx_to_inject = pdata->rx_to_inject;
- if (unlikely(msm_uport->wakeup.irq < 0)) {
- ret = -ENXIO;
- goto deregister_bus_client;
- }
-
if (is_blsp_uart(msm_uport)) {
msm_uport->bam_tx_ep_pipe_index =
pdata->bam_tx_ep_pipe_index;