From patchwork Sun Jan 3 13:53:55 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Arnd Bergmann X-Patchwork-Id: 356147 Delivered-To: patch@linaro.org Received: by 2002:a02:85a7:0:0:0:0:0 with SMTP id d36csp14268074jai; Sun, 3 Jan 2021 05:56:06 -0800 (PST) X-Google-Smtp-Source: ABdhPJwkswSfuR6jw1WY3mh3zjjvxYgsQezpMwRshAWJ+gTqcyVGHULL6tXXClK59aUlkskbhPFm X-Received: by 2002:a05:6402:1692:: with SMTP id a18mr65256693edv.321.1609682166704; Sun, 03 Jan 2021 05:56:06 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1609682166; cv=none; d=google.com; s=arc-20160816; b=mU3qJ+so+JvthBmNu/knAXEMJP8dKUaJ8cFiLijPMaTLppvMUW5derixHuvacbHmWt Wa8pmCZb89OrARUUgZoldRweMZkcMZ/tl5wkdmorbqJrcSYBMntIVdYD5aSFHrzZC4lE 536ImK1Ryn/fW4omFia/vY7dSjTi6uewJLezJ1KVNCQFb/6T1mrx3pJAD8IIM76ForWu e/gblAGsqicYei4IwdEXwNpICOr/8tikHvQwM7M0KjzxqLpSPm8WBW6dneFEITQLG/N7 OBLEK8AvdSU+OjZ/hXTZfeil3haFZTLL0w4yO0NuGK3yDoqFVS/5d7l5WNo36Can+Fhr VOHA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:content-transfer-encoding:mime-version :message-id:date:subject:cc:to:from:dkim-signature; bh=FItBBu1ThPVngtlyGgKFDasH9tNKRzpsfI5JdwrvIr0=; b=lK4xFfpxxHxJc7y78fopoBOTDJWrEz155hf6DI+jbn1j8p3y81jwkyx0apWyYvC0iu N4gt0VsB986r/HP1ZHSgskFE6ptTFl/nuFxDccObIjebtcJ7Y0C73zgf4KarhunxCrTR LuKrtjkZP5/GCLkM85c03qJ7T1HIhjRIvWu4h7cHWdOGxS2WFNakxU+/so4SbCoQ+gY/ 4SDiGXN4JbbPkk1PJ/I506iH30nqsanDsHAybsg8iat7jQkff0NnzGRxszinOCx0Li2O idK/g/gT29507hFfby9PDBCjp0lx/ZFOwbP8Y1UoCRrJ3HuLpzvp/RlCd61l+/Jj+IdP 3krA== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@kernel.org header.s=k20201202 header.b=rjJK6dwW; spf=pass (google.com: domain of linux-input-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-input-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=kernel.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [23.128.96.18]) by mx.google.com with ESMTP id i8si28798468edq.125.2021.01.03.05.56.06; Sun, 03 Jan 2021 05:56:06 -0800 (PST) Received-SPF: pass (google.com: domain of linux-input-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) client-ip=23.128.96.18; Authentication-Results: mx.google.com; dkim=pass header.i=@kernel.org header.s=k20201202 header.b=rjJK6dwW; spf=pass (google.com: domain of linux-input-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-input-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1726864AbhACNzE (ORCPT + 1 other); Sun, 3 Jan 2021 08:55:04 -0500 Received: from mail.kernel.org ([198.145.29.99]:34648 "EHLO mail.kernel.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1726691AbhACNzD (ORCPT ); Sun, 3 Jan 2021 08:55:03 -0500 Received: by mail.kernel.org (Postfix) with ESMTPSA id ED00F2080D; Sun, 3 Jan 2021 13:54:20 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1609682062; bh=rFgbjPwhakFpYCmzEMub3NjARwNhgcgryoiBToag7ww=; h=From:To:Cc:Subject:Date:From; b=rjJK6dwWUWcUeNcKCIf2NTpwpCIj1fUEPiQ5HgyGX3zi09jxTrjfz6A88X545iNez t+e5YtMKYo7Ekel0slRURVYpdkesQ8z+vsL+P1YaqspKLHrdEHbOiVk0RJctwVED+N FQfSU9bj751jy0Vk8gwzm2lxZao3N2AkVYY0gC/JCvfRO4mOwWFrcumwSe3HBAGlGa 0hAaWaj3ZWkalZAYIgVYPkT1+kEntB3ANC1y2J8Pgp2Wxgt7YCbg1bFflea9zYtBeC Vnhk/a4UVwz8NBxWM74pebruiupTNpbBwTO7EM6s2WSCxqPcVsqGGpRlRwYmfnZhRO UpNsLVUfVcGsg== From: Arnd Bergmann To: Nehal Shah , Sandeep Singh , Jiri Kosina , Benjamin Tissoires Cc: Arnd Bergmann , linux-input@vger.kernel.org, linux-kernel@vger.kernel.org Subject: [PATCH] HID: sfh: fix address space confusion Date: Sun, 3 Jan 2021 14:53:55 +0100 Message-Id: <20210103135418.3645344-1-arnd@kernel.org> X-Mailer: git-send-email 2.29.2 MIME-Version: 1.0 Precedence: bulk List-ID: X-Mailing-List: linux-input@vger.kernel.org From: Arnd Bergmann The new driver uses a phys_addr_t to store a DMA address, which does not work when the two are different size: drivers/hid/amd-sfh-hid/amd_sfh_client.c:157:11: error: incompatible pointer types passing 'phys_addr_t *' (aka 'unsigned int *') to parameter of type 'dma_addr_t *' (aka 'unsigned long long *') [-Werror,-Wincompatible-pointer-types] &cl_data->sensor_phys_addr[i], ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ include/linux/dma-mapping.h:393:15: note: passing argument to parameter 'dma_handle' here dma_addr_t *dma_handle, gfp_t gfp) ^ Change both the type and the variable name to dma_addr for consistency. Fixes: 4b2c53d93a4b ("SFH:Transport Driver to add support of AMD Sensor Fusion Hub (SFH)") Signed-off-by: Arnd Bergmann --- drivers/hid/amd-sfh-hid/amd_sfh_client.c | 8 ++++---- drivers/hid/amd-sfh-hid/amd_sfh_hid.h | 2 +- drivers/hid/amd-sfh-hid/amd_sfh_pcie.c | 2 +- drivers/hid/amd-sfh-hid/amd_sfh_pcie.h | 2 +- 4 files changed, 7 insertions(+), 7 deletions(-) -- 2.29.2 diff --git a/drivers/hid/amd-sfh-hid/amd_sfh_client.c b/drivers/hid/amd-sfh-hid/amd_sfh_client.c index 3d1ccac5d99a..2ab38b715347 100644 --- a/drivers/hid/amd-sfh-hid/amd_sfh_client.c +++ b/drivers/hid/amd-sfh-hid/amd_sfh_client.c @@ -154,7 +154,7 @@ int amd_sfh_hid_client_init(struct amd_mp2_dev *privdata) for (i = 0; i < cl_data->num_hid_devices; i++) { cl_data->sensor_virt_addr[i] = dma_alloc_coherent(dev, sizeof(int) * 8, - &cl_data->sensor_phys_addr[i], + &cl_data->sensor_dma_addr[i], GFP_KERNEL); cl_data->sensor_sts[i] = 0; cl_data->sensor_requested_cnt[i] = 0; @@ -187,7 +187,7 @@ int amd_sfh_hid_client_init(struct amd_mp2_dev *privdata) } info.period = msecs_to_jiffies(AMD_SFH_IDLE_LOOP); info.sensor_idx = cl_idx; - info.phys_address = cl_data->sensor_phys_addr[i]; + info.dma_address = cl_data->sensor_dma_addr[i]; cl_data->report_descr[i] = kzalloc(cl_data->report_descr_sz[i], GFP_KERNEL); if (!cl_data->report_descr[i]) { @@ -212,7 +212,7 @@ int amd_sfh_hid_client_init(struct amd_mp2_dev *privdata) if (cl_data->sensor_virt_addr[i]) { dma_free_coherent(&privdata->pdev->dev, 8 * sizeof(int), cl_data->sensor_virt_addr[i], - cl_data->sensor_phys_addr[i]); + cl_data->sensor_dma_addr[i]); } kfree(cl_data->feature_report[i]); kfree(cl_data->input_report[i]); @@ -238,7 +238,7 @@ int amd_sfh_hid_client_deinit(struct amd_mp2_dev *privdata) if (cl_data->sensor_virt_addr[i]) { dma_free_coherent(&privdata->pdev->dev, 8 * sizeof(int), cl_data->sensor_virt_addr[i], - cl_data->sensor_phys_addr[i]); + cl_data->sensor_dma_addr[i]); } } kfree(cl_data); diff --git a/drivers/hid/amd-sfh-hid/amd_sfh_hid.h b/drivers/hid/amd-sfh-hid/amd_sfh_hid.h index 6be0783d885c..d7eac1728e31 100644 --- a/drivers/hid/amd-sfh-hid/amd_sfh_hid.h +++ b/drivers/hid/amd-sfh-hid/amd_sfh_hid.h @@ -27,7 +27,7 @@ struct amdtp_cl_data { int hid_descr_size[MAX_HID_DEVICES]; phys_addr_t phys_addr_base; u32 *sensor_virt_addr[MAX_HID_DEVICES]; - phys_addr_t sensor_phys_addr[MAX_HID_DEVICES]; + dma_addr_t sensor_dma_addr[MAX_HID_DEVICES]; u32 sensor_sts[MAX_HID_DEVICES]; u32 sensor_requested_cnt[MAX_HID_DEVICES]; u8 report_type[MAX_HID_DEVICES]; diff --git a/drivers/hid/amd-sfh-hid/amd_sfh_pcie.c b/drivers/hid/amd-sfh-hid/amd_sfh_pcie.c index a51c7b76283b..dbac16641662 100644 --- a/drivers/hid/amd-sfh-hid/amd_sfh_pcie.c +++ b/drivers/hid/amd-sfh-hid/amd_sfh_pcie.c @@ -41,7 +41,7 @@ void amd_start_sensor(struct amd_mp2_dev *privdata, struct amd_mp2_sensor_info i cmd_param.s.buf_layout = 1; cmd_param.s.buf_length = 16; - writeq(info.phys_address, privdata->mmio + AMD_C2P_MSG2); + writeq(info.dma_address, privdata->mmio + AMD_C2P_MSG2); writel(cmd_param.ul, privdata->mmio + AMD_C2P_MSG1); writel(cmd_base.ul, privdata->mmio + AMD_C2P_MSG0); } diff --git a/drivers/hid/amd-sfh-hid/amd_sfh_pcie.h b/drivers/hid/amd-sfh-hid/amd_sfh_pcie.h index e8be94f935b7..8f8d19b2cfe5 100644 --- a/drivers/hid/amd-sfh-hid/amd_sfh_pcie.h +++ b/drivers/hid/amd-sfh-hid/amd_sfh_pcie.h @@ -67,7 +67,7 @@ struct amd_mp2_dev { struct amd_mp2_sensor_info { u8 sensor_idx; u32 period; - phys_addr_t phys_address; + dma_addr_t dma_address; }; void amd_start_sensor(struct amd_mp2_dev *privdata, struct amd_mp2_sensor_info info);