public inbox for linux-kernel@vger.kernel.org
 help / color / mirror / Atom feed
* [PATCH 1/8] ipmi: Change addr_source to an enum rather than strings
@ 2010-05-03 13:33 Corey Minyard
  2010-05-04 22:53 ` Andrew Morton
  0 siblings, 1 reply; 3+ messages in thread
From: Corey Minyard @ 2010-05-03 13:33 UTC (permalink / raw)
  To: Linux Kernel, Andrew Morton; +Cc: OpenIPMI Developers, Matthew Garrett

From: Matthew Garrett <mjg@redhat.com>

Switch from a char* to an enum to identify the address source of SIs,
making it easier to handle them appropriately during registration.

Signed-off-by: Matthew Garrett <mjg@redhat.com>
Signed-off-by: Corey Minyard <cminyard@mvista.com>
---

Index: linux-2.6/drivers/char/ipmi/ipmi_si_intf.c
===================================================================
--- linux-2.6.orig/drivers/char/ipmi/ipmi_si_intf.c
+++ linux-2.6/drivers/char/ipmi/ipmi_si_intf.c
@@ -107,6 +107,14 @@ enum si_type {
 };
 static char *si_to_str[] = { "kcs", "smic", "bt" };
 
+enum ipmi_addr_src {
+	SI_INVALID = 0, SI_HOTMOD, SI_HARDCODED, SI_SPMI, SI_ACPI, SI_SMBIOS,
+	SI_PCI,	SI_DEVICETREE, SI_DEFAULT
+};
+static char *ipmi_addr_src_to_str[] = { NULL, "hotmod", "hardcoded", "SPMI",
+					"ACPI", "SMBIOS", "PCI",
+					"device-tree", "default" };
+
 #define DEVICE_NAME "ipmi_si"
 
 static struct platform_driver ipmi_driver = {
@@ -188,7 +196,7 @@ struct smi_info {
 	int (*irq_setup)(struct smi_info *info);
 	void (*irq_cleanup)(struct smi_info *info);
 	unsigned int io_size;
-	char *addr_source; /* ACPI, PCI, SMBIOS, hardcode, default. */
+	enum ipmi_addr_src addr_source; /* ACPI, PCI, SMBIOS, hardcode, etc. */
 	void (*addr_source_cleanup)(struct smi_info *info);
 	void *addr_source_data;
 
@@ -1755,7 +1763,7 @@ static int hotmod_handler(const char *va
 				goto out;
 			}
 
-			info->addr_source = "hotmod";
+			info->addr_source = SI_HOTMOD;
 			info->si_type = si_type;
 			info->io.addr_data = addr;
 			info->io.addr_type = addr_space;
@@ -1813,7 +1821,7 @@ static __devinit void hardcode_find_bmc(
 		if (!info)
 			return;
 
-		info->addr_source = "hardcoded";
+		info->addr_source = SI_HARDCODED;
 
 		if (!si_type[i] || strcmp(si_type[i], "kcs") == 0) {
 			info->si_type = SI_KCS;
@@ -2004,7 +2012,7 @@ static __devinit int try_init_spmi(struc
 		return -ENOMEM;
 	}
 
-	info->addr_source = "SPMI";
+	info->addr_source = SI_SPMI;
 
 	/* Figure out the interface type. */
 	switch (spmi->InterfaceType) {
@@ -2105,7 +2113,7 @@ static int __devinit ipmi_pnp_probe(stru
 	if (!info)
 		return -ENOMEM;
 
-	info->addr_source = "ACPI";
+	info->addr_source = SI_ACPI;
 
 	handle = acpi_dev->handle;
 
@@ -2269,7 +2277,7 @@ static __devinit void try_init_dmi(struc
 		return;
 	}
 
-	info->addr_source = "SMBIOS";
+	info->addr_source = SI_SMBIOS;
 
 	switch (ipmi_data->type) {
 	case 0x01: /* KCS */
@@ -2368,7 +2376,7 @@ static int __devinit ipmi_pci_probe(stru
 	if (!info)
 		return -ENOMEM;
 
-	info->addr_source = "PCI";
+	info->addr_source = SI_PCI;
 
 	switch (class_type) {
 	case PCI_ERMC_CLASSCODE_TYPE_SMIC:
@@ -2508,7 +2516,7 @@ static int __devinit ipmi_of_probe(struc
 	}
 
 	info->si_type		= (enum si_type) match->data;
-	info->addr_source	= "device-tree";
+	info->addr_source	= SI_DEVICETREE;
 	info->irq_setup		= std_irq_setup;
 
 	if (resource.flags & IORESOURCE_IO) {
@@ -2948,7 +2956,7 @@ static __devinit void default_find_bmc(v
 		if (!info)
 			return;
 
-		info->addr_source = NULL;
+		info->addr_source = SI_DEFAULT;
 
 		info->si_type = ipmi_defaults[i].type;
 		info->io_setup = port_setup;
@@ -2991,16 +2999,14 @@ static int try_smi_init(struct smi_info 
 	int rv;
 	int i;
 
-	if (new_smi->addr_source) {
-		printk(KERN_INFO "ipmi_si: Trying %s-specified %s state"
-		       " machine at %s address 0x%lx, slave address 0x%x,"
-		       " irq %d\n",
-		       new_smi->addr_source,
-		       si_to_str[new_smi->si_type],
-		       addr_space_to_str[new_smi->io.addr_type],
-		       new_smi->io.addr_data,
-		       new_smi->slave_addr, new_smi->irq);
-	}
+	printk(KERN_INFO "ipmi_si: Trying %s-specified %s state"
+	       " machine at %s address 0x%lx, slave address 0x%x,"
+	       " irq %d\n",
+	       ipmi_addr_src_to_str[new_smi->addr_source],
+	       si_to_str[new_smi->si_type],
+	       addr_space_to_str[new_smi->io.addr_type],
+	       new_smi->io.addr_data,
+	       new_smi->slave_addr, new_smi->irq);
 
 	mutex_lock(&smi_infos_lock);
 	if (!is_new_interface(new_smi)) {

^ permalink raw reply	[flat|nested] 3+ messages in thread

* Re: [PATCH 1/8] ipmi: Change addr_source to an enum rather than strings
  2010-05-03 13:33 [PATCH 1/8] ipmi: Change addr_source to an enum rather than strings Corey Minyard
@ 2010-05-04 22:53 ` Andrew Morton
  2010-05-06 16:49   ` Corey Minyard
  0 siblings, 1 reply; 3+ messages in thread
From: Andrew Morton @ 2010-05-04 22:53 UTC (permalink / raw)
  To: minyard; +Cc: Linux Kernel, OpenIPMI Developers, Matthew Garrett, Myron Stowe


I already have three IPMI patches queued:

http://userweb.kernel.org/~akpm/mmotm/broken-out/ipmi-raise-precedence-of-pnp-based-discovery-mechanisms-acpi-pci.patch
http://userweb.kernel.org/~akpm/mmotm/broken-out/ipmi-convert-tracking-of-the-acpi-device-pointer-to-a-pnp-device.patch
http://userweb.kernel.org/~akpm/mmotm/broken-out/ipmi-update-driver-to-use-dev_printk-and-its-constructs.patch

The first two were repairable.  The third is now thoroughly trashed and
needs redoing.

I have no record of you having reviewed or [n]acked those three IPMI
patches?


^ permalink raw reply	[flat|nested] 3+ messages in thread

* Re: [PATCH 1/8] ipmi: Change addr_source to an enum rather than strings
  2010-05-04 22:53 ` Andrew Morton
