ipmi_si: Switch hotmod to use a platform device
[linux-2.6-block.git] / drivers / char / ipmi / ipmi_si_platform.c
index 8158d03542f4bb1643a248ce7f53992b7fe1830f..0f493fe8370179c22416301f7f6661090a9da15d 100644 (file)
@@ -107,11 +107,11 @@ ipmi_get_info_from_resources(struct platform_device *pdev,
 
        res = platform_get_resource(pdev, IORESOURCE_IO, 0);
        if (res) {
-               io->addr_type = IPMI_IO_ADDR_SPACE;
+               io->addr_space = IPMI_IO_ADDR_SPACE;
        } else {
                res = platform_get_resource(pdev, IORESOURCE_MEM, 0);
                if (res)
-                       io->addr_type = IPMI_MEM_ADDR_SPACE;
+                       io->addr_space = IPMI_MEM_ADDR_SPACE;
        }
        if (!res) {
                dev_err(&pdev->dev, "no I/O or memory address\n");
@@ -121,7 +121,7 @@ ipmi_get_info_from_resources(struct platform_device *pdev,
 
        io->regspacing = DEFAULT_REGSPACING;
        res_second = platform_get_resource(pdev,
-                              (io->addr_type == IPMI_IO_ADDR_SPACE) ?
+                              (io->addr_space == IPMI_IO_ADDR_SPACE) ?
                                        IORESOURCE_IO : IORESOURCE_MEM,
                               1);
        if (res_second) {
@@ -205,7 +205,7 @@ static int platform_ipmi_probe(struct platform_device *pdev)
 
        pr_info("ipmi_si: %s: %s %#lx regsize %d spacing %d irq %d\n",
                ipmi_addr_src_to_str(addr_source),
-               (io.addr_type == IPMI_IO_ADDR_SPACE) ? "io" : "mem",
+               (io.addr_space == IPMI_IO_ADDR_SPACE) ? "io" : "mem",
                io.addr_data, io.regsize, io.regspacing, io.irq);
 
        ipmi_si_add_smi(&io);
@@ -277,9 +277,9 @@ static int of_ipmi_probe(struct platform_device *pdev)
        io.irq_setup    = ipmi_std_irq_setup;
 
        if (resource.flags & IORESOURCE_IO)
-               io.addr_type = IPMI_IO_ADDR_SPACE;
+               io.addr_space = IPMI_IO_ADDR_SPACE;
        else
-               io.addr_type = IPMI_MEM_ADDR_SPACE;
+               io.addr_space = IPMI_MEM_ADDR_SPACE;
 
        io.addr_data    = resource.start;
 
@@ -307,15 +307,10 @@ static int of_ipmi_probe(struct platform_device *dev)
 static int find_slave_address(struct si_sm_io *io, int slave_addr)
 {
 #ifdef CONFIG_IPMI_DMI_DECODE
-       if (!slave_addr) {
-               u32 flags = IORESOURCE_IO;
-
-               if (io->addr_type == IPMI_MEM_ADDR_SPACE)
-                       flags = IORESOURCE_MEM;
-
-               slave_addr = ipmi_dmi_get_slave_addr(io->si_type, flags,
+       if (!slave_addr)
+               slave_addr = ipmi_dmi_get_slave_addr(io->si_type,
+                                                    io->addr_space,
                                                     io->addr_data);
-       }
 #endif
 
        return slave_addr;
@@ -436,6 +431,7 @@ static int ipmi_remove(struct platform_device *pdev)
 static const struct platform_device_id si_plat_ids[] = {
        { "dmi-ipmi-si", 0 },
        { "hardcode-ipmi-si", 0 },
+       { "hotmod-ipmi-si", 0 },
        { }
 };