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

Commit d650471a authored by Sam Ravnborg's avatar Sam Ravnborg Committed by David S. Miller
Browse files

sparcspkr: use sbus_*() primitives for IO



The memory are mapped using of_ioremap() which is
an indication this is sbus memory.
Shift all uses of inb/outb to the sbus variants.

The inb/outb methods uses ASI_PHYS_BYPASS_EC_E_L,
whereas sbus_ variants uses ASI_PHYS_BYPASS_EC_E.

The difference is if the reads/writes are done in
native or little endian.
But for byte reads/writes there is no difference
so this does not matter for inb/outb - and this
driver only uses the byte variants.

Signed-off-by: default avatarSam Ravnborg <sam@ravnborg.org>
Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
parent 07d66921
Loading
Loading
Loading
Loading
+11 −11
Original line number Diff line number Diff line
@@ -86,13 +86,13 @@ static int bbc_spkr_event(struct input_dev *dev, unsigned int type, unsigned int
	spin_lock_irqsave(&state->lock, flags);

	if (count) {
		outb(0x01,                 info->regs + 0);
		outb(0x00,                 info->regs + 2);
		outb((count >> 16) & 0xff, info->regs + 3);
		outb((count >>  8) & 0xff, info->regs + 4);
		outb(0x00,                 info->regs + 5);
		sbus_writeb(0x01,                 info->regs + 0);
		sbus_writeb(0x00,                 info->regs + 2);
		sbus_writeb((count >> 16) & 0xff, info->regs + 3);
		sbus_writeb((count >>  8) & 0xff, info->regs + 4);
		sbus_writeb(0x00,                 info->regs + 5);
	} else {
		outb(0x00,                 info->regs + 0);
		sbus_writeb(0x00,                 info->regs + 0);
	}

	spin_unlock_irqrestore(&state->lock, flags);
@@ -123,15 +123,15 @@ static int grover_spkr_event(struct input_dev *dev, unsigned int type, unsigned

	if (count) {
		/* enable counter 2 */
		outb(inb(info->enable_reg) | 3, info->enable_reg);
		sbus_writeb(sbus_readb(info->enable_reg) | 3, info->enable_reg);
		/* set command for counter 2, 2 byte write */
		outb(0xB6, info->freq_regs + 1);
		sbus_writeb(0xB6, info->freq_regs + 1);
		/* select desired HZ */
		outb(count & 0xff, info->freq_regs + 0);
		outb((count >> 8) & 0xff, info->freq_regs + 0);
		sbus_writeb(count & 0xff, info->freq_regs + 0);
		sbus_writeb((count >> 8) & 0xff, info->freq_regs + 0);
	} else {
		/* disable counter 2 */
		outb(inb_p(info->enable_reg) & 0xFC, info->enable_reg);
		sbus_writeb(sbus_readb(info->enable_reg) & 0xFC, info->enable_reg);
	}

	spin_unlock_irqrestore(&state->lock, flags);