hc
2024-01-03 2f7c68cb55ecb7331f2381deb497c27155f32faf
kernel/drivers/usb/misc/sisusbvga/sisusb.c
....@@ -53,7 +53,7 @@
5353 #include "sisusb.h"
5454 #include "sisusb_init.h"
5555
56
-#ifdef INCL_SISUSB_CON
56
+#ifdef CONFIG_USB_SISUSBVGA_CON
5757 #include <linux/font.h>
5858 #endif
5959
....@@ -61,7 +61,7 @@
6161
6262 /* Forward declarations / clean-up routines */
6363
64
-#ifdef INCL_SISUSB_CON
64
+#ifdef CONFIG_USB_SISUSBVGA_CON
6565 static int sisusb_first_vc;
6666 static int sisusb_last_vc;
6767 module_param_named(first, sisusb_first_vc, int, 0);
....@@ -1198,7 +1198,7 @@
11981198
11991199 /* High level: Gfx (indexed) register access */
12001200
1201
-#ifdef INCL_SISUSB_CON
1201
+#ifdef CONFIG_USB_SISUSBVGA_CON
12021202 int sisusb_setreg(struct sisusb_usb_data *sisusb, u32 port, u8 data)
12031203 {
12041204 return sisusb_write_memio_byte(sisusb, SISUSB_TYPE_IO, port, data);
....@@ -1272,7 +1272,7 @@
12721272
12731273 /* Write/read video ram */
12741274
1275
-#ifdef INCL_SISUSB_CON
1275
+#ifdef CONFIG_USB_SISUSBVGA_CON
12761276 int sisusb_writeb(struct sisusb_usb_data *sisusb, u32 adr, u8 data)
12771277 {
12781278 return sisusb_write_memio_byte(sisusb, SISUSB_TYPE_MEM, adr, data);
....@@ -1283,7 +1283,7 @@
12831283 return sisusb_read_memio_byte(sisusb, SISUSB_TYPE_MEM, adr, data);
12841284 }
12851285
1286
-int sisusb_copy_memory(struct sisusb_usb_data *sisusb, char *src,
1286
+int sisusb_copy_memory(struct sisusb_usb_data *sisusb, u8 *src,
12871287 u32 dest, int length)
12881288 {
12891289 size_t dummy;
....@@ -1307,7 +1307,7 @@
13071307 #ifdef SISUSBENDIANTEST
13081308 static void sisusb_testreadwrite(struct sisusb_usb_data *sisusb)
13091309 {
1310
- static char srcbuffer[] = { 0x11, 0x22, 0x33, 0x44, 0x55, 0x66, 0x77 };
1310
+ static u8 srcbuffer[] = { 0x11, 0x22, 0x33, 0x44, 0x55, 0x66, 0x77 };
13111311 char destbuffer[10];
13121312 int i, j;
13131313
....@@ -1747,10 +1747,10 @@
17471747 return ret;
17481748 }
17491749
1750
-static int sisusb_set_default_mode(struct sisusb_usb_data *sisusb,
1750
+static void sisusb_set_default_mode(struct sisusb_usb_data *sisusb,
17511751 int touchengines)
17521752 {
1753
- int ret = 0, i, j, modex, bpp, du;
1753
+ int i, j, modex, bpp, du;
17541754 u8 sr31, cr63, tmp8;
17551755 static const char attrdata[] = {
17561756 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07,
....@@ -1873,8 +1873,6 @@
18731873 }
18741874
18751875 SETIREG(SISCR, 0x34, 0x44); /* we just set std mode #44 */
1876
-
1877
- return ret;
18781876 }
18791877
18801878 static int sisusb_init_gfxcore(struct sisusb_usb_data *sisusb)
....@@ -2019,7 +2017,7 @@
20192017
20202018 ret |= SETIREG(SISCR, 0x83, 0x00);
20212019
2022
- ret |= sisusb_set_default_mode(sisusb, 0);
2020
+ sisusb_set_default_mode(sisusb, 0);
20232021
20242022 ret |= SETIREGAND(SISSR, 0x21, 0xdf);
20252023 ret |= SETIREGOR(SISSR, 0x01, 0x20);
....@@ -2246,7 +2244,7 @@
22462244 if (sisusb_init_gfxcore(sisusb) == 0) {
22472245 sisusb->gfxinit = 1;
22482246 sisusb_get_ramconfig(sisusb);
2249
- ret |= sisusb_set_default_mode(sisusb, 1);
2247
+ sisusb_set_default_mode(sisusb, 1);
22502248 ret |= sisusb_setup_screen(sisusb, 1, initscreen);
22512249 }
22522250 }
....@@ -2255,7 +2253,7 @@
22552253 }
22562254
22572255
2258
-#ifdef INCL_SISUSB_CON
2256
+#ifdef CONFIG_USB_SISUSBVGA_CON
22592257
22602258 /* Set up default text mode:
22612259 * - Set text mode (0x03)
....@@ -2342,7 +2340,7 @@
23422340 }
23432341
23442342 } else if (sisusb->scrbuf) {
2345
- ret |= sisusb_copy_memory(sisusb, (char *)sisusb->scrbuf,
2343
+ ret |= sisusb_copy_memory(sisusb, (u8 *)sisusb->scrbuf,
23462344 sisusb->vrambase, sisusb->scrbuf_size);
23472345 }
23482346
....@@ -2448,7 +2446,7 @@
24482446 sisusb->sisusb_dev = NULL;
24492447 sisusb_free_buffers(sisusb);
24502448 sisusb_free_urbs(sisusb);
2451
-#ifdef INCL_SISUSB_CON
2449
+#ifdef CONFIG_USB_SISUSBVGA_CON
24522450 kfree(sisusb->SiS_Pr);
24532451 #endif
24542452 kfree(sisusb);
....@@ -2844,7 +2842,7 @@
28442842
28452843 case SUCMD_HANDLETEXTMODE:
28462844 retval = 0;
2847
-#ifdef INCL_SISUSB_CON
2845
+#ifdef CONFIG_USB_SISUSBVGA_CON
28482846 /* Gfx core must be initialized, SiS_Pr must exist */
28492847 if (!sisusb->gfxinit || !sisusb->SiS_Pr)
28502848 return -ENODEV;
....@@ -2860,7 +2858,7 @@
28602858 #endif
28612859 break;
28622860
2863
-#ifdef INCL_SISUSB_CON
2861
+#ifdef CONFIG_USB_SISUSBVGA_CON
28642862 case SUCMD_SETMODE:
28652863 /* Gfx core must be initialized, SiS_Pr must exist */
28662864 if (!sisusb->gfxinit || !sisusb->SiS_Pr)
....@@ -2944,7 +2942,7 @@
29442942 x.sisusb_vramsize = sisusb->vramsize;
29452943 x.sisusb_minor = sisusb->minor;
29462944 x.sisusb_fbdevactive = 0;
2947
-#ifdef INCL_SISUSB_CON
2945
+#ifdef CONFIG_USB_SISUSBVGA_CON
29482946 x.sisusb_conactive = sisusb->haveconsole ? 1 : 0;
29492947 #else
29502948 x.sisusb_conactive = 0;
....@@ -2975,7 +2973,7 @@
29752973 return retval;
29762974 }
29772975
2978
-#ifdef SISUSB_NEW_CONFIG_COMPAT
2976
+#ifdef CONFIG_COMPAT
29792977 static long sisusb_compat_ioctl(struct file *f, unsigned int cmd,
29802978 unsigned long arg)
29812979 {
....@@ -2998,7 +2996,7 @@
29982996 .read = sisusb_read,
29992997 .write = sisusb_write,
30002998 .llseek = sisusb_lseek,
3001
-#ifdef SISUSB_NEW_CONFIG_COMPAT
2999
+#ifdef CONFIG_COMPAT
30023000 .compat_ioctl = sisusb_compat_ioctl,
30033001 #endif
30043002 .unlocked_ioctl = sisusb_ioctl
....@@ -3016,6 +3014,20 @@
30163014 struct usb_device *dev = interface_to_usbdev(intf);
30173015 struct sisusb_usb_data *sisusb;
30183016 int retval = 0, i;
3017
+ static const u8 ep_addresses[] = {
3018
+ SISUSB_EP_GFX_IN | USB_DIR_IN,
3019
+ SISUSB_EP_GFX_OUT | USB_DIR_OUT,
3020
+ SISUSB_EP_GFX_BULK_OUT | USB_DIR_OUT,
3021
+ SISUSB_EP_GFX_LBULK_OUT | USB_DIR_OUT,
3022
+ SISUSB_EP_BRIDGE_IN | USB_DIR_IN,
3023
+ SISUSB_EP_BRIDGE_OUT | USB_DIR_OUT,
3024
+ 0};
3025
+
3026
+ /* Are the expected endpoints present? */
3027
+ if (!usb_check_bulk_endpoints(intf, ep_addresses)) {
3028
+ dev_err(&intf->dev, "Invalid USB2VGA device\n");
3029
+ return -EINVAL;
3030
+ }
30193031
30203032 dev_info(&dev->dev, "USB2VGA dongle found at address %d\n",
30213033 dev->devnum);
....@@ -3092,7 +3104,7 @@
30923104 dev_info(&sisusb->sisusb_dev->dev, "Allocated %d output buffers\n",
30933105 sisusb->numobufs);
30943106
3095
-#ifdef INCL_SISUSB_CON
3107
+#ifdef CONFIG_USB_SISUSBVGA_CON
30963108 /* Allocate our SiS_Pr */
30973109 sisusb->SiS_Pr = kmalloc(sizeof(struct SiS_Private), GFP_KERNEL);
30983110 if (!sisusb->SiS_Pr) {
....@@ -3113,7 +3125,7 @@
31133125
31143126 if (dev->speed == USB_SPEED_HIGH || dev->speed >= USB_SPEED_SUPER) {
31153127 int initscreen = 1;
3116
-#ifdef INCL_SISUSB_CON
3128
+#ifdef CONFIG_USB_SISUSBVGA_CON
31173129 if (sisusb_first_vc > 0 && sisusb_last_vc > 0 &&
31183130 sisusb_first_vc <= sisusb_last_vc &&
31193131 sisusb_last_vc <= MAX_NR_CONSOLES)
....@@ -3135,7 +3147,7 @@
31353147 dev_dbg(&sisusb->sisusb_dev->dev, "*** RWTEST END ***\n");
31363148 #endif
31373149
3138
-#ifdef INCL_SISUSB_CON
3150
+#ifdef CONFIG_USB_SISUSBVGA_CON
31393151 sisusb_console_init(sisusb, sisusb_first_vc, sisusb_last_vc);
31403152 #endif
31413153
....@@ -3161,7 +3173,7 @@
31613173 if (!sisusb)
31623174 return;
31633175
3164
-#ifdef INCL_SISUSB_CON
3176
+#ifdef CONFIG_USB_SISUSBVGA_CON
31653177 sisusb_console_exit(sisusb);
31663178 #endif
31673179
....@@ -3211,7 +3223,7 @@
32113223 static int __init usb_sisusb_init(void)
32123224 {
32133225
3214
-#ifdef INCL_SISUSB_CON
3226
+#ifdef CONFIG_USB_SISUSBVGA_CON
32153227 sisusb_init_concode();
32163228 #endif
32173229