Loading arch/powerpc/platforms/iseries/Kconfig +6 −2 Original line number Diff line number Diff line Loading @@ -3,7 +3,11 @@ menu "iSeries device drivers" depends on PPC_ISERIES config VIOCONS tristate "iSeries Virtual Console Support" tristate "iSeries Virtual Console Support (Obsolete)" help This is the old virtual console driver for legacy iSeries. You should use the iSeries Hypervisor Virtual Console support instead. config VIODASD tristate "iSeries Virtual I/O disk support" Loading arch/powerpc/platforms/iseries/dt.c +2 −1 Original line number Diff line number Diff line Loading @@ -298,7 +298,8 @@ static void __init dt_vdevices(struct iseries_flat_dt *dt) dt_prop_u32(dt, "#address-cells", 1); dt_prop_u32(dt, "#size-cells", 0); dt_do_vdevice(dt, "vty", reg, -1, device_type_serial, NULL, 1); dt_do_vdevice(dt, "vty", reg, -1, device_type_serial, "IBM,iSeries-vty", 1); reg++; dt_do_vdevice(dt, "v-scsi", reg, -1, device_type_vscsi, Loading drivers/char/Kconfig +7 −0 Original line number Diff line number Diff line Loading @@ -610,6 +610,13 @@ config HVC_CONSOLE console. This driver allows each pSeries partition to have a console which is accessed via the HMC. config HVC_ISERIES bool "iSeries Hypervisor Virtual Console support" depends on PPC_ISERIES && !VIOCONS select HVC_DRIVER help iSeries machines support a hypervisor virtual console. config HVC_RTAS bool "IBM RTAS Console support" depends on PPC_RTAS Loading drivers/char/Makefile +1 −0 Original line number Diff line number Diff line Loading @@ -42,6 +42,7 @@ obj-$(CONFIG_AMIGA_BUILTIN_SERIAL) += amiserial.o obj-$(CONFIG_SX) += sx.o generic_serial.o obj-$(CONFIG_RIO) += rio/ generic_serial.o obj-$(CONFIG_HVC_CONSOLE) += hvc_vio.o hvsi.o obj-$(CONFIG_HVC_ISERIES) += hvc_iseries.o obj-$(CONFIG_HVC_RTAS) += hvc_rtas.o obj-$(CONFIG_HVC_DRIVER) += hvc_console.o obj-$(CONFIG_RAW_DRIVER) += raw.o Loading drivers/char/hvc_console.c +9 −5 Original line number Diff line number Diff line Loading @@ -80,7 +80,8 @@ struct hvc_struct { struct tty_struct *tty; unsigned int count; int do_wakeup; char outbuf[N_OUTBUF] __ALIGNED__; char *outbuf; int outbuf_size; int n_outbuf; uint32_t vtermno; struct hv_ops *ops; Loading Loading @@ -505,7 +506,7 @@ static int hvc_write(struct tty_struct *tty, const unsigned char *buf, int count if (hp->n_outbuf > 0) hvc_push(hp); while (count > 0 && (rsize = N_OUTBUF - hp->n_outbuf) > 0) { while (count > 0 && (rsize = hp->outbuf_size - hp->n_outbuf) > 0) { if (rsize > count) rsize = count; memcpy(hp->outbuf + hp->n_outbuf, buf, rsize); Loading Loading @@ -538,7 +539,7 @@ static int hvc_write_room(struct tty_struct *tty) if (!hp) return -1; return N_OUTBUF - hp->n_outbuf; return hp->outbuf_size - hp->n_outbuf; } static int hvc_chars_in_buffer(struct tty_struct *tty) Loading Loading @@ -728,12 +729,13 @@ static struct kobj_type hvc_kobj_type = { }; struct hvc_struct __devinit *hvc_alloc(uint32_t vtermno, int irq, struct hv_ops *ops) struct hv_ops *ops, int outbuf_size) { struct hvc_struct *hp; int i; hp = kmalloc(sizeof(*hp), GFP_KERNEL); hp = kmalloc(ALIGN(sizeof(*hp), sizeof(long)) + outbuf_size, GFP_KERNEL); if (!hp) return ERR_PTR(-ENOMEM); Loading @@ -742,6 +744,8 @@ struct hvc_struct __devinit *hvc_alloc(uint32_t vtermno, int irq, hp->vtermno = vtermno; hp->irq = irq; hp->ops = ops; hp->outbuf_size = outbuf_size; hp->outbuf = &((char *)hp)[ALIGN(sizeof(*hp), sizeof(long))]; kobject_init(&hp->kobj); hp->kobj.ktype = &hvc_kobj_type; Loading Loading
arch/powerpc/platforms/iseries/Kconfig +6 −2 Original line number Diff line number Diff line Loading @@ -3,7 +3,11 @@ menu "iSeries device drivers" depends on PPC_ISERIES config VIOCONS tristate "iSeries Virtual Console Support" tristate "iSeries Virtual Console Support (Obsolete)" help This is the old virtual console driver for legacy iSeries. You should use the iSeries Hypervisor Virtual Console support instead. config VIODASD tristate "iSeries Virtual I/O disk support" Loading
arch/powerpc/platforms/iseries/dt.c +2 −1 Original line number Diff line number Diff line Loading @@ -298,7 +298,8 @@ static void __init dt_vdevices(struct iseries_flat_dt *dt) dt_prop_u32(dt, "#address-cells", 1); dt_prop_u32(dt, "#size-cells", 0); dt_do_vdevice(dt, "vty", reg, -1, device_type_serial, NULL, 1); dt_do_vdevice(dt, "vty", reg, -1, device_type_serial, "IBM,iSeries-vty", 1); reg++; dt_do_vdevice(dt, "v-scsi", reg, -1, device_type_vscsi, Loading
drivers/char/Kconfig +7 −0 Original line number Diff line number Diff line Loading @@ -610,6 +610,13 @@ config HVC_CONSOLE console. This driver allows each pSeries partition to have a console which is accessed via the HMC. config HVC_ISERIES bool "iSeries Hypervisor Virtual Console support" depends on PPC_ISERIES && !VIOCONS select HVC_DRIVER help iSeries machines support a hypervisor virtual console. config HVC_RTAS bool "IBM RTAS Console support" depends on PPC_RTAS Loading
drivers/char/Makefile +1 −0 Original line number Diff line number Diff line Loading @@ -42,6 +42,7 @@ obj-$(CONFIG_AMIGA_BUILTIN_SERIAL) += amiserial.o obj-$(CONFIG_SX) += sx.o generic_serial.o obj-$(CONFIG_RIO) += rio/ generic_serial.o obj-$(CONFIG_HVC_CONSOLE) += hvc_vio.o hvsi.o obj-$(CONFIG_HVC_ISERIES) += hvc_iseries.o obj-$(CONFIG_HVC_RTAS) += hvc_rtas.o obj-$(CONFIG_HVC_DRIVER) += hvc_console.o obj-$(CONFIG_RAW_DRIVER) += raw.o Loading
drivers/char/hvc_console.c +9 −5 Original line number Diff line number Diff line Loading @@ -80,7 +80,8 @@ struct hvc_struct { struct tty_struct *tty; unsigned int count; int do_wakeup; char outbuf[N_OUTBUF] __ALIGNED__; char *outbuf; int outbuf_size; int n_outbuf; uint32_t vtermno; struct hv_ops *ops; Loading Loading @@ -505,7 +506,7 @@ static int hvc_write(struct tty_struct *tty, const unsigned char *buf, int count if (hp->n_outbuf > 0) hvc_push(hp); while (count > 0 && (rsize = N_OUTBUF - hp->n_outbuf) > 0) { while (count > 0 && (rsize = hp->outbuf_size - hp->n_outbuf) > 0) { if (rsize > count) rsize = count; memcpy(hp->outbuf + hp->n_outbuf, buf, rsize); Loading Loading @@ -538,7 +539,7 @@ static int hvc_write_room(struct tty_struct *tty) if (!hp) return -1; return N_OUTBUF - hp->n_outbuf; return hp->outbuf_size - hp->n_outbuf; } static int hvc_chars_in_buffer(struct tty_struct *tty) Loading Loading @@ -728,12 +729,13 @@ static struct kobj_type hvc_kobj_type = { }; struct hvc_struct __devinit *hvc_alloc(uint32_t vtermno, int irq, struct hv_ops *ops) struct hv_ops *ops, int outbuf_size) { struct hvc_struct *hp; int i; hp = kmalloc(sizeof(*hp), GFP_KERNEL); hp = kmalloc(ALIGN(sizeof(*hp), sizeof(long)) + outbuf_size, GFP_KERNEL); if (!hp) return ERR_PTR(-ENOMEM); Loading @@ -742,6 +744,8 @@ struct hvc_struct __devinit *hvc_alloc(uint32_t vtermno, int irq, hp->vtermno = vtermno; hp->irq = irq; hp->ops = ops; hp->outbuf_size = outbuf_size; hp->outbuf = &((char *)hp)[ALIGN(sizeof(*hp), sizeof(long))]; kobject_init(&hp->kobj); hp->kobj.ktype = &hvc_kobj_type; Loading