Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
L
linux
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
0
Merge Requests
0
Analytics
Analytics
Repository
Value Stream
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Commits
Issue Boards
Open sidebar
nexedi
linux
Commits
6eb3db91
Commit
6eb3db91
authored
Jan 30, 2015
by
Takashi Iwai
Browse files
Options
Browse Files
Download
Plain Diff
Merge branch 'topic/line6' into for-next
parents
d832f3dc
1263f611
Changes
13
Hide whitespace changes
Inline
Side-by-side
Showing
13 changed files
with
114 additions
and
250 deletions
+114
-250
sound/usb/line6/capture.c
sound/usb/line6/capture.c
+2
-3
sound/usb/line6/driver.c
sound/usb/line6/driver.c
+1
-3
sound/usb/line6/driver.h
sound/usb/line6/driver.h
+38
-51
sound/usb/line6/midi.c
sound/usb/line6/midi.c
+0
-1
sound/usb/line6/midi.h
sound/usb/line6/midi.h
+8
-24
sound/usb/line6/pcm.h
sound/usb/line6/pcm.h
+16
-41
sound/usb/line6/playback.c
sound/usb/line6/playback.c
+19
-15
sound/usb/line6/pod.c
sound/usb/line6/pod.c
+11
-28
sound/usb/line6/podhd.c
sound/usb/line6/podhd.c
+4
-12
sound/usb/line6/revision.h
sound/usb/line6/revision.h
+0
-4
sound/usb/line6/toneport.c
sound/usb/line6/toneport.c
+9
-22
sound/usb/line6/usbdefs.h
sound/usb/line6/usbdefs.h
+0
-27
sound/usb/line6/variax.c
sound/usb/line6/variax.c
+6
-19
No files found.
sound/usb/line6/capture.c
View file @
6eb3db91
...
...
@@ -216,12 +216,11 @@ static int snd_line6_capture_open(struct snd_pcm_substream *substream)
err
=
snd_pcm_hw_constraint_ratdens
(
runtime
,
0
,
SNDRV_PCM_HW_PARAM_RATE
,
(
&
line6pcm
->
properties
->
snd_line6_rates
));
&
line6pcm
->
properties
->
rates
);
if
(
err
<
0
)
return
err
;
runtime
->
hw
=
line6pcm
->
properties
->
snd_line6_
capture_hw
;
runtime
->
hw
=
line6pcm
->
properties
->
capture_hw
;
return
0
;
}
...
...
sound/usb/line6/driver.c
View file @
6eb3db91
...
...
@@ -22,8 +22,6 @@
#include "driver.h"
#include "midi.h"
#include "playback.h"
#include "revision.h"
#include "usbdefs.h"
#define DRIVER_AUTHOR "Markus Grabner <grabner@icg.tugraz.at>"
#define DRIVER_DESC "Line 6 USB Driver"
...
...
@@ -44,7 +42,7 @@ static const char line6_request_version[] = {
0xf0
,
0x7e
,
0x7f
,
0x06
,
0x01
,
0xf7
};
/*
*
/*
Class for asynchronous messages.
*/
struct
message
{
...
...
sound/usb/line6/driver.h
View file @
6eb3db91
...
...
@@ -20,6 +20,12 @@
#define DRIVER_NAME "line6usb"
#define USB_INTERVALS_PER_SECOND 1000
/* Fallback USB interval and max packet size values */
#define LINE6_FALLBACK_INTERVAL 10
#define LINE6_FALLBACK_MAXPACKETSIZE 16
#define LINE6_TIMEOUT 1
#define LINE6_BUFSIZE_LISTEN 32
#define LINE6_MESSAGE_MAXLEN 256
...
...
@@ -60,26 +66,20 @@ extern const unsigned char line6_midi_id[3];
static
const
int
SYSEX_DATA_OFS
=
sizeof
(
line6_midi_id
)
+
3
;
static
const
int
SYSEX_EXTRA_SIZE
=
sizeof
(
line6_midi_id
)
+
4
;
/*
*
/*
Common properties of Line 6 devices.
*/
struct
line6_properties
{
/**
Card id string (maximum 16 characters).
This can be used to address the device in ALSA programs as
"default:CARD=<id>"
*/
/* Card id string (maximum 16 characters).
* This can be used to address the device in ALSA programs as
* "default:CARD=<id>"
*/
const
char
*
id
;
/**
Card short name (maximum 32 characters).
*/
/* Card short name (maximum 32 characters) */
const
char
*
name
;
/**
Bit vector defining this device's capabilities in the
line6usb driver.
*/
/* Bit vector defining this device's capabilities in line6usb driver */
int
capabilities
;
int
altsetting
;
...
...
@@ -90,70 +90,57 @@ struct line6_properties {
unsigned
ep_audio_w
;
};
/**
/* Capability bits */
enum
{
/* device supports settings parameter via USB */
LINE6_CAP_CONTROL
=
1
<<
0
,
/* device supports PCM input/output via USB */
LINE6_CAP_PCM
=
1
<<
1
,
/* device support hardware monitoring */
LINE6_CAP_HWMON
=
1
<<
2
,
};
/*
Common data shared by all Line 6 devices.
Corresponds to a pair of USB endpoints.
*/
struct
usb_line6
{
/**
USB device.
*/
/* USB device */
struct
usb_device
*
usbdev
;
/**
Properties.
*/
/* Properties */
const
struct
line6_properties
*
properties
;
/**
Interval (ms).
*/
/* Interval (ms) */
int
interval
;
/**
Maximum size of USB packet.
*/
/* Maximum size of USB packet */
int
max_packet_size
;
/**
Device representing the USB interface.
*/
/* Device representing the USB interface */
struct
device
*
ifcdev
;
/**
Line 6 sound card data structure.
Each device has at least MIDI or PCM.
*/
/* Line 6 sound card data structure.
* Each device has at least MIDI or PCM.
*/
struct
snd_card
*
card
;
/**
Line 6 PCM device data structure.
*/
/* Line 6 PCM device data structure */
struct
snd_line6_pcm
*
line6pcm
;
/**
Line 6 MIDI device data structure.
*/
/* Line 6 MIDI device data structure */
struct
snd_line6_midi
*
line6midi
;
/**
URB for listening to PODxt Pro control endpoint.
*/
/* URB for listening to PODxt Pro control endpoint */
struct
urb
*
urb_listen
;
/**
Buffer for listening to PODxt Pro control endpoint.
*/
/* Buffer for listening to PODxt Pro control endpoint */
unsigned
char
*
buffer_listen
;
/**
Buffer for message to be processed.
*/
/* Buffer for message to be processed */
unsigned
char
*
buffer_message
;
/**
Length of message to be processed.
*/
/* Length of message to be processed */
int
message_length
;
void
(
*
process_message
)(
struct
usb_line6
*
);
...
...
sound/usb/line6/midi.c
View file @
6eb3db91
...
...
@@ -17,7 +17,6 @@
#include "driver.h"
#include "midi.h"
#include "usbdefs.h"
#define line6_rawmidi_substream_midi(substream) \
((struct snd_line6_midi *)((substream)->rmidi->private_data))
...
...
sound/usb/line6/midi.h
View file @
6eb3db91
...
...
@@ -19,44 +19,28 @@
#define MIDI_BUFFER_SIZE 1024
struct
snd_line6_midi
{
/**
Pointer back to the Line 6 driver data structure.
*/
/* Pointer back to the Line 6 driver data structure */
struct
usb_line6
*
line6
;
/**
MIDI substream for receiving (or NULL if not active).
*/
/* MIDI substream for receiving (or NULL if not active) */
struct
snd_rawmidi_substream
*
substream_receive
;
/**
MIDI substream for transmitting (or NULL if not active).
*/
/* MIDI substream for transmitting (or NULL if not active) */
struct
snd_rawmidi_substream
*
substream_transmit
;
/**
Number of currently active MIDI send URBs.
*/
/* Number of currently active MIDI send URBs */
int
num_active_send_urbs
;
/**
Spin lock to protect MIDI buffer handling.
*/
/* Spin lock to protect MIDI buffer handling */
spinlock_t
lock
;
/**
Wait queue for MIDI transmission.
*/
/* Wait queue for MIDI transmission */
wait_queue_head_t
send_wait
;
/**
Buffer for incoming MIDI stream.
*/
/* Buffer for incoming MIDI stream */
struct
midi_buffer
midibuf_in
;
/**
Buffer for outgoing MIDI stream.
*/
/* Buffer for outgoing MIDI stream */
struct
midi_buffer
midibuf_out
;
};
...
...
sound/usb/line6/pcm.h
View file @
6eb3db91
...
...
@@ -19,7 +19,6 @@
#include <sound/pcm.h>
#include "driver.h"
#include "usbdefs.h"
/* number of URBs */
#define LINE6_ISO_BUFFERS 2
...
...
@@ -66,8 +65,8 @@
the running flag indicates whether the stream is running.
For monitor or impulse operations, the driver needs to call
snd_line6_duplex_acquire() or snd_line6_duplex_release() with th
e
appropriate
LINE6_STREAM_* flag.
line6_pcm_acquire() or line6_pcm_release() with the appropriat
e
LINE6_STREAM_* flag.
*/
/* stream types */
...
...
@@ -84,8 +83,8 @@ enum {
};
struct
line6_pcm_properties
{
struct
snd_pcm_hardware
snd_line6_playback_hw
,
snd_line6_
capture_hw
;
struct
snd_pcm_hw_constraint_ratdens
snd_line6_
rates
;
struct
snd_pcm_hardware
playback_hw
,
capture_hw
;
struct
snd_pcm_hw_constraint_ratdens
rates
;
int
bytes_per_frame
;
};
...
...
@@ -139,19 +138,13 @@ struct line6_pcm_stream {
};
struct
snd_line6_pcm
{
/**
Pointer back to the Line 6 driver data structure.
*/
/* Pointer back to the Line 6 driver data structure */
struct
usb_line6
*
line6
;
/**
Properties.
*/
/* Properties. */
struct
line6_pcm_properties
*
properties
;
/**
ALSA pcm stream
*/
/* ALSA pcm stream */
struct
snd_pcm
*
pcm
;
/* protection to state changes of in/out streams */
...
...
@@ -161,49 +154,31 @@ struct snd_line6_pcm {
struct
line6_pcm_stream
in
;
struct
line6_pcm_stream
out
;
/**
Previously captured frame (for software monitoring).
*/
/* Previously captured frame (for software monitoring) */
unsigned
char
*
prev_fbuf
;
/**
Size of previously captured frame (for software monitoring).
*/
/* Size of previously captured frame (for software monitoring) */
int
prev_fsize
;
/**
Maximum size of USB packet.
*/
/* Maximum size of USB packet */
int
max_packet_size
;
/**
PCM playback volume (left and right).
*/
/* PCM playback volume (left and right) */
int
volume_playback
[
2
];
/**
PCM monitor volume.
*/
/* PCM monitor volume */
int
volume_monitor
;
/**
Volume of impulse response test signal (if zero, test is disabled).
*/
/* Volume of impulse response test signal (if zero, test is disabled) */
int
impulse_volume
;
/**
Period of impulse response test signal.
*/
/* Period of impulse response test signal */
int
impulse_period
;
/**
Counter for impulse response test signal.
*/
/* Counter for impulse response test signal */
int
impulse_count
;
/**
Several status bits (see LINE6_FLAG_*).
*/
/* Several status bits (see LINE6_FLAG_*) */
unsigned
long
flags
;
};
...
...
sound/usb/line6/playback.c
View file @
6eb3db91
...
...
@@ -31,14 +31,16 @@ static void change_volume(struct urb *urb_out, int volume[],
return
;
/* maximum volume - no change */
if
(
bytes_per_frame
==
4
)
{
short
*
p
,
*
buf_end
;
__le16
*
p
,
*
buf_end
;
p
=
(
short
*
)
urb_out
->
transfer_buffer
;
p
=
(
__le16
*
)
urb_out
->
transfer_buffer
;
buf_end
=
p
+
urb_out
->
transfer_buffer_length
/
sizeof
(
*
p
);
for
(;
p
<
buf_end
;
++
p
)
{
int
val
=
(
*
p
*
volume
[
chn
&
1
])
>>
8
;
*
p
=
clamp
(
val
,
0x7fff
,
-
0x8000
);
short
pv
=
le16_to_cpu
(
*
p
);
int
val
=
(
pv
*
volume
[
chn
&
1
])
>>
8
;
pv
=
clamp
(
val
,
0x7fff
,
-
0x8000
);
*
p
=
cpu_to_le16
(
pv
);
++
chn
;
}
}
else
if
(
bytes_per_frame
==
6
)
{
...
...
@@ -114,15 +116,18 @@ static void add_monitor_signal(struct urb *urb_out, unsigned char *signal,
return
;
/* zero volume - no change */
if
(
bytes_per_frame
==
4
)
{
short
*
pi
,
*
po
,
*
buf_end
;
__le16
*
pi
,
*
po
,
*
buf_end
;
pi
=
(
short
*
)
signal
;
po
=
(
short
*
)
urb_out
->
transfer_buffer
;
pi
=
(
__le16
*
)
signal
;
po
=
(
__le16
*
)
urb_out
->
transfer_buffer
;
buf_end
=
po
+
urb_out
->
transfer_buffer_length
/
sizeof
(
*
po
);
for
(;
po
<
buf_end
;
++
pi
,
++
po
)
{
int
val
=
*
po
+
((
*
pi
*
volume
)
>>
8
);
*
po
=
clamp
(
val
,
0x7fff
,
-
0x8000
);
short
pov
=
le16_to_cpu
(
*
po
);
short
piv
=
le16_to_cpu
(
*
pi
);
int
val
=
pov
+
((
piv
*
volume
)
>>
8
);
pov
=
clamp
(
val
,
0x7fff
,
-
0x8000
);
*
po
=
cpu_to_le16
(
pov
);
}
}
...
...
@@ -143,10 +148,10 @@ static int submit_audio_out_urb(struct snd_line6_pcm *line6pcm)
int
ret
;
const
int
bytes_per_frame
=
line6pcm
->
properties
->
bytes_per_frame
;
const
int
frame_increment
=
line6pcm
->
properties
->
snd_line6_
rates
.
rats
[
0
].
num_min
;
line6pcm
->
properties
->
rates
.
rats
[
0
].
num_min
;
const
int
frame_factor
=
line6pcm
->
properties
->
snd_line6_
rates
.
rats
[
0
].
den
*
(
USB_INTERVALS_PER_SECOND
/
LINE6_ISO_INTERVAL
);
line6pcm
->
properties
->
rates
.
rats
[
0
].
den
*
(
USB_INTERVALS_PER_SECOND
/
LINE6_ISO_INTERVAL
);
struct
urb
*
urb_out
;
index
=
...
...
@@ -365,12 +370,11 @@ static int snd_line6_playback_open(struct snd_pcm_substream *substream)
struct
snd_line6_pcm
*
line6pcm
=
snd_pcm_substream_chip
(
substream
);
err
=
snd_pcm_hw_constraint_ratdens
(
runtime
,
0
,
SNDRV_PCM_HW_PARAM_RATE
,
(
&
line6pcm
->
properties
->
snd_line6_rates
));
&
line6pcm
->
properties
->
rates
);
if
(
err
<
0
)
return
err
;
runtime
->
hw
=
line6pcm
->
properties
->
snd_line6_
playback_hw
;
runtime
->
hw
=
line6pcm
->
properties
->
playback_hw
;
return
0
;
}
...
...
sound/usb/line6/pod.c
View file @
6eb3db91
...
...
@@ -21,7 +21,6 @@
#include "capture.h"
#include "driver.h"
#include "playback.h"
#include "usbdefs.h"
/*
Locate name in binary program dump
...
...
@@ -58,44 +57,28 @@ enum {
};
struct
usb_line6_pod
{
/**
Generic Line 6 USB data.
*/
/* Generic Line 6 USB data */
struct
usb_line6
line6
;
/**
Instrument monitor level.
*/
/* Instrument monitor level */
int
monitor_level
;
/**
Timer for device initializaton.
*/
/* Timer for device initialization */
struct
timer_list
startup_timer
;
/**
Work handler for device initializaton.
*/
/* Work handler for device initialization */
struct
work_struct
startup_work
;
/**
Current progress in startup procedure.
*/
/* Current progress in startup procedure */
int
startup_progress
;
/**
Serial number of device.
*/
/* Serial number of device */
int
serial_number
;
/**
Firmware version (x 100).
*/
/* Firmware version (x 100) */
int
firmware_version
;
/**
Device ID.
*/
/* Device ID */
int
device_id
;
};
...
...
@@ -146,7 +129,7 @@ static struct snd_ratden pod_ratden = {
};
static
struct
line6_pcm_properties
pod_pcm_properties
=
{
.
snd_line6_
playback_hw
=
{
.
playback_hw
=
{
.
info
=
(
SNDRV_PCM_INFO_MMAP
|
SNDRV_PCM_INFO_INTERLEAVED
|
SNDRV_PCM_INFO_BLOCK_TRANSFER
|
...
...
@@ -164,7 +147,7 @@ static struct line6_pcm_properties pod_pcm_properties = {
.
period_bytes_max
=
8192
,
.
periods_min
=
1
,
.
periods_max
=
1024
},
.
snd_line6_
capture_hw
=
{
.
capture_hw
=
{
.
info
=
(
SNDRV_PCM_INFO_MMAP
|
SNDRV_PCM_INFO_INTERLEAVED
|
SNDRV_PCM_INFO_BLOCK_TRANSFER
|
...
...
@@ -181,7 +164,7 @@ static struct line6_pcm_properties pod_pcm_properties = {
.
period_bytes_max
=
8192
,
.
periods_min
=
1
,
.
periods_max
=
1024
},
.
snd_line6_
rates
=
{
.
rates
=
{
.
nrats
=
1
,
.
rats
=
&
pod_ratden
},
.
bytes_per_frame
=
POD_BYTES_PER_FRAME
...
...
sound/usb/line6/podhd.c
View file @
6eb3db91
...
...
@@ -17,7 +17,6 @@
#include "driver.h"
#include "pcm.h"
#include "usbdefs.h"
enum
{
LINE6_PODHD300
,
...
...
@@ -26,13 +25,6 @@ enum {
LINE6_PODHD500_1
,
};
struct
usb_line6_podhd
{
/**
Generic Line 6 USB data.
*/
struct
usb_line6
line6
;
};
#define PODHD_BYTES_PER_FRAME 6
/* 24bit audio (stereo) */
static
struct
snd_ratden
podhd_ratden
=
{
...
...
@@ -43,7 +35,7 @@ static struct snd_ratden podhd_ratden = {
};
static
struct
line6_pcm_properties
podhd_pcm_properties
=
{
.
snd_line6_
playback_hw
=
{
.
playback_hw
=
{
.
info
=
(
SNDRV_PCM_INFO_MMAP
|
SNDRV_PCM_INFO_INTERLEAVED
|
SNDRV_PCM_INFO_BLOCK_TRANSFER
|
...
...
@@ -61,7 +53,7 @@ static struct line6_pcm_properties podhd_pcm_properties = {
.
period_bytes_max
=
8192
,
.
periods_min
=
1
,
.
periods_max
=
1024
},
.
snd_line6_
capture_hw
=
{
.
capture_hw
=
{
.
info
=
(
SNDRV_PCM_INFO_MMAP
|
SNDRV_PCM_INFO_INTERLEAVED
|
SNDRV_PCM_INFO_BLOCK_TRANSFER
|
...
...
@@ -78,7 +70,7 @@ static struct line6_pcm_properties podhd_pcm_properties = {
.
period_bytes_max
=
8192
,
.
periods_min
=
1
,
.
periods_max
=
1024
},
.
snd_line6_
rates
=
{
.
rates
=
{
.
nrats
=
1
,
.
rats
=
&
podhd_ratden
},
.
bytes_per_frame
=
PODHD_BYTES_PER_FRAME
...
...
@@ -179,7 +171,7 @@ static int podhd_probe(struct usb_interface *interface,
{
return
line6_probe
(
interface
,
id
,
&
podhd_properties_table
[
id
->
driver_info
],
podhd_init
,
sizeof
(
struct
usb_line6
_podhd
));
podhd_init
,
sizeof
(
struct
usb_line6
));
}
static
struct
usb_driver
podhd_driver
=
{
...
...
sound/usb/line6/revision.h
deleted
100644 → 0
View file @
d832f3dc
#ifndef DRIVER_REVISION
/* current subversion revision */
#define DRIVER_REVISION " (904)"
#endif
sound/usb/line6/toneport.c
View file @
6eb3db91
...
...
@@ -21,7 +21,6 @@
#include "capture.h"
#include "driver.h"
#include "playback.h"
#include "usbdefs.h"
enum
line6_device_type
{
LINE6_GUITARPORT
,
...
...
@@ -43,34 +42,22 @@ struct toneport_led {
};
struct
usb_line6_toneport
{
/**
Generic Line 6 USB data.
*/
/* Generic Line 6 USB data */
struct
usb_line6
line6
;
/**
Source selector.
*/
/* Source selector */
int
source
;
/**
Serial number of device.
*/
/* Serial number of device */
int
serial_number
;
/**
Firmware version (x 100).
*/
/* Firmware version (x 100) */
int
firmware_version
;
/**
Timer for delayed PCM startup.
*/
/* Timer for delayed PCM startup */
struct
timer_list
timer
;
/**
Device type.
*/
/* Device type */
enum
line6_device_type
type
;
/* LED instances */
...
...
@@ -89,7 +76,7 @@ static struct snd_ratden toneport_ratden = {
};
static
struct
line6_pcm_properties
toneport_pcm_properties
=
{
.
snd_line6_
playback_hw
=
{
.
playback_hw
=
{
.
info
=
(
SNDRV_PCM_INFO_MMAP
|
SNDRV_PCM_INFO_INTERLEAVED
|
SNDRV_PCM_INFO_BLOCK_TRANSFER
|
...
...
@@ -107,7 +94,7 @@ static struct line6_pcm_properties toneport_pcm_properties = {
.
period_bytes_max
=
8192
,
.
periods_min
=
1
,
.
periods_max
=
1024
},
.
snd_line6_
capture_hw
=
{
.
capture_hw
=
{
.
info
=
(
SNDRV_PCM_INFO_MMAP
|
SNDRV_PCM_INFO_INTERLEAVED
|
SNDRV_PCM_INFO_BLOCK_TRANSFER
|
...
...
@@ -124,7 +111,7 @@ static struct line6_pcm_properties toneport_pcm_properties = {
.
period_bytes_max
=
8192
,
.
periods_min
=
1
,
.
periods_max
=
1024
},
.
snd_line6_
rates
=
{
.
rates
=
{
.
nrats
=
1
,
.
rats
=
&
toneport_ratden
},
.
bytes_per_frame
=
4
...
...
sound/usb/line6/usbdefs.h
deleted
100644 → 0
View file @
d832f3dc
/*
* Line 6 Linux USB driver
*
* Copyright (C) 2005-2008 Markus Grabner (grabner@icg.tugraz.at)
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License as
* published by the Free Software Foundation, version 2.
*
*/
#ifndef USBDEFS_H
#define USBDEFS_H
#define USB_INTERVALS_PER_SECOND 1000
/* device supports settings parameter via USB */
#define LINE6_CAP_CONTROL (1 << 0)
/* device supports PCM input/output via USB */
#define LINE6_CAP_PCM (1 << 1)
/* device support hardware monitoring */
#define LINE6_CAP_HWMON (1 << 2)
#define LINE6_FALLBACK_INTERVAL 10
#define LINE6_FALLBACK_MAXPACKETSIZE 16
#endif
sound/usb/line6/variax.c
View file @
6eb3db91
...
...
@@ -17,7 +17,6 @@
#include <sound/core.h>
#include "driver.h"
#include "usbdefs.h"
#define VARIAX_STARTUP_DELAY1 1000
#define VARIAX_STARTUP_DELAY3 100
...
...
@@ -42,30 +41,20 @@ enum {
};
struct
usb_line6_variax
{
/**
Generic Line 6 USB data.
*/
/* Generic Line 6 USB data */
struct
usb_line6
line6
;
/**
Buffer for activation code.
*/
/* Buffer for activation code */
unsigned
char
*
buffer_activate
;
/**
Handler for device initializaton.
*/
/* Handler for device initialization */
struct
work_struct
startup_work
;
/**
Timers for device initializaton.
*/
/* Timers for device initialization */
struct
timer_list
startup_timer1
;
struct
timer_list
startup_timer2
;
/**
Current progress in startup procedure.
*/
/* Current progress in startup procedure */
int
startup_progress
;
};
...
...
@@ -270,9 +259,7 @@ static const struct line6_properties variax_properties_table[] = {
[
LINE6_PODXTLIVE_VARIAX
]
=
{
.
id
=
"PODxtLive"
,
.
name
=
"PODxt Live"
,
.
capabilities
=
LINE6_CAP_CONTROL
|
LINE6_CAP_PCM
|
LINE6_CAP_HWMON
,
.
capabilities
=
LINE6_CAP_CONTROL
,
.
altsetting
=
1
,
.
ep_ctrl_r
=
0x86
,
.
ep_ctrl_w
=
0x05
,
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment