static void msm_shutdown(struct uart_port *port) { struct msm_port *msm_port = UART_TO_MSM(port); if (msm_port->uim) msm_write(port, UART_SIM_CFG_SIM_CLK_STOP_HIGH, UART_SIM_CFG); msm_port->imr = 0; msm_write(port, 0, UART_IMR); /* disable interrupts */ free_irq(port->irq, port); #ifdef CONFIG_SERIAL_MSM_RX_WAKEUP if (use_low_power_wakeup(msm_port)) { irq_set_irq_wake(msm_port->wakeup.irq, 0); free_irq(msm_port->wakeup.irq, msm_port); } #endif #ifndef CONFIG_PM_RUNTIME msm_deinit_clock(port); #endif pm_runtime_put_sync(port->dev); }
static int msm_serial_suspend(struct device *dev) { struct uart_port *port; struct platform_device *pdev = to_platform_device(dev); port = get_port_from_line(pdev->id); // BEGIN 0010274: [email protected] 2010-10-27 // Fixed a problem that system don't go to sleep mode. #if defined(CONFIG_MACH_LGE_BRYCE) struct msm_port *msm_port; if(uart_det_flag){ msm_port = UART_TO_MSM(port); clk_disable(msm_port->clk); } #endif // END 0010274: [email protected] 2010-10-27 if (port) { uart_suspend_port(&msm_uart_driver, port); if (is_console(port)) msm_deinit_clock(port); } return 0; }
static int msm_serial_suspend(struct platform_device *pdev, pm_message_t state) { struct uart_port *port; #if defined(CONFIG_KERNEL_MOTOROLA) struct vreg *vreg; #endif /* defined(CONFIG_KERNEL_MOTOROLA) */ port = get_port_from_line(pdev->id); if (port) { uart_suspend_port(&msm_uart_driver, port); if (is_console(port)) msm_deinit_clock(port); #if defined(CONFIG_KERNEL_MOTOROLA) /* Calgary uses VREG_USIM (RUIM1) for the UART3 block */ if (pdev->id == 2) { vreg = vreg_get(0, "ruim"); if (IS_ERR(vreg)) printk(KERN_ERR "%s: vreg get failed for VREG_RUIM\n", __func__); else if (vreg_disable(vreg)) printk(KERN_ERR "%s: vreg disable failed for VREG_RUIM\n", __func__); else printk(KERN_INFO "%s: VREG_RUIM disabled for RS232\n", __func__); } #endif /* defined(CONFIG_KERNEL_MOTOROLA) */ } return 0; }
static int msm_serial_runtime_suspend(struct device *dev) { struct platform_device *pdev = to_platform_device(dev); struct uart_port *port; port = get_port_from_line(pdev->id); dev_dbg(dev, "pm_runtime: suspending\n"); msm_deinit_clock(port); return 0; }
static int msm_serial_suspend(struct platform_device *pdev, pm_message_t state) { struct uart_port *port; port = get_port_from_line(pdev->id); if (port) { uart_suspend_port(&msm_uart_driver, port); if (is_console(port)) msm_deinit_clock(port); } return 0; }
static void msm_shutdown(struct uart_port *port) { struct msm_port *msm_port = UART_TO_MSM(port); clk_enable(msm_port->clk); msm_port->imr = 0; msm_write(port, 0, UART_IMR); /* disable interrupts */ clk_disable(msm_port->clk); free_irq(port->irq, port); #ifdef CONFIG_SERIAL_MSM_RX_WAKEUP if (port->line == 0) free_irq(MSM_GPIO_TO_INT(45), port); #endif msm_deinit_clock(port); }
static void msm_shutdown(struct uart_port *port) { struct msm_port *msm_port = UART_TO_MSM(port); clk_enable(msm_port->clk); msm_port->imr = 0; msm_write(port, 0, UART_IMR); /* disable interrupts */ clk_disable(msm_port->clk); free_irq(port->irq, port); #ifdef CONFIG_SERIAL_MSM_RX_WAKEUP if (use_low_power_wakeup(msm_port)) { set_irq_wake(msm_port->wakeup.irq, 0); free_irq(msm_port->wakeup.irq, msm_port); } #endif msm_deinit_clock(port); }
static int msm_serial_runtime_suspend(struct device *dev) { struct platform_device *pdev = to_platform_device(dev); struct uart_port *port; port = get_port_from_line(pdev->id); // BEGIN 0010274: [email protected] 2010-10-27 // Fixed a problem that system don't go to sleep mode. #if 0 //defined(CONFIG_MACH_LGE_BRYCE) struct msm_port *msm_port; if(uart_det_flag){ msm_port = UART_TO_MSM(port); clk_disable(msm_port->clk); } #endif // END 0010274: [email protected] 2010-10-27 dev_dbg(dev, "pm_runtime: suspending\n"); msm_deinit_clock(port); return 0; }