Skip to content

Commit

Permalink
x86, intel-mid: sfi_handle_*_dev() should check for pdata error code
Browse files Browse the repository at this point in the history
When Intel MID finds a match between SFI table from FW and registered
SFI devices, it will always register a device regardless the platform
code was successful or not.

This patch adds an extra option for platform code to return error code
and abort device registration on SFI table parsing.

This patch does not contain any functional changes for current intel
mid platform code.

Signed-off-by: David Cohen <david.a.cohen@linux.intel.com>
Link: http://lkml.kernel.org/r/1389913624-9149-2-git-send-email-david.a.cohen@linux.intel.com
Signed-off-by: H. Peter Anvin <hpa@linux.intel.com>
  • Loading branch information
David Cohen authored and H. Peter Anvin committed Jan 16, 2014
1 parent 4cb9b00 commit acb20d7
Showing 1 changed file with 6 additions and 0 deletions.
6 changes: 6 additions & 0 deletions arch/x86/platform/intel-mid/sfi.c
Original file line number Diff line number Diff line change
Expand Up @@ -337,6 +337,8 @@ static void __init sfi_handle_ipc_dev(struct sfi_device_table_entry *pentry,
pr_debug("IPC bus, name = %16.16s, irq = 0x%2x\n",
pentry->name, pentry->irq);
pdata = intel_mid_sfi_get_pdata(dev, pentry);
if (IS_ERR(pdata))
return;

pdev = platform_device_alloc(pentry->name, 0);
if (pdev == NULL) {
Expand Down Expand Up @@ -370,6 +372,8 @@ static void __init sfi_handle_spi_dev(struct sfi_device_table_entry *pentry,
spi_info.chip_select);

pdata = intel_mid_sfi_get_pdata(dev, &spi_info);
if (IS_ERR(pdata))
return;

spi_info.platform_data = pdata;
if (dev->delay)
Expand All @@ -395,6 +399,8 @@ static void __init sfi_handle_i2c_dev(struct sfi_device_table_entry *pentry,
i2c_info.addr);
pdata = intel_mid_sfi_get_pdata(dev, &i2c_info);
i2c_info.platform_data = pdata;
if (IS_ERR(pdata))
return;

if (dev->delay)
intel_scu_i2c_device_register(pentry->host_num, &i2c_info);
Expand Down

0 comments on commit acb20d7

Please sign in to comment.