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
Kirill Smelkov
linux
Commits
edf3d92b
Commit
edf3d92b
authored
Aug 14, 2002
by
Linus Torvalds
Browse files
Options
Browse Files
Download
Plain Diff
Merge
http://linuxusb.bkbits.net/linus-2.5
into home.transmeta.com:/home/torvalds/v2.5/linux
parents
17454310
f601a8a6
Changes
9
Expand all
Hide whitespace changes
Inline
Side-by-side
Showing
9 changed files
with
92 additions
and
107 deletions
+92
-107
drivers/usb/core/devio.c
drivers/usb/core/devio.c
+13
-7
drivers/usb/core/hcd.h
drivers/usb/core/hcd.h
+10
-0
drivers/usb/core/hub.h
drivers/usb/core/hub.h
+4
-0
drivers/usb/core/message.c
drivers/usb/core/message.c
+2
-0
drivers/usb/core/usb.c
drivers/usb/core/usb.c
+54
-81
drivers/usb/host/ehci-dbg.c
drivers/usb/host/ehci-dbg.c
+2
-2
drivers/usb/serial/usbserial.c
drivers/usb/serial/usbserial.c
+1
-1
drivers/usb/storage/scsiglue.c
drivers/usb/storage/scsiglue.c
+1
-1
include/linux/usb.h
include/linux/usb.h
+5
-15
No files found.
drivers/usb/core/devio.c
View file @
edf3d92b
...
@@ -46,6 +46,7 @@
...
@@ -46,6 +46,7 @@
#include <asm/uaccess.h>
#include <asm/uaccess.h>
#include <asm/byteorder.h>
#include <asm/byteorder.h>
#include "hcd.h"
/* for usbcore internals */
struct
async
{
struct
async
{
struct
list_head
asynclist
;
struct
list_head
asynclist
;
...
@@ -724,7 +725,7 @@ static int proc_resetdevice(struct dev_state *ps)
...
@@ -724,7 +725,7 @@ static int proc_resetdevice(struct dev_state *ps)
lock_kernel
();
lock_kernel
();
if
(
intf
->
driver
&&
ps
->
dev
)
{
if
(
intf
->
driver
&&
ps
->
dev
)
{
usb_bind_driver
(
intf
->
driver
,
ps
->
dev
,
i
);
usb_bind_driver
(
intf
->
driver
,
intf
);
}
}
unlock_kernel
();
unlock_kernel
();
}
}
...
@@ -1062,8 +1063,8 @@ static int proc_ioctl (struct dev_state *ps, void *arg)
...
@@ -1062,8 +1063,8 @@ static int proc_ioctl (struct dev_state *ps, void *arg)
int
size
;
int
size
;
void
*
buf
=
0
;
void
*
buf
=
0
;
int
retval
=
0
;
int
retval
=
0
;
struct
usb_interface
*
ifp
=
0
;
struct
usb_interface
*
ifp
=
0
;
struct
usb_driver
*
driver
=
0
;
struct
usb_driver
*
driver
=
0
;
/* get input parameters and alloc buffer */
/* get input parameters and alloc buffer */
if
(
copy_from_user
(
&
ctrl
,
(
void
*
)
arg
,
sizeof
(
ctrl
)))
if
(
copy_from_user
(
&
ctrl
,
(
void
*
)
arg
,
sizeof
(
ctrl
)))
...
@@ -1102,10 +1103,10 @@ static int proc_ioctl (struct dev_state *ps, void *arg)
...
@@ -1102,10 +1103,10 @@ static int proc_ioctl (struct dev_state *ps, void *arg)
unlock_kernel
();
unlock_kernel
();
break
;
break
;
/* let kernel drivers try to (re)bind to the interface */
/* let kernel drivers try to (re)bind to the interface */
case
USBDEVFS_CONNECT
:
case
USBDEVFS_CONNECT
:
usb_find_interface_driver_for_ifnum
(
ps
->
dev
,
ctrl
.
ifno
);
usb_find_interface_driver
(
ps
->
dev
,
ifp
);
break
;
break
;
/* talk directly to the interface's driver */
/* talk directly to the interface's driver */
default:
default:
...
@@ -1144,6 +1145,11 @@ static int proc_ioctl (struct dev_state *ps, void *arg)
...
@@ -1144,6 +1145,11 @@ static int proc_ioctl (struct dev_state *ps, void *arg)
return
retval
;
return
retval
;
}
}
/*
* NOTE: All requests here that have interface numbers as parameters
* are assuming that somehow the configuration has been prevented from
* changing. But there's no mechanism to ensure that...
*/
static
int
usbdev_ioctl
(
struct
inode
*
inode
,
struct
file
*
file
,
unsigned
int
cmd
,
unsigned
long
arg
)
static
int
usbdev_ioctl
(
struct
inode
*
inode
,
struct
file
*
file
,
unsigned
int
cmd
,
unsigned
long
arg
)
{
{
struct
dev_state
*
ps
=
(
struct
dev_state
*
)
file
->
private_data
;
struct
dev_state
*
ps
=
(
struct
dev_state
*
)
file
->
private_data
;
...
...
drivers/usb/core/hcd.h
View file @
edf3d92b
...
@@ -348,6 +348,16 @@ extern struct semaphore usb_bus_list_lock;
...
@@ -348,6 +348,16 @@ extern struct semaphore usb_bus_list_lock;
extern
void
usb_bus_get
(
struct
usb_bus
*
bus
);
extern
void
usb_bus_get
(
struct
usb_bus
*
bus
);
extern
void
usb_bus_put
(
struct
usb_bus
*
bus
);
extern
void
usb_bus_put
(
struct
usb_bus
*
bus
);
extern
struct
usb_interface
*
usb_ifnum_to_if
(
struct
usb_device
*
dev
,
unsigned
ifnum
);
extern
int
usb_find_interface_driver
(
struct
usb_device
*
dev
,
struct
usb_interface
*
interface
);
/* for probe/disconnect with correct module usage counting */
void
*
usb_bind_driver
(
struct
usb_driver
*
driver
,
struct
usb_interface
*
intf
);
void
usb_unbind_driver
(
struct
usb_device
*
device
,
struct
usb_interface
*
intf
);
/*-------------------------------------------------------------------------*/
/*-------------------------------------------------------------------------*/
/* hub.h ... DeviceRemovable in 2.4.2-ac11, gone in 2.4.10 */
/* hub.h ... DeviceRemovable in 2.4.2-ac11, gone in 2.4.10 */
...
...
drivers/usb/core/hub.h
View file @
edf3d92b
...
@@ -123,6 +123,10 @@ struct usb_hub_status {
...
@@ -123,6 +123,10 @@ struct usb_hub_status {
* Hub descriptor
* Hub descriptor
* See USB 2.0 spec Table 11-13
* See USB 2.0 spec Table 11-13
*/
*/
#define USB_DT_HUB (USB_TYPE_CLASS | 0x09)
#define USB_DT_HUB_NONVAR_SIZE 7
struct
usb_hub_descriptor
{
struct
usb_hub_descriptor
{
__u8
bDescLength
;
__u8
bDescLength
;
__u8
bDescriptorType
;
__u8
bDescriptorType
;
...
...
drivers/usb/core/message.c
View file @
edf3d92b
...
@@ -8,6 +8,8 @@
...
@@ -8,6 +8,8 @@
#include <linux/init.h>
#include <linux/init.h>
#include <asm/byteorder.h>
#include <asm/byteorder.h>
#include "hcd.h"
/* for usbcore internals */
struct
usb_api_data
{
struct
usb_api_data
{
wait_queue_head_t
wqh
;
wait_queue_head_t
wqh
;
int
done
;
int
done
;
...
...
drivers/usb/core/usb.c
View file @
edf3d92b
This diff is collapsed.
Click to expand it.
drivers/usb/host/ehci-dbg.c
View file @
edf3d92b
...
@@ -252,7 +252,7 @@ show_async (struct device *dev, char *buf, size_t count, loff_t off)
...
@@ -252,7 +252,7 @@ show_async (struct device *dev, char *buf, size_t count, loff_t off)
return
count
-
size
;
return
count
-
size
;
}
}
static
DEVICE_ATTR
(
async
,
"sched-async"
,
S_IRUSR
,
show_async
,
NULL
);
static
DEVICE_ATTR
(
async
,
S_IRUSR
,
show_async
,
NULL
);
#define DBG_SCHED_LIMIT 64
#define DBG_SCHED_LIMIT 64
...
@@ -360,7 +360,7 @@ show_periodic (struct device *dev, char *buf, size_t count, loff_t off)
...
@@ -360,7 +360,7 @@ show_periodic (struct device *dev, char *buf, size_t count, loff_t off)
return
count
-
size
;
return
count
-
size
;
}
}
static
DEVICE_ATTR
(
periodic
,
"sched-periodic"
,
S_IRUSR
,
show_periodic
,
NULL
);
static
DEVICE_ATTR
(
periodic
,
S_IRUSR
,
show_periodic
,
NULL
);
#undef DBG_SCHED_LIMIT
#undef DBG_SCHED_LIMIT
...
...
drivers/usb/serial/usbserial.c
View file @
edf3d92b
...
@@ -1193,7 +1193,7 @@ static void * usb_serial_probe(struct usb_device *dev, unsigned int ifnum,
...
@@ -1193,7 +1193,7 @@ static void * usb_serial_probe(struct usb_device *dev, unsigned int ifnum,
interface
=
&
dev
->
actconfig
->
interface
[
ifnum
];
interface
=
&
dev
->
actconfig
->
interface
[
ifnum
];
list_for_each
(
tmp
,
&
usb_serial_driver_list
)
{
list_for_each
(
tmp
,
&
usb_serial_driver_list
)
{
type
=
list_entry
(
tmp
,
struct
usb_serial_device_type
,
driver_list
);
type
=
list_entry
(
tmp
,
struct
usb_serial_device_type
,
driver_list
);
id_pattern
=
usb_match_id
(
dev
,
interface
,
type
->
id_table
);
id_pattern
=
usb_match_id
(
interface
,
type
->
id_table
);
if
(
id_pattern
!=
NULL
)
{
if
(
id_pattern
!=
NULL
)
{
dbg
(
"descriptor matches"
);
dbg
(
"descriptor matches"
);
found
=
1
;
found
=
1
;
...
...
drivers/usb/storage/scsiglue.c
View file @
edf3d92b
...
@@ -265,7 +265,7 @@ static int bus_reset( Scsi_Cmnd *srb )
...
@@ -265,7 +265,7 @@ static int bus_reset( Scsi_Cmnd *srb )
US_DEBUGPX
(
"simulating disconnect/reconnect.
\n
"
);
US_DEBUGPX
(
"simulating disconnect/reconnect.
\n
"
);
down
(
&
intf
->
driver
->
serialize
);
down
(
&
intf
->
driver
->
serialize
);
intf
->
driver
->
disconnect
(
pusb_dev_save
,
intf
->
private_data
);
intf
->
driver
->
disconnect
(
pusb_dev_save
,
intf
->
private_data
);
id
=
usb_match_id
(
pusb_dev_save
,
intf
,
intf
->
driver
->
id_table
);
id
=
usb_match_id
(
intf
,
intf
->
driver
->
id_table
);
intf
->
driver
->
probe
(
pusb_dev_save
,
i
,
id
);
intf
->
driver
->
probe
(
pusb_dev_save
,
i
,
id
);
up
(
&
intf
->
driver
->
serialize
);
up
(
&
intf
->
driver
->
serialize
);
}
}
...
...
include/linux/usb.h
View file @
edf3d92b
...
@@ -167,10 +167,6 @@ struct usb_device;
...
@@ -167,10 +167,6 @@ struct usb_device;
#define USB_DT_OTHER_SPEED_CONFIG 0x07
#define USB_DT_OTHER_SPEED_CONFIG 0x07
#define USB_DT_INTERFACE_POWER 0x08
#define USB_DT_INTERFACE_POWER 0x08
// FIXME should be internal to hub driver
#define USB_DT_HUB (USB_TYPE_CLASS | 0x09)
#define USB_DT_HUB_NONVAR_SIZE 7
/*
/*
* Descriptor sizes per descriptor type
* Descriptor sizes per descriptor type
*/
*/
...
@@ -258,6 +254,8 @@ struct usb_interface {
...
@@ -258,6 +254,8 @@ struct usb_interface {
void
*
private_data
;
void
*
private_data
;
};
};
#define to_usb_interface(d) container_of(d, struct usb_interface, dev)
#define to_usb_interface(d) container_of(d, struct usb_interface, dev)
#define interface_to_usbdev(intf) \
container_of(intf->dev.parent, struct usb_device, dev)
/* USB_DT_CONFIG: Configuration descriptor information.
/* USB_DT_CONFIG: Configuration descriptor information.
*
*
...
@@ -303,10 +301,8 @@ struct usb_qualifier_descriptor {
...
@@ -303,10 +301,8 @@ struct usb_qualifier_descriptor {
__u8
bRESERVED
;
__u8
bRESERVED
;
}
__attribute__
((
packed
));
}
__attribute__
((
packed
));
/* helpers for driver access to descriptors */
// FIXME remove; exported only for drivers/usb/misc/auserwald.c
extern
int
usb_ifnum_to_ifpos
(
struct
usb_device
*
dev
,
unsigned
ifnum
);
// prefer usb_device->epnum[0..31]
extern
struct
usb_interface
*
usb_ifnum_to_if
(
struct
usb_device
*
dev
,
unsigned
ifnum
);
extern
struct
usb_endpoint_descriptor
*
extern
struct
usb_endpoint_descriptor
*
usb_epnum_to_ep_desc
(
struct
usb_device
*
dev
,
unsigned
epnum
);
usb_epnum_to_ep_desc
(
struct
usb_device
*
dev
,
unsigned
epnum
);
...
@@ -435,10 +431,6 @@ extern void usb_free_dev(struct usb_device *);
...
@@ -435,10 +431,6 @@ extern void usb_free_dev(struct usb_device *);
/* for when layers above USB add new non-USB drivers */
/* for when layers above USB add new non-USB drivers */
extern
void
usb_scan_devices
(
void
);
extern
void
usb_scan_devices
(
void
);
/* for probe/disconnect with correct module usage counting */
void
*
usb_bind_driver
(
struct
usb_driver
*
driver
,
struct
usb_device
*
dev
,
unsigned
int
ifnum
);
void
usb_unbind_driver
(
struct
usb_device
*
device
,
struct
usb_interface
*
intf
);
/* mostly for devices emulating SCSI over USB */
/* mostly for devices emulating SCSI over USB */
extern
int
usb_reset_device
(
struct
usb_device
*
dev
);
extern
int
usb_reset_device
(
struct
usb_device
*
dev
);
...
@@ -446,14 +438,12 @@ extern int usb_reset_device(struct usb_device *dev);
...
@@ -446,14 +438,12 @@ extern int usb_reset_device(struct usb_device *dev);
extern
int
usb_get_current_frame_number
(
struct
usb_device
*
usb_dev
);
extern
int
usb_get_current_frame_number
(
struct
usb_device
*
usb_dev
);
/* used these for multi-interface device registration */
/* used these for multi-interface device registration */
extern
int
usb_find_interface_driver_for_ifnum
(
struct
usb_device
*
dev
,
unsigned
int
ifnum
);
extern
void
usb_driver_claim_interface
(
struct
usb_driver
*
driver
,
extern
void
usb_driver_claim_interface
(
struct
usb_driver
*
driver
,
struct
usb_interface
*
iface
,
void
*
priv
);
struct
usb_interface
*
iface
,
void
*
priv
);
extern
int
usb_interface_claimed
(
struct
usb_interface
*
iface
);
extern
int
usb_interface_claimed
(
struct
usb_interface
*
iface
);
extern
void
usb_driver_release_interface
(
struct
usb_driver
*
driver
,
extern
void
usb_driver_release_interface
(
struct
usb_driver
*
driver
,
struct
usb_interface
*
iface
);
struct
usb_interface
*
iface
);
const
struct
usb_device_id
*
usb_match_id
(
struct
usb_device
*
dev
,
const
struct
usb_device_id
*
usb_match_id
(
struct
usb_interface
*
interface
,
struct
usb_interface
*
interface
,
const
struct
usb_device_id
*
id
);
const
struct
usb_device_id
*
id
);
/**
/**
...
...
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