Received: by 2002:a25:4158:0:0:0:0:0 with SMTP id o85csp4145769yba; Tue, 7 May 2019 12:55:35 -0700 (PDT) X-Google-Smtp-Source: APXvYqyTi3p6pNAdo/Q93E1J0VUJpTrnsG6aZqo1KeGzxPhImi/KfaF/R9Wqy4MwX0nAATXFG5B5 X-Received: by 2002:aa7:92c4:: with SMTP id k4mr44904156pfa.183.1557258935021; Tue, 07 May 2019 12:55:35 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1557258935; cv=none; d=google.com; s=arc-20160816; b=wEhni/K/QXi6pU5UsCMiCfHMovWZ5avpa/a2s+uP4tIkZvwQfIdDdM9MHNu1S6tEyv +NTdNMH3cAN7o1k0oZr3h41+cPlcVoDG4c4wUpb0DcxLq7UAe9dqS0tW/r2dcCgiXL7l 5flbpy2/GU7Ojb8st/N8RwJ07Dio242LGyAqphthPHVCKbTNkXCHIsvTmBr/8Axzk83O 4BFITQ9FTNxniWTF/JM5j0U16CKMwoqSKIS+D+0yuY/9jgJ5rbmuQPGd2O0JVxfD0bnu NtDsf2TG0P5I9rNLy5suYSyYJ/fBuFv87WaP9XUe1u9b/0Lwc+51aONlsXHOrz3f8FsT gsAw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:message-id:date:subject:cc:to:from :dkim-signature; bh=Cj+ea2ryBJNh6qXEQ4f5WItA9NMUT7wCyvk5yPZ6xUA=; b=Yrlouh4SYTJHVWQrpmrf+HYXral/bddrVijynPg//KChsOerbqvtksdojJ9giFBgnR cUIy6Jg4sOstHv0eXjPRpaIsKHu1wDnwqhEu61ibdcMm52IKgWEFdE+91CEz5eSNLT82 oJf6eAU/IW26NFNmjPxTckSqJfq5Glx61sQGhQmRrrHCr6mO4pt53WHFH5fNE3q3LkK+ sjSNUv/aqEwf9h50Pm8S/qk9+D48eFs3g15SiysfCdgrvhMwB/BVPquCBOU1PsjMAmST Rix0q7JeuNo3RcQCffFF1hnNmrU1UMhOFjVFqKJDS3F8RpXjf8wfyH0D27Famd17BNVS UP4Q== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@gmail.com header.s=20161025 header.b="hxl/JVOf"; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=QUARANTINE dis=NONE) header.from=gmail.com Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id y29si20910310pgk.120.2019.05.07.12.55.19; Tue, 07 May 2019 12:55:35 -0700 (PDT) Received-SPF: pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) client-ip=209.132.180.67; Authentication-Results: mx.google.com; dkim=pass header.i=@gmail.com header.s=20161025 header.b="hxl/JVOf"; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=QUARANTINE dis=NONE) header.from=gmail.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1726545AbfEGTx7 (ORCPT + 99 others); Tue, 7 May 2019 15:53:59 -0400 Received: from mail-pg1-f193.google.com ([209.85.215.193]:39057 "EHLO mail-pg1-f193.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1726091AbfEGTx6 (ORCPT ); Tue, 7 May 2019 15:53:58 -0400 Received: by mail-pg1-f193.google.com with SMTP id w22so7524286pgi.6; Tue, 07 May 2019 12:53:57 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:to:cc:subject:date:message-id; bh=Cj+ea2ryBJNh6qXEQ4f5WItA9NMUT7wCyvk5yPZ6xUA=; b=hxl/JVOfbduSun1MHcThyx5YHh0l4V/VxmVCB0Eb6/e+P5FgJINp7Sd0VHSbt8uEy/ 1i5vH1wFXUOJ0OFZz25Ztd1ce2FT3fU3wFHhjVACD5TUf+jBebsN32sx71OvF9yF2T14 7+xlw4ZDTxTuh1OQAeCGmW1pbeDDdp2GfV854ndaWTcSo2r0+xIiHTJezTYt73etHzhK j35jsrv0DBmwHt0YwOBwzq2rNeQM+ad4RyFRuiu87L9txCJ4EofshXlQkOaBrBqIVJjP VZfyx8AwIrOo8K/jkyF1eX1iW5roWSREG3I91Ph6IT95GpS6Ul1fSAoVoPWDuRl5AA3C mIXA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id; bh=Cj+ea2ryBJNh6qXEQ4f5WItA9NMUT7wCyvk5yPZ6xUA=; b=GbCg7NaviqtBodwnq2bhQeKFCpQ/+zaQIR9w3QfxsM2bOHUw2PUsxFwMPNPqljjywv pn58Cf98QMatNqk67wyvIJVZRLL6qcOg788yJjvhT2nfGPTiZT5Cs52wN8fPvKkbBMXH z7UF3FV7ihP9RNp3F6eMG4JvFu8S2uzAxOU/JGClanM5Pxn9i9v7xslRtBRXR/a5vB46 c8xFCf0zIz9W8Kuu95G7LeLzlQZOjc6Qhv05wXMzVpkQ7MSaJNlIKoRTnDYbz8hNR0CU ydX2TAzMacRDkS0NeiN4gbfYyCI+pQN+ntmxyMkyRaEtTWMJt1OUZ8xTEp9qOgqF0/OD u1tw== X-Gm-Message-State: APjAAAVf13YUGkmjI/TmQ21dTVn3i4yc1R51y5wWCJDRMkMpqebDyzSI UE/Yy8x2V1u5IKKzkIR/nWU= X-Received: by 2002:a63:8a4a:: with SMTP id y71mr42195505pgd.270.1557258837219; Tue, 07 May 2019 12:53:57 -0700 (PDT) Received: from localhost.localdomain ([203.192.210.149]) by smtp.gmail.com with ESMTPSA id i15sm19756130pfr.8.2019.05.07.12.53.50 (version=TLS1_2 cipher=ECDHE-RSA-AES128-SHA bits=128/128); Tue, 07 May 2019 12:53:56 -0700 (PDT) From: Kamlesh Gurudasani To: Ulf Hansson , linux-mmc@vger.kernel.org, linux-kernel@vger.kernel.org Cc: Mike Lockwood , Christoph Hellwig , "Gustavo A . R . Silva" , Kamlesh Gurudasani Subject: [PATCH] mmc: android-goldfish: Drop pointer to mmc_host from goldfish_mmc_host Date: Wed, 8 May 2019 01:22:29 +0530 Message-Id: <1557258749-29009-1-git-send-email-kamlesh.gurudasani@gmail.com> X-Mailer: git-send-email 2.7.4 Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org The driver for android-goldfish uses a pointer to get from the private goldfish_mmc_host structure to the generic mmc_host structure. However the latter is always immediately preceding the former in memory, so compute its address with a subtraction (which is cheaper than a dereference) and drop the superfluous pointer. No functional change intended. Signed-off-by: Kamlesh Gurudasani --- drivers/mmc/host/android-goldfish.c | 31 +++++++++++++++---------------- 1 file changed, 15 insertions(+), 16 deletions(-) diff --git a/drivers/mmc/host/android-goldfish.c b/drivers/mmc/host/android-goldfish.c index 61e4e2a..f6334c2 100644 --- a/drivers/mmc/host/android-goldfish.c +++ b/drivers/mmc/host/android-goldfish.c @@ -113,7 +113,6 @@ struct goldfish_mmc_host { struct mmc_request *mrq; struct mmc_command *cmd; struct mmc_data *data; - struct mmc_host *mmc; struct device *dev; unsigned char id; /* 16xx chips have 2 MMC blocks */ void *virt_base; @@ -175,7 +174,7 @@ goldfish_mmc_start_command(struct goldfish_mmc_host *host, struct mmc_command *c resptype = 3; break; default: - dev_err(mmc_dev(host->mmc), + dev_err(mmc_dev(mmc_from_priv(host)), "Invalid response type: %04x\n", mmc_resp_type(cmd)); break; } @@ -221,8 +220,8 @@ static void goldfish_mmc_xfer_done(struct goldfish_mmc_host *host, data->sg->length); } host->data->bytes_xfered += data->sg->length; - dma_unmap_sg(mmc_dev(host->mmc), data->sg, host->sg_len, - dma_data_dir); + dma_unmap_sg(mmc_dev(mmc_from_priv(host)), data->sg, + host->sg_len, dma_data_dir); } host->data = NULL; @@ -236,7 +235,7 @@ static void goldfish_mmc_xfer_done(struct goldfish_mmc_host *host, if (!data->stop) { host->mrq = NULL; - mmc_request_done(host->mmc, data->mrq); + mmc_request_done(mmc_from_priv(host), data->mrq); return; } @@ -278,7 +277,7 @@ static void goldfish_mmc_cmd_done(struct goldfish_mmc_host *host, if (host->data == NULL || cmd->error) { host->mrq = NULL; - mmc_request_done(host->mmc, cmd->mrq); + mmc_request_done(mmc_from_priv(host), cmd->mrq); } } @@ -313,7 +312,7 @@ static irqreturn_t goldfish_mmc_irq(int irq, void *dev_id) struct mmc_request *mrq = host->mrq; mrq->cmd->error = -ETIMEDOUT; host->mrq = NULL; - mmc_request_done(host->mmc, mrq); + mmc_request_done(mmc_from_priv(host), mrq); } if (end_command) @@ -339,12 +338,13 @@ static irqreturn_t goldfish_mmc_irq(int irq, void *dev_id) u32 state = GOLDFISH_MMC_READ(host, MMC_STATE); pr_info("%s: Card detect now %d\n", __func__, (state & MMC_STATE_INSERTED)); - mmc_detect_change(host->mmc, 0); + mmc_detect_change(mmc_from_priv(host), 0); } if (!end_command && !end_transfer && !state_changed && !cmd_timeout) { status = GOLDFISH_MMC_READ(host, MMC_INT_STATUS); - dev_info(mmc_dev(host->mmc),"spurious irq 0x%04x\n", status); + dev_info(mmc_dev(mmc_from_priv(host)), "spurious irq 0x%04x\n", + status); if (status != 0) { GOLDFISH_MMC_WRITE(host, MMC_INT_STATUS, status); GOLDFISH_MMC_WRITE(host, MMC_INT_ENABLE, 0); @@ -383,7 +383,7 @@ static void goldfish_mmc_prepare_data(struct goldfish_mmc_host *host, dma_data_dir = mmc_get_dma_dir(data); - host->sg_len = dma_map_sg(mmc_dev(host->mmc), data->sg, + host->sg_len = dma_map_sg(mmc_dev(mmc_from_priv(host)), data->sg, sg_len, dma_data_dir); host->dma_done = 0; host->dma_in_use = 1; @@ -461,7 +461,6 @@ static int goldfish_mmc_probe(struct platform_device *pdev) } host = mmc_priv(mmc); - host->mmc = mmc; pr_err("mmc: Mapping %lX to %lX\n", (long)res->start, (long)res->end); host->reg_base = ioremap(res->start, resource_size(res)); @@ -508,8 +507,7 @@ static int goldfish_mmc_probe(struct platform_device *pdev) ret = device_create_file(&pdev->dev, &dev_attr_cover_switch); if (ret) - dev_warn(mmc_dev(host->mmc), - "Unable to create sysfs attributes\n"); + dev_warn(mmc_dev(mmc), "Unable to create sysfs attributes\n"); GOLDFISH_MMC_WRITE(host, MMC_SET_BUFFER, host->phys_base); GOLDFISH_MMC_WRITE(host, MMC_INT_ENABLE, @@ -525,7 +523,7 @@ static int goldfish_mmc_probe(struct platform_device *pdev) dma_alloc_failed: iounmap(host->reg_base); ioremap_failed: - mmc_free_host(host->mmc); + mmc_free_host(mmc); err_alloc_host_failed: return ret; } @@ -533,14 +531,15 @@ static int goldfish_mmc_probe(struct platform_device *pdev) static int goldfish_mmc_remove(struct platform_device *pdev) { struct goldfish_mmc_host *host = platform_get_drvdata(pdev); + struct mmc_host *mmc = mmc_from_priv(host); BUG_ON(host == NULL); - mmc_remove_host(host->mmc); + mmc_remove_host(mmc); free_irq(host->irq, host); dma_free_coherent(&pdev->dev, BUFFER_SIZE, host->virt_base, host->phys_base); iounmap(host->reg_base); - mmc_free_host(host->mmc); + mmc_free_host(mmc); return 0; } -- 2.7.4