From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1753497AbbEHLbg (ORCPT ); Fri, 8 May 2015 07:31:36 -0400 Received: from mga09.intel.com ([134.134.136.24]:46894 "EHLO mga09.intel.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1753153AbbEHLbf (ORCPT ); Fri, 8 May 2015 07:31:35 -0400 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.13,390,1427785200"; d="scan'208";a="722777441" From: Mika Westerberg To: Lee Jones Cc: Peter Tyser , Samuel Ortiz , linux-kernel@vger.kernel.org, Mika Westerberg Subject: [PATCH] mfd: lpc_ich: Assign subdevice ids automatically Date: Fri, 8 May 2015 14:31:30 +0300 Message-Id: <1431084690-94576-1-git-send-email-mika.westerberg@linux.intel.com> X-Mailer: git-send-email 2.1.4 Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org 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 -2 as a platform device id. This makes the platform device core to allocate new ids automatically. Signed-off-by: Mika Westerberg --- drivers/mfd/lpc_ich.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/drivers/mfd/lpc_ich.c b/drivers/mfd/lpc_ich.c index 12d960a60ec4..c211cf361680 100644 --- a/drivers/mfd/lpc_ich.c +++ b/drivers/mfd/lpc_ich.c @@ -934,7 +934,7 @@ 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], + ret = mfd_add_devices(&dev->dev, -2, &lpc_ich_cells[LPC_GPIO], 1, NULL, 0, NULL); gpio_done: @@ -1008,7 +1008,7 @@ 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], + ret = mfd_add_devices(&dev->dev, -2, &lpc_ich_cells[LPC_WDT], 1, NULL, 0, NULL); wdt_done: -- 2.1.4