@ 2010-05-06 16:49   ` Corey Minyard
  0 siblings, 0 replies; 3+ messages in thread
From: Corey Minyard @ 2010-05-06 16:49 UTC (permalink / raw)
  To: Andrew Morton
  Cc: Linux Kernel, OpenIPMI Developers, Matthew Garrett, Myron Stowe

Andrew Morton wrote:
> I already have three IPMI patches queued:
>
> http://userweb.kernel.org/~akpm/mmotm/broken-out/ipmi-raise-precedence-of-pnp-based-discovery-mechanisms-acpi-pci.patch
>   
I don't believe this patch is valid.  The discovery order in the patch 
from Matthew is the correct one, I believe.  So NACK on this one.

> http://userweb.kernel.org/~akpm/mmotm/broken-out/ipmi-convert-tracking-of-the-acpi-device-pointer-to-a-pnp-device.patch
>   
This should be good.

> http://userweb.kernel.org/~akpm/mmotm/broken-out/ipmi-update-driver-to-use-dev_printk-and-its-constructs.patch
>   
This is nice, I'll rework it and resend.

Thanks a bunch.

-corey

> The first two were repairable.  The third is now thoroughly trashed and
> needs redoing.
>
> I have no record of you having reviewed or [n]acked those three IPMI
> patches?
>
>   


^ permalink raw reply	[flat|nested] 3+ messages in thread

end of thread, other threads:[~2010-05-06 16:49 UTC | newest]

Thread overview: 3+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2010-05-03 13:33 [PATCH 1/8] ipmi: Change addr_source to an enum rather than strings Corey Minyard
2010-05-04 22:53 ` Andrew Morton
2010-05-06 16:49   ` Corey Minyard

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox