Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 45af780a authored by Alexander Shiyan's avatar Alexander Shiyan Committed by Greg Kroah-Hartman
Browse files

serial: imx: Remove init() and exit() platform callbacks

parent 436e4ab5
Loading
Loading
Loading
Loading
+5 −16
Original line number Diff line number Diff line
@@ -128,27 +128,15 @@ static struct platform_device mx31moboard_flash = {
	.num_resources = 1,
};

static int moboard_uart0_init(struct platform_device *pdev)
static void __init moboard_uart0_init(void)
{
	int ret = gpio_request(IOMUX_TO_GPIO(MX31_PIN_CTS1), "uart0-cts-hack");
	if (ret)
		return ret;

	ret = gpio_direction_output(IOMUX_TO_GPIO(MX31_PIN_CTS1), 0);
	if (ret)
	if (!gpio_request(IOMUX_TO_GPIO(MX31_PIN_CTS1), "uart0-cts-hack")) {
		gpio_direction_output(IOMUX_TO_GPIO(MX31_PIN_CTS1), 0);
		gpio_free(IOMUX_TO_GPIO(MX31_PIN_CTS1));

	return ret;
	}

static void moboard_uart0_exit(struct platform_device *pdev)
{
	gpio_free(IOMUX_TO_GPIO(MX31_PIN_CTS1));
}

static const struct imxuart_platform_data uart0_pdata __initconst = {
	.init = moboard_uart0_init,
	.exit = moboard_uart0_exit,
};

static const struct imxuart_platform_data uart4_pdata __initconst = {
@@ -543,6 +531,7 @@ static void __init mx31moboard_init(void)

	imx31_add_imx2_wdt();

	moboard_uart0_init();
	imx31_add_imx_uart0(&uart0_pdata);
	imx31_add_imx_uart4(&uart4_pdata);

+2 −25
Original line number Diff line number Diff line
@@ -1901,7 +1901,6 @@ static void serial_imx_probe_pdata(struct imx_port *sport,
static int serial_imx_probe(struct platform_device *pdev)
{
	struct imx_port *sport;
	struct imxuart_platform_data *pdata;
	void __iomem *base;
	int ret = 0;
	struct resource *res;
@@ -1955,38 +1954,16 @@ static int serial_imx_probe(struct platform_device *pdev)

	imx_ports[sport->port.line] = sport;

	pdata = dev_get_platdata(&pdev->dev);
	if (pdata && pdata->init) {
		ret = pdata->init(pdev);
		if (ret)
			return ret;
	}

	ret = uart_add_one_port(&imx_reg, &sport->port);
	if (ret)
		goto deinit;
	platform_set_drvdata(pdev, sport);

	return 0;
deinit:
	if (pdata && pdata->exit)
		pdata->exit(pdev);
	return ret;
	return uart_add_one_port(&imx_reg, &sport->port);
}

static int serial_imx_remove(struct platform_device *pdev)
{
	struct imxuart_platform_data *pdata;
	struct imx_port *sport = platform_get_drvdata(pdev);

	pdata = dev_get_platdata(&pdev->dev);

	uart_remove_one_port(&imx_reg, &sport->port);

	if (pdata && pdata->exit)
		pdata->exit(pdev);

	return 0;
	return uart_remove_one_port(&imx_reg, &sport->port);
}

static struct platform_driver serial_imx_driver = {
+0 −2
Original line number Diff line number Diff line
@@ -23,8 +23,6 @@
#define IMXUART_IRDA        (1<<1)

struct imxuart_platform_data {
	int (*init)(struct platform_device *pdev);
	void (*exit)(struct platform_device *pdev);
	unsigned int flags;
	void (*irda_enable)(int enable);
	unsigned int irda_inv_rx:1;