Skip to content

Commit 951dd31

Browse files
crorvicktiwai
authored andcommitted
staging: line6: Split out POD HD500 interfaces
The driver uses a different altsetting depending on the interface. Add device type entries for each of these. Signed-off-by: Chris Rorvick <[email protected]> Reviewed-by: Stefan Hajnoczi <[email protected]> Signed-off-by: Greg Kroah-Hartman <[email protected]> Signed-off-by: Takashi Iwai <[email protected]>
1 parent 7ad0731 commit 951dd31

File tree

3 files changed

+28
-19
lines changed

3 files changed

+28
-19
lines changed

drivers/staging/line6/driver.c

Lines changed: 24 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -42,7 +42,8 @@ static const struct usb_device_id line6_id_table[] = {
4242
{ LINE6_DEVICE(0x5051), .driver_info = LINE6_POCKETPOD },
4343
{ LINE6_DEVICE(0x5057), .driver_info = LINE6_PODHD300 },
4444
{ LINE6_DEVICE(0x5058), .driver_info = LINE6_PODHD400 },
45-
{ LINE6_DEVICE(0x414D), .driver_info = LINE6_PODHD500 },
45+
{ LINE6_IF_NUM(0x414D, 0), .driver_info = LINE6_PODHD500_0 },
46+
{ LINE6_IF_NUM(0x414D, 1), .driver_info = LINE6_PODHD500_1 },
4647
{ LINE6_DEVICE(0x4153), .driver_info = LINE6_PODSTUDIO_GX },
4748
{ LINE6_DEVICE(0x4150), .driver_info = LINE6_PODSTUDIO_UX1 },
4849
{ LINE6_DEVICE(0x4151), .driver_info = LINE6_PODSTUDIO_UX2 },
@@ -105,7 +106,14 @@ static const struct line6_properties line6_properties_table[] = {
105106
| LINE6_CAP_PCM
106107
| LINE6_CAP_HWMON,
107108
},
108-
[LINE6_PODHD500] = {
109+
[LINE6_PODHD500_0] = {
110+
.id = "PODHD500",
111+
.name = "POD HD500",
112+
.capabilities = LINE6_CAP_CONTROL
113+
| LINE6_CAP_PCM
114+
| LINE6_CAP_HWMON,
115+
},
116+
[LINE6_PODHD500_1] = {
109117
.id = "PODHD500",
110118
.name = "POD HD500",
111119
.capabilities = LINE6_CAP_CONTROL
@@ -451,7 +459,8 @@ static void line6_data_received(struct urb *urb)
451459

452460
case LINE6_PODHD300:
453461
case LINE6_PODHD400:
454-
case LINE6_PODHD500:
462+
case LINE6_PODHD500_0:
463+
case LINE6_PODHD500_1:
455464
break; /* let userspace handle MIDI */
456465

457466
case LINE6_PODXTLIVE_POD:
@@ -740,17 +749,12 @@ static int line6_probe(struct usb_interface *interface,
740749
}
741750
break;
742751

743-
case LINE6_PODHD500:
744-
switch (interface_number) {
745-
case 0:
746-
alternate = 1;
747-
break;
748-
case 1:
749-
alternate = 0;
750-
break;
751-
default:
752-
MISSING_CASE;
753-
}
752+
case LINE6_PODHD500_0:
753+
alternate = 1;
754+
break;
755+
756+
case LINE6_PODHD500_1:
757+
alternate = 0;
754758
break;
755759

756760
case LINE6_BASSPODXT:
@@ -819,7 +823,8 @@ static int line6_probe(struct usb_interface *interface,
819823
ep_write = 0x03;
820824
break;
821825

822-
case LINE6_PODHD500:
826+
case LINE6_PODHD500_0:
827+
case LINE6_PODHD500_1:
823828
size = sizeof(struct usb_line6_podhd);
824829
ep_read = 0x81;
825830
ep_write = 0x01;
@@ -954,7 +959,8 @@ static int line6_probe(struct usb_interface *interface,
954959

955960
case LINE6_PODHD300:
956961
case LINE6_PODHD400:
957-
case LINE6_PODHD500:
962+
case LINE6_PODHD500_0:
963+
case LINE6_PODHD500_1:
958964
ret = line6_podhd_init(interface,
959965
(struct usb_line6_podhd *)line6);
960966
break;
@@ -1061,7 +1067,8 @@ static void line6_disconnect(struct usb_interface *interface)
10611067

10621068
case LINE6_PODHD300:
10631069
case LINE6_PODHD400:
1064-
case LINE6_PODHD500:
1070+
case LINE6_PODHD500_0:
1071+
case LINE6_PODHD500_1:
10651072
line6_podhd_disconnect(interface);
10661073
break;
10671074

drivers/staging/line6/driver.h

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,8 @@ enum line6_device_type {
2828
LINE6_POCKETPOD,
2929
LINE6_PODHD300,
3030
LINE6_PODHD400,
31-
LINE6_PODHD500,
31+
LINE6_PODHD500_0,
32+
LINE6_PODHD500_1,
3233
LINE6_PODSTUDIO_GX,
3334
LINE6_PODSTUDIO_UX1,
3435
LINE6_PODSTUDIO_UX2,

drivers/staging/line6/pcm.c

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -442,7 +442,8 @@ int line6_init_pcm(struct usb_line6 *line6,
442442
ep_write = 0x01;
443443
break;
444444

445-
case LINE6_PODHD500:
445+
case LINE6_PODHD500_0:
446+
case LINE6_PODHD500_1:
446447
ep_read = 0x86;
447448
ep_write = 0x02;
448449
break;

0 commit comments

Comments
 (0)