[PATCH 12/27] tty: hvc: convert to u8 and size_t

2023-12-05 Thread Jiri Slaby (SUSE)
Switch character types to u8 and sizes to size_t. To conform to
characters/sizes in the rest of the tty layer.

Signed-off-by: Jiri Slaby (SUSE) 
Cc: Michael Ellerman 
Cc: Nicholas Piggin 
Cc: Christophe Leroy 
Cc: Amit Shah 
Cc: Arnd Bergmann 
Cc: Paul Walmsley 
Cc: Palmer Dabbelt 
Cc: Albert Ou 
Cc: linuxppc-dev@lists.ozlabs.org
Cc: virtualizat...@lists.linux.dev
Cc: linux-ri...@lists.infradead.org
---
 arch/powerpc/include/asm/hvconsole.h   |  4 ++--
 arch/powerpc/include/asm/hvsi.h| 18 
 arch/powerpc/include/asm/opal.h|  8 +---
 arch/powerpc/platforms/powernv/opal.c  | 14 +++--
 arch/powerpc/platforms/pseries/hvconsole.c |  4 ++--
 drivers/char/virtio_console.c  | 10 -
 drivers/tty/hvc/hvc_console.h  |  4 ++--
 drivers/tty/hvc/hvc_dcc.c  | 24 +++---
 drivers/tty/hvc/hvc_iucv.c | 18 
 drivers/tty/hvc/hvc_opal.c |  5 +++--
 drivers/tty/hvc/hvc_riscv_sbi.c|  9 
 drivers/tty/hvc/hvc_rtas.c | 11 +-
 drivers/tty/hvc/hvc_udbg.c |  9 
 drivers/tty/hvc/hvc_vio.c  | 18 
 drivers/tty/hvc/hvc_xen.c  | 23 +++--
 drivers/tty/hvc/hvsi_lib.c | 20 ++
 16 files changed, 107 insertions(+), 92 deletions(-)

diff --git a/arch/powerpc/include/asm/hvconsole.h 
b/arch/powerpc/include/asm/hvconsole.h
index ccb2034506f0..d841a97010a0 100644
--- a/arch/powerpc/include/asm/hvconsole.h
+++ b/arch/powerpc/include/asm/hvconsole.h
@@ -21,8 +21,8 @@
  * Vio firmware always attempts to fetch MAX_VIO_GET_CHARS chars.  The 'count'
  * parm is included to conform to put_chars() function pointer template
  */
-extern int hvc_get_chars(uint32_t vtermno, char *buf, int count);
-extern int hvc_put_chars(uint32_t vtermno, const char *buf, int count);
+extern ssize_t hvc_get_chars(uint32_t vtermno, u8 *buf, size_t count);
+extern ssize_t hvc_put_chars(uint32_t vtermno, const u8 *buf, size_t count);
 
 /* Provided by HVC VIO */
 void hvc_vio_init_early(void);
