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

Commit a12ded48 authored by Russell King's avatar Russell King Committed by Dmitry Torokhov
Browse files

Input: sa1111ps2 - remove special sa1111 mmio accessors



Remove the special SA1111 MMIO accessors from the SA1111 PS/2 driver
as their definition will be removed shortly.  The SA1111 accessors are
barrierless, so use the _relaxed variants.

Signed-off-by: default avatarRussell King <rmk+kernel@armlinux.org.uk>
Signed-off-by: default avatarDmitry Torokhov <dmitry.torokhov@gmail.com>
parent e6c44368
Loading
Loading
Loading
Loading
+16 −16
Original line number Diff line number Diff line
@@ -66,22 +66,22 @@ static irqreturn_t ps2_rxint(int irq, void *dev_id)
	struct ps2if *ps2if = dev_id;
	unsigned int scancode, flag, status;

	status = sa1111_readl(ps2if->base + PS2STAT);
	status = readl_relaxed(ps2if->base + PS2STAT);
	while (status & PS2STAT_RXF) {
		if (status & PS2STAT_STP)
			sa1111_writel(PS2STAT_STP, ps2if->base + PS2STAT);
			writel_relaxed(PS2STAT_STP, ps2if->base + PS2STAT);

		flag = (status & PS2STAT_STP ? SERIO_FRAME : 0) |
		       (status & PS2STAT_RXP ? 0 : SERIO_PARITY);

		scancode = sa1111_readl(ps2if->base + PS2DATA) & 0xff;
		scancode = readl_relaxed(ps2if->base + PS2DATA) & 0xff;

		if (hweight8(scancode) & 1)
			flag ^= SERIO_PARITY;

		serio_interrupt(ps2if->io, scancode, flag);

		status = sa1111_readl(ps2if->base + PS2STAT);
		status = readl_relaxed(ps2if->base + PS2STAT);
        }

        return IRQ_HANDLED;
@@ -96,12 +96,12 @@ static irqreturn_t ps2_txint(int irq, void *dev_id)
	unsigned int status;

	spin_lock(&ps2if->lock);
	status = sa1111_readl(ps2if->base + PS2STAT);
	status = readl_relaxed(ps2if->base + PS2STAT);
	if (ps2if->head == ps2if->tail) {
		disable_irq_nosync(irq);
		/* done */
	} else if (status & PS2STAT_TXE) {
		sa1111_writel(ps2if->buf[ps2if->tail], ps2if->base + PS2DATA);
		writel_relaxed(ps2if->buf[ps2if->tail], ps2if->base + PS2DATA);
		ps2if->tail = (ps2if->tail + 1) & (sizeof(ps2if->buf) - 1);
	}
	spin_unlock(&ps2if->lock);
@@ -124,8 +124,8 @@ static int ps2_write(struct serio *io, unsigned char val)
	/*
	 * If the TX register is empty, we can go straight out.
	 */
	if (sa1111_readl(ps2if->base + PS2STAT) & PS2STAT_TXE) {
		sa1111_writel(val, ps2if->base + PS2DATA);
	if (readl_relaxed(ps2if->base + PS2STAT) & PS2STAT_TXE) {
		writel_relaxed(val, ps2if->base + PS2DATA);
	} else {
		if (ps2if->head == ps2if->tail)
			enable_irq(ps2if->tx_irq);
@@ -172,7 +172,7 @@ static int ps2_open(struct serio *io)

	enable_irq_wake(ps2if->rx_irq);

	sa1111_writel(PS2CR_ENA, ps2if->base + PS2CR);
	writel_relaxed(PS2CR_ENA, ps2if->base + PS2CR);
	return 0;
}

@@ -180,7 +180,7 @@ static void ps2_close(struct serio *io)
{
	struct ps2if *ps2if = io->port_data;

	sa1111_writel(0, ps2if->base + PS2CR);
	writel_relaxed(0, ps2if->base + PS2CR);

	disable_irq_wake(ps2if->rx_irq);

@@ -200,7 +200,7 @@ static void ps2_clear_input(struct ps2if *ps2if)
	int maxread = 100;

	while (maxread--) {
		if ((sa1111_readl(ps2if->base + PS2DATA) & 0xff) == 0xff)
		if ((readl_relaxed(ps2if->base + PS2DATA) & 0xff) == 0xff)
			break;
	}
}
@@ -210,11 +210,11 @@ static unsigned int ps2_test_one(struct ps2if *ps2if,
{
	unsigned int val;

	sa1111_writel(PS2CR_ENA | mask, ps2if->base + PS2CR);
	writel_relaxed(PS2CR_ENA | mask, ps2if->base + PS2CR);

	udelay(2);

	val = sa1111_readl(ps2if->base + PS2STAT);
	val = readl_relaxed(ps2if->base + PS2STAT);
	return val & (PS2STAT_KBC | PS2STAT_KBD);
}

@@ -245,7 +245,7 @@ static int ps2_test(struct ps2if *ps2if)
		ret = -ENODEV;
	}

	sa1111_writel(0, ps2if->base + PS2CR);
	writel_relaxed(0, ps2if->base + PS2CR);

	return ret;
}
@@ -310,8 +310,8 @@ static int ps2_probe(struct sa1111_dev *dev)
	sa1111_enable_device(ps2if->dev);

	/* Incoming clock is 8MHz */
	sa1111_writel(0, ps2if->base + PS2CLKDIV);
	sa1111_writel(127, ps2if->base + PS2PRECNT);
	writel_relaxed(0, ps2if->base + PS2CLKDIV);
	writel_relaxed(127, ps2if->base + PS2PRECNT);

	/*
	 * Flush any pending input.