|
@@ -8,27 +8,27 @@
|
|
|
*
|
|
|
* Otherwise, the following license terms apply:
|
|
|
*
|
|
|
- * * Redistribution and use in source and binary forms, with or without
|
|
|
- * * modification, are permitted provided that the following conditions
|
|
|
- * * are met:
|
|
|
- * * 1) Redistributions of source code must retain the above copyright
|
|
|
- * * notice, this list of conditions and the following disclaimer.
|
|
|
- * * 2) Redistributions in binary form must reproduce the above copyright
|
|
|
- * * notice, this list of conditions and the following disclaimer in the
|
|
|
- * * documentation and/or other materials provided with the distribution.
|
|
|
- * * 3) The name of the author may not be used to endorse or promote products
|
|
|
- * * derived from this software without specific prior written permission.
|
|
|
- * *
|
|
|
- * * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESSED OR
|
|
|
- * * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
|
|
|
- * * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
|
|
|
- * * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
|
|
|
- * * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
|
|
|
- * * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
|
|
|
- * * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
|
|
|
- * * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
|
|
|
- * * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
|
|
|
- * * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
|
|
+ * Redistribution and use in source and binary forms, with or without
|
|
|
+ * modification, are permitted provided that the following conditions
|
|
|
+ * are met:
|
|
|
+ * 1) Redistributions of source code must retain the above copyright
|
|
|
+ * notice, this list of conditions and the following disclaimer.
|
|
|
+ * 2) Redistributions in binary form must reproduce the above copyright
|
|
|
+ * notice, this list of conditions and the following disclaimer in the
|
|
|
+ * documentation and/or other materials provided with the distribution.
|
|
|
+ * 3) The name of the author may not be used to endorse or promote products
|
|
|
+ * derived from this software without specific prior written permission.
|
|
|
+ *
|
|
|
+ * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESSED OR
|
|
|
+ * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
|
|
|
+ * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
|
|
|
+ * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
|
|
|
+ * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
|
|
|
+ * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
|
|
|
+ * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
|
|
|
+ * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
|
|
|
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
|
|
|
+ * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
|
|
*
|
|
|
* Author: Thomas Winischhofer <thomas@winischhofer.net>
|
|
|
*
|
|
@@ -72,7 +72,7 @@
|
|
|
#define SISUSB_IBUF_SIZE 0x01000
|
|
|
#define SISUSB_OBUF_SIZE 0x10000 /* fixed */
|
|
|
|
|
|
-#define NUMOBUFS 8 /* max number of output buffers/output URBs */
|
|
|
+#define NUMOBUFS 8 /* max number of output buffers/output URBs */
|
|
|
|
|
|
/* About endianness:
|
|
|
*
|
|
@@ -103,7 +103,7 @@
|
|
|
|
|
|
struct sisusb_usb_data;
|
|
|
|
|
|
-struct sisusb_urb_context { /* urb->context for outbound bulk URBs */
|
|
|
+struct sisusb_urb_context { /* urb->context for outbound bulk URBs */
|
|
|
struct sisusb_usb_data *sisusb;
|
|
|
int urbindex;
|
|
|
int *actual_length;
|
|
@@ -114,16 +114,16 @@ struct sisusb_usb_data {
|
|
|
struct usb_interface *interface;
|
|
|
struct kref kref;
|
|
|
wait_queue_head_t wait_q; /* for syncind and timeouts */
|
|
|
- struct mutex lock; /* general race avoidance */
|
|
|
- unsigned int ifnum; /* interface number of the USB device */
|
|
|
- int minor; /* minor (for logging clarity) */
|
|
|
- int isopen; /* !=0 if open */
|
|
|
- int present; /* !=0 if device is present on the bus */
|
|
|
- int ready; /* !=0 if device is ready for userland */
|
|
|
+ struct mutex lock; /* general race avoidance */
|
|
|
+ unsigned int ifnum; /* interface number of the USB device */
|
|
|
+ int minor; /* minor (for logging clarity) */
|
|
|
+ int isopen; /* !=0 if open */
|
|
|
+ int present; /* !=0 if device is present on the bus */
|
|
|
+ int ready; /* !=0 if device is ready for userland */
|
|
|
#ifdef SISUSB_OLD_CONFIG_COMPAT
|
|
|
int ioctl32registered;
|
|
|
#endif
|
|
|
- int numobufs; /* number of obufs = number of out urbs */
|
|
|
+ int numobufs; /* number of obufs = number of out urbs */
|
|
|
char *obuf[NUMOBUFS], *ibuf; /* transfer buffers */
|
|
|
int obufsize, ibufsize;
|
|
|
dma_addr_t transfer_dma_out[NUMOBUFS];
|
|
@@ -134,13 +134,13 @@ struct sisusb_usb_data {
|
|
|
unsigned char completein;
|
|
|
struct sisusb_urb_context urbout_context[NUMOBUFS];
|
|
|
unsigned long flagb0;
|
|
|
- unsigned long vrambase; /* framebuffer base */
|
|
|
- unsigned int vramsize; /* framebuffer size (bytes) */
|
|
|
+ unsigned long vrambase; /* framebuffer base */
|
|
|
+ unsigned int vramsize; /* framebuffer size (bytes) */
|
|
|
unsigned long mmiobase;
|
|
|
unsigned int mmiosize;
|
|
|
unsigned long ioportbase;
|
|
|
- unsigned char devinit; /* device initialized? */
|
|
|
- unsigned char gfxinit; /* graphics core initialized? */
|
|
|
+ unsigned char devinit; /* device initialized? */
|
|
|
+ unsigned char gfxinit; /* graphics core initialized? */
|
|
|
unsigned short chipid, chipvendor;
|
|
|
unsigned short chiprevision;
|
|
|
#ifdef INCL_SISUSB_CON
|
|
@@ -150,7 +150,7 @@ struct sisusb_usb_data {
|
|
|
int haveconsole, con_first, con_last;
|
|
|
int havethisconsole[MAX_NR_CONSOLES];
|
|
|
int textmodedestroyed;
|
|
|
- unsigned int sisusb_num_columns; /* real number, not vt's idea */
|
|
|
+ unsigned int sisusb_num_columns; /* real number, not vt's idea */
|
|
|
int cur_start_addr, con_rolled_over;
|
|
|
int sisusb_cursor_loc, bad_cursor_pos;
|
|
|
int sisusb_cursor_size_from;
|
|
@@ -195,7 +195,7 @@ struct sisusb_packet {
|
|
|
unsigned short header;
|
|
|
u32 address;
|
|
|
u32 data;
|
|
|
-} __attribute__((__packed__));
|
|
|
+} __attribute__ ((__packed__));
|
|
|
|
|
|
#define CLEARPACKET(packet) memset(packet, 0, 10)
|
|
|
|
|
@@ -263,36 +263,36 @@ struct sisusb_packet {
|
|
|
|
|
|
/* Structure argument for SISUSB_GET_INFO ioctl */
|
|
|
struct sisusb_info {
|
|
|
- __u32 sisusb_id; /* for identifying sisusb */
|
|
|
-#define SISUSB_ID 0x53495355 /* Identify myself with 'SISU' */
|
|
|
- __u8 sisusb_version;
|
|
|
- __u8 sisusb_revision;
|
|
|
- __u8 sisusb_patchlevel;
|
|
|
- __u8 sisusb_gfxinit; /* graphics core initialized? */
|
|
|
+ __u32 sisusb_id; /* for identifying sisusb */
|
|
|
+#define SISUSB_ID 0x53495355 /* Identify myself with 'SISU' */
|
|
|
+ __u8 sisusb_version;
|
|
|
+ __u8 sisusb_revision;
|
|
|
+ __u8 sisusb_patchlevel;
|
|
|
+ __u8 sisusb_gfxinit; /* graphics core initialized? */
|
|
|
|
|
|
- __u32 sisusb_vrambase;
|
|
|
- __u32 sisusb_mmiobase;
|
|
|
- __u32 sisusb_iobase;
|
|
|
- __u32 sisusb_pcibase;
|
|
|
+ __u32 sisusb_vrambase;
|
|
|
+ __u32 sisusb_mmiobase;
|
|
|
+ __u32 sisusb_iobase;
|
|
|
+ __u32 sisusb_pcibase;
|
|
|
|
|
|
- __u32 sisusb_vramsize; /* framebuffer size in bytes */
|
|
|
+ __u32 sisusb_vramsize; /* framebuffer size in bytes */
|
|
|
|
|
|
- __u32 sisusb_minor;
|
|
|
+ __u32 sisusb_minor;
|
|
|
|
|
|
- __u32 sisusb_fbdevactive; /* != 0 if framebuffer device active */
|
|
|
+ __u32 sisusb_fbdevactive; /* != 0 if framebuffer device active */
|
|
|
|
|
|
- __u32 sisusb_conactive; /* != 0 if console driver active */
|
|
|
+ __u32 sisusb_conactive; /* != 0 if console driver active */
|
|
|
|
|
|
- __u8 sisusb_reserved[28]; /* for future use */
|
|
|
+ __u8 sisusb_reserved[28]; /* for future use */
|
|
|
};
|
|
|
|
|
|
struct sisusb_command {
|
|
|
- __u8 operation; /* see below */
|
|
|
- __u8 data0; /* operation dependent */
|
|
|
- __u8 data1; /* operation dependent */
|
|
|
- __u8 data2; /* operation dependent */
|
|
|
- __u32 data3; /* operation dependent */
|
|
|
- __u32 data4; /* for future use */
|
|
|
+ __u8 operation; /* see below */
|
|
|
+ __u8 data0; /* operation dependent */
|
|
|
+ __u8 data1; /* operation dependent */
|
|
|
+ __u8 data2; /* operation dependent */
|
|
|
+ __u32 data3; /* operation dependent */
|
|
|
+ __u32 data4; /* for future use */
|
|
|
};
|
|
|
|
|
|
#define SUCMD_GET 0x01 /* for all: data0 = index, data3 = port */
|
|
@@ -304,7 +304,7 @@ struct sisusb_command {
|
|
|
|
|
|
#define SUCMD_CLRSCR 0x07 /* data0:1:2 = length, data3 = address */
|
|
|
|
|
|
-#define SUCMD_HANDLETEXTMODE 0x08 /* Reset/destroy text mode */
|
|
|
+#define SUCMD_HANDLETEXTMODE 0x08 /* Reset/destroy text mode */
|
|
|
|
|
|
#define SUCMD_SETMODE 0x09 /* Set a display mode (data3 = SiS mode) */
|
|
|
#define SUCMD_SETVESAMODE 0x0a /* Set a display mode (data3 = VESA mode) */
|
|
@@ -313,6 +313,4 @@ struct sisusb_command {
|
|
|
#define SISUSB_GET_CONFIG_SIZE _IOR(0xF3,0x3E,__u32)
|
|
|
#define SISUSB_GET_CONFIG _IOR(0xF3,0x3F,struct sisusb_info)
|
|
|
|
|
|
-
|
|
|
#endif /* SISUSB_H */
|
|
|
-
|