Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S937225AbcKKTt4 (ORCPT ); Fri, 11 Nov 2016 14:49:56 -0500 Received: from skprod2.natinst.com ([130.164.80.23]:56100 "EHLO ni.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S932697AbcKKTtz (ORCPT ); Fri, 11 Nov 2016 14:49:55 -0500 Date: Fri, 11 Nov 2016 13:49:52 -0600 From: Julia Cartwright To: Zach Brown CC: Adrian Hunter , , , Subject: Re: [RFC 2/2] mmc: sdhci-pci: Use ACPI to get max frequency for Intel byt sdio host controller sub-vended by NI Message-ID: <20161111194952.GC16850@jcartwri.amer.corp.natinst.com> References: <1478635635-14953-1-git-send-email-zach.brown@ni.com> <1478635635-14953-3-git-send-email-zach.brown@ni.com> <20161109160827.GA6138@zach-desktop> MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Disposition: inline In-Reply-To: <20161109160827.GA6138@zach-desktop> User-Agent: Mutt/1.7.0 (2016-08-17) X-Proofpoint-Virus-Version: vendor=fsecure engine=2.50.10432:,, definitions=2016-11-11_09:,, signatures=0 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 spamscore=0 suspectscore=0 malwarescore=0 phishscore=0 adultscore=0 bulkscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.0.1-1609300000 definitions=main-1611110350 Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Length: 1673 Lines: 41 On Wed, Nov 09, 2016 at 10:08:29AM -0600, Zach Brown wrote: > On Wed, Nov 09, 2016 at 03:24:24PM +0200, Adrian Hunter wrote: > > On 08/11/16 22:07, Zach Brown wrote: > > > On NI 9037 boards the max SDIO frequency is limited by trace lengths > > > and other layout choices. The max SDIO frequency is stored in an ACPI > > > table, as MXFQ. > > > > > > The driver reads the ACPI entry MXFQ during sdio_probe_slot and sets the > > > f_max field of the host with it. > > > > > > Signed-off-by: Nathan Sullivan > > > Reviewed-by: Jaeden Amero > > > Reviewed-by: Josh Cartwright > > > Signed-off-by: Zach Brown [..] > > > static int ni_byt_sdio_probe_slot(struct sdhci_pci_slot *slot) > > > { > > > +#ifdef CONFIG_ACPI > > > + /* Get max freq from ACPI for NI hardware */ > > > + acpi_handle acpi_hdl; > > > + acpi_status status; > > > + struct acpi_buffer acpi_result = { > > > + ACPI_ALLOCATE_BUFFER, NULL }; > > > + union acpi_object *acpi_buffer; > > > + int max_freq; > > > + > > > + status = acpi_get_handle(ACPI_HANDLE(&slot->chip->pdev->dev), "MXFQ", > > > + &acpi_hdl); > > > > Is "MXFQ" an object that has already been deployed or are you inventing it > > now? In the latter case, did you consider device properties as an alternative? > > > "MXFQ" is an object that we have already deployed on some of our devices. Unfortunately, the whole ACPI device properties table discussion was just starting at the point where we were putting the firmware together for these devices :(. Had we engineered the firmware today, we would certainly have looked at using it. Thanks, Julia