diff --git a/arch/powerpc/include/asm/hvsi.h b/arch/powerpc/include/asm/hvsi.h
index 464a7519ed64..9058edcb632b 100644
--- a/arch/powerpc/include/asm/hvsi.h
+++ b/arch/powerpc/include/asm/hvsi.h
@@ -64,7 +64,7 @@ struct hvsi_priv {
unsigned intinbuf_len;  /* data in input buffer */
unsigned char   inbuf[HVSI_INBUF_SIZE];
unsigned intinbuf_cur;  /* Cursor in input buffer */
-   unsigned intinbuf_pktlen;   /* packet length from cursor */
+   size_t  inbuf_pktlen;   /* packet length from cursor */
atomic_tseqno;  /* packet sequence number */
unsigned intopened:1;   /* driver opened */
unsigned intestablished:1;  /* protocol established */
@@ -72,24 +72,26 @@ struct hvsi_priv {
unsigned intmctrl_update:1; /* modem control updated */
unsigned short  mctrl;  /* modem control */
struct tty_struct *tty; /* tty structure */
-   int (*get_chars)(uint32_t termno, char *buf, int count);
-   int (*put_chars)(uint32_t termno, const char *buf, int count);
+   ssize_t (*get_chars)(uint32_t termno, u8 *buf, size_t count);
+   ssize_t (*put_chars)(uint32_t termno, const u8 *buf, size_t count);
uint32_ttermno;
 };
 
 /* hvsi lib functions */
 struct hvc_struct;
 extern void hvsilib_init(struct hvsi_priv *pv,
-int (*get_chars)(uint32_t termno, char *buf, int 
count),
-int (*put_chars)(uint32_t termno, const char *buf,
- int count),
+ssize_t (*get_chars)(uint32_t termno, u8 *buf,
+ size_t count),
+ssize_t (*put_chars)(uint32_t termno, const u8 *buf,
+ size_t count),
 int termno, int is_console);
 extern int hvsilib_open(struct hvsi_priv *pv, struct hvc_struct *hp);
 extern void hvsilib_close(struct hvsi_priv *pv, struct hvc_struct *hp);
 extern int hvsilib_read_mctrl(struct hvsi_priv *pv);
 extern int hvsilib_write_mctrl(struct hvsi_priv *pv, int dtr);
 extern void hvsilib_establish(struct hvsi_priv *pv);
-extern int hvsilib_get_chars(struct hvsi_priv *pv, char *buf, int count);
-extern int hvsilib_put_chars(struct hvsi_priv *pv, const char *buf, int count);
+extern ssize_t hvsilib_get_chars(struct hvsi_priv *pv, u8 *buf, size_t count);
+extern ssize_t hvsilib_put_chars(struct hvsi_priv *pv, const u8 *buf,
+size_t count);
 
 #endif /* _HVSI_H */
diff --git a/arch/powerpc/include/asm/opal.h b/arch/powerpc/include/asm/opal.h
index b66b0c615f4f..af304e6cb486 100644
--- a/arch/powerpc/include/asm/opal.h
+++ b/arch/powerpc

[PATCH 10/27] tty: ehv_bytechan: convert to u8 and size_t

2023-12-05 Thread Jiri Slaby (SUSE)
Switch character types to u8 and sizes to size_t. To conform to
characters/sizes in the rest of the tty layer.

Signed-off-by: Jiri Slaby (SUSE) 
Cc: Laurentiu Tudor 
Cc: linuxppc-dev@lists.ozlabs.org
---
 drivers/tty/ehv_bytechan.c | 11 +--
 1 file changed, 5 insertions(+), 6 deletions(-)

diff --git a/drivers/tty/ehv_bytechan.c b/drivers/tty/ehv_bytechan.c
index cc9f4338da60..69508d7a4135 100644
--- a/drivers/tty/ehv_bytechan.c
+++ b/drivers/tty/ehv_bytechan.c
@@ -49,7 +49,7 @@ struct ehv_bc_data {
unsigned int tx_irq;
 
spinlock_t lock;/* lock for transmit buffer */
-   unsigned char buf[BUF_SIZE];/* transmit circular buffer */
+   u8 buf[BUF_SIZE];   /* transmit circular buffer */
unsigned int head;  /* circular buffer head */
unsigned int tail;  /* circular buffer tail */
 
@@ -138,9 +138,9 @@ static int find_console_handle(void)
 
 static unsigned int local_ev_byte_channel_send(unsigned int handle,
   unsigned int *count,
-  const char *p)
+  const u8 *p)
 {
-   char buffer[EV_BYTE_CHANNEL_MAX_BYTES];
+   u8 buffer[EV_BYTE_CHANNEL_MAX_BYTES];
unsigned int c = *count;
 
/*
@@ -166,7 +166,7 @@ static unsigned int local_ev_byte_channel_send(unsigned int 
handle,
  * has been sent, or if some error has occurred.
  *
  */
-static void byte_channel_spin_send(const char data)
+static void byte_channel_spin_send(const u8 data)
 {
int ret, count;
 
@@ -474,8 +474,7 @@ static ssize_t ehv_bc_tty_write(struct tty_struct *ttys, 
const u8 *s,
 {
struct ehv_bc_data *bc = ttys->driver_data;
unsigned long flags;
-   unsigned int len;
-   unsigned int written = 0;
+   size_t len, written = 0;
 
while (1) {
spin_lock_irqsave(>lock, flags);
-- 
2.43.0



[PATCH 11/17] tty: hvc_console: use flexible array for outbuf

2023-11-21 Thread Jiri Slaby (SUSE)
This means:
* move outbuf to the end of struct hvc_struct and convert from pointer
  to flexible array (the structure is smaller now)
* use struct_size() at the allocation site
* align outbuf in the struct instead of ALIGN() at kzalloc()

And apart from the above, use u8 instead of char (which are the same
thanks to -funsigned-char). The former is now preferred over the latter.

It makes the code easier to understand.

Signed-off-by: Jiri Slaby (SUSE) 
Cc: linuxppc-dev@lists.ozlabs.org
---
 drivers/tty/hvc/hvc_console.c | 4 +---
 drivers/tty/hvc/hvc_console.h | 2 +-
 2 files changed, 2 insertions(+), 4 deletions(-)

diff --git a/drivers/tty/hvc/hvc_console.c b/drivers/tty/hvc/hvc_console.c
index 959fae54ca39..93b613e1f176 100644
--- a/drivers/tty/hvc/hvc_console.c
+++ b/drivers/tty/hvc/hvc_console.c
@@ -922,8 +922,7 @@ struct hvc_struct *hvc_alloc(uint32_t vtermno, int data,
return ERR_PTR(err);
}
 
-   hp = kzalloc(ALIGN(sizeof(*hp), sizeof(long)) + outbuf_size,
-   GFP_KERNEL);
+   hp = kzalloc(struct_size(hp, outbuf, outbuf_size), GFP_KERNEL);
if (!hp)
return ERR_PTR(-ENOMEM);
 
@@ -931,7 +930,6 @@ struct hvc_struct *hvc_alloc(uint32_t vtermno, int data,
hp->data = data;
hp->ops = ops;
hp->outbuf_size = outbuf_size;
-   hp->outbuf = &((char *)hp)[ALIGN(sizeof(*hp), sizeof(long))];
 
tty_port_init(>port);
hp->port.ops = _port_ops;
diff --git a/drivers/tty/hvc/hvc_console.h b/drivers/tty/hvc/hvc_console.h
index 9668f821db01..b718714bf399 100644
--- a/drivers/tty/hvc/hvc_console.h
+++ b/drivers/tty/hvc/hvc_console.h
@@ -37,7 +37,6 @@ struct hvc_struct {
spinlock_t lock;
int index;
int do_wakeup;
-   char *outbuf;
int outbuf_size;
int n_outbuf;
uint32_t vtermno;
@@ -48,6 +47,7 @@ struct hvc_struct {
struct work_struct tty_resize;
struct list_head next;
unsigned long flags;
+   u8 outbuf[] __aligned(sizeof(long));
 };
 
 /* implemented by a low level driver */
-- 
2.42.1



[PATCH 07/17] tty: ehv_bytecha: use memcpy_and_pad() in local_ev_byte_channel_send()

2023-11-21 Thread Jiri Slaby (SUSE)
There is a helper for memcpy(buffer)+memset(the_rest). Use it for
simplicity.

And add a comment why we are doing the copy in the first place.

Signed-off-by: Jiri Slaby (SUSE) 
Cc: Laurentiu Tudor 
Cc: linuxppc-dev@lists.ozlabs.org
---
 drivers/tty/ehv_bytechan.c | 7 +--
 1 file changed, 5 insertions(+), 2 deletions(-)

diff --git a/drivers/tty/ehv_bytechan.c b/drivers/tty/ehv_bytechan.c
index a067628e01c8..cc9f4338da60 100644
--- a/drivers/tty/ehv_bytechan.c
+++ b/drivers/tty/ehv_bytechan.c
@@ -143,9 +143,12 @@ static unsigned int local_ev_byte_channel_send(unsigned 
int handle,
char buffer[EV_BYTE_CHANNEL_MAX_BYTES];
unsigned int c = *count;
 
+   /*
+* ev_byte_channel_send() expects at least EV_BYTE_CHANNEL_MAX_BYTES
+* (16 B) in the buffer. Fake it using a local buffer if needed.
+*/
if (c < sizeof(buffer)) {
-   memcpy(buffer, p, c);
-   memset([c], 0, sizeof(buffer) - c);
+   memcpy_and_pad(buffer, sizeof(buffer), p, c, 0);
p = buffer;
}
return ev_byte_channel_send(handle, count, p);
-- 
2.42.1



[PATCH 00/17] tty: small cleanups and fixes

2023-11-21 Thread Jiri Slaby (SUSE)
This is a series to fix/clean up some obvious issues I revealed during
u8+size_t conversions (to be posted later).

Cc: "David S. Miller" 
Cc: Eric Dumazet 
Cc: Ivan Kokshaysky 
Cc: Jakub Kicinski 
Cc: Jan Kara 
Cc: Laurentiu Tudor 
Cc: linux-al...@vger.kernel.org
Cc: linuxppc-dev@lists.ozlabs.org
Cc: linux-...@vger.kernel.org
Cc: Matt Turner 
Cc: net...@vger.kernel.org
Cc: Paolo Abeni 
Cc: Richard Henderson 

Jiri Slaby (SUSE) (17):
  tty: deprecate tty_write_message()
  tty: remove unneeded mbz from tiocsti()
  tty: fix tty_operations types in documentation
  tty: move locking docs out of Returns for functions in tty.h
  tty: amiserial: return from receive_chars() without goto
  tty: amiserial: use bool and rename overrun flag in receive_chars()
  tty: ehv_bytecha: use memcpy_and_pad() in local_ev_byte_channel_send()
  tty: goldfish: drop unneeded temporary variables
  tty: hso: don't emit load/unload info to the log
  tty: hso: don't initialize global serial_table
  tty: hvc_console: use flexible array for outbuf
  tty: nozomi: remove unused debugging DUMP()
  tty: srmcons: use 'buf' directly in srmcons_do_write()
  tty: srmcons: use 'count' directly in srmcons_do_write()
  tty: srmcons: make srmcons_do_write() return void
  tty: srmcons: switch need_cr to bool
  tty: srmcons: make 'str_cr' const and non-array

 arch/alpha/kernel/srmcons.c   | 29 +
 drivers/net/usb/hso.c | 11 ---
 drivers/tty/amiserial.c   | 10 --
 drivers/tty/ehv_bytechan.c|  7 +--
 drivers/tty/goldfish.c|  7 ++-
 drivers/tty/hvc/hvc_console.c |  4 +---
 drivers/tty/hvc/hvc_console.h |  2 +-
 drivers/tty/nozomi.c  | 18 --
 drivers/tty/tty_io.c  |  8 ++--
 include/linux/tty.h   | 12 +++-
 include/linux/tty_driver.h|  5 ++---
 11 files changed, 41 insertions(+), 72 deletions(-)

-- 
2.42.1



[PATCH 32/36] tty: hvc: convert counts to size_t

2023-08-10 Thread Jiri Slaby (SUSE)
Unify the type of tty_operations::write() counters with the 'count'
parameter. I.e. use size_t for them.

Signed-off-by: Jiri Slaby (SUSE) 
Cc: linuxppc-dev@lists.ozlabs.org
---
 drivers/tty/hvc/hvc_console.c |  2 +-
 drivers/tty/hvc/hvcs.c|  6 +++---
 drivers/tty/hvc/hvsi.c| 10 +-
 3 files changed, 9 insertions(+), 9 deletions(-)

diff --git a/drivers/tty/hvc/hvc_console.c b/drivers/tty/hvc/hvc_console.c
index e93e8072ec86..959fae54ca39 100644
--- a/drivers/tty/hvc/hvc_console.c
+++ b/drivers/tty/hvc/hvc_console.c
@@ -500,7 +500,7 @@ static ssize_t hvc_write(struct tty_struct *tty, const u8 
*buf, size_t count)
 {
struct hvc_struct *hp = tty->driver_data;
unsigned long flags;
-   int rsize, written = 0;
+   size_t rsize, written = 0;
 
/* This write was probably executed during a tty close. */
if (!hp)
diff --git a/drivers/tty/hvc/hvcs.c b/drivers/tty/hvc/hvcs.c
index 1de91fa23b04..d29fdfe9d93d 100644
--- a/drivers/tty/hvc/hvcs.c
+++ b/drivers/tty/hvc/hvcs.c
@@ -1263,8 +1263,8 @@ static ssize_t hvcs_write(struct tty_struct *tty, const 
u8 *buf, size_t count)
unsigned int unit_address;
const unsigned char *charbuf;
unsigned long flags;
-   int total_sent = 0;
-   int tosend = 0;
+   size_t total_sent = 0;
+   size_t tosend = 0;
int result = 0;
 
/*
@@ -1299,7 +1299,7 @@ static ssize_t hvcs_write(struct tty_struct *tty, const 
u8 *buf, size_t count)
unit_address = hvcsd->vdev->unit_address;
 
while (count > 0) {
-   tosend = min_t(unsigned, count,
+   tosend = min_t(size_t, count,
   (HVCS_BUFF_LEN - hvcsd->chars_in_buffer));
/*
 * No more space, this probably means that the last call to
diff --git a/drivers/tty/hvc/hvsi.c b/drivers/tty/hvc/hvsi.c
index c57bd85aa488..a94068bce76f 100644
--- a/drivers/tty/hvc/hvsi.c
+++ b/drivers/tty/hvc/hvsi.c
@@ -909,8 +909,8 @@ static ssize_t hvsi_write(struct tty_struct *tty, const u8 
*source,
 {
struct hvsi_struct *hp = tty->driver_data;
unsigned long flags;
-   int total = 0;
-   int origcount = count;
+   size_t total = 0;
+   size_t origcount = count;
 
spin_lock_irqsave(>lock, flags);
 
@@ -928,7 +928,7 @@ static ssize_t hvsi_write(struct tty_struct *tty, const u8 
*source,
 * will see there is no room in outbuf and return.
 */
while ((count > 0) && (hvsi_write_room(tty) > 0)) {
-   int chunksize = min_t(int, count, hvsi_write_room(tty));
+   size_t chunksize = min_t(size_t, count, hvsi_write_room(tty));
 
BUG_ON(hp->n_outbuf < 0);
memcpy(hp->outbuf + hp->n_outbuf, source, chunksize);
@@ -952,8 +952,8 @@ static ssize_t hvsi_write(struct tty_struct *tty, const u8 
*source,
spin_unlock_irqrestore(>lock, flags);
 
if (total != origcount)
-   pr_debug("%s: wanted %i, only wrote %i\n", __func__, origcount,
-   total);
+   pr_debug("%s: wanted %zu, only wrote %zu\n", __func__,
+origcount, total);
 
return total;
 }
-- 
2.41.0



[PATCH 03/10] tty: hvsi: remove an extra variable from hvsi_write()

2023-07-31 Thread Jiri Slaby (SUSE)
'source' is the same as 'buf'. Rename the parameter ('buf') to
'source' and drop the local variable.

Likely, the two were introduced to have a different type. But 'char' and
'unsigned char' are the same in the kernel for a long time.

Signed-off-by: Jiri Slaby (SUSE) 
Cc: linuxppc-dev@lists.ozlabs.org
---
 drivers/tty/hvc/hvsi.c | 3 +--
 1 file changed, 1 insertion(+), 2 deletions(-)

diff --git a/drivers/tty/hvc/hvsi.c b/drivers/tty/hvc/hvsi.c
index a200d01eceed..c1b8a4fd8b1e 100644
--- a/drivers/tty/hvc/hvsi.c
+++ b/drivers/tty/hvc/hvsi.c
@@ -905,10 +905,9 @@ static unsigned int hvsi_chars_in_buffer(struct tty_struct 
*tty)
 }
 
 static int hvsi_write(struct tty_struct *tty,
-const unsigned char *buf, int count)
+const unsigned char *source, int count)
 {
struct hvsi_struct *hp = tty->driver_data;
-   const char *source = buf;
unsigned long flags;
int total = 0;
int origcount = count;
-- 
2.41.0



[PATCH 3/3] USB: sisusbvga: use module_usb_driver()

2022-12-08 Thread Jiri Slaby (SUSE)
Now, that we only do usb_register() and usb_sisusb_exit() in
module_init() and module_exit() respectivelly, we can simply use
module_usb_driver().

Cc: Michael Ellerman 
Cc: Nicholas Piggin 
Cc: Christophe Leroy 
Cc: Yoshinori Sato 
Cc: Rich Felker 
Cc: Thomas Winischhofer 
Cc: Greg Kroah-Hartman 
Cc: linuxppc-dev@lists.ozlabs.org
Cc: linux...@vger.kernel.org
Cc: linux-...@vger.kernel.org
Signed-off-by: Jiri Slaby (SUSE) 
---
 drivers/usb/misc/sisusbvga/sisusbvga.c | 13 +
 1 file changed, 1 insertion(+), 12 deletions(-)

diff --git a/drivers/usb/misc/sisusbvga/sisusbvga.c 
b/drivers/usb/misc/sisusbvga/sisusbvga.c
index a0d5ba8058f8..654a79fd3231 100644
--- a/drivers/usb/misc/sisusbvga/sisusbvga.c
+++ b/drivers/usb/misc/sisusbvga/sisusbvga.c
@@ -2947,18 +2947,7 @@ static struct usb_driver sisusb_driver = {
.id_table = sisusb_table,
 };
 
-static int __init usb_sisusb_init(void)
-{
-   return usb_register(_driver);
-}
-
-static void __exit usb_sisusb_exit(void)
-{
-   usb_deregister(_driver);
-}
-
-module_init(usb_sisusb_init);
-module_exit(usb_sisusb_exit);
+module_usb_driver(sisusb_driver);
 
 MODULE_AUTHOR("Thomas Winischhofer ");
 MODULE_DESCRIPTION("sisusbvga - Driver for Net2280/SiS315-based USB2VGA 
dongles");
-- 
2.38.1



[PATCH 2/3] USB: sisusbvga: rename sisusb.c to sisusbvga.c

2022-12-08 Thread Jiri Slaby (SUSE)
As it's the only source for the sisusbvga module, there is no need for a
2-steps build.

Cc: Michael Ellerman 
Cc: Nicholas Piggin 
Cc: Christophe Leroy 
Cc: Yoshinori Sato 
Cc: Rich Felker 
Cc: Thomas Winischhofer 
Cc: Greg Kroah-Hartman 
Cc: linuxppc-dev@lists.ozlabs.org
Cc: linux...@vger.kernel.org
Cc: linux-...@vger.kernel.org
Signed-off-by: Jiri Slaby (SUSE) 
---
 drivers/usb/misc/sisusbvga/Makefile  | 2 --
 drivers/usb/misc/sisusbvga/{sisusb.c => sisusbvga.c} | 0
 2 files changed, 2 deletions(-)
 rename drivers/usb/misc/sisusbvga/{sisusb.c => sisusbvga.c} (100%)

diff --git a/drivers/usb/misc/sisusbvga/Makefile 
b/drivers/usb/misc/sisusbvga/Makefile
index 93265de80eb9..28aa1e6ef823 100644
--- a/drivers/usb/misc/sisusbvga/Makefile
+++ b/drivers/usb/misc/sisusbvga/Makefile
@@ -4,5 +4,3 @@
 #
 
 obj-$(CONFIG_USB_SISUSBVGA) += sisusbvga.o
-
-sisusbvga-y := sisusb.o
diff --git a/drivers/usb/misc/sisusbvga/sisusb.c 
b/drivers/usb/misc/sisusbvga/sisusbvga.c
similarity index 100%
rename from drivers/usb/misc/sisusbvga/sisusb.c
rename to drivers/usb/misc/sisusbvga/sisusbvga.c
-- 
2.38.1



[PATCH 1/3] USB: sisusbvga: remove console support

2022-12-08 Thread Jiri Slaby (SUSE)
It was marked as BROKEN since commit 862ee699fefe (USB: sisusbvga: Make
console support depend on BROKEN) 2 years ago. Since noone stepped up to
fix it, remove it completely.

Cc: Michael Ellerman 
Cc: Nicholas Piggin 
Cc: Christophe Leroy 
Cc: Yoshinori Sato 
Cc: Rich Felker 
Cc: Thomas Winischhofer 
Cc: linuxppc-dev@lists.ozlabs.org
Cc: linux...@vger.kernel.org
Cc: linux-...@vger.kernel.org
Signed-off-by: Jiri Slaby (SUSE) 
---
 arch/powerpc/configs/ppc6xx_defconfig|1 -
 arch/sh/configs/landisk_defconfig|1 -
 drivers/usb/misc/sisusbvga/Kconfig   |   34 -
 drivers/usb/misc/sisusbvga/Makefile  |1 -
 drivers/usb/misc/sisusbvga/sisusb.c  |  276 +---
 drivers/usb/misc/sisusbvga/sisusb.h  |   21 -
 drivers/usb/misc/sisusbvga/sisusb_con.c  | 1496 --
 drivers/usb/misc/sisusbvga/sisusb_init.c |  955 --
 drivers/usb/misc/sisusbvga/sisusb_init.h |  180 ---
 9 files changed, 6 insertions(+), 2959 deletions(-)
 delete mode 100644 drivers/usb/misc/sisusbvga/sisusb_con.c
 delete mode 100644 drivers/usb/misc/sisusbvga/sisusb_init.c
 delete mode 100644 drivers/usb/misc/sisusbvga/sisusb_init.h

diff --git a/arch/powerpc/configs/ppc6xx_defconfig 
b/arch/powerpc/configs/ppc6xx_defconfig
index 115d40be5481..110258277959 100644
--- a/arch/powerpc/configs/ppc6xx_defconfig
+++ b/arch/powerpc/configs/ppc6xx_defconfig
@@ -911,7 +911,6 @@ CONFIG_USB_IDMOUSE=m
 CONFIG_USB_FTDI_ELAN=m
 CONFIG_USB_APPLEDISPLAY=m
 CONFIG_USB_SISUSBVGA=m
-CONFIG_USB_SISUSBVGA_CON=y
 CONFIG_USB_LD=m
 CONFIG_USB_TRANCEVIBRATOR=m
 CONFIG_USB_IOWARRIOR=m
diff --git a/arch/sh/configs/landisk_defconfig 
b/arch/sh/configs/landisk_defconfig
index 492a0a2e0e36..7037320b654a 100644
--- a/arch/sh/configs/landisk_defconfig
+++ b/arch/sh/configs/landisk_defconfig
@@ -92,7 +92,6 @@ CONFIG_USB_SERIAL_PL2303=m
 CONFIG_USB_EMI62=m
 CONFIG_USB_EMI26=m
 CONFIG_USB_SISUSBVGA=m
-CONFIG_USB_SISUSBVGA_CON=y
 CONFIG_EXT2_FS=y
 CONFIG_EXT3_FS=y
 # CONFIG_EXT3_DEFAULTS_TO_ORDERED is not set
diff --git a/drivers/usb/misc/sisusbvga/Kconfig 
b/drivers/usb/misc/sisusbvga/Kconfig
index c12cdd015410..42f81c8eaa92 100644
--- a/drivers/usb/misc/sisusbvga/Kconfig
+++ b/drivers/usb/misc/sisusbvga/Kconfig
@@ -3,7 +3,6 @@
 config USB_SISUSBVGA
tristate "USB 2.0 SVGA dongle support (Net2280/SiS315)"
depends on (USB_MUSB_HDRC || USB_EHCI_HCD)
-   select FONT_SUPPORT if USB_SISUSBVGA_CON
help
  Say Y here if you intend to attach a USB2VGA dongle based on a
  Net2280 and a SiS315 chip.
@@ -13,36 +12,3 @@ config USB_SISUSBVGA
 
  To compile this driver as a module, choose M here; the module will be
  called sisusbvga. If unsure, say N.
-
-config USB_SISUSBVGA_CON
-   bool "Text console and mode switching support" if USB_SISUSBVGA
-   depends on VT && BROKEN
-   select FONT_8x16
-   help
- Say Y here if you want a VGA text console via the USB dongle or
- want to support userland applications that utilize the driver's
- display mode switching capabilities.
-
- Note that this console supports VGA/EGA text mode only.
-
- By default, the console part of the driver will not kick in when
- the driver is initialized. If you want the driver to take over
- one or more of the consoles, you need to specify the number of
- the first and last consoles (starting at 1) as driver parameters.
-
- For example, if the driver is compiled as a module:
-
-modprobe sisusbvga first=1 last=5
-
- If you use hotplug, add this to your modutils config files with
- the "options" keyword, such as eg.
-
-options sisusbvga first=1 last=5
-
- If the driver is compiled into the kernel image, the parameters
- must be given in the kernel command like, such as
-
-sisusbvga.first=1 sisusbvga.last=5
-
-
-
diff --git a/drivers/usb/misc/sisusbvga/Makefile 
b/drivers/usb/misc/sisusbvga/Makefile
index 6551bce68ac5..93265de80eb9 100644
--- a/drivers/usb/misc/sisusbvga/Makefile
+++ b/drivers/usb/misc/sisusbvga/Makefile
@@ -6,4 +6,3 @@
 obj-$(CONFIG_USB_SISUSBVGA) += sisusbvga.o
 
 sisusbvga-y := sisusb.o
-sisusbvga-$(CONFIG_USB_SISUSBVGA_CON) += sisusb_con.o sisusb_init.o
diff --git a/drivers/usb/misc/sisusbvga/sisusb.c 
b/drivers/usb/misc/sisusbvga/sisusb.c
index f08de33d9ff3..a0d5ba8058f8 100644
--- a/drivers/usb/misc/sisusbvga/sisusb.c
+++ b/drivers/usb/misc/sisusbvga/sisusb.c
@@ -51,25 +51,11 @@
 #include 
 
 #include "sisusb.h"
-#include "sisusb_init.h"
-
-#ifdef CONFIG_USB_SISUSBVGA_CON
-#include 
-#endif
 
 #define SISUSB_DONTSYNC
 
 /* Forward declarations / clean-up routines */
 
-#ifdef CONFIG_USB_SISUSBVGA_CON
-static int sisusb_first_vc;
-static int sisusb_last_vc;
-module_param_named(first, sisusb_first_vc, int, 0);
-module_param_named(last, sisusb_last_vc, int, 0);
-MODULE