public inbox for linux-kernel@vger.kernel.org
 help / color / mirror / Atom feed
* [PATCH v2] mfd: lpc_ich: Assign subdevice ids automatically
@ 2015-06-09  9:17 Mika Westerberg
  2015-06-09 11:09 ` Lee Jones
  0 siblings, 1 reply; 2+ messages in thread
From: Mika Westerberg @ 2015-06-09  9:17 UTC (permalink / raw)
  To: Lee Jones; +Cc: Peter Tyser, Samuel Ortiz, linux-kernel, Mika Westerberg

Using -1 as platform device id means that the platform driver core will not
assign any id to the device (the device name will not have id at all). This
results problems on systems that have multiple PCHs (Platform Controller
HUBs) because all of them also include their own copy of LPC device.

All the subsequent device creations will fail because there already exists
platform device with the same name.

Fix this by passing PLATFORM_DEVID_AUTO as platform device id. This makes
the platform device core to allocate new ids automatically.

Signed-off-by: Mika Westerberg <mika.westerberg@linux.intel.com>
---
v1 -> v2: Use PLATFORM_DEVID_AUTO instead of -2 as suggested by Lee

 drivers/mfd/lpc_ich.c | 8 ++++----
 1 file changed, 4 insertions(+), 4 deletions(-)

diff --git a/drivers/mfd/lpc_ich.c b/drivers/mfd/lpc_ich.c
index 12d960a60ec4..8de34398abc0 100644
--- a/drivers/mfd/lpc_ich.c
+++ b/drivers/mfd/lpc_ich.c
@@ -934,8 +934,8 @@ gpe0_done:
 	lpc_ich_enable_gpio_space(dev);
 
 	lpc_ich_finalize_cell(dev, &lpc_ich_cells[LPC_GPIO]);
-	ret = mfd_add_devices(&dev->dev, -1, &lpc_ich_cells[LPC_GPIO],
-			      1, NULL, 0, NULL);
+	ret = mfd_add_devices(&dev->dev, PLATFORM_DEVID_AUTO,
+			      &lpc_ich_cells[LPC_GPIO], 1, NULL, 0, NULL);
 
 gpio_done:
 	if (acpi_conflict)
@@ -1008,8 +1008,8 @@ static int lpc_ich_init_wdt(struct pci_dev *dev)
 	}
 
 	lpc_ich_finalize_cell(dev, &lpc_ich_cells[LPC_WDT]);
-	ret = mfd_add_devices(&dev->dev, -1, &lpc_ich_cells[LPC_WDT],
-			      1, NULL, 0, NULL);
+	ret = mfd_add_devices(&dev->dev, PLATFORM_DEVID_AUTO,
+			      &lpc_ich_cells[LPC_WDT], 1, NULL, 0, NULL);
 
 wdt_done:
 	return ret;
-- 
2.1.4


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

* Re: [PATCH v2] mfd: lpc_ich: Assign subdevice ids automatically
  2015-06-09  9:17 [PATCH v2] mfd: lpc_ich: Assign subdevice ids automatically Mika Westerberg
@ 2015-06-09 11:09 ` Lee Jones
  0 siblings, 0 replies; 2+ messages in thread
From: Lee Jones @ 2015-06-09 11:09 UTC (permalink / raw)
  To: Mika Westerberg; +Cc: Peter Tyser, Samuel Ortiz, linux-kernel

On Tue, 09 Jun 2015, Mika Westerberg wrote:

> Using -1 as platform device id means that the platform driver core will not
> assign any id to the device (the device name will not have id at all). This
> results problems on systems that have multiple PCHs (Platform Controller
> HUBs) because all of them also include their own copy of LPC device.
> 
> All the subsequent device creations will fail because there already exists
> platform device with the same name.
> 
> Fix this by passing PLATFORM_DEVID_AUTO as platform device id. This makes
> the platform device core to allocate new ids automatically.
> 
> Signed-off-by: Mika Westerberg <mika.westerberg@linux.intel.com>
> ---
> v1 -> v2: Use PLATFORM_DEVID_AUTO instead of -2 as suggested by Lee
> 
>  drivers/mfd/lpc_ich.c | 8 ++++----
>  1 file changed, 4 insertions(+), 4 deletions(-)

Applied, thanks.

> diff --git a/drivers/mfd/lpc_ich.c b/drivers/mfd/lpc_ich.c
> index 12d960a60ec4..8de34398abc0 100644
> --- a/drivers/mfd/lpc_ich.c
> +++ b/drivers/mfd/lpc_ich.c
> @@ -934,8 +934,8 @@ gpe0_done:
>  	lpc_ich_enable_gpio_space(dev);
>  
>  	lpc_ich_finalize_cell(dev, &lpc_ich_cells[LPC_GPIO]);
> -	ret = mfd_add_devices(&dev->dev, -1, &lpc_ich_cells[LPC_GPIO],
> -			      1, NULL, 0, NULL);
> +	ret = mfd_add_devices(&dev->dev, PLATFORM_DEVID_AUTO,
> +			      &lpc_ich_cells[LPC_GPIO], 1, NULL, 0, NULL);
>  
>  gpio_done:
>  	if (acpi_conflict)
> @@ -1008,8 +1008,8 @@ static int lpc_ich_init_wdt(struct pci_dev *dev)
>  	}
>  
>  	lpc_ich_finalize_cell(dev, &lpc_ich_cells[LPC_WDT]);
> -	ret = mfd_add_devices(&dev->dev, -1, &lpc_ich_cells[LPC_WDT],
> -			      1, NULL, 0, NULL);
> +	ret = mfd_add_devices(&dev->dev, PLATFORM_DEVID_AUTO,
> +			      &lpc_ich_cells[LPC_WDT], 1, NULL, 0, NULL);
>  
>  wdt_done:
>  	return ret;

-- 
Lee Jones
Linaro STMicroelectronics Landing Team Lead
Linaro.org │ Open source software for ARM SoCs
Follow Linaro: Facebook | Twitter | Blog

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

end of thread, other threads:[~2015-06-09 11:09 UTC | newest]

Thread overview: 2+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2015-06-09  9:17 [PATCH v2] mfd: lpc_ich: Assign subdevice ids automatically Mika Westerberg
2015-06-09 11:09 ` Lee Jones

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