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
f1aa095a
Commit
f1aa095a
authored
Oct 23, 2003
by
Greg Kroah-Hartman
Browse files
Options
Browse Files
Download
Plain Diff
Merge kroah.com:/home/greg/linux/BK/bleed-2.5
into kroah.com:/home/greg/linux/BK/usb-2.6
parents
8c8c3970
fa04f891
Changes
11
Hide whitespace changes
Inline
Side-by-side
Showing
11 changed files
with
106 additions
and
73 deletions
+106
-73
drivers/usb/class/audio.c
drivers/usb/class/audio.c
+4
-0
drivers/usb/class/cdc-acm.c
drivers/usb/class/cdc-acm.c
+43
-39
drivers/usb/core/message.c
drivers/usb/core/message.c
+6
-6
drivers/usb/gadget/inode.c
drivers/usb/gadget/inode.c
+2
-2
drivers/usb/media/vicam.c
drivers/usb/media/vicam.c
+1
-0
drivers/usb/misc/brlvger.c
drivers/usb/misc/brlvger.c
+1
-0
drivers/usb/net/usbnet.c
drivers/usb/net/usbnet.c
+5
-2
drivers/usb/serial/ftdi_sio.c
drivers/usb/serial/ftdi_sio.c
+25
-21
drivers/usb/serial/ftdi_sio.h
drivers/usb/serial/ftdi_sio.h
+6
-1
drivers/usb/serial/io_edgeport.c
drivers/usb/serial/io_edgeport.c
+1
-0
drivers/usb/storage/unusual_devs.h
drivers/usb/storage/unusual_devs.h
+12
-2
No files found.
drivers/usb/class/audio.c
View file @
f1aa095a
...
@@ -2007,6 +2007,8 @@ static int usb_audio_ioctl_mixdev(struct inode *inode, struct file *file, unsign
...
@@ -2007,6 +2007,8 @@ static int usb_audio_ioctl_mixdev(struct inode *inode, struct file *file, unsign
if
(
cmd
==
SOUND_MIXER_INFO
)
{
if
(
cmd
==
SOUND_MIXER_INFO
)
{
mixer_info
info
;
mixer_info
info
;
memset
(
&
info
,
0
,
sizeof
(
info
));
strncpy
(
info
.
id
,
"USB_AUDIO"
,
sizeof
(
info
.
id
));
strncpy
(
info
.
id
,
"USB_AUDIO"
,
sizeof
(
info
.
id
));
strncpy
(
info
.
name
,
"USB Audio Class Driver"
,
sizeof
(
info
.
name
));
strncpy
(
info
.
name
,
"USB Audio Class Driver"
,
sizeof
(
info
.
name
));
info
.
modify_counter
=
ms
->
modcnt
;
info
.
modify_counter
=
ms
->
modcnt
;
...
@@ -2016,6 +2018,8 @@ static int usb_audio_ioctl_mixdev(struct inode *inode, struct file *file, unsign
...
@@ -2016,6 +2018,8 @@ static int usb_audio_ioctl_mixdev(struct inode *inode, struct file *file, unsign
}
}
if
(
cmd
==
SOUND_OLD_MIXER_INFO
)
{
if
(
cmd
==
SOUND_OLD_MIXER_INFO
)
{
_old_mixer_info
info
;
_old_mixer_info
info
;
memset
(
&
info
,
0
,
sizeof
(
info
));
strncpy
(
info
.
id
,
"USB_AUDIO"
,
sizeof
(
info
.
id
));
strncpy
(
info
.
id
,
"USB_AUDIO"
,
sizeof
(
info
.
id
));
strncpy
(
info
.
name
,
"USB Audio Class Driver"
,
sizeof
(
info
.
name
));
strncpy
(
info
.
name
,
"USB Audio Class Driver"
,
sizeof
(
info
.
name
));
if
(
copy_to_user
((
void
__user
*
)
arg
,
&
info
,
sizeof
(
info
)))
if
(
copy_to_user
((
void
__user
*
)
arg
,
&
info
,
sizeof
(
info
)))
...
...
drivers/usb/class/cdc-acm.c
View file @
f1aa095a
/*
/*
* acm.c Version 0.2
1
* acm.c Version 0.2
2
*
*
* Copyright (c) 1999 Armin Fuerst <fuerst@in.tum.de>
* Copyright (c) 1999 Armin Fuerst <fuerst@in.tum.de>
* Copyright (c) 1999 Pavel Machek <pavel@suse.cz>
* Copyright (c) 1999 Pavel Machek <pavel@suse.cz>
...
@@ -24,6 +24,8 @@
...
@@ -24,6 +24,8 @@
* v0.19 - fixed CLOCAL handling (thanks to Richard Shih-Ping Chan)
* v0.19 - fixed CLOCAL handling (thanks to Richard Shih-Ping Chan)
* v0.20 - switched to probing on interface (rather than device) class
* v0.20 - switched to probing on interface (rather than device) class
* v0.21 - revert to probing on device for devices with multiple configs
* v0.21 - revert to probing on device for devices with multiple configs
* v0.22 - probe only the control interface. if usbcore doesn't choose the
* config we want, sysadmin changes bConfigurationValue in sysfs.
*/
*/
/*
/*
...
@@ -139,7 +141,8 @@ struct acm_line {
...
@@ -139,7 +141,8 @@ struct acm_line {
struct
acm
{
struct
acm
{
struct
usb_device
*
dev
;
/* the corresponding usb device */
struct
usb_device
*
dev
;
/* the corresponding usb device */
struct
usb_interface
*
iface
;
/* the interfaces - +0 control +1 data */
struct
usb_interface
*
control
;
/* control interface */
struct
usb_interface
*
data
;
/* data interface */
struct
tty_struct
*
tty
;
/* the corresponding tty */
struct
tty_struct
*
tty
;
/* the corresponding tty */
struct
urb
*
ctrlurb
,
*
readurb
,
*
writeurb
;
/* urbs */
struct
urb
*
ctrlurb
,
*
readurb
,
*
writeurb
;
/* urbs */
struct
acm_line
line
;
/* line coding (bits, stop, parity) */
struct
acm_line
line
;
/* line coding (bits, stop, parity) */
...
@@ -167,12 +170,15 @@ static int acm_ctrl_msg(struct acm *acm, int request, int value, void *buf, int
...
@@ -167,12 +170,15 @@ static int acm_ctrl_msg(struct acm *acm, int request, int value, void *buf, int
{
{
int
retval
=
usb_control_msg
(
acm
->
dev
,
usb_sndctrlpipe
(
acm
->
dev
,
0
),
int
retval
=
usb_control_msg
(
acm
->
dev
,
usb_sndctrlpipe
(
acm
->
dev
,
0
),
request
,
USB_RT_ACM
,
value
,
request
,
USB_RT_ACM
,
value
,
acm
->
iface
[
0
].
altsetting
[
0
].
desc
.
bInterfaceNumber
,
acm
->
control
->
altsetting
[
0
].
desc
.
bInterfaceNumber
,
buf
,
len
,
HZ
*
5
);
buf
,
len
,
HZ
*
5
);
dbg
(
"acm_control_msg: rq: 0x%02x val: %#x len: %#x result: %d"
,
request
,
value
,
len
,
retval
);
dbg
(
"acm_control_msg: rq: 0x%02x val: %#x len: %#x result: %d"
,
request
,
value
,
len
,
retval
);
return
retval
<
0
?
retval
:
0
;
return
retval
<
0
?
retval
:
0
;
}
}
/* devices aren't required to support these requests.
* the cdc acm descriptor tells whether they do...
*/
#define acm_set_control(acm, control) acm_ctrl_msg(acm, ACM_REQ_SET_CONTROL, control, NULL, 0)
#define acm_set_control(acm, control) acm_ctrl_msg(acm, ACM_REQ_SET_CONTROL, control, NULL, 0)
#define acm_set_line(acm, line) acm_ctrl_msg(acm, ACM_REQ_SET_LINE, 0, line, sizeof(struct acm_line))
#define acm_set_line(acm, line) acm_ctrl_msg(acm, ACM_REQ_SET_LINE, 0, line, sizeof(struct acm_line))
#define acm_send_break(acm, ms) acm_ctrl_msg(acm, ACM_REQ_SEND_BREAK, ms, NULL, 0)
#define acm_send_break(acm, ms) acm_ctrl_msg(acm, ACM_REQ_SEND_BREAK, ms, NULL, 0)
...
@@ -211,7 +217,7 @@ static void acm_ctrl_irq(struct urb *urb, struct pt_regs *regs)
...
@@ -211,7 +217,7 @@ static void acm_ctrl_irq(struct urb *urb, struct pt_regs *regs)
case
ACM_IRQ_NETWORK
:
case
ACM_IRQ_NETWORK
:
dbg
(
"%s network"
,
d
ata
[
0
]
?
"connected to"
:
"disconnected from"
);
dbg
(
"%s network"
,
d
r
->
wValue
?
"connected to"
:
"disconnected from"
);
break
;
break
;
case
ACM_IRQ_LINE_STATE
:
case
ACM_IRQ_LINE_STATE
:
...
@@ -546,17 +552,15 @@ static int acm_probe (struct usb_interface *intf,
...
@@ -546,17 +552,15 @@ static int acm_probe (struct usb_interface *intf,
struct
usb_device
*
dev
;
struct
usb_device
*
dev
;
struct
acm
*
acm
;
struct
acm
*
acm
;
struct
usb_host_config
*
cfacm
;
struct
usb_host_config
*
cfacm
;
struct
usb_interface
*
data
;
struct
usb_host_interface
*
ifcom
,
*
ifdata
;
struct
usb_host_interface
*
ifcom
,
*
ifdata
;
struct
usb_endpoint_descriptor
*
epctrl
,
*
epread
,
*
epwrite
;
struct
usb_endpoint_descriptor
*
epctrl
,
*
epread
,
*
epwrite
;
int
readsize
,
ctrlsize
,
minor
,
i
,
j
;
int
readsize
,
ctrlsize
,
minor
,
j
;
unsigned
char
*
buf
;
unsigned
char
*
buf
;
dev
=
interface_to_usbdev
(
intf
);
dev
=
interface_to_usbdev
(
intf
);
for
(
i
=
0
;
i
<
dev
->
descriptor
.
bNumConfigurations
;
i
++
)
{
cfacm
=
dev
->
config
+
i
;
dbg
(
"probing config %d"
,
cfacm
->
desc
.
bConfigurationValue
)
;
cfacm
=
dev
->
actconfig
;
for
(
j
=
0
;
j
<
cfacm
->
desc
.
bNumInterfaces
-
1
;
j
++
)
{
for
(
j
=
0
;
j
<
cfacm
->
desc
.
bNumInterfaces
-
1
;
j
++
)
{
...
@@ -564,19 +568,23 @@ static int acm_probe (struct usb_interface *intf,
...
@@ -564,19 +568,23 @@ static int acm_probe (struct usb_interface *intf,
usb_interface_claimed
(
cfacm
->
interface
[
j
+
1
]))
usb_interface_claimed
(
cfacm
->
interface
[
j
+
1
]))
continue
;
continue
;
ifcom
=
cfacm
->
interface
[
j
]
->
altsetting
+
0
;
/* We know we're probe()d with the control interface.
ifdata
=
cfacm
->
interface
[
j
+
1
]
->
altsetting
+
0
;
* FIXME ACM doesn't guarantee the data interface is
* adjacent to the control interface, or that if one
if
(
ifdata
->
desc
.
bInterfaceClass
!=
10
||
ifdata
->
desc
.
bNumEndpoints
<
2
)
{
* is there it's not for call management ... so use
ifcom
=
cfacm
->
interface
[
j
+
1
]
->
altsetting
+
0
;
* the cdc union descriptor whenever there is one.
*/
ifcom
=
intf
->
altsetting
+
0
;
if
(
intf
==
cfacm
->
interface
[
j
])
{
ifdata
=
cfacm
->
interface
[
j
+
1
]
->
altsetting
+
0
;
data
=
cfacm
->
interface
[
j
+
1
];
}
else
if
(
intf
==
cfacm
->
interface
[
j
+
1
])
{
ifdata
=
cfacm
->
interface
[
j
]
->
altsetting
+
0
;
ifdata
=
cfacm
->
interface
[
j
]
->
altsetting
+
0
;
if
(
ifdata
->
desc
.
bInterfaceClass
!=
10
||
ifdata
->
desc
.
bNumEndpoints
<
2
)
data
=
cfacm
->
interface
[
j
];
continue
;
}
else
}
continue
;
if
(
ifcom
->
desc
.
bInterfaceClass
!=
2
||
ifcom
->
desc
.
bInterfaceSubClass
!=
2
||
if
(
ifdata
->
desc
.
bInterfaceClass
!=
10
||
ifdata
->
desc
.
bNumEndpoints
<
2
)
ifcom
->
desc
.
bInterfaceProtocol
<
1
||
ifcom
->
desc
.
bInterfaceProtocol
>
6
||
ifcom
->
desc
.
bNumEndpoints
<
1
)
continue
;
continue
;
epctrl
=
&
ifcom
->
endpoint
[
0
].
desc
;
epctrl
=
&
ifcom
->
endpoint
[
0
].
desc
;
...
@@ -593,15 +601,6 @@ static int acm_probe (struct usb_interface *intf,
...
@@ -593,15 +601,6 @@ static int acm_probe (struct usb_interface *intf,
epwrite
=
&
ifdata
->
endpoint
[
0
].
desc
;
epwrite
=
&
ifdata
->
endpoint
[
0
].
desc
;
}
}
/* FIXME don't scan every config. it's either correct
* when we probe(), or some other task must fix this.
*/
if
(
dev
->
actconfig
!=
cfacm
)
{
err
(
"need inactive config #%d"
,
cfacm
->
desc
.
bConfigurationValue
);
return
-
ENODEV
;
}
for
(
minor
=
0
;
minor
<
ACM_TTY_MINORS
&&
acm_table
[
minor
];
minor
++
);
for
(
minor
=
0
;
minor
<
ACM_TTY_MINORS
&&
acm_table
[
minor
];
minor
++
);
if
(
acm_table
[
minor
])
{
if
(
acm_table
[
minor
])
{
err
(
"no more free acm devices"
);
err
(
"no more free acm devices"
);
...
@@ -617,7 +616,8 @@ static int acm_probe (struct usb_interface *intf,
...
@@ -617,7 +616,8 @@ static int acm_probe (struct usb_interface *intf,
ctrlsize
=
epctrl
->
wMaxPacketSize
;
ctrlsize
=
epctrl
->
wMaxPacketSize
;
readsize
=
epread
->
wMaxPacketSize
;
readsize
=
epread
->
wMaxPacketSize
;
acm
->
writesize
=
epwrite
->
wMaxPacketSize
;
acm
->
writesize
=
epwrite
->
wMaxPacketSize
;
acm
->
iface
=
cfacm
->
interface
[
j
];
acm
->
control
=
intf
;
acm
->
data
=
data
;
acm
->
minor
=
minor
;
acm
->
minor
=
minor
;
acm
->
dev
=
dev
;
acm
->
dev
=
dev
;
...
@@ -665,7 +665,7 @@ static int acm_probe (struct usb_interface *intf,
...
@@ -665,7 +665,7 @@ static int acm_probe (struct usb_interface *intf,
buf
+=
readsize
,
acm
->
writesize
,
acm_write_bulk
,
acm
);
buf
+=
readsize
,
acm
->
writesize
,
acm_write_bulk
,
acm
);
acm
->
writeurb
->
transfer_flags
|=
URB_NO_FSBR
;
acm
->
writeurb
->
transfer_flags
|=
URB_NO_FSBR
;
info
(
"ttyACM%d: USB ACM device"
,
minor
);
dev_info
(
&
intf
->
dev
,
"ttyACM%d: USB ACM device"
,
minor
);
acm_set_control
(
acm
,
acm
->
ctrlout
);
acm_set_control
(
acm
,
acm
->
ctrlout
);
...
@@ -673,8 +673,7 @@ static int acm_probe (struct usb_interface *intf,
...
@@ -673,8 +673,7 @@ static int acm_probe (struct usb_interface *intf,
acm
->
line
.
databits
=
8
;
acm
->
line
.
databits
=
8
;
acm_set_line
(
acm
,
&
acm
->
line
);
acm_set_line
(
acm
,
&
acm
->
line
);
usb_driver_claim_interface
(
&
acm_driver
,
acm
->
iface
+
0
,
acm
);
usb_driver_claim_interface
(
&
acm_driver
,
data
,
acm
);
usb_driver_claim_interface
(
&
acm_driver
,
acm
->
iface
+
1
,
acm
);
tty_register_device
(
acm_tty_driver
,
minor
,
&
intf
->
dev
);
tty_register_device
(
acm_tty_driver
,
minor
,
&
intf
->
dev
);
...
@@ -682,7 +681,6 @@ static int acm_probe (struct usb_interface *intf,
...
@@ -682,7 +681,6 @@ static int acm_probe (struct usb_interface *intf,
usb_set_intfdata
(
intf
,
acm
);
usb_set_intfdata
(
intf
,
acm
);
return
0
;
return
0
;
}
}
}
return
-
EIO
;
return
-
EIO
;
}
}
...
@@ -705,8 +703,7 @@ static void acm_disconnect(struct usb_interface *intf)
...
@@ -705,8 +703,7 @@ static void acm_disconnect(struct usb_interface *intf)
kfree
(
acm
->
ctrlurb
->
transfer_buffer
);
kfree
(
acm
->
ctrlurb
->
transfer_buffer
);
usb_driver_release_interface
(
&
acm_driver
,
acm
->
iface
+
0
);
usb_driver_release_interface
(
&
acm_driver
,
acm
->
data
);
usb_driver_release_interface
(
&
acm_driver
,
acm
->
iface
+
1
);
if
(
!
acm
->
used
)
{
if
(
!
acm
->
used
)
{
tty_unregister_device
(
acm_tty_driver
,
acm
->
minor
);
tty_unregister_device
(
acm_tty_driver
,
acm
->
minor
);
...
@@ -727,8 +724,15 @@ static void acm_disconnect(struct usb_interface *intf)
...
@@ -727,8 +724,15 @@ static void acm_disconnect(struct usb_interface *intf)
*/
*/
static
struct
usb_device_id
acm_ids
[]
=
{
static
struct
usb_device_id
acm_ids
[]
=
{
{
USB_DEVICE_INFO
(
USB_CLASS_COMM
,
0
,
0
)
},
/* control interfaces with various AT-command sets */
{
USB_DEVICE_INFO
(
USB_CLASS_COMM
,
2
,
0
)
},
{
USB_INTERFACE_INFO
(
USB_CLASS_COMM
,
2
,
1
)
},
{
USB_INTERFACE_INFO
(
USB_CLASS_COMM
,
2
,
2
)
},
{
USB_INTERFACE_INFO
(
USB_CLASS_COMM
,
2
,
3
)
},
{
USB_INTERFACE_INFO
(
USB_CLASS_COMM
,
2
,
4
)
},
{
USB_INTERFACE_INFO
(
USB_CLASS_COMM
,
2
,
5
)
},
{
USB_INTERFACE_INFO
(
USB_CLASS_COMM
,
2
,
6
)
},
/* NOTE: COMM/2/0xff is likely MSFT RNDIS ... NOT a modem!! */
{
}
{
}
};
};
...
@@ -736,7 +740,7 @@ MODULE_DEVICE_TABLE (usb, acm_ids);
...
@@ -736,7 +740,7 @@ MODULE_DEVICE_TABLE (usb, acm_ids);
static
struct
usb_driver
acm_driver
=
{
static
struct
usb_driver
acm_driver
=
{
.
owner
=
THIS_MODULE
,
.
owner
=
THIS_MODULE
,
.
name
=
"acm"
,
.
name
=
"
cdc_
acm"
,
.
probe
=
acm_probe
,
.
probe
=
acm_probe
,
.
disconnect
=
acm_disconnect
,
.
disconnect
=
acm_disconnect
,
.
id_table
=
acm_ids
,
.
id_table
=
acm_ids
,
...
...
drivers/usb/core/message.c
View file @
f1aa095a
...
@@ -1001,8 +1001,10 @@ int usb_reset_configuration(struct usb_device *dev)
...
@@ -1001,8 +1001,10 @@ int usb_reset_configuration(struct usb_device *dev)
int
i
,
retval
;
int
i
,
retval
;
struct
usb_host_config
*
config
;
struct
usb_host_config
*
config
;
/* dev->serialize guards all config changes */
/* caller must own dev->serialize (config won't change)
down
(
&
dev
->
serialize
);
* and the usb bus readlock (so driver bindings are stable);
* so calls during probe() are fine
*/
for
(
i
=
1
;
i
<
16
;
++
i
)
{
for
(
i
=
1
;
i
<
16
;
++
i
)
{
usb_disable_endpoint
(
dev
,
i
);
usb_disable_endpoint
(
dev
,
i
);
...
@@ -1016,7 +1018,7 @@ int usb_reset_configuration(struct usb_device *dev)
...
@@ -1016,7 +1018,7 @@ int usb_reset_configuration(struct usb_device *dev)
NULL
,
0
,
HZ
*
USB_CTRL_SET_TIMEOUT
);
NULL
,
0
,
HZ
*
USB_CTRL_SET_TIMEOUT
);
if
(
retval
<
0
)
{
if
(
retval
<
0
)
{
dev
->
state
=
USB_STATE_ADDRESS
;
dev
->
state
=
USB_STATE_ADDRESS
;
goto
done
;
return
retval
;
}
}
dev
->
toggle
[
0
]
=
dev
->
toggle
[
1
]
=
0
;
dev
->
toggle
[
0
]
=
dev
->
toggle
[
1
]
=
0
;
...
@@ -1029,9 +1031,7 @@ int usb_reset_configuration(struct usb_device *dev)
...
@@ -1029,9 +1031,7 @@ int usb_reset_configuration(struct usb_device *dev)
intf
->
act_altsetting
=
0
;
intf
->
act_altsetting
=
0
;
usb_enable_interface
(
dev
,
intf
);
usb_enable_interface
(
dev
,
intf
);
}
}
done:
return
0
;
up
(
&
dev
->
serialize
);
return
(
retval
<
0
)
?
retval
:
0
;
}
}
/**
/**
...
...
drivers/usb/gadget/inode.c
View file @
f1aa095a
...
@@ -812,7 +812,7 @@ ep0_read (struct file *fd, char *buf, size_t len, loff_t *ptr)
...
@@ -812,7 +812,7 @@ ep0_read (struct file *fd, char *buf, size_t len, loff_t *ptr)
if
(
dev
->
setup_out_error
)
if
(
dev
->
setup_out_error
)
retval
=
-
EIO
;
retval
=
-
EIO
;
else
{
else
{
len
=
min
(
len
,
dev
->
req
->
actual
);
len
=
min
(
len
,
(
size_t
)
dev
->
req
->
actual
);
// FIXME don't call this with the spinlock held ...
// FIXME don't call this with the spinlock held ...
if
(
copy_to_user
(
buf
,
&
dev
->
req
->
buf
,
len
))
if
(
copy_to_user
(
buf
,
&
dev
->
req
->
buf
,
len
))
retval
=
-
EFAULT
;
retval
=
-
EFAULT
;
...
@@ -1670,7 +1670,7 @@ dev_config (struct file *fd, const char *buf, size_t len, loff_t *ptr)
...
@@ -1670,7 +1670,7 @@ dev_config (struct file *fd, const char *buf, size_t len, loff_t *ptr)
fail:
fail:
spin_unlock_irq
(
&
dev
->
lock
);
spin_unlock_irq
(
&
dev
->
lock
);
pr_debug
(
"%s: %s fail %d, %p
\n
"
,
shortname
,
__FUNCTION__
,
value
,
dev
);
pr_debug
(
"%s: %s fail %
Z
d, %p
\n
"
,
shortname
,
__FUNCTION__
,
value
,
dev
);
kfree
(
dev
->
buf
);
kfree
(
dev
->
buf
);
dev
->
buf
=
0
;
dev
->
buf
=
0
;
return
value
;
return
value
;
...
...
drivers/usb/media/vicam.c
View file @
f1aa095a
...
@@ -539,6 +539,7 @@ vicam_ioctl(struct inode *inode, struct file *file, unsigned int ioctlnr, unsign
...
@@ -539,6 +539,7 @@ vicam_ioctl(struct inode *inode, struct file *file, unsigned int ioctlnr, unsign
struct
video_capability
b
;
struct
video_capability
b
;
DBG
(
"VIDIOCGCAP
\n
"
);
DBG
(
"VIDIOCGCAP
\n
"
);
memset
(
&
b
,
0
,
sizeof
(
b
));
strcpy
(
b
.
name
,
"ViCam-based Camera"
);
strcpy
(
b
.
name
,
"ViCam-based Camera"
);
b
.
type
=
VID_TYPE_CAPTURE
;
b
.
type
=
VID_TYPE_CAPTURE
;
b
.
channels
=
1
;
b
.
channels
=
1
;
...
...
drivers/usb/misc/brlvger.c
View file @
f1aa095a
...
@@ -711,6 +711,7 @@ brlvger_ioctl(struct inode *inode, struct file *file,
...
@@ -711,6 +711,7 @@ brlvger_ioctl(struct inode *inode, struct file *file,
case
BRLVGER_GET_INFO
:
{
case
BRLVGER_GET_INFO
:
{
struct
brlvger_info
vi
;
struct
brlvger_info
vi
;
memset
(
&
vi
,
0
,
sizeof
(
vi
));
strlcpy
(
vi
.
driver_version
,
DRIVER_VERSION
,
strlcpy
(
vi
.
driver_version
,
DRIVER_VERSION
,
sizeof
(
vi
.
driver_version
));
sizeof
(
vi
.
driver_version
));
strlcpy
(
vi
.
driver_banner
,
longbanner
,
strlcpy
(
vi
.
driver_banner
,
longbanner
,
...
...
drivers/usb/net/usbnet.c
View file @
f1aa095a
...
@@ -493,8 +493,11 @@ static void ax8817x_write_cmd_async(struct usbnet *dev, u8 cmd, u16 value, u16 i
...
@@ -493,8 +493,11 @@ static void ax8817x_write_cmd_async(struct usbnet *dev, u8 cmd, u16 value, u16 i
(
void
*
)
req
,
data
,
size
,
(
void
*
)
req
,
data
,
size
,
ax8817x_async_cmd_callback
,
req
);
ax8817x_async_cmd_callback
,
req
);
if
((
status
=
usb_submit_urb
(
urb
,
GFP_ATOMIC
))
<
0
)
if
((
status
=
usb_submit_urb
(
urb
,
GFP_ATOMIC
))
<
0
)
{
deverr
(
dev
,
"Error submitting the control message: status=%d"
,
status
);
deverr
(
dev
,
"Error submitting the control message: status=%d"
,
status
);
kfree
(
req
);
usb_free_urb
(
urb
);
}
}
}
static
void
ax8817x_set_multicast
(
struct
net_device
*
net
)
static
void
ax8817x_set_multicast
(
struct
net_device
*
net
)
...
@@ -514,7 +517,7 @@ static void ax8817x_set_multicast(struct net_device *net)
...
@@ -514,7 +517,7 @@ static void ax8817x_set_multicast(struct net_device *net)
* for our 8 byte filter buffer
* for our 8 byte filter buffer
* to avoid allocating memory that
* to avoid allocating memory that
* is tricky to free later */
* is tricky to free later */
u8
*
multi_filter
=
(
u8
*
)
dev
->
data
;
u8
*
multi_filter
=
(
u8
*
)
&
dev
->
data
;
struct
dev_mc_list
*
mc_list
=
net
->
mc_list
;
struct
dev_mc_list
*
mc_list
=
net
->
mc_list
;
u32
crc_bits
;
u32
crc_bits
;
int
i
;
int
i
;
...
...
drivers/usb/serial/ftdi_sio.c
View file @
f1aa095a
...
@@ -17,6 +17,15 @@
...
@@ -17,6 +17,15 @@
* See http://ftdi-usb-sio.sourceforge.net for upto date testing info
* See http://ftdi-usb-sio.sourceforge.net for upto date testing info
* and extra documentation
* and extra documentation
*
*
* (21/Oct/2003) Ian Abbott
* Renamed some VID/PID macros for Matrix Orbital and Perle Systems
* devices. Removed Matrix Orbital and Perle Systems devices from the
* 8U232AM device table, but left them in the FT232BM table, as they are
* known to use only FT232BM.
*
* (17/Oct/2003) Scott Allen
* Added vid/pid for Perle Systems UltraPort USB serial converters
*
* (21/Sep/2003) Ian Abbott
* (21/Sep/2003) Ian Abbott
* Added VID/PID for Omnidirectional Control Technology US101 USB to
* Added VID/PID for Omnidirectional Control Technology US101 USB to
* RS-232 adapter (also rebadged as Dick Smith Electronics XH6381).
* RS-232 adapter (also rebadged as Dick Smith Electronics XH6381).
...
@@ -285,13 +294,6 @@ static struct usb_device_id id_table_8U232AM [] = {
...
@@ -285,13 +294,6 @@ static struct usb_device_id id_table_8U232AM [] = {
{
USB_DEVICE_VER
(
FTDI_VID
,
FTDI_XF_642_PID
,
0
,
0x3ff
)
},
{
USB_DEVICE_VER
(
FTDI_VID
,
FTDI_XF_642_PID
,
0
,
0x3ff
)
},
{
USB_DEVICE_VER
(
FTDI_VID
,
FTDI_VNHCPCUSB_D_PID
,
0
,
0x3ff
)
},
{
USB_DEVICE_VER
(
FTDI_VID
,
FTDI_VNHCPCUSB_D_PID
,
0
,
0x3ff
)
},
{
USB_DEVICE_VER
(
FTDI_VID
,
FTDI_DSS20_PID
,
0
,
0x3ff
)
},
{
USB_DEVICE_VER
(
FTDI_VID
,
FTDI_DSS20_PID
,
0
,
0x3ff
)
},
{
USB_DEVICE_VER
(
FTDI_MTXORB_VID
,
FTDI_MTXORB_0_PID
,
0
,
0x3ff
)
},
{
USB_DEVICE_VER
(
FTDI_MTXORB_VID
,
FTDI_MTXORB_1_PID
,
0
,
0x3ff
)
},
{
USB_DEVICE_VER
(
FTDI_MTXORB_VID
,
FTDI_MTXORB_2_PID
,
0
,
0x3ff
)
},
{
USB_DEVICE_VER
(
FTDI_MTXORB_VID
,
FTDI_MTXORB_3_PID
,
0
,
0x3ff
)
},
{
USB_DEVICE_VER
(
FTDI_MTXORB_VID
,
FTDI_MTXORB_4_PID
,
0
,
0x3ff
)
},
{
USB_DEVICE_VER
(
FTDI_MTXORB_VID
,
FTDI_MTXORB_5_PID
,
0
,
0x3ff
)
},
{
USB_DEVICE_VER
(
FTDI_MTXORB_VID
,
FTDI_MTXORB_6_PID
,
0
,
0x3ff
)
},
{
USB_DEVICE_VER
(
SEALEVEL_VID
,
SEALEVEL_2101_PID
,
0
,
0x3ff
)
},
{
USB_DEVICE_VER
(
SEALEVEL_VID
,
SEALEVEL_2101_PID
,
0
,
0x3ff
)
},
{
USB_DEVICE_VER
(
SEALEVEL_VID
,
SEALEVEL_2102_PID
,
0
,
0x3ff
)
},
{
USB_DEVICE_VER
(
SEALEVEL_VID
,
SEALEVEL_2102_PID
,
0
,
0x3ff
)
},
{
USB_DEVICE_VER
(
SEALEVEL_VID
,
SEALEVEL_2103_PID
,
0
,
0x3ff
)
},
{
USB_DEVICE_VER
(
SEALEVEL_VID
,
SEALEVEL_2103_PID
,
0
,
0x3ff
)
},
...
@@ -358,13 +360,14 @@ static struct usb_device_id id_table_FT232BM [] = {
...
@@ -358,13 +360,14 @@ static struct usb_device_id id_table_FT232BM [] = {
{
USB_DEVICE_VER
(
FTDI_VID
,
FTDI_XF_642_PID
,
0x400
,
0xffff
)
},
{
USB_DEVICE_VER
(
FTDI_VID
,
FTDI_XF_642_PID
,
0x400
,
0xffff
)
},
{
USB_DEVICE_VER
(
FTDI_VID
,
FTDI_VNHCPCUSB_D_PID
,
0x400
,
0xffff
)
},
{
USB_DEVICE_VER
(
FTDI_VID
,
FTDI_VNHCPCUSB_D_PID
,
0x400
,
0xffff
)
},
{
USB_DEVICE_VER
(
FTDI_VID
,
FTDI_DSS20_PID
,
0x400
,
0xffff
)
},
{
USB_DEVICE_VER
(
FTDI_VID
,
FTDI_DSS20_PID
,
0x400
,
0xffff
)
},
{
USB_DEVICE_VER
(
FTDI_MTXORB_VID
,
FTDI_MTXORB_0_PID
,
0x400
,
0xffff
)
},
{
USB_DEVICE_VER
(
FTDI_VID
,
FTDI_MTXORB_0_PID
,
0x400
,
0xffff
)
},
{
USB_DEVICE_VER
(
FTDI_MTXORB_VID
,
FTDI_MTXORB_1_PID
,
0x400
,
0xffff
)
},
{
USB_DEVICE_VER
(
FTDI_VID
,
FTDI_MTXORB_1_PID
,
0x400
,
0xffff
)
},
{
USB_DEVICE_VER
(
FTDI_MTXORB_VID
,
FTDI_MTXORB_2_PID
,
0x400
,
0xffff
)
},
{
USB_DEVICE_VER
(
FTDI_VID
,
FTDI_MTXORB_2_PID
,
0x400
,
0xffff
)
},
{
USB_DEVICE_VER
(
FTDI_MTXORB_VID
,
FTDI_MTXORB_3_PID
,
0x400
,
0xffff
)
},
{
USB_DEVICE_VER
(
FTDI_VID
,
FTDI_MTXORB_3_PID
,
0x400
,
0xffff
)
},
{
USB_DEVICE_VER
(
FTDI_MTXORB_VID
,
FTDI_MTXORB_4_PID
,
0x400
,
0xffff
)
},
{
USB_DEVICE_VER
(
FTDI_VID
,
FTDI_MTXORB_4_PID
,
0x400
,
0xffff
)
},
{
USB_DEVICE_VER
(
FTDI_MTXORB_VID
,
FTDI_MTXORB_5_PID
,
0x400
,
0xffff
)
},
{
USB_DEVICE_VER
(
FTDI_VID
,
FTDI_MTXORB_5_PID
,
0x400
,
0xffff
)
},
{
USB_DEVICE_VER
(
FTDI_MTXORB_VID
,
FTDI_MTXORB_6_PID
,
0x400
,
0xffff
)
},
{
USB_DEVICE_VER
(
FTDI_VID
,
FTDI_MTXORB_6_PID
,
0x400
,
0xffff
)
},
{
USB_DEVICE_VER
(
FTDI_VID
,
FTDI_PERLE_ULTRAPORT_PID
,
0x400
,
0xffff
)
},
{
USB_DEVICE_VER
(
SEALEVEL_VID
,
SEALEVEL_2101_PID
,
0x400
,
0xffff
)
},
{
USB_DEVICE_VER
(
SEALEVEL_VID
,
SEALEVEL_2101_PID
,
0x400
,
0xffff
)
},
{
USB_DEVICE_VER
(
SEALEVEL_VID
,
SEALEVEL_2102_PID
,
0x400
,
0xffff
)
},
{
USB_DEVICE_VER
(
SEALEVEL_VID
,
SEALEVEL_2102_PID
,
0x400
,
0xffff
)
},
{
USB_DEVICE_VER
(
SEALEVEL_VID
,
SEALEVEL_2103_PID
,
0x400
,
0xffff
)
},
{
USB_DEVICE_VER
(
SEALEVEL_VID
,
SEALEVEL_2103_PID
,
0x400
,
0xffff
)
},
...
@@ -444,13 +447,14 @@ static struct usb_device_id id_table_combined [] = {
...
@@ -444,13 +447,14 @@ static struct usb_device_id id_table_combined [] = {
{
USB_DEVICE
(
FTDI_VID
,
FTDI_DSS20_PID
)
},
{
USB_DEVICE
(
FTDI_VID
,
FTDI_DSS20_PID
)
},
{
USB_DEVICE
(
FTDI_NF_RIC_VID
,
FTDI_NF_RIC_PID
)
},
{
USB_DEVICE
(
FTDI_NF_RIC_VID
,
FTDI_NF_RIC_PID
)
},
{
USB_DEVICE
(
FTDI_VID
,
FTDI_VNHCPCUSB_D_PID
)
},
{
USB_DEVICE
(
FTDI_VID
,
FTDI_VNHCPCUSB_D_PID
)
},
{
USB_DEVICE
(
FTDI_MTXORB_VID
,
FTDI_MTXORB_0_PID
)
},
{
USB_DEVICE_VER
(
FTDI_VID
,
FTDI_MTXORB_0_PID
,
0x400
,
0xffff
)
},
{
USB_DEVICE
(
FTDI_MTXORB_VID
,
FTDI_MTXORB_1_PID
)
},
{
USB_DEVICE_VER
(
FTDI_VID
,
FTDI_MTXORB_1_PID
,
0x400
,
0xffff
)
},
{
USB_DEVICE
(
FTDI_MTXORB_VID
,
FTDI_MTXORB_2_PID
)
},
{
USB_DEVICE_VER
(
FTDI_VID
,
FTDI_MTXORB_2_PID
,
0x400
,
0xffff
)
},
{
USB_DEVICE
(
FTDI_MTXORB_VID
,
FTDI_MTXORB_3_PID
)
},
{
USB_DEVICE_VER
(
FTDI_VID
,
FTDI_MTXORB_3_PID
,
0x400
,
0xffff
)
},
{
USB_DEVICE
(
FTDI_MTXORB_VID
,
FTDI_MTXORB_4_PID
)
},
{
USB_DEVICE_VER
(
FTDI_VID
,
FTDI_MTXORB_4_PID
,
0x400
,
0xffff
)
},
{
USB_DEVICE
(
FTDI_MTXORB_VID
,
FTDI_MTXORB_5_PID
)
},
{
USB_DEVICE_VER
(
FTDI_VID
,
FTDI_MTXORB_5_PID
,
0x400
,
0xffff
)
},
{
USB_DEVICE
(
FTDI_MTXORB_VID
,
FTDI_MTXORB_6_PID
)
},
{
USB_DEVICE_VER
(
FTDI_VID
,
FTDI_MTXORB_6_PID
,
0x400
,
0xffff
)
},
{
USB_DEVICE_VER
(
FTDI_VID
,
FTDI_PERLE_ULTRAPORT_PID
,
0x400
,
0xffff
)
},
{
USB_DEVICE
(
SEALEVEL_VID
,
SEALEVEL_2101_PID
)
},
{
USB_DEVICE
(
SEALEVEL_VID
,
SEALEVEL_2101_PID
)
},
{
USB_DEVICE
(
SEALEVEL_VID
,
SEALEVEL_2102_PID
)
},
{
USB_DEVICE
(
SEALEVEL_VID
,
SEALEVEL_2102_PID
)
},
{
USB_DEVICE
(
SEALEVEL_VID
,
SEALEVEL_2103_PID
)
},
{
USB_DEVICE
(
SEALEVEL_VID
,
SEALEVEL_2103_PID
)
},
...
...
drivers/usb/serial/ftdi_sio.h
View file @
f1aa095a
...
@@ -50,7 +50,6 @@
...
@@ -50,7 +50,6 @@
* The following are the values for the Matrix Orbital LCD displays,
* The following are the values for the Matrix Orbital LCD displays,
* which are the FT232BM ( similar to the 8U232AM )
* which are the FT232BM ( similar to the 8U232AM )
*/
*/
#define FTDI_MTXORB_VID FTDI_VID
/* Matrix Orbital Product Id */
#define FTDI_MTXORB_0_PID 0xFA00
/* Matrix Orbital Product Id */
#define FTDI_MTXORB_0_PID 0xFA00
/* Matrix Orbital Product Id */
#define FTDI_MTXORB_1_PID 0xFA01
/* Matrix Orbital Product Id */
#define FTDI_MTXORB_1_PID 0xFA01
/* Matrix Orbital Product Id */
#define FTDI_MTXORB_2_PID 0xFA02
/* Matrix Orbital Product Id */
#define FTDI_MTXORB_2_PID 0xFA02
/* Matrix Orbital Product Id */
...
@@ -59,6 +58,12 @@
...
@@ -59,6 +58,12 @@
#define FTDI_MTXORB_5_PID 0xFA05
/* Matrix Orbital Product Id */
#define FTDI_MTXORB_5_PID 0xFA05
/* Matrix Orbital Product Id */
#define FTDI_MTXORB_6_PID 0xFA06
/* Matrix Orbital Product Id */
#define FTDI_MTXORB_6_PID 0xFA06
/* Matrix Orbital Product Id */
/*
* The following are the values for the Perle Systems
* UltraPort USB serial converters
*/
#define FTDI_PERLE_ULTRAPORT_PID 0xF0C0
/* Perle UltraPort Product Id */
/*
/*
* The following are the values for the Sealevel SeaLINK+ adapters.
* The following are the values for the Sealevel SeaLINK+ adapters.
* (Original list sent by Tuan Hoang. Ian Abbott renamed the macros and
* (Original list sent by Tuan Hoang. Ian Abbott renamed the macros and
...
...
drivers/usb/serial/io_edgeport.c
View file @
f1aa095a
...
@@ -1906,6 +1906,7 @@ static int edge_ioctl (struct usb_serial_port *port, struct file *file, unsigned
...
@@ -1906,6 +1906,7 @@ static int edge_ioctl (struct usb_serial_port *port, struct file *file, unsigned
case
TIOCGICOUNT
:
case
TIOCGICOUNT
:
cnow
=
edge_port
->
icount
;
cnow
=
edge_port
->
icount
;
memset
(
&
icount
,
0
,
sizeof
(
icount
));
icount
.
cts
=
cnow
.
cts
;
icount
.
cts
=
cnow
.
cts
;
icount
.
dsr
=
cnow
.
dsr
;
icount
.
dsr
=
cnow
.
dsr
;
icount
.
rng
=
cnow
.
rng
;
icount
.
rng
=
cnow
.
rng
;
...
...
drivers/usb/storage/unusual_devs.h
View file @
f1aa095a
...
@@ -548,10 +548,10 @@ UNUSUAL_DEV( 0x07c4, 0xa400, 0x0000, 0xffff,
...
@@ -548,10 +548,10 @@ UNUSUAL_DEV( 0x07c4, 0xa400, 0x0000, 0xffff,
* - They don't like the INQUIRY command. So we must handle this command
* - They don't like the INQUIRY command. So we must handle this command
* of the SCSI layer ourselves.
* of the SCSI layer ourselves.
*/
*/
UNUSUAL_DEV
(
0x07cf
,
0x1001
,
0x1000
,
0x
500
9
,
UNUSUAL_DEV
(
0x07cf
,
0x1001
,
0x1000
,
0x
999
9
,
"Casio"
,
"Casio"
,
"QV DigitalCamera"
,
"QV DigitalCamera"
,
US_SC_
8070
,
US_PR_CB
,
NULL
,
US_SC_
DEVICE
,
US_PR_DEVICE
,
NULL
,
US_FL_FIX_INQUIRY
),
US_FL_FIX_INQUIRY
),
/* Submitted by Hartmut Wahl <hwahl@hwahl.de>*/
/* Submitted by Hartmut Wahl <hwahl@hwahl.de>*/
...
@@ -631,6 +631,16 @@ UNUSUAL_DEV( 0x0d96, 0x410a, 0x0001, 0xffff,
...
@@ -631,6 +631,16 @@ UNUSUAL_DEV( 0x0d96, 0x410a, 0x0001, 0xffff,
US_SC_DEVICE
,
US_PR_DEVICE
,
NULL
,
US_SC_DEVICE
,
US_PR_DEVICE
,
NULL
,
US_FL_FIX_INQUIRY
),
US_FL_FIX_INQUIRY
),
/*
* Entry for Jenoptik JD 5200z3
*
* email: car.busse@gmx.de
*/
UNUSUAL_DEV
(
0x0d96
,
0x5200
,
0x0001
,
0x0200
,
"Jenoptik"
,
"JD 5200 z3"
,
US_SC_DEVICE
,
US_PR_DEVICE
,
NULL
,
US_FL_FIX_INQUIRY
),
/* Reported by Kevin Cernekee <kpc-usbdev@gelato.uiuc.edu>
/* Reported by Kevin Cernekee <kpc-usbdev@gelato.uiuc.edu>
* Tested on hardware version 1.10.
* Tested on hardware version 1.10.
* Entry is needed only for the initializer function override.
* Entry is needed only for the initializer function override.
...
...
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