From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1758550AbcLAH6A (ORCPT ); Thu, 1 Dec 2016 02:58:00 -0500 Received: from mga09.intel.com ([134.134.136.24]:42779 "EHLO mga09.intel.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751414AbcLAH5z (ORCPT ); Thu, 1 Dec 2016 02:57:55 -0500 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.33,723,1477983600"; d="scan'208";a="12031064" Subject: Re: [PATCH v3 1/2] mmc: sdhci-pci: Add PCI ID for Intel byt sdio host controller sub-vended by NI To: Zach Brown , ulf.hansson@linaro.org References: <1480360599-13295-1-git-send-email-zach.brown@ni.com> <1480360599-13295-2-git-send-email-zach.brown@ni.com> Cc: linux-mmc@vger.kernel.org, linux-kernel@vger.kernel.org From: Adrian Hunter Organization: Intel Finland Oy, Registered Address: PL 281, 00181 Helsinki, Business Identity Code: 0357606 - 4, Domiciled in Helsinki Message-ID: <588b3657-a098-b7fe-ed95-e98b243a4bec@intel.com> Date: Thu, 1 Dec 2016 09:52:02 +0200 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:45.0) Gecko/20100101 Thunderbird/45.3.0 MIME-Version: 1.0 In-Reply-To: <1480360599-13295-2-git-send-email-zach.brown@ni.com> Content-Type: text/plain; charset=windows-1252 Content-Transfer-Encoding: 7bit Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On 28/11/16 21:16, Zach Brown wrote: > Add PCI ID for Intel byt sdio host controller sub-vended by NI. > > The controller has different behavior because of the board layout NI > puts it on. > > Signed-off-by: Zach Brown Acked-by: Adrian Hunter > --- > drivers/mmc/host/sdhci-pci-core.c | 24 ++++++++++++++++++++++++ > 1 file changed, 24 insertions(+) > > diff --git a/drivers/mmc/host/sdhci-pci-core.c b/drivers/mmc/host/sdhci-pci-core.c > index 1d9e00a..9741505 100644 > --- a/drivers/mmc/host/sdhci-pci-core.c > +++ b/drivers/mmc/host/sdhci-pci-core.c > @@ -375,6 +375,13 @@ static int byt_emmc_probe_slot(struct sdhci_pci_slot *slot) > return 0; > } > > +static int ni_byt_sdio_probe_slot(struct sdhci_pci_slot *slot) > +{ > + slot->host->mmc->caps |= MMC_CAP_POWER_OFF_CARD | MMC_CAP_NONREMOVABLE | > + MMC_CAP_WAIT_WHILE_BUSY; > + return 0; > +} > + > static int byt_sdio_probe_slot(struct sdhci_pci_slot *slot) > { > slot->host->mmc->caps |= MMC_CAP_POWER_OFF_CARD | MMC_CAP_NONREMOVABLE | > @@ -447,6 +454,15 @@ static const struct sdhci_pci_fixes sdhci_intel_byt_emmc = { > .ops = &sdhci_intel_byt_ops, > }; > > +static const struct sdhci_pci_fixes sdhci_ni_byt_sdio = { > + .quirks = SDHCI_QUIRK_NO_ENDATTR_IN_NOPDESC, > + .quirks2 = SDHCI_QUIRK2_HOST_OFF_CARD_ON | > + SDHCI_QUIRK2_PRESET_VALUE_BROKEN, > + .allow_runtime_pm = true, > + .probe_slot = ni_byt_sdio_probe_slot, > + .ops = &sdhci_intel_byt_ops, > +}; > + > static const struct sdhci_pci_fixes sdhci_intel_byt_sdio = { > .quirks = SDHCI_QUIRK_NO_ENDATTR_IN_NOPDESC, > .quirks2 = SDHCI_QUIRK2_HOST_OFF_CARD_ON | > @@ -1079,6 +1095,14 @@ static const struct pci_device_id pci_ids[] = { > { > .vendor = PCI_VENDOR_ID_INTEL, > .device = PCI_DEVICE_ID_INTEL_BYT_SDIO, > + .subvendor = PCI_VENDOR_ID_NI, > + .subdevice = 0x7884, > + .driver_data = (kernel_ulong_t)&sdhci_ni_byt_sdio, > + }, > + > + { > + .vendor = PCI_VENDOR_ID_INTEL, > + .device = PCI_DEVICE_ID_INTEL_BYT_SDIO, > .subvendor = PCI_ANY_ID, > .subdevice = PCI_ANY_ID, > .driver_data = (kernel_ulong_t)&sdhci_intel_byt_sdio, >