Commit 759273c3 authored by Henning Schild's avatar Henning Schild Committed by Lee Jones
Browse files

leds: simatic-ipc-leds: Convert to use P2SB accessor



Since we have a common P2SB accessor in tree we may use it instead of
open coded variants.

Replace custom code by p2sb_bar() call.

Signed-off-by: default avatarHenning Schild <henning.schild@siemens.com>
Signed-off-by: default avatarAndy Shevchenko <andriy.shevchenko@linux.intel.com>
Signed-off-by: default avatarLee Jones <lee@kernel.org>
parent e38da7d3
Loading
Loading
Loading
Loading
+1 −0
Original line number Original line Diff line number Diff line
@@ -3,6 +3,7 @@ config LEDS_SIEMENS_SIMATIC_IPC
	tristate "LED driver for Siemens Simatic IPCs"
	tristate "LED driver for Siemens Simatic IPCs"
	depends on LEDS_CLASS
	depends on LEDS_CLASS
	depends on SIEMENS_SIMATIC_IPC
	depends on SIEMENS_SIMATIC_IPC
	select P2SB
	help
	help
	  This option enables support for the LEDs of several Industrial PCs
	  This option enables support for the LEDs of several Industrial PCs
	  from Siemens.
	  from Siemens.
+7 −7
Original line number Original line Diff line number Diff line
@@ -15,6 +15,7 @@
#include <linux/leds.h>
#include <linux/leds.h>
#include <linux/module.h>
#include <linux/module.h>
#include <linux/pci.h>
#include <linux/pci.h>
#include <linux/platform_data/x86/p2sb.h>
#include <linux/platform_data/x86/simatic-ipc-base.h>
#include <linux/platform_data/x86/simatic-ipc-base.h>
#include <linux/platform_device.h>
#include <linux/platform_device.h>
#include <linux/sizes.h>
#include <linux/sizes.h>
@@ -38,8 +39,8 @@ static struct simatic_ipc_led simatic_ipc_leds_io[] = {
	{ }
	{ }
};
};


/* the actual start will be discovered with PCI, 0 is a placeholder */
/* the actual start will be discovered with p2sb, 0 is a placeholder */
static struct resource simatic_ipc_led_mem_res = DEFINE_RES_MEM_NAMED(0, SZ_4K, KBUILD_MODNAME);
static struct resource simatic_ipc_led_mem_res = DEFINE_RES_MEM_NAMED(0, 0, KBUILD_MODNAME);


static void __iomem *simatic_ipc_led_memory;
static void __iomem *simatic_ipc_led_memory;


@@ -145,14 +146,13 @@ static int simatic_ipc_leds_probe(struct platform_device *pdev)
		ipcled = simatic_ipc_leds_mem;
		ipcled = simatic_ipc_leds_mem;
		type = IORESOURCE_MEM;
		type = IORESOURCE_MEM;


		/* get GPIO base from PCI */
		err = p2sb_bar(NULL, 0, res);
		res->start = simatic_ipc_get_membase0(PCI_DEVFN(13, 0));
		if (err)
		if (res->start == 0)
			return err;
			return -ENODEV;


		/* do the final address calculation */
		/* do the final address calculation */
		res->start = res->start + (0xC5 << 16);
		res->start = res->start + (0xC5 << 16);
		res->end += res->start;
		res->end = res->start + SZ_4K - 1;


		simatic_ipc_led_memory = devm_ioremap_resource(dev, res);
		simatic_ipc_led_memory = devm_ioremap_resource(dev, res);
		if (IS_ERR(simatic_ipc_led_memory))
		if (IS_ERR(simatic_ipc_led_memory))