diff options
| -rw-r--r-- | drivers/input/gameport/Kconfig | 20 | ||||
| -rw-r--r-- | drivers/input/joydev.c | 2 | ||||
| -rw-r--r-- | drivers/input/mouse/psmouse-base.c | 7 | ||||
| -rw-r--r-- | drivers/input/mouse/synaptics.c | 39 | ||||
| -rw-r--r-- | drivers/input/serio/i8042-x86ia64io.h | 32 | ||||
| -rw-r--r-- | drivers/input/serio/i8042.c | 50 | ||||
| -rw-r--r-- | drivers/input/touchscreen/gunze.c | 3 | ||||
| -rw-r--r-- | include/linux/gameport.h | 28 | ||||
| -rw-r--r-- | sound/oss/Kconfig | 12 |
9 files changed, 97 insertions, 96 deletions
diff --git a/drivers/input/gameport/Kconfig b/drivers/input/gameport/Kconfig index 6282f460aba0..1d93f5092904 100644 --- a/drivers/input/gameport/Kconfig +++ b/drivers/input/gameport/Kconfig | |||
| @@ -68,23 +68,3 @@ config GAMEPORT_CS461X | |||
| 68 | depends on PCI | 68 | depends on PCI |
| 69 | 69 | ||
| 70 | endif | 70 | endif |
| 71 | |||
| 72 | # Yes, SOUND_GAMEPORT looks a bit odd. Yes, it ends up being turned on | ||
| 73 | # in every .config. Please don't touch it. It is here to handle an | ||
| 74 | # unusual dependency between GAMEPORT and sound drivers. | ||
| 75 | # | ||
| 76 | # Some sound drivers call gameport functions. If GAMEPORT is | ||
| 77 | # not selected, empty stubs are provided for the functions and all is | ||
| 78 | # well. | ||
| 79 | # If GAMEPORT is built in, everything is fine. | ||
| 80 | # If GAMEPORT is a module, however, it would need to be loaded for the | ||
| 81 | # sound driver to be able to link properly. Therefore, the sound | ||
| 82 | # driver must be a module as well in that case. Since there's no way | ||
| 83 | # to express that directly in Kconfig, we use SOUND_GAMEPORT to | ||
| 84 | # express it. SOUND_GAMEPORT boils down to "if GAMEPORT is 'm', | ||
| 85 | # anything that depends on SOUND_GAMEPORT must be 'm' as well. if | ||
| 86 | # GAMEPORT is 'y' or 'n', it can be anything". | ||
| 87 | config SOUND_GAMEPORT | ||
| 88 | tristate | ||
| 89 | default m if GAMEPORT=m | ||
| 90 | default y | ||
diff --git a/drivers/input/joydev.c b/drivers/input/joydev.c index 7d7527f8b02d..627d343dfba1 100644 --- a/drivers/input/joydev.c +++ b/drivers/input/joydev.c | |||
| @@ -422,7 +422,7 @@ static struct input_handle *joydev_connect(struct input_handler *handler, struct | |||
| 422 | joydev->nkey++; | 422 | joydev->nkey++; |
| 423 | } | 423 | } |
| 424 | 424 | ||
| 425 | for (i = 0; i < BTN_JOYSTICK - BTN_MISC + 1; i++) | 425 | for (i = 0; i < BTN_JOYSTICK - BTN_MISC; i++) |
| 426 | if (test_bit(i + BTN_MISC, dev->keybit)) { | 426 | if (test_bit(i + BTN_MISC, dev->keybit)) { |
| 427 | joydev->keymap[i] = joydev->nkey; | 427 | joydev->keymap[i] = joydev->nkey; |
| 428 | joydev->keypam[joydev->nkey] = i + BTN_MISC; | 428 | joydev->keypam[joydev->nkey] = i + BTN_MISC; |
diff --git a/drivers/input/mouse/psmouse-base.c b/drivers/input/mouse/psmouse-base.c index cd8509549eac..019034b21a0b 100644 --- a/drivers/input/mouse/psmouse-base.c +++ b/drivers/input/mouse/psmouse-base.c | |||
| @@ -518,13 +518,16 @@ static int psmouse_probe(struct psmouse *psmouse) | |||
| 518 | /* | 518 | /* |
| 519 | * First, we check if it's a mouse. It should send 0x00 or 0x03 | 519 | * First, we check if it's a mouse. It should send 0x00 or 0x03 |
| 520 | * in case of an IntelliMouse in 4-byte mode or 0x04 for IM Explorer. | 520 | * in case of an IntelliMouse in 4-byte mode or 0x04 for IM Explorer. |
| 521 | * Sunrex K8561 IR Keyboard/Mouse reports 0xff on second and subsequent | ||
| 522 | * ID queries, probably due to a firmware bug. | ||
| 521 | */ | 523 | */ |
| 522 | 524 | ||
| 523 | param[0] = 0xa5; | 525 | param[0] = 0xa5; |
| 524 | if (ps2_command(ps2dev, param, PSMOUSE_CMD_GETID)) | 526 | if (ps2_command(ps2dev, param, PSMOUSE_CMD_GETID)) |
| 525 | return -1; | 527 | return -1; |
| 526 | 528 | ||
| 527 | if (param[0] != 0x00 && param[0] != 0x03 && param[0] != 0x04) | 529 | if (param[0] != 0x00 && param[0] != 0x03 && |
| 530 | param[0] != 0x04 && param[0] != 0xff) | ||
| 528 | return -1; | 531 | return -1; |
| 529 | 532 | ||
| 530 | /* | 533 | /* |
| @@ -972,7 +975,7 @@ static int psmouse_set_maxproto(const char *val, struct kernel_param *kp) | |||
| 972 | return -EINVAL; | 975 | return -EINVAL; |
| 973 | 976 | ||
| 974 | if (!strncmp(val, "any", 3)) { | 977 | if (!strncmp(val, "any", 3)) { |
| 975 | *((unsigned int *)kp->arg) = -1UL; | 978 | *((unsigned int *)kp->arg) = -1U; |
| 976 | return 0; | 979 | return 0; |
| 977 | } | 980 | } |
| 978 | 981 | ||
diff --git a/drivers/input/mouse/synaptics.c b/drivers/input/mouse/synaptics.c index 69832f8fb720..36c721227b68 100644 --- a/drivers/input/mouse/synaptics.c +++ b/drivers/input/mouse/synaptics.c | |||
| @@ -143,39 +143,6 @@ static int synaptics_identify(struct psmouse *psmouse) | |||
| 143 | return -1; | 143 | return -1; |
| 144 | } | 144 | } |
| 145 | 145 | ||
| 146 | static void print_ident(struct synaptics_data *priv) | ||
| 147 | { | ||
| 148 | printk(KERN_INFO "Synaptics Touchpad, model: %ld\n", SYN_ID_MODEL(priv->identity)); | ||
| 149 | printk(KERN_INFO " Firmware: %ld.%ld\n", SYN_ID_MAJOR(priv->identity), | ||
| 150 | SYN_ID_MINOR(priv->identity)); | ||
| 151 | if (SYN_MODEL_ROT180(priv->model_id)) | ||
| 152 | printk(KERN_INFO " 180 degree mounted touchpad\n"); | ||
| 153 | if (SYN_MODEL_PORTRAIT(priv->model_id)) | ||
| 154 | printk(KERN_INFO " portrait touchpad\n"); | ||
| 155 | printk(KERN_INFO " Sensor: %ld\n", SYN_MODEL_SENSOR(priv->model_id)); | ||
| 156 | if (SYN_MODEL_NEWABS(priv->model_id)) | ||
| 157 | printk(KERN_INFO " new absolute packet format\n"); | ||
| 158 | if (SYN_MODEL_PEN(priv->model_id)) | ||
| 159 | printk(KERN_INFO " pen detection\n"); | ||
| 160 | |||
| 161 | if (SYN_CAP_EXTENDED(priv->capabilities)) { | ||
| 162 | printk(KERN_INFO " Touchpad has extended capability bits\n"); | ||
| 163 | if (SYN_CAP_MULTI_BUTTON_NO(priv->ext_cap)) | ||
| 164 | printk(KERN_INFO " -> %d multi-buttons, i.e. besides standard buttons\n", | ||
| 165 | (int)(SYN_CAP_MULTI_BUTTON_NO(priv->ext_cap))); | ||
| 166 | if (SYN_CAP_MIDDLE_BUTTON(priv->capabilities)) | ||
| 167 | printk(KERN_INFO " -> middle button\n"); | ||
| 168 | if (SYN_CAP_FOUR_BUTTON(priv->capabilities)) | ||
| 169 | printk(KERN_INFO " -> four buttons\n"); | ||
| 170 | if (SYN_CAP_MULTIFINGER(priv->capabilities)) | ||
| 171 | printk(KERN_INFO " -> multifinger detection\n"); | ||
| 172 | if (SYN_CAP_PALMDETECT(priv->capabilities)) | ||
| 173 | printk(KERN_INFO " -> palm detection\n"); | ||
| 174 | if (SYN_CAP_PASS_THROUGH(priv->capabilities)) | ||
| 175 | printk(KERN_INFO " -> pass-through port\n"); | ||
| 176 | } | ||
| 177 | } | ||
| 178 | |||
| 179 | static int synaptics_query_hardware(struct psmouse *psmouse) | 146 | static int synaptics_query_hardware(struct psmouse *psmouse) |
| 180 | { | 147 | { |
| 181 | int retries = 0; | 148 | int retries = 0; |
| @@ -666,7 +633,11 @@ int synaptics_init(struct psmouse *psmouse) | |||
| 666 | 633 | ||
| 667 | priv->pkt_type = SYN_MODEL_NEWABS(priv->model_id) ? SYN_NEWABS : SYN_OLDABS; | 634 | priv->pkt_type = SYN_MODEL_NEWABS(priv->model_id) ? SYN_NEWABS : SYN_OLDABS; |
| 668 | 635 | ||
| 669 | print_ident(priv); | 636 | printk(KERN_INFO "Synaptics Touchpad, model: %ld, fw: %ld.%ld, id: %#lx, caps: %#lx/%#lx\n", |
| 637 | SYN_ID_MODEL(priv->identity), | ||
| 638 | SYN_ID_MAJOR(priv->identity), SYN_ID_MINOR(priv->identity), | ||
| 639 | priv->model_id, priv->capabilities, priv->ext_cap); | ||
| 640 | |||
| 670 | set_input_params(&psmouse->dev, priv); | 641 | set_input_params(&psmouse->dev, priv); |
| 671 | 642 | ||
| 672 | psmouse->protocol_handler = synaptics_process_byte; | 643 | psmouse->protocol_handler = synaptics_process_byte; |
diff --git a/drivers/input/serio/i8042-x86ia64io.h b/drivers/input/serio/i8042-x86ia64io.h index f64867808fea..0487ecbb8a49 100644 --- a/drivers/input/serio/i8042-x86ia64io.h +++ b/drivers/input/serio/i8042-x86ia64io.h | |||
| @@ -88,9 +88,11 @@ static struct dmi_system_id __initdata i8042_dmi_noloop_table[] = { | |||
| 88 | }; | 88 | }; |
| 89 | 89 | ||
| 90 | /* | 90 | /* |
| 91 | * Some Fujitsu notebooks are ahving trouble with touhcpads if | 91 | * Some Fujitsu notebooks are having trouble with touchpads if |
| 92 | * active multiplexing mode is activated. Luckily they don't have | 92 | * active multiplexing mode is activated. Luckily they don't have |
| 93 | * external PS/2 ports so we can safely disable it. | 93 | * external PS/2 ports so we can safely disable it. |
| 94 | * ... apparently some Toshibas don't like MUX mode either and | ||
| 95 | * die horrible death on reboot. | ||
| 94 | */ | 96 | */ |
| 95 | static struct dmi_system_id __initdata i8042_dmi_nomux_table[] = { | 97 | static struct dmi_system_id __initdata i8042_dmi_nomux_table[] = { |
| 96 | { | 98 | { |
| @@ -115,12 +117,26 @@ static struct dmi_system_id __initdata i8042_dmi_nomux_table[] = { | |||
| 115 | }, | 117 | }, |
| 116 | }, | 118 | }, |
| 117 | { | 119 | { |
| 120 | .ident = "Fujitsu Lifebook S6230", | ||
| 121 | .matches = { | ||
| 122 | DMI_MATCH(DMI_SYS_VENDOR, "FUJITSU"), | ||
| 123 | DMI_MATCH(DMI_PRODUCT_NAME, "LifeBook S6230"), | ||
| 124 | }, | ||
| 125 | }, | ||
| 126 | { | ||
| 118 | .ident = "Fujitsu T70H", | 127 | .ident = "Fujitsu T70H", |
| 119 | .matches = { | 128 | .matches = { |
| 120 | DMI_MATCH(DMI_SYS_VENDOR, "FUJITSU"), | 129 | DMI_MATCH(DMI_SYS_VENDOR, "FUJITSU"), |
| 121 | DMI_MATCH(DMI_PRODUCT_NAME, "FMVLT70H"), | 130 | DMI_MATCH(DMI_PRODUCT_NAME, "FMVLT70H"), |
| 122 | }, | 131 | }, |
| 123 | }, | 132 | }, |
| 133 | { | ||
| 134 | .ident = "Toshiba P10", | ||
| 135 | .matches = { | ||
| 136 | DMI_MATCH(DMI_SYS_VENDOR, "TOSHIBA"), | ||
| 137 | DMI_MATCH(DMI_PRODUCT_NAME, "Satellite P10"), | ||
| 138 | }, | ||
| 139 | }, | ||
| 124 | { } | 140 | { } |
| 125 | }; | 141 | }; |
| 126 | 142 | ||
| @@ -215,11 +231,15 @@ static struct pnp_driver i8042_pnp_aux_driver = { | |||
| 215 | 231 | ||
| 216 | static void i8042_pnp_exit(void) | 232 | static void i8042_pnp_exit(void) |
| 217 | { | 233 | { |
| 218 | if (i8042_pnp_kbd_registered) | 234 | if (i8042_pnp_kbd_registered) { |
| 235 | i8042_pnp_kbd_registered = 0; | ||
| 219 | pnp_unregister_driver(&i8042_pnp_kbd_driver); | 236 | pnp_unregister_driver(&i8042_pnp_kbd_driver); |
| 237 | } | ||
| 220 | 238 | ||
| 221 | if (i8042_pnp_aux_registered) | 239 | if (i8042_pnp_aux_registered) { |
| 240 | i8042_pnp_aux_registered = 0; | ||
| 222 | pnp_unregister_driver(&i8042_pnp_aux_driver); | 241 | pnp_unregister_driver(&i8042_pnp_aux_driver); |
| 242 | } | ||
| 223 | } | 243 | } |
| 224 | 244 | ||
| 225 | static int i8042_pnp_init(void) | 245 | static int i8042_pnp_init(void) |
| @@ -227,7 +247,7 @@ static int i8042_pnp_init(void) | |||
| 227 | int result_kbd, result_aux; | 247 | int result_kbd, result_aux; |
| 228 | 248 | ||
| 229 | if (i8042_nopnp) { | 249 | if (i8042_nopnp) { |
| 230 | printk("i8042: PNP detection disabled\n"); | 250 | printk(KERN_INFO "i8042: PNP detection disabled\n"); |
| 231 | return 0; | 251 | return 0; |
| 232 | } | 252 | } |
| 233 | 253 | ||
| @@ -241,7 +261,7 @@ static int i8042_pnp_init(void) | |||
| 241 | #if defined(__ia64__) | 261 | #if defined(__ia64__) |
| 242 | return -ENODEV; | 262 | return -ENODEV; |
| 243 | #else | 263 | #else |
| 244 | printk(KERN_WARNING "PNP: No PS/2 controller found. Probing ports directly.\n"); | 264 | printk(KERN_INFO "PNP: No PS/2 controller found. Probing ports directly.\n"); |
| 245 | return 0; | 265 | return 0; |
| 246 | #endif | 266 | #endif |
| 247 | } | 267 | } |
| @@ -265,7 +285,7 @@ static int i8042_pnp_init(void) | |||
| 265 | i8042_pnp_kbd_irq = i8042_kbd_irq; | 285 | i8042_pnp_kbd_irq = i8042_kbd_irq; |
| 266 | } | 286 | } |
| 267 | 287 | ||
| 268 | if (result_aux > 0 && !i8042_pnp_aux_irq) { | 288 | if (!i8042_pnp_aux_irq) { |
| 269 | printk(KERN_WARNING "PNP: PS/2 controller doesn't have AUX irq; using default %#x\n", i8042_aux_irq); | 289 | printk(KERN_WARNING "PNP: PS/2 controller doesn't have AUX irq; using default %#x\n", i8042_aux_irq); |
| 270 | i8042_pnp_aux_irq = i8042_aux_irq; | 290 | i8042_pnp_aux_irq = i8042_aux_irq; |
| 271 | } | 291 | } |
diff --git a/drivers/input/serio/i8042.c b/drivers/input/serio/i8042.c index 8e63e464d361..5900de3c3f4f 100644 --- a/drivers/input/serio/i8042.c +++ b/drivers/input/serio/i8042.c | |||
| @@ -698,6 +698,26 @@ static void i8042_timer_func(unsigned long data) | |||
| 698 | i8042_interrupt(0, NULL, NULL); | 698 | i8042_interrupt(0, NULL, NULL); |
| 699 | } | 699 | } |
| 700 | 700 | ||
| 701 | static int i8042_ctl_test(void) | ||
| 702 | { | ||
| 703 | unsigned char param; | ||
| 704 | |||
| 705 | if (!i8042_reset) | ||
| 706 | return 0; | ||
| 707 | |||
| 708 | if (i8042_command(¶m, I8042_CMD_CTL_TEST)) { | ||
| 709 | printk(KERN_ERR "i8042.c: i8042 controller self test timeout.\n"); | ||
| 710 | return -1; | ||
| 711 | } | ||
| 712 | |||
| 713 | if (param != I8042_RET_CTL_TEST) { | ||
| 714 | printk(KERN_ERR "i8042.c: i8042 controller selftest failed. (%#x != %#x)\n", | ||
| 715 | param, I8042_RET_CTL_TEST); | ||
| 716 | return -1; | ||
| 717 | } | ||
| 718 | |||
| 719 | return 0; | ||
| 720 | } | ||
| 701 | 721 | ||
| 702 | /* | 722 | /* |
| 703 | * i8042_controller init initializes the i8042 controller, and, | 723 | * i8042_controller init initializes the i8042 controller, and, |
| @@ -719,21 +739,8 @@ static int i8042_controller_init(void) | |||
| 719 | return -1; | 739 | return -1; |
| 720 | } | 740 | } |
| 721 | 741 | ||
| 722 | if (i8042_reset) { | 742 | if (i8042_ctl_test()) |
| 723 | 743 | return -1; | |
| 724 | unsigned char param; | ||
| 725 | |||
| 726 | if (i8042_command(¶m, I8042_CMD_CTL_TEST)) { | ||
| 727 | printk(KERN_ERR "i8042.c: i8042 controller self test timeout.\n"); | ||
| 728 | return -1; | ||
| 729 | } | ||
| 730 | |||
| 731 | if (param != I8042_RET_CTL_TEST) { | ||
| 732 | printk(KERN_ERR "i8042.c: i8042 controller selftest failed. (%#x != %#x)\n", | ||
| 733 | param, I8042_RET_CTL_TEST); | ||
| 734 | return -1; | ||
| 735 | } | ||
| 736 | } | ||
| 737 | 744 | ||
| 738 | /* | 745 | /* |
| 739 | * Save the CTR for restoral on unload / reboot. | 746 | * Save the CTR for restoral on unload / reboot. |
| @@ -802,15 +809,11 @@ static int i8042_controller_init(void) | |||
| 802 | */ | 809 | */ |
| 803 | static void i8042_controller_reset(void) | 810 | static void i8042_controller_reset(void) |
| 804 | { | 811 | { |
| 805 | unsigned char param; | ||
| 806 | |||
| 807 | /* | 812 | /* |
| 808 | * Reset the controller if requested. | 813 | * Reset the controller if requested. |
| 809 | */ | 814 | */ |
| 810 | 815 | ||
| 811 | if (i8042_reset) | 816 | i8042_ctl_test(); |
| 812 | if (i8042_command(¶m, I8042_CMD_CTL_TEST)) | ||
| 813 | printk(KERN_ERR "i8042.c: i8042 controller reset timeout.\n"); | ||
| 814 | 817 | ||
| 815 | /* | 818 | /* |
| 816 | * Disable MUX mode if present. | 819 | * Disable MUX mode if present. |
| @@ -922,8 +925,11 @@ static int i8042_resume(struct device *dev, u32 level) | |||
| 922 | if (level != RESUME_ENABLE) | 925 | if (level != RESUME_ENABLE) |
| 923 | return 0; | 926 | return 0; |
| 924 | 927 | ||
| 925 | if (i8042_controller_init()) { | 928 | if (i8042_ctl_test()) |
| 926 | printk(KERN_ERR "i8042: resume failed\n"); | 929 | return -1; |
| 930 | |||
| 931 | if (i8042_command(&i8042_ctr, I8042_CMD_CTL_WCTR)) { | ||
| 932 | printk(KERN_ERR "i8042: Can't write CTR\n"); | ||
| 927 | return -1; | 933 | return -1; |
| 928 | } | 934 | } |
| 929 | 935 | ||
diff --git a/drivers/input/touchscreen/gunze.c b/drivers/input/touchscreen/gunze.c index c9d0a153671c..53a27e43dd23 100644 --- a/drivers/input/touchscreen/gunze.c +++ b/drivers/input/touchscreen/gunze.c | |||
| @@ -68,8 +68,7 @@ static void gunze_process_packet(struct gunze* gunze, struct pt_regs *regs) | |||
| 68 | 68 | ||
| 69 | if (gunze->idx != GUNZE_MAX_LENGTH || gunze->data[5] != ',' || | 69 | if (gunze->idx != GUNZE_MAX_LENGTH || gunze->data[5] != ',' || |
| 70 | (gunze->data[0] != 'T' && gunze->data[0] != 'R')) { | 70 | (gunze->data[0] != 'T' && gunze->data[0] != 'R')) { |
| 71 | gunze->data[10] = 0; | 71 | printk(KERN_WARNING "gunze.c: bad packet: >%.*s<\n", GUNZE_MAX_LENGTH, gunze->data); |
| 72 | printk(KERN_WARNING "gunze.c: bad packet: >%s<\n", gunze->data); | ||
| 73 | return; | 72 | return; |
| 74 | } | 73 | } |
| 75 | 74 | ||
diff --git a/include/linux/gameport.h b/include/linux/gameport.h index b1272f822cfa..cd623eccdbea 100644 --- a/include/linux/gameport.h +++ b/include/linux/gameport.h | |||
| @@ -67,6 +67,8 @@ int gameport_open(struct gameport *gameport, struct gameport_driver *drv, int mo | |||
| 67 | void gameport_close(struct gameport *gameport); | 67 | void gameport_close(struct gameport *gameport); |
| 68 | void gameport_rescan(struct gameport *gameport); | 68 | void gameport_rescan(struct gameport *gameport); |
| 69 | 69 | ||
| 70 | #if defined(CONFIG_GAMEPORT) || (defined(MODULE) && defined(CONFIG_GAMEPORT_MODULE)) | ||
| 71 | |||
| 70 | void __gameport_register_port(struct gameport *gameport, struct module *owner); | 72 | void __gameport_register_port(struct gameport *gameport, struct module *owner); |
| 71 | static inline void gameport_register_port(struct gameport *gameport) | 73 | static inline void gameport_register_port(struct gameport *gameport) |
| 72 | { | 74 | { |
| @@ -75,6 +77,29 @@ static inline void gameport_register_port(struct gameport *gameport) | |||
| 75 | 77 | ||
| 76 | void gameport_unregister_port(struct gameport *gameport); | 78 | void gameport_unregister_port(struct gameport *gameport); |
| 77 | 79 | ||
| 80 | void gameport_set_phys(struct gameport *gameport, const char *fmt, ...) | ||
| 81 | __attribute__ ((format (printf, 2, 3))); | ||
| 82 | |||
| 83 | #else | ||
| 84 | |||
| 85 | static inline void gameport_register_port(struct gameport *gameport) | ||
| 86 | { | ||
| 87 | return; | ||
| 88 | } | ||
| 89 | |||
| 90 | static inline void gameport_unregister_port(struct gameport *gameport) | ||
| 91 | { | ||
| 92 | return; | ||
| 93 | } | ||
| 94 | |||
| 95 | static inline void gameport_set_phys(struct gameport *gameport, | ||
| 96 | const char *fmt, ...) | ||
| 97 | { | ||
| 98 | return; | ||
| 99 | } | ||
| 100 | |||
| 101 | #endif | ||
| 102 | |||
| 78 | static inline struct gameport *gameport_allocate_port(void) | 103 | static inline struct gameport *gameport_allocate_port(void) |
| 79 | { | 104 | { |
| 80 | struct gameport *gameport = kcalloc(1, sizeof(struct gameport), GFP_KERNEL); | 105 | struct gameport *gameport = kcalloc(1, sizeof(struct gameport), GFP_KERNEL); |
| @@ -92,9 +117,6 @@ static inline void gameport_set_name(struct gameport *gameport, const char *name | |||
| 92 | strlcpy(gameport->name, name, sizeof(gameport->name)); | 117 | strlcpy(gameport->name, name, sizeof(gameport->name)); |
| 93 | } | 118 | } |
| 94 | 119 | ||
| 95 | void gameport_set_phys(struct gameport *gameport, const char *fmt, ...) | ||
| 96 | __attribute__ ((format (printf, 2, 3))); | ||
| 97 | |||
| 98 | /* | 120 | /* |
| 99 | * Use the following fucntions to manipulate gameport's per-port | 121 | * Use the following fucntions to manipulate gameport's per-port |
| 100 | * driver-specific data. | 122 | * driver-specific data. |
diff --git a/sound/oss/Kconfig b/sound/oss/Kconfig index a9602f89d6b1..e537bd66a707 100644 --- a/sound/oss/Kconfig +++ b/sound/oss/Kconfig | |||
| @@ -112,7 +112,7 @@ config SOUND_BCM_CS4297A | |||
| 112 | 112 | ||
| 113 | config SOUND_ES1370 | 113 | config SOUND_ES1370 |
| 114 | tristate "Ensoniq AudioPCI (ES1370)" | 114 | tristate "Ensoniq AudioPCI (ES1370)" |
| 115 | depends on SOUND_PRIME!=n && SOUND && PCI && SOUND_GAMEPORT | 115 | depends on SOUND_PRIME!=n && SOUND && PCI |
| 116 | help | 116 | help |
| 117 | Say Y or M if you have a PCI sound card utilizing the Ensoniq | 117 | Say Y or M if you have a PCI sound card utilizing the Ensoniq |
| 118 | ES1370 chipset, such as Ensoniq's AudioPCI (non-97). To find | 118 | ES1370 chipset, such as Ensoniq's AudioPCI (non-97). To find |
| @@ -125,7 +125,7 @@ config SOUND_ES1370 | |||
| 125 | 125 | ||
| 126 | config SOUND_ES1371 | 126 | config SOUND_ES1371 |
| 127 | tristate "Creative Ensoniq AudioPCI 97 (ES1371)" | 127 | tristate "Creative Ensoniq AudioPCI 97 (ES1371)" |
| 128 | depends on SOUND_PRIME!=n && SOUND && PCI && SOUND_GAMEPORT | 128 | depends on SOUND_PRIME!=n && SOUND && PCI |
| 129 | help | 129 | help |
| 130 | Say Y or M if you have a PCI sound card utilizing the Ensoniq | 130 | Say Y or M if you have a PCI sound card utilizing the Ensoniq |
| 131 | ES1371 chipset, such as Ensoniq's AudioPCI97. To find out if | 131 | ES1371 chipset, such as Ensoniq's AudioPCI97. To find out if |
| @@ -138,7 +138,7 @@ config SOUND_ES1371 | |||
| 138 | 138 | ||
| 139 | config SOUND_ESSSOLO1 | 139 | config SOUND_ESSSOLO1 |
| 140 | tristate "ESS Technology Solo1" | 140 | tristate "ESS Technology Solo1" |
| 141 | depends on SOUND_PRIME!=n && SOUND && SOUND_GAMEPORT && PCI | 141 | depends on SOUND_PRIME!=n && SOUND && PCI |
| 142 | help | 142 | help |
| 143 | Say Y or M if you have a PCI sound card utilizing the ESS Technology | 143 | Say Y or M if you have a PCI sound card utilizing the ESS Technology |
| 144 | Solo1 chip. To find out if your sound card uses a | 144 | Solo1 chip. To find out if your sound card uses a |
| @@ -179,7 +179,7 @@ config SOUND_HARMONY | |||
| 179 | 179 | ||
| 180 | config SOUND_SONICVIBES | 180 | config SOUND_SONICVIBES |
| 181 | tristate "S3 SonicVibes" | 181 | tristate "S3 SonicVibes" |
| 182 | depends on SOUND_PRIME!=n && SOUND && SOUND_GAMEPORT | 182 | depends on SOUND_PRIME!=n && SOUND |
| 183 | help | 183 | help |
| 184 | Say Y or M if you have a PCI sound card utilizing the S3 | 184 | Say Y or M if you have a PCI sound card utilizing the S3 |
| 185 | SonicVibes chipset. To find out if your sound card uses a | 185 | SonicVibes chipset. To find out if your sound card uses a |
| @@ -226,7 +226,7 @@ config SOUND_AU1550_AC97 | |||
| 226 | 226 | ||
| 227 | config SOUND_TRIDENT | 227 | config SOUND_TRIDENT |
| 228 | tristate "Trident 4DWave DX/NX, SiS 7018 or ALi 5451 PCI Audio Core" | 228 | tristate "Trident 4DWave DX/NX, SiS 7018 or ALi 5451 PCI Audio Core" |
| 229 | depends on SOUND_PRIME!=n && SOUND && SOUND_GAMEPORT | 229 | depends on SOUND_PRIME!=n && SOUND |
| 230 | ---help--- | 230 | ---help--- |
| 231 | Say Y or M if you have a PCI sound card utilizing the Trident | 231 | Say Y or M if you have a PCI sound card utilizing the Trident |
| 232 | 4DWave-DX/NX chipset or your mother board chipset has SiS 7018 | 232 | 4DWave-DX/NX chipset or your mother board chipset has SiS 7018 |
| @@ -739,7 +739,7 @@ config SOUND_NM256 | |||
| 739 | 739 | ||
| 740 | config SOUND_MAD16 | 740 | config SOUND_MAD16 |
| 741 | tristate "OPTi MAD16 and/or Mozart based cards" | 741 | tristate "OPTi MAD16 and/or Mozart based cards" |
| 742 | depends on SOUND_OSS && SOUND_GAMEPORT | 742 | depends on SOUND_OSS |
| 743 | ---help--- | 743 | ---help--- |
| 744 | Answer Y if your card has a Mozart (OAK OTI-601) or MAD16 (OPTi | 744 | Answer Y if your card has a Mozart (OAK OTI-601) or MAD16 (OPTi |
| 745 | 82C928 or 82C929 or 82C931) audio interface chip. These chips are | 745 | 82C928 or 82C929 or 82C931) audio interface chip. These chips are |
