Loading arch/arm64/boot/dts/qcom/sm8150-v2-camera.dtsi +7 −7 Original line number Diff line number Diff line /* * Copyright (c) 2018, The Linux Foundation. All rights reserved. * Copyright (c) 2018-2019, The Linux Foundation. All rights reserved. * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License version 2 and Loading Loading @@ -235,10 +235,10 @@ }; iova-mem-region-shared { /* Shared region is 100MB long */ /* Shared region is 150MB long */ iova-region-name = "shared"; iova-region-start = <0x7400000>; iova-region-len = <0x6400000>; iova-region-len = <0x9600000>; iova-region-id = <0x1>; status = "ok"; }; Loading @@ -246,7 +246,7 @@ iova-mem-region-secondary-heap { /* Secondary heap region is 1MB long */ iova-region-name = "secheap"; iova-region-start = <0xd800000>; iova-region-start = <0x10A00000>; iova-region-len = <0x100000>; iova-region-id = <0x4>; status = "ok"; Loading @@ -255,8 +255,8 @@ iova-mem-region-io { /* IO region is approximately 3.3 GB */ iova-region-name = "io"; iova-region-start = <0xda00000>; iova-region-len = <0xd2500000>; iova-region-start = <0x10C00000>; iova-region-len = <0xCF300000>; iova-region-id = <0x3>; status = "ok"; }; Loading @@ -264,7 +264,7 @@ iova-mem-qdss-region { /* QDSS region is appropriate 1MB */ iova-region-name = "qdss"; iova-region-start = <0xd900000>; iova-region-start = <0x10B00000>; iova-region-len = <0x100000>; iova-region-id = <0x5>; qdss-phy-addr = <0x16790000>; Loading drivers/media/platform/msm/camera/cam_core/cam_context_utils.c +1 −0 Original line number Diff line number Diff line Loading @@ -262,6 +262,7 @@ int32_t cam_context_release_dev_to_hw(struct cam_context *ctx, ctx->session_hdl = -1; ctx->dev_hdl = -1; ctx->link_hdl = -1; ctx->last_flush_req = 0; return 0; } Loading drivers/media/platform/msm/camera/cam_icp/fw_inc/hfi_intf.h +3 −1 Original line number Diff line number Diff line /* Copyright (c) 2017-2018, The Linux Foundation. All rights reserved. /* Copyright (c) 2017-2019, The Linux Foundation. All rights reserved. * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License version 2 and Loading Loading @@ -38,6 +38,7 @@ struct hfi_mem { * @sfr_buf: buffer for subsystem failure reason[SFR] * @sec_heap: secondary heap hfi memory for firmware * @qdss: qdss mapped memory for fw * @io_mem: io memory info * @icp_base: icp base address */ struct hfi_mem_info { Loading @@ -49,6 +50,7 @@ struct hfi_mem_info { struct hfi_mem sec_heap; struct hfi_mem shmem; struct hfi_mem qdss; struct hfi_mem io_mem; void __iomem *icp_base; }; Loading drivers/media/platform/msm/camera/cam_icp/fw_inc/hfi_reg.h +5 −2 Original line number Diff line number Diff line /* Copyright (c) 2018, The Linux Foundation. All rights reserved. /* Copyright (c) 2018-2019, The Linux Foundation. All rights reserved. * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License version 2 and Loading Loading @@ -42,8 +42,11 @@ #define HFI_REG_UNCACHED_HEAP_PTR 0x5C #define HFI_REG_UNCACHED_HEAP_SIZE 0x60 #define HFI_REG_QDSS_IOVA 0x6C #define HFI_REG_QDSS_IOVA_SIZE 0x70 #define HFI_REG_SFR_PTR 0x68 #define HFI_REG_QDSS_IOVA_SIZE 0x70 #define HFI_REG_IO_REGION_IOVA 0x74 #define HFI_REG_IO_REGION_SIZE 0x78 /* end of ICP CSR registers */ /* flags for ICP CSR registers */ Loading drivers/media/platform/msm/camera/cam_icp/hfi.c +9 −1 Original line number Diff line number Diff line /* Copyright (c) 2017-2018, The Linux Foundation. All rights reserved. /* Copyright (c) 2017-2019, The Linux Foundation. All rights reserved. * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License version 2 and Loading Loading @@ -632,6 +632,10 @@ int cam_hfi_resume(struct hfi_mem_info *hfi_mem, icp_base + HFI_REG_QDSS_IOVA); cam_io_w_mb((uint32_t)hfi_mem->qdss.len, icp_base + HFI_REG_QDSS_IOVA_SIZE); cam_io_w_mb((uint32_t)hfi_mem->io_mem.iova, icp_base + HFI_REG_IO_REGION_IOVA); cam_io_w_mb((uint32_t)hfi_mem->io_mem.len, icp_base + HFI_REG_IO_REGION_SIZE); return rc; } Loading Loading @@ -820,6 +824,10 @@ int cam_hfi_init(uint8_t event_driven_mode, struct hfi_mem_info *hfi_mem, icp_base + HFI_REG_QDSS_IOVA); cam_io_w_mb((uint32_t)hfi_mem->qdss.len, icp_base + HFI_REG_QDSS_IOVA_SIZE); cam_io_w_mb((uint32_t)hfi_mem->io_mem.iova, icp_base + HFI_REG_IO_REGION_IOVA); cam_io_w_mb((uint32_t)hfi_mem->io_mem.len, icp_base + HFI_REG_IO_REGION_SIZE); hw_version = cam_io_r(icp_base + HFI_REG_A5_HW_VERSION); Loading Loading
arch/arm64/boot/dts/qcom/sm8150-v2-camera.dtsi +7 −7 Original line number Diff line number Diff line /* * Copyright (c) 2018, The Linux Foundation. All rights reserved. * Copyright (c) 2018-2019, The Linux Foundation. All rights reserved. * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License version 2 and Loading Loading @@ -235,10 +235,10 @@ }; iova-mem-region-shared { /* Shared region is 100MB long */ /* Shared region is 150MB long */ iova-region-name = "shared"; iova-region-start = <0x7400000>; iova-region-len = <0x6400000>; iova-region-len = <0x9600000>; iova-region-id = <0x1>; status = "ok"; }; Loading @@ -246,7 +246,7 @@ iova-mem-region-secondary-heap { /* Secondary heap region is 1MB long */ iova-region-name = "secheap"; iova-region-start = <0xd800000>; iova-region-start = <0x10A00000>; iova-region-len = <0x100000>; iova-region-id = <0x4>; status = "ok"; Loading @@ -255,8 +255,8 @@ iova-mem-region-io { /* IO region is approximately 3.3 GB */ iova-region-name = "io"; iova-region-start = <0xda00000>; iova-region-len = <0xd2500000>; iova-region-start = <0x10C00000>; iova-region-len = <0xCF300000>; iova-region-id = <0x3>; status = "ok"; }; Loading @@ -264,7 +264,7 @@ iova-mem-qdss-region { /* QDSS region is appropriate 1MB */ iova-region-name = "qdss"; iova-region-start = <0xd900000>; iova-region-start = <0x10B00000>; iova-region-len = <0x100000>; iova-region-id = <0x5>; qdss-phy-addr = <0x16790000>; Loading
drivers/media/platform/msm/camera/cam_core/cam_context_utils.c +1 −0 Original line number Diff line number Diff line Loading @@ -262,6 +262,7 @@ int32_t cam_context_release_dev_to_hw(struct cam_context *ctx, ctx->session_hdl = -1; ctx->dev_hdl = -1; ctx->link_hdl = -1; ctx->last_flush_req = 0; return 0; } Loading
drivers/media/platform/msm/camera/cam_icp/fw_inc/hfi_intf.h +3 −1 Original line number Diff line number Diff line /* Copyright (c) 2017-2018, The Linux Foundation. All rights reserved. /* Copyright (c) 2017-2019, The Linux Foundation. All rights reserved. * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License version 2 and Loading Loading @@ -38,6 +38,7 @@ struct hfi_mem { * @sfr_buf: buffer for subsystem failure reason[SFR] * @sec_heap: secondary heap hfi memory for firmware * @qdss: qdss mapped memory for fw * @io_mem: io memory info * @icp_base: icp base address */ struct hfi_mem_info { Loading @@ -49,6 +50,7 @@ struct hfi_mem_info { struct hfi_mem sec_heap; struct hfi_mem shmem; struct hfi_mem qdss; struct hfi_mem io_mem; void __iomem *icp_base; }; Loading
drivers/media/platform/msm/camera/cam_icp/fw_inc/hfi_reg.h +5 −2 Original line number Diff line number Diff line /* Copyright (c) 2018, The Linux Foundation. All rights reserved. /* Copyright (c) 2018-2019, The Linux Foundation. All rights reserved. * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License version 2 and Loading Loading @@ -42,8 +42,11 @@ #define HFI_REG_UNCACHED_HEAP_PTR 0x5C #define HFI_REG_UNCACHED_HEAP_SIZE 0x60 #define HFI_REG_QDSS_IOVA 0x6C #define HFI_REG_QDSS_IOVA_SIZE 0x70 #define HFI_REG_SFR_PTR 0x68 #define HFI_REG_QDSS_IOVA_SIZE 0x70 #define HFI_REG_IO_REGION_IOVA 0x74 #define HFI_REG_IO_REGION_SIZE 0x78 /* end of ICP CSR registers */ /* flags for ICP CSR registers */ Loading
drivers/media/platform/msm/camera/cam_icp/hfi.c +9 −1 Original line number Diff line number Diff line /* Copyright (c) 2017-2018, The Linux Foundation. All rights reserved. /* Copyright (c) 2017-2019, The Linux Foundation. All rights reserved. * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License version 2 and Loading Loading @@ -632,6 +632,10 @@ int cam_hfi_resume(struct hfi_mem_info *hfi_mem, icp_base + HFI_REG_QDSS_IOVA); cam_io_w_mb((uint32_t)hfi_mem->qdss.len, icp_base + HFI_REG_QDSS_IOVA_SIZE); cam_io_w_mb((uint32_t)hfi_mem->io_mem.iova, icp_base + HFI_REG_IO_REGION_IOVA); cam_io_w_mb((uint32_t)hfi_mem->io_mem.len, icp_base + HFI_REG_IO_REGION_SIZE); return rc; } Loading Loading @@ -820,6 +824,10 @@ int cam_hfi_init(uint8_t event_driven_mode, struct hfi_mem_info *hfi_mem, icp_base + HFI_REG_QDSS_IOVA); cam_io_w_mb((uint32_t)hfi_mem->qdss.len, icp_base + HFI_REG_QDSS_IOVA_SIZE); cam_io_w_mb((uint32_t)hfi_mem->io_mem.iova, icp_base + HFI_REG_IO_REGION_IOVA); cam_io_w_mb((uint32_t)hfi_mem->io_mem.len, icp_base + HFI_REG_IO_REGION_SIZE); hw_version = cam_io_r(icp_base + HFI_REG_A5_HW_VERSION); Loading