Thomas Bogendoerfer wrote:
> The last line of PARISC machines (C8000, RP34x0, etc.) have a BMC for
> controlling temperature, fan speed and other stuff. The BMC is connected
> via a special bus and listed in the firmware device tree. This change
> adds support for these BMCs to the IPMI driver.
> 
> Signed-off-by: Thomas Bogendoerfer <[email protected]>
> ---
> 
> This is the second try to get this change integrated. If you see
> any problems with this patch, please give me hints how to improve
> this patch.
> 
> 
>  drivers/char/ipmi/ipmi_si_intf.c |   77
> ++++++++++++++++++++++++++++++++++++++ 1 file changed, 77 insertions(+)
> 
> diff --git a/drivers/char/ipmi/ipmi_si_intf.c
> b/drivers/char/ipmi/ipmi_si_intf.c index af4b23f..b017b8a 100644
> --- a/drivers/char/ipmi/ipmi_si_intf.c
> +++ b/drivers/char/ipmi/ipmi_si_intf.c
> @@ -71,6 +71,11 @@
>  #include <linux/of_address.h>
>  #include <linux/of_irq.h>
> 
> +#ifdef CONFIG_PARISC
> +#include <asm/hardware.h>    /* for register_parisc_driver() stuff */
> +#include <asm/parisc-device.h>
> +#endif
> +
>  #define PFX "ipmi_si: "
> 
>  /* Measure times between events in the driver. */
> @@ -298,6 +303,9 @@ static int pci_registered;
>  #ifdef CONFIG_ACPI
>  static int pnp_registered;
>  #endif
> +#ifdef CONFIG_PARISC
> +static int parisc_registered;
> +#endif
>  static unsigned int kipmid_max_busy_us[SI_MAX_PARMS];
>  static int num_max_busy_us;

Can be bool

> @@ -2697,6 +2705,64 @@ static struct platform_driver ipmi_driver = {
>       .remove         = ipmi_remove,
>  };
> 
> +#ifdef CONFIG_PARISC
> +static int ipmi_parisc_probe(struct parisc_device *dev)
> +{
> +     struct smi_info *info;
> +
> +     info = kzalloc(sizeof(*info), GFP_KERNEL);
> +
> +     if (!info) {
> +             dev_err(&dev->dev,
> +                     "could not allocate memory for PARISC probe\n");
> +             return -ENOMEM;
> +     }
> +
> +     info->si_type           = SI_KCS;
> +     info->addr_source       = SI_DEVICETREE;
> +     info->io_setup          = mem_setup;
> +     info->io.addr_type      = IPMI_MEM_ADDR_SPACE;
> +     info->io.addr_data      = dev->hpa.start;
> +     info->io.regsize        = 1;
> +     info->io.regspacing     = 1;
> +     info->io.regshift       = 0;
> +     info->irq               = 0; /* no interrupt */
> +     info->irq_setup         = NULL;
> +     info->dev               = &dev->dev;
> +
> +     dev_dbg(&dev->dev, "addr 0x%lx regsize %d spacing %d irq %d\n",
> +             info->io.addr_data, info->io.regsize, info->io.regspacing,
> +             info->irq);

Printing regsize, regspacing, and IRQ here is kind of pointless as they have 
fixed values, no?

> +     dev_set_drvdata(&dev->dev, info);
> +
> +     if (add_smi(info)) {
> +             kfree(info);
> +             return -EBUSY;
> +     }

add_smi() will already return an error code AFAICS. So just forward that.

Regards,

Eike

Attachment: signature.asc
Description: This is a digitally signed message part.

------------------------------------------------------------------------------
Get your SQL database under version control now!
Version control is standard for application code, but databases havent 
caught up. So what steps can you take to put your SQL databases under 
version control? Why should you start doing it? Read more to find out.
http://pubads.g.doubleclick.net/gampad/clk?id=49501711&iu=/4140/ostg.clktrk
_______________________________________________
Openipmi-developer mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/openipmi-developer

Reply via email to