On Tue, Apr 11, 2017 at 9:45 PM, Andy Shevchenko <andy.shevchenko@xxxxxxxxx> wrote: > On Mon, Apr 10, 2017 at 7:04 AM, Joel Stanley <joel@xxxxxxxxx> wrote: >> From: Jeremy Kerr <jk@xxxxxxxxxx> >> >> This change adds a driver for the 16550-based Aspeed virtual UART >> device. We use a similar process to the of_serial driver for device >> probe, but expose some VUART-specific functions through sysfs too. >> >> The VUART is two UART 'front ends' connected by their FIFO (no actual >> serial line in between). One is on the BMC side (management controller) >> and one is on the host CPU side. >> >> This driver is for the BMC side. The sysfs files allow the BMC >> userspace, which owns the system configuration policy, to specify at >> what IO port and interrupt number the host side will appear to the host >> on the Host <-> BMC LPC bus. It could be different on a different system >> (though most of them use 3f8/4). >> >> OpenPOWER host firmware doesn't like it when the host-side of the >> VUART's FIFO is not drained. This driver only disables host TX discard >> mode when the port is in use. We set the VUART enabled bit when we bind >> to the device, and clear it on unbind. >> >> We don't want to do this on open/release, as the host may be using this >> bit to configure serial output modes, which is independent of whether >> the devices has been opened by BMC userspace. > >> +static void aspeed_vuart_set_enabled(struct aspeed_vuart *vuart, bool enabled) >> +{ >> + u8 reg; >> + >> + reg = readb(vuart->regs + ASPEED_VUART_GCRA); > >> + reg &= ~ASPEED_VUART_GCRA_VUART_EN; >> + if (enabled) >> + reg |= ASPEED_VUART_GCRA_VUART_EN; > > Usually the pattern is > if (something) > set x bit; > else > clear x bit; > > It would make it one operation in any case and a bit more understandable. I have made these ordering changes you requested. > >> + port.port.irq = irq_of_parse_and_map(np, 0); > > The benefit of use platform_get_irq() is to get rid of some OF specific headers. It's an of driver, and this function does exactly what we require. I have left it in for v4. Cheers, Joel -- To unsubscribe from this list: send the line "unsubscribe devicetree" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html