lkml.org 
[lkml]   [2015]   [Jan]   [10]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH 14/25] staging: line6: Split out POD HD500 interfaces
    Date
    The driver uses a different altsetting depending on the interface.  Add
    device type entries for each of these.

    Signed-off-by: Chris Rorvick <chris@rorvick.com>
    ---
    drivers/staging/line6/driver.c | 41 ++++++++++++++++++++++++-----------------
    drivers/staging/line6/driver.h | 3 ++-
    drivers/staging/line6/pcm.c | 3 ++-
    3 files changed, 28 insertions(+), 19 deletions(-)

    diff --git a/drivers/staging/line6/driver.c b/drivers/staging/line6/driver.c
    index cb96029..e97e2cb 100644
    --- a/drivers/staging/line6/driver.c
    +++ b/drivers/staging/line6/driver.c
    @@ -42,7 +42,8 @@ static const struct usb_device_id line6_id_table[] = {
    { LINE6_DEVICE(0x5051), .driver_info = LINE6_POCKETPOD },
    { LINE6_DEVICE(0x5057), .driver_info = LINE6_PODHD300 },
    { LINE6_DEVICE(0x5058), .driver_info = LINE6_PODHD400 },
    - { LINE6_DEVICE(0x414D), .driver_info = LINE6_PODHD500 },
    + { LINE6_IF_NUM(0x414D, 0), .driver_info = LINE6_PODHD500_0 },
    + { LINE6_IF_NUM(0x414D, 1), .driver_info = LINE6_PODHD500_1 },
    { LINE6_DEVICE(0x4153), .driver_info = LINE6_PODSTUDIO_GX },
    { LINE6_DEVICE(0x4150), .driver_info = LINE6_PODSTUDIO_UX1 },
    { LINE6_DEVICE(0x4151), .driver_info = LINE6_PODSTUDIO_UX2 },
    @@ -105,7 +106,14 @@ static const struct line6_properties line6_properties_table[] = {
    | LINE6_CAP_PCM
    | LINE6_CAP_HWMON,
    },
    - [LINE6_PODHD500] = {
    + [LINE6_PODHD500_0] = {
    + .id = "PODHD500",
    + .name = "POD HD500",
    + .capabilities = LINE6_CAP_CONTROL
    + | LINE6_CAP_PCM
    + | LINE6_CAP_HWMON,
    + },
    + [LINE6_PODHD500_1] = {
    .id = "PODHD500",
    .name = "POD HD500",
    .capabilities = LINE6_CAP_CONTROL
    @@ -451,7 +459,8 @@ static void line6_data_received(struct urb *urb)

    case LINE6_PODHD300:
    case LINE6_PODHD400:
    - case LINE6_PODHD500:
    + case LINE6_PODHD500_0:
    + case LINE6_PODHD500_1:
    break; /* let userspace handle MIDI */

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

    - case LINE6_PODHD500:
    - switch (interface_number) {
    - case 0:
    - alternate = 1;
    - break;
    - case 1:
    - alternate = 0;
    - break;
    - default:
    - MISSING_CASE;
    - }
    + case LINE6_PODHD500_0:
    + alternate = 1;
    + break;
    +
    + case LINE6_PODHD500_1:
    + alternate = 0;
    break;

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

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

    case LINE6_PODHD300:
    case LINE6_PODHD400:
    - case LINE6_PODHD500:
    + case LINE6_PODHD500_0:
    + case LINE6_PODHD500_1:
    ret = line6_podhd_init(interface,
    (struct usb_line6_podhd *)line6);
    break;
    @@ -1061,7 +1067,8 @@ static void line6_disconnect(struct usb_interface *interface)

    case LINE6_PODHD300:
    case LINE6_PODHD400:
    - case LINE6_PODHD500:
    + case LINE6_PODHD500_0:
    + case LINE6_PODHD500_1:
    line6_podhd_disconnect(interface);
    break;

    diff --git a/drivers/staging/line6/driver.h b/drivers/staging/line6/driver.h
    index 085aa44..9d6b351 100644
    --- a/drivers/staging/line6/driver.h
    +++ b/drivers/staging/line6/driver.h
    @@ -28,7 +28,8 @@ enum line6_device_type {
    LINE6_POCKETPOD,
    LINE6_PODHD300,
    LINE6_PODHD400,
    - LINE6_PODHD500,
    + LINE6_PODHD500_0,
    + LINE6_PODHD500_1,
    LINE6_PODSTUDIO_GX,
    LINE6_PODSTUDIO_UX1,
    LINE6_PODSTUDIO_UX2,
    diff --git a/drivers/staging/line6/pcm.c b/drivers/staging/line6/pcm.c
    index d09d1ea..d8450af 100644
    --- a/drivers/staging/line6/pcm.c
    +++ b/drivers/staging/line6/pcm.c
    @@ -442,7 +442,8 @@ int line6_init_pcm(struct usb_line6 *line6,
    ep_write = 0x01;
    break;

    - case LINE6_PODHD500:
    + case LINE6_PODHD500_0:
    + case LINE6_PODHD500_1:
    ep_read = 0x86;
    ep_write = 0x02;
    break;
    --
    2.1.0


    \
     
     \ /
      Last update: 2015-01-10 07:21    [W:4.164 / U:0.016 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site