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
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