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
0904806c
Commit
0904806c
authored
Sep 21, 2002
by
Anton Blanchard
Browse files
Options
Browse Files
Download
Plain Diff
Merge samba.org:/scratch/anton/linux-2.5
into samba.org:/scratch/anton/linux-2.5_ppc64_new
parents
39e8eb55
d103aab6
Changes
9
Expand all
Show whitespace changes
Inline
Side-by-side
Showing
9 changed files
with
354 additions
and
83 deletions
+354
-83
drivers/hotplug/cpqphp.h
drivers/hotplug/cpqphp.h
+3
-6
drivers/hotplug/cpqphp_core.c
drivers/hotplug/cpqphp_core.c
+54
-12
drivers/hotplug/cpqphp_ctrl.c
drivers/hotplug/cpqphp_ctrl.c
+2
-2
drivers/hotplug/ibmphp_core.c
drivers/hotplug/ibmphp_core.c
+17
-15
drivers/hotplug/pci_hotplug.h
drivers/hotplug/pci_hotplug.h
+27
-1
drivers/hotplug/pci_hotplug_core.c
drivers/hotplug/pci_hotplug_core.c
+246
-44
drivers/pci/proc.c
drivers/pci/proc.c
+2
-1
kernel/exit.c
kernel/exit.c
+1
-2
kernel/ksyms.c
kernel/ksyms.c
+2
-0
No files found.
drivers/hotplug/cpqphp.h
View file @
0904806c
...
...
@@ -305,8 +305,8 @@ struct controller {
u8
first_slot
;
u8
add_support
;
u8
push_flag
;
u8
speed
;
/* 0 = 33MHz, 1 = 66MHz */
u8
speed_capability
;
/* 0 = 33MHz, 1 = 66MHz */
enum
pci_bus_speed
speed
;
enum
pci_bus_speed
speed_capability
;
u8
push_button
;
/* 0 = no pushbutton, 1 = pushbutton present */
u8
slot_switch_type
;
/* 0 = no switch, 1 = switch present */
u8
defeature_PHP
;
/* 0 = PHP not supported, 1 = PHP supported */
...
...
@@ -321,9 +321,6 @@ struct controller {
wait_queue_head_t
queue
;
/* sleep & wake process */
};
#define CTRL_SPEED_33MHz 0
#define CTRL_SPEED_66MHz 1
struct
irq_mapping
{
u8
barber_pole
;
u8
valid_INT
;
...
...
@@ -635,7 +632,7 @@ static inline u8 get_controller_speed (struct controller *ctrl)
u16
misc
;
misc
=
readw
(
ctrl
->
hpc_reg
+
MISC
);
return
(
misc
&
0x0800
)
?
1
:
0
;
return
(
misc
&
0x0800
)
?
PCI_SPEED_66MHz
:
PCI_SPEED_33MHz
;
}
...
...
drivers/hotplug/cpqphp_core.c
View file @
0904806c
...
...
@@ -79,6 +79,8 @@ static int get_power_status (struct hotplug_slot *slot, u8 *value);
static
int
get_attention_status
(
struct
hotplug_slot
*
slot
,
u8
*
value
);
static
int
get_latch_status
(
struct
hotplug_slot
*
slot
,
u8
*
value
);
static
int
get_adapter_status
(
struct
hotplug_slot
*
slot
,
u8
*
value
);
static
int
get_max_bus_speed
(
struct
hotplug_slot
*
slot
,
enum
pci_bus_speed
*
value
);
static
int
get_cur_bus_speed
(
struct
hotplug_slot
*
slot
,
enum
pci_bus_speed
*
value
);
static
struct
hotplug_slot_ops
cpqphp_hotplug_slot_ops
=
{
.
owner
=
THIS_MODULE
,
...
...
@@ -90,6 +92,8 @@ static struct hotplug_slot_ops cpqphp_hotplug_slot_ops = {
.
get_attention_status
=
get_attention_status
,
.
get_latch_status
=
get_latch_status
,
.
get_adapter_status
=
get_adapter_status
,
.
get_max_bus_speed
=
get_max_bus_speed
,
.
get_cur_bus_speed
=
get_cur_bus_speed
,
};
...
...
@@ -378,7 +382,7 @@ static int ctrl_slot_setup (struct controller * ctrl, void *smbios_start, void *
new_slot
->
capabilities
|=
PCISLOT_64_BIT_SUPPORTED
;
if
(
is_slot66mhz
(
new_slot
))
new_slot
->
capabilities
|=
PCISLOT_66_MHZ_SUPPORTED
;
if
(
ctrl
->
speed
==
1
)
if
(
ctrl
->
speed
==
PCI_SPEED_66MHz
)
new_slot
->
capabilities
|=
PCISLOT_66_MHZ_OPERATION
;
ctrl_slot
=
slot_device
-
(
readb
(
ctrl
->
hpc_reg
+
SLOT_MASK
)
>>
4
);
...
...
@@ -782,6 +786,44 @@ static int get_adapter_status (struct hotplug_slot *hotplug_slot, u8 *value)
return
0
;
}
static
int
get_max_bus_speed
(
struct
hotplug_slot
*
hotplug_slot
,
enum
pci_bus_speed
*
value
)
{
struct
slot
*
slot
=
get_slot
(
hotplug_slot
,
__FUNCTION__
);
struct
controller
*
ctrl
;
if
(
slot
==
NULL
)
return
-
ENODEV
;
dbg
(
"%s - physical_slot = %s
\n
"
,
__FUNCTION__
,
hotplug_slot
->
name
);
ctrl
=
slot
->
ctrl
;
if
(
ctrl
==
NULL
)
return
-
ENODEV
;
*
value
=
ctrl
->
speed_capability
;
return
0
;
}
static
int
get_cur_bus_speed
(
struct
hotplug_slot
*
hotplug_slot
,
enum
pci_bus_speed
*
value
)
{
struct
slot
*
slot
=
get_slot
(
hotplug_slot
,
__FUNCTION__
);
struct
controller
*
ctrl
;
if
(
slot
==
NULL
)
return
-
ENODEV
;
dbg
(
"%s - physical_slot = %s
\n
"
,
__FUNCTION__
,
hotplug_slot
->
name
);
ctrl
=
slot
->
ctrl
;
if
(
ctrl
==
NULL
)
return
-
ENODEV
;
*
value
=
ctrl
->
speed
;
return
0
;
}
static
int
cpqhpc_probe
(
struct
pci_dev
*
pdev
,
const
struct
pci_device_id
*
ent
)
{
u8
num_of_slots
=
0
;
...
...
@@ -853,7 +895,7 @@ static int cpqhpc_probe(struct pci_dev *pdev, const struct pci_device_id *ent)
case
PCI_SUB_HPC_ID
:
/* Original 6500/7000 implementation */
ctrl
->
slot_switch_type
=
1
;
// Switch is present
ctrl
->
speed_capability
=
CTRL
_SPEED_33MHz
;
ctrl
->
speed_capability
=
PCI
_SPEED_33MHz
;
ctrl
->
push_button
=
0
;
// No pushbutton
ctrl
->
pci_config_space
=
1
;
// Index/data access to working registers 0 = not supported, 1 = supported
ctrl
->
defeature_PHP
=
1
;
// PHP is supported
...
...
@@ -864,7 +906,7 @@ static int cpqhpc_probe(struct pci_dev *pdev, const struct pci_device_id *ent)
/* First Pushbutton implementation */
ctrl
->
push_flag
=
1
;
ctrl
->
slot_switch_type
=
1
;
// Switch is present
ctrl
->
speed_capability
=
CTRL
_SPEED_33MHz
;
ctrl
->
speed_capability
=
PCI
_SPEED_33MHz
;
ctrl
->
push_button
=
1
;
// Pushbutton is present
ctrl
->
pci_config_space
=
1
;
// Index/data access to working registers 0 = not supported, 1 = supported
ctrl
->
defeature_PHP
=
1
;
// PHP is supported
...
...
@@ -874,7 +916,7 @@ static int cpqhpc_probe(struct pci_dev *pdev, const struct pci_device_id *ent)
case
PCI_SUB_HPC_ID_INTC
:
/* Third party (6500/7000) */
ctrl
->
slot_switch_type
=
1
;
// Switch is present
ctrl
->
speed_capability
=
CTRL
_SPEED_33MHz
;
ctrl
->
speed_capability
=
PCI
_SPEED_33MHz
;
ctrl
->
push_button
=
0
;
// No pushbutton
ctrl
->
pci_config_space
=
1
;
// Index/data access to working registers 0 = not supported, 1 = supported
ctrl
->
defeature_PHP
=
1
;
// PHP is supported
...
...
@@ -885,7 +927,7 @@ static int cpqhpc_probe(struct pci_dev *pdev, const struct pci_device_id *ent)
/* First 66 Mhz implementation */
ctrl
->
push_flag
=
1
;
ctrl
->
slot_switch_type
=
1
;
// Switch is present
ctrl
->
speed_capability
=
CTRL
_SPEED_66MHz
;
ctrl
->
speed_capability
=
PCI
_SPEED_66MHz
;
ctrl
->
push_button
=
1
;
// Pushbutton is present
ctrl
->
pci_config_space
=
1
;
// Index/data access to working registers 0 = not supported, 1 = supported
ctrl
->
defeature_PHP
=
1
;
// PHP is supported
...
...
@@ -903,9 +945,9 @@ static int cpqhpc_probe(struct pci_dev *pdev, const struct pci_device_id *ent)
case
PCI_VENDOR_ID_INTEL
:
/* Check for speed capability (0=33, 1=66) */
if
(
subsystem_deviceid
&
0x0001
)
{
ctrl
->
speed_capability
=
CTRL
_SPEED_66MHz
;
ctrl
->
speed_capability
=
PCI
_SPEED_66MHz
;
}
else
{
ctrl
->
speed_capability
=
CTRL
_SPEED_33MHz
;
ctrl
->
speed_capability
=
PCI
_SPEED_33MHz
;
}
/* Check for push button */
...
...
@@ -982,7 +1024,7 @@ static int cpqhpc_probe(struct pci_dev *pdev, const struct pci_device_id *ent)
info
(
"Initializing the PCI hot plug controller residing on PCI bus %d
\n
"
,
pdev
->
bus
->
number
);
dbg
(
"Hotplug controller capabilities:
\n
"
);
dbg
(
" speed_capability %s
\n
"
,
ctrl
->
speed_capability
==
CTRL
_SPEED_33MHz
?
"33MHz"
:
"66Mhz"
);
dbg
(
" speed_capability %s
\n
"
,
ctrl
->
speed_capability
==
PCI
_SPEED_33MHz
?
"33MHz"
:
"66Mhz"
);
dbg
(
" slot_switch_type %s
\n
"
,
ctrl
->
slot_switch_type
==
0
?
"no switch"
:
"switch present"
);
dbg
(
" defeature_PHP %s
\n
"
,
ctrl
->
defeature_PHP
==
0
?
"PHP not supported"
:
"PHP supported"
);
dbg
(
" alternate_base_address %s
\n
"
,
ctrl
->
alternate_base_address
==
0
?
"not supported"
:
"supported"
);
...
...
drivers/hotplug/cpqphp_ctrl.c
View file @
0904806c
...
...
@@ -1187,7 +1187,7 @@ static u32 board_replaced(struct pci_func * func, struct controller * ctrl)
//*********************************
rc
=
CARD_FUNCTIONING
;
}
else
{
if
(
ctrl
->
speed
==
1
)
{
if
(
ctrl
->
speed
==
PCI_SPEED_66MHz
)
{
// Wait for exclusive access to hardware
down
(
&
ctrl
->
crit_sect
);
...
...
@@ -1385,7 +1385,7 @@ static u32 board_added(struct pci_func * func, struct controller * ctrl)
dbg
(
"%s: func->device, slot_offset, hp_slot = %d, %d ,%d
\n
"
,
__FUNCTION__
,
func
->
device
,
ctrl
->
slot_device_offset
,
hp_slot
);
if
(
ctrl
->
speed
==
1
)
{
if
(
ctrl
->
speed
==
PCI_SPEED_66MHz
)
{
// Wait for exclusive access to hardware
down
(
&
ctrl
->
crit_sect
);
...
...
drivers/hotplug/ibmphp_core.c
View file @
0904806c
...
...
@@ -384,14 +384,15 @@ static int get_adapter_present (struct hotplug_slot *hotplug_slot, u8 * value)
debug
(
"get_adapter_present - Exit rc[%d] hpcrc[%x] value[%x]
\n
"
,
rc
,
hpcrc
,
*
value
);
return
rc
;
}
/*
static int get_max_bus_speed (struct hotplug_slot *hotplug_slot,
u8 *
value)
static
int
get_max_bus_speed
(
struct
hotplug_slot
*
hotplug_slot
,
enum
pci_bus_speed
*
value
)
{
int
rc
=
-
ENODEV
;
struct
slot
*
pslot
;
u8
mode
=
0
;
debug ("get_max_bus_speed - Entry hotplug_slot[%lx] pvalue[%lx]\n", (ulong)hotplug_slot, (ulong) value);
debug
(
"%s - Entry hotplug_slot[%p] pvalue[%p]
\n
"
,
__FUNCTION__
,
hotplug_slot
,
value
);
ibmphp_lock_operations
();
...
...
@@ -413,25 +414,26 @@ static int get_max_bus_speed (struct hotplug_slot *hotplug_slot, u8 * value)
*
value
=
pslot
->
supported_speed
+
0x01
;
break
;
default:
*/
/* Note (will need to change): there would be soon 256, 512 also */
/*
rc = -ENODEV;
/* Note (will need to change): there would be soon 256, 512 also */
rc
=
-
ENODEV
;
}
}
}
else
rc
=
-
ENODEV
;
ibmphp_unlock_operations
();
debug ("
get_max_bus_speed - Exit rc[%d] value[%x]\n"
, rc, *value);
debug
(
"
%s - Exit rc[%d] value[%x]
\n
"
,
__FUNCTION__
,
rc
,
*
value
);
return
rc
;
}
static int get_cur_bus_speed (struct hotplug_slot *hotplug_slot,
u8 *
value)
static
int
get_cur_bus_speed
(
struct
hotplug_slot
*
hotplug_slot
,
enum
pci_bus_speed
*
value
)
{
int
rc
=
-
ENODEV
;
struct
slot
*
pslot
;
u8
mode
=
0
;
debug ("get_cur_bus_speed - Entry hotplug_slot[%lx] pvalue[%lx]\n", (ulong)hotplug_slot, (ulong) value);
debug
(
"%s - Entry hotplug_slot[%p] pvalue[%p]
\n
"
,
__FUNCTION__
,
hotplug_slot
,
value
);
ibmphp_lock_operations
();
...
...
@@ -458,8 +460,8 @@ static int get_cur_bus_speed (struct hotplug_slot *hotplug_slot, u8 * value)
*
value
+=
0x01
;
break
;
default:
*/
/* Note of change: there would also be 256, 512 soon */
/*
rc = -ENODEV;
/* Note of change: there would also be 256, 512 soon */
rc
=
-
ENODEV
;
}
}
}
...
...
@@ -467,10 +469,10 @@ static int get_cur_bus_speed (struct hotplug_slot *hotplug_slot, u8 * value)
rc
=
-
ENODEV
;
ibmphp_unlock_operations
();
debug ("
get_cur_bus_speed - Exit rc[%d] value[%x]\n"
, rc, *value);
debug
(
"
%s - Exit rc[%d] value[%x]
\n
"
,
__FUNCTION__
,
rc
,
*
value
);
return
rc
;
}
/*
static int get_max_adapter_speed_1 (struct hotplug_slot *hotplug_slot, u8 * value, u8 flag)
{
int rc = -ENODEV;
...
...
@@ -1584,9 +1586,9 @@ struct hotplug_slot_ops ibmphp_hotplug_slot_ops = {
.
get_attention_status
=
get_attention_status
,
.
get_latch_status
=
get_latch_status
,
.
get_adapter_status
=
get_adapter_present
,
/* .get_max_bus_speed_status =
get_max_bus_speed,
.get_
max_adapter_speed_status = get_max_adapter
_speed,
.get_cur_bus_speed_status = get_cur_bus
_speed,
.
get_max_bus_speed
=
get_max_bus_speed
,
.
get_
cur_bus_speed
=
get_cur_bus
_speed
,
/* .get_max_adapter_speed = get_max_adapter
_speed,
.get_bus_name_status = get_bus_name,
*/
};
...
...
drivers/hotplug/pci_hotplug.h
View file @
0904806c
...
...
@@ -29,6 +29,22 @@
#define _PCI_HOTPLUG_H
/* These values come from the PCI Hotplug Spec */
enum
pci_bus_speed
{
PCI_SPEED_33MHz
=
0x00
,
PCI_SPEED_66MHz
=
0x01
,
PCI_SPEED_66MHz_PCIX
=
0x02
,
PCI_SPEED_100MHz_PCIX
=
0x03
,
PCI_SPEED_133MHz_PCIX
=
0x04
,
PCI_SPEED_66MHz_PCIX_266
=
0x09
,
PCI_SPEED_100MHz_PCIX_266
=
0x0a
,
PCI_SPEED_133MHz_PCIX_266
=
0x0b
,
PCI_SPEED_66MHz_PCIX_533
=
0x11
,
PCI_SPEED_100MHz_PCIX_533
=
0X12
,
PCI_SPEED_133MHz_PCIX_533
=
0x13
,
PCI_SPEED_UNKNOWN
=
0xff
,
};
struct
hotplug_slot
;
struct
hotplug_slot_core
;
...
...
@@ -50,7 +66,13 @@ struct hotplug_slot_core;
* @get_latch_status: Called to get the current latch status of a slot.
* If this field is NULL, the value passed in the struct hotplug_slot_info
* will be used when this value is requested by a user.
* @get_adapter_present: Called to get see if an adapter is present in the slot or not.
* @get_adapter_status: Called to get see if an adapter is present in the slot or not.
* If this field is NULL, the value passed in the struct hotplug_slot_info
* will be used when this value is requested by a user.
* @get_max_bus_speed: Called to get the max bus speed for a slot.
* If this field is NULL, the value passed in the struct hotplug_slot_info
* will be used when this value is requested by a user.
* @get_cur_bus_speed: Called to get the current bus speed for a slot.
* If this field is NULL, the value passed in the struct hotplug_slot_info
* will be used when this value is requested by a user.
*
...
...
@@ -69,6 +91,8 @@ struct hotplug_slot_ops {
int
(
*
get_attention_status
)
(
struct
hotplug_slot
*
slot
,
u8
*
value
);
int
(
*
get_latch_status
)
(
struct
hotplug_slot
*
slot
,
u8
*
value
);
int
(
*
get_adapter_status
)
(
struct
hotplug_slot
*
slot
,
u8
*
value
);
int
(
*
get_max_bus_speed
)
(
struct
hotplug_slot
*
slot
,
enum
pci_bus_speed
*
value
);
int
(
*
get_cur_bus_speed
)
(
struct
hotplug_slot
*
slot
,
enum
pci_bus_speed
*
value
);
};
/**
...
...
@@ -85,6 +109,8 @@ struct hotplug_slot_info {
u8
attention_status
;
u8
latch_status
;
u8
adapter_status
;
enum
pci_bus_speed
max_bus_speed
;
enum
pci_bus_speed
cur_bus_speed
;
};
/**
...
...
drivers/hotplug/pci_hotplug_core.c
View file @
0904806c
This diff is collapsed.
Click to expand it.
drivers/pci/proc.c
View file @
0904806c
...
...
@@ -371,7 +371,7 @@ static struct seq_operations proc_bus_pci_devices_op = {
show:
show_device
};
st
atic
st
ruct
proc_dir_entry
*
proc_bus_pci_dir
;
struct
proc_dir_entry
*
proc_bus_pci_dir
;
/* driverfs files */
static
ssize_t
pci_show_irq
(
struct
device
*
dev
,
char
*
buf
,
size_t
count
,
loff_t
off
)
...
...
@@ -621,5 +621,6 @@ EXPORT_SYMBOL(pci_proc_attach_device);
EXPORT_SYMBOL
(
pci_proc_detach_device
);
EXPORT_SYMBOL
(
pci_proc_attach_bus
);
EXPORT_SYMBOL
(
pci_proc_detach_bus
);
EXPORT_SYMBOL
(
proc_bus_pci_dir
);
#endif
kernel/exit.c
View file @
0904806c
...
...
@@ -610,7 +610,6 @@ NORET_TYPE void do_exit(long code)
if
(
tsk
->
pid
==
1
)
panic
(
"Attempted to kill init!"
);
tsk
->
flags
|=
PF_EXITING
;
if
(
timer_pending
(
&
tsk
->
real_timer
))
del_timer_sync
(
&
tsk
->
real_timer
);
if
(
unlikely
(
preempt_count
()))
...
...
kernel/ksyms.c
View file @
0904806c
...
...
@@ -53,6 +53,7 @@
#include <linux/root_dev.h>
#include <linux/percpu.h>
#include <linux/smp_lock.h>
#include <linux/dnotify.h>
#include <asm/checksum.h>
#if defined(CONFIG_PROC_FS)
...
...
@@ -560,6 +561,7 @@ EXPORT_SYMBOL(buffer_insert_list);
EXPORT_SYMBOL
(
make_bad_inode
);
EXPORT_SYMBOL
(
is_bad_inode
);
EXPORT_SYMBOL
(
event
);
EXPORT_SYMBOL
(
__inode_dir_notify
);
#ifdef CONFIG_UID16
EXPORT_SYMBOL
(
overflowuid
);
...
...
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