* [BK PATCH] PCI Hotplug fixes for 2.4.20-pre10
@ 2002-10-10 21:44 Greg KH
2002-10-10 21:45 ` [PATCH] " Greg KH
0 siblings, 1 reply; 5+ messages in thread
From: Greg KH @ 2002-10-10 21:44 UTC (permalink / raw)
To: marcelo; +Cc: linux-kernel, pcihpd-discuss
Hi,
Here are some small bugfixes for the Compaq and IBM PCI Hotplug drivers.
Please pull from: bk://linuxusb.bkbits.net/pci_hp-2.4
Patches will follow.
thanks,
greg k-h
drivers/hotplug/cpqphp_core.c | 4 ++-
drivers/hotplug/cpqphp_pci.c | 4 +--
drivers/hotplug/ibmphp_core.c | 47 ++++++++++++++++++++++++++----------------
3 files changed, 35 insertions(+), 20 deletions(-)
-----
ChangeSet@1.741, 2002-10-10 14:42:18-07:00, greg@kroah.com
IBM PCI Hotplug driver: typo fix for previous patch.
drivers/hotplug/ibmphp_core.c | 4 ++--
1 files changed, 2 insertions(+), 2 deletions(-)
------
ChangeSet@1.740, 2002-10-10 14:38:55-07:00, zubarev@us.ibm.com
[PATCH] IBM PCI Hotplug: small patch
This is a small patch on top of what you sent out to the kernel
already. I basically uncommented out another place, where we call
pci_hp_change_info and changed to the new method. And also, when I sent
you those (polling, isa, pci...) patches sometime back, I made a mistake
when I was translating the code from the way RPM is to the way we want in
the kernel (since in RPM we cannot have option to compile kernel).
drivers/hotplug/ibmphp_core.c | 43 +++++++++++++++++++++++++++---------------
1 files changed, 28 insertions(+), 15 deletions(-)
------
ChangeSet@1.739, 2002-10-10 14:36:51-07:00, Dan.Zink@hp.com
[PATCH] Compaq PCI Hotplug bug fix 2
Your patch may fix the issue, but I think there is an
easier way. I found another bug that was preventing the
existing scheme from working. It looks like the function
"pcibios_set_irq_routing" is returning 1 for success, but
the hot plug driver was interpreting it as failure.
The attached 2 line patch fixes it for me. I am able to
add an Intel NIC on an ML370 G2 and receive interrupts from
it.
drivers/hotplug/cpqphp_pci.c | 4 ++--
1 files changed, 2 insertions(+), 2 deletions(-)
------
ChangeSet@1.738, 2002-10-10 14:36:41-07:00, Dan.Zink@hp.com
[PATCH] Compaq PCI Hotplug bug fix
Found the bug. The following patch fixes the hot plug
driver so that it has a fallback when there are no unused
IRQs on a system. At some point intialization got re-
ordered and this was broken.
Greg, this should apply to 2.4 and 2.5 if you wouldn't
mind submitting it.
Thanks,
Dan
drivers/hotplug/cpqphp_core.c | 4 +++-
1 files changed, 3 insertions(+), 1 deletion(-)
------
^ permalink raw reply [flat|nested] 5+ messages in thread
* [PATCH] PCI Hotplug fixes for 2.4.20-pre10
2002-10-10 21:44 [BK PATCH] PCI Hotplug fixes for 2.4.20-pre10 Greg KH
@ 2002-10-10 21:45 ` Greg KH
2002-10-10 21:45 ` Greg KH
0 siblings, 1 reply; 5+ messages in thread
From: Greg KH @ 2002-10-10 21:45 UTC (permalink / raw)
To: marcelo; +Cc: linux-kernel, pcihpd-discuss
# This is a BitKeeper generated patch for the following project:
# Project Name: Linux kernel tree
# This patch format is intended for GNU patch command version 2.5 or higher.
# This patch includes the following deltas:
# ChangeSet 1.737 -> 1.738
# drivers/hotplug/cpqphp_core.c 1.3 -> 1.4
#
# The following is the BitKeeper ChangeSet Log
# --------------------------------------------
# 02/10/10 Dan.Zink@hp.com 1.738
# [PATCH] Compaq PCI Hotplug bug fix
#
# Found the bug. The following patch fixes the hot plug
# driver so that it has a fallback when there are no unused
# IRQs on a system. At some point intialization got re-
# ordered and this was broken.
#
# Greg, this should apply to 2.4 and 2.5 if you wouldn't
# mind submitting it.
#
# Thanks,
# Dan
# --------------------------------------------
#
diff -Nru a/drivers/hotplug/cpqphp_core.c b/drivers/hotplug/cpqphp_core.c
--- a/drivers/hotplug/cpqphp_core.c Thu Oct 10 14:44:44 2002
+++ b/drivers/hotplug/cpqphp_core.c Thu Oct 10 14:44:44 2002
@@ -1101,6 +1101,9 @@
/*
* Get IO, memory, and IRQ resources for new devices
*/
+ // The next line is required for cpqhp_find_available_resources
+ ctrl->interrupt = pdev->irq;
+
rc = cpqhp_find_available_resources(ctrl, cpqhp_rom_start);
ctrl->add_support = !rc;
if (rc) {
@@ -1129,7 +1132,6 @@
writel(0xFFFFFFFFL, ctrl->hpc_reg + INT_MASK);
/* set up the interrupt */
- ctrl->interrupt = pdev->irq;
dbg("HPC interrupt = %d \n", ctrl->interrupt);
if (request_irq(ctrl->interrupt,
(void (*)(int, void *, struct pt_regs *)) &cpqhp_ctrl_intr,
^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: [PATCH] PCI Hotplug fixes for 2.4.20-pre10
2002-10-10 21:45 ` [PATCH] " Greg KH
@ 2002-10-10 21:45 ` Greg KH
2002-10-10 21:46 ` Greg KH
0 siblings, 1 reply; 5+ messages in thread
From: Greg KH @ 2002-10-10 21:45 UTC (permalink / raw)
To: marcelo; +Cc: linux-kernel, pcihpd-discuss
# This is a BitKeeper generated patch for the following project:
# Project Name: Linux kernel tree
# This patch format is intended for GNU patch command version 2.5 or higher.
# This patch includes the following deltas:
# ChangeSet 1.738 -> 1.739
# drivers/hotplug/cpqphp_pci.c 1.1 -> 1.2
#
# The following is the BitKeeper ChangeSet Log
# --------------------------------------------
# 02/10/10 Dan.Zink@hp.com 1.739
# [PATCH] Compaq PCI Hotplug bug fix 2
#
# Your patch may fix the issue, but I think there is an
# easier way. I found another bug that was preventing the
# existing scheme from working. It looks like the function
# "pcibios_set_irq_routing" is returning 1 for success, but
# the hot plug driver was interpreting it as failure.
#
# The attached 2 line patch fixes it for me. I am able to
# add an Intel NIC on an ML370 G2 and receive interrupts from
# it.
# --------------------------------------------
#
diff -Nru a/drivers/hotplug/cpqphp_pci.c b/drivers/hotplug/cpqphp_pci.c
--- a/drivers/hotplug/cpqphp_pci.c Thu Oct 10 14:44:42 2002
+++ b/drivers/hotplug/cpqphp_pci.c Thu Oct 10 14:44:42 2002
@@ -358,8 +358,8 @@
dev_num, bus_num, int_pin, irq_num);
rc = pcibios_set_irq_routing(&fakedev, int_pin - 0x0a, irq_num);
dbg(__FUNCTION__":rc %d\n", rc);
- if (rc)
- return rc;
+ if (!rc)
+ return !rc;
// set the Edge Level Control Register (ELCR)
temp_word = inb(0x4d0);
^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: [PATCH] PCI Hotplug fixes for 2.4.20-pre10
2002-10-10 21:45 ` Greg KH
@ 2002-10-10 21:46 ` Greg KH
2002-10-10 21:48 ` Greg KH
0 siblings, 1 reply; 5+ messages in thread
From: Greg KH @ 2002-10-10 21:46 UTC (permalink / raw)
To: marcelo; +Cc: linux-kernel, pcihpd-discuss
# This is a BitKeeper generated patch for the following project:
# Project Name: Linux kernel tree
# This patch format is intended for GNU patch command version 2.5 or higher.
# This patch includes the following deltas:
# ChangeSet 1.739 -> 1.740
# drivers/hotplug/ibmphp_core.c 1.7 -> 1.8
#
# The following is the BitKeeper ChangeSet Log
# --------------------------------------------
# 02/10/10 zubarev@us.ibm.com 1.740
# [PATCH] IBM PCI Hotplug: small patch
#
# This is a small patch on top of what you sent out to the kernel
# already. I basically uncommented out another place, where we call
# pci_hp_change_info and changed to the new method. And also, when I sent
# you those (polling, isa, pci...) patches sometime back, I made a mistake
# when I was translating the code from the way RPM is to the way we want in
# the kernel (since in RPM we cannot have option to compile kernel).
# --------------------------------------------
#
diff -Nru a/drivers/hotplug/ibmphp_core.c b/drivers/hotplug/ibmphp_core.c
--- a/drivers/hotplug/ibmphp_core.c Thu Oct 10 14:44:40 2002
+++ b/drivers/hotplug/ibmphp_core.c Thu Oct 10 14:44:40 2002
@@ -686,9 +686,10 @@
int ibmphp_update_slot_info (struct slot *slot_cur)
{
struct hotplug_slot_info *info;
- char buffer[10];
+ char buffer[30];
int rc;
-// u8 bus_speed;
+ u8 bus_speed;
+ u8 mode;
info = kmalloc (sizeof (struct hotplug_slot_info), GFP_KERNEL);
if (!info) {
@@ -696,7 +697,7 @@
return -ENOMEM;
}
- snprintf (buffer, 10, "%d", slot_cur->number);
+ strncpy (buffer, slot_cur->hotplug_slot->name, 30);
info->power_status = SLOT_PWRGD (slot_cur->status);
info->attention_status = SLOT_ATTN (slot_cur->status, slot_cur->ext_status);
info->latch_status = SLOT_LATCH (slot_cur->status);
@@ -707,21 +708,33 @@
info->adapter_status = 1;
// get_max_adapter_speed_1 (slot_cur->hotplug_slot, &info->max_adapter_speed_status, 0);
}
- /* !!!!!!!!!TO DO: THIS NEEDS TO CHANGE!!!!!!!!!!!!! */
-/* bus_speed = slot_cur->bus_on->current_speed;
- bus_speed &= 0x0f;
-
- if (slot_cur->bus_on->current_bus_mode == BUS_MODE_PCIX)
- bus_speed |= 0x80;
- else if (slot_cur->bus_on->current_bus_mode == BUS_MODE_PCI)
- bus_speed |= 0x40;
- else
- bus_speed |= 0x20;
+
+ bus_speed = slot_cur->bus_on->current_speed;
+ mode = slot_cur->bus_on->current_bus_mode;
+
+ switch (bus_speed) {
+ case BUS_SPEED_33:
+ break;
+ case BUS_SPEED_66:
+ if (mode == BUS_MODE_PCIX)
+ bus_speed += 0x01;
+ else if (mode == BUS_MODE_PCI)
+ ;
+ else
+ bus_speed = PCI_SPEED_UNKNOWN;
+ break;
+ case BUS_SPEED_100:
+ case BUS_SPEED_133:
+ bus_speed += 0x01;
+ break;
+ default:
+ bus_speed = PCI_SPEED_UNKNOWN;
+ }
info->cur_bus_speed_status = bus_speed;
info->max_bus_speed_status = slot_cur->hotplug_slot->info->max_bus_speed_status;
// To do: bus_names
-*/
+
rc = pci_hp_change_slot_info (buffer, info);
kfree (info);
return rc;
@@ -1001,7 +1014,7 @@
struct pci_dev dev_t;
u16 l;
- if (!find_bus (busno) || !(ibmphp_find_same_bus_num (busno)))
+ if (find_bus (busno) || !(ibmphp_find_same_bus_num (busno)))
return 1;
bus_t.number = busno;
bus_t.ops = ibmphp_pci_root_ops;
^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: [PATCH] PCI Hotplug fixes for 2.4.20-pre10
2002-10-10 21:46 ` Greg KH
@ 2002-10-10 21:48 ` Greg KH
0 siblings, 0 replies; 5+ messages in thread
From: Greg KH @ 2002-10-10 21:48 UTC (permalink / raw)
To: marcelo; +Cc: linux-kernel, pcihpd-discuss
# This is a BitKeeper generated patch for the following project:
# Project Name: Linux kernel tree
# This patch format is intended for GNU patch command version 2.5 or higher.
# This patch includes the following deltas:
# ChangeSet 1.740 -> 1.741
# drivers/hotplug/ibmphp_core.c 1.8 -> 1.9
#
# The following is the BitKeeper ChangeSet Log
# --------------------------------------------
# 02/10/10 greg@kroah.com 1.741
# IBM PCI Hotplug driver: typo fix for previous patch.
# --------------------------------------------
#
diff -Nru a/drivers/hotplug/ibmphp_core.c b/drivers/hotplug/ibmphp_core.c
--- a/drivers/hotplug/ibmphp_core.c Thu Oct 10 14:44:38 2002
+++ b/drivers/hotplug/ibmphp_core.c Thu Oct 10 14:44:38 2002
@@ -731,8 +731,8 @@
bus_speed = PCI_SPEED_UNKNOWN;
}
- info->cur_bus_speed_status = bus_speed;
- info->max_bus_speed_status = slot_cur->hotplug_slot->info->max_bus_speed_status;
+ info->cur_bus_speed = bus_speed;
+ info->max_bus_speed = slot_cur->hotplug_slot->info->max_bus_speed;
// To do: bus_names
rc = pci_hp_change_slot_info (buffer, info);
^ permalink raw reply [flat|nested] 5+ messages in thread
end of thread, other threads:[~2002-10-10 21:47 UTC | newest]
Thread overview: 5+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2002-10-10 21:44 [BK PATCH] PCI Hotplug fixes for 2.4.20-pre10 Greg KH
2002-10-10 21:45 ` [PATCH] " Greg KH
2002-10-10 21:45 ` Greg KH
2002-10-10 21:46 ` Greg KH
2002-10-10 21:48 ` Greg KH
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox