All of lore.kernel.org
 help / color / mirror / Atom feed
From: Stanislaw Gruszka <stanislaw.gruszka@linux.intel.com>
To: bingbu.cao@intel.com
Cc: linux-media@vger.kernel.org, sakari.ailus@linux.intel.com,
	laurent.pinchart@ideasonboard.com, phasta@mailbox.org,
	helgaas@kernel.org, jerry.w.hu@intel.com, hao.yao@intel.com,
	tian.shu.qiu@intel.com, bingbu.cao@linux.intel.com
Subject: Re: [PATCH 2/8] media: staging/ipu7: add Intel IPU7 PCI device driver
Date: Tue, 29 Apr 2025 11:46:12 +0200	[thread overview]
Message-ID: <aBCf5M3J5BXSlBoN@linux.intel.com> (raw)
In-Reply-To: <20250429032841.115107-3-bingbu.cao@intel.com>

On Tue, Apr 29, 2025 at 11:28:35AM +0800, bingbu.cao@intel.com wrote:
> From: Bingbu Cao <bingbu.cao@intel.com>
> 
> Intel Image Processing Unit 7th Gen includes input and processing systems
> and the hardware presents itself as a single PCI device in system same
> as IPU6.
> 
> The IPU7 PCI device driver basically does PCI configurations, basic
> hardware configuration by its buttress interfaces, loads the
> firmware binary, register the auxiliary device which serve for the ISYS
> device driver.
> 
> Signed-off-by: Bingbu Cao <bingbu.cao@intel.com>
Reviewed-by: Stanislaw Gruszka <stanislaw.gruszka@linux.intel.com>

LGTM in general, some nits below.

> +/* buttress irq */
> +enum {
> +	BUTTRESS_PWR_STATUS_HH_STATE_IDLE,
> +	BUTTRESS_PWR_STATUS_HH_STATE_IN_PRGS,
> +	BUTTRESS_PWR_STATUS_HH_STATE_DONE,
> +	BUTTRESS_PWR_STATUS_HH_STATE_ERR,
> +};
Used as HW register value, need to be hard-coded constant? 

> +#define IPU_BUTTRESS_PWR_STATE_DN_DONE		0x0
> +#define IPU_BUTTRESS_PWR_STATE_UP_PROCESS	0x1
> +#define IPU_BUTTRESS_PWR_STATE_DN_PROCESS	0x2
> +#define IPU_BUTTRESS_PWR_STATE_UP_DONE		0x3
No U suffix ? 

> +#define FW_CODE_BASE				0x0
> +#define FW_DATA_BASE				0x4
> +#define CPU_AXI_CNTL				0x8
> +#define CPU_QOS_CNTL				0xc
> +#define IDMA_AXI_CNTL				0x10
> +#define IDMA_QOS_CNTL				0x14
> +#define MEF_SPLIT_SIZE				0x18
> +#define FW_MSG_CONTROL				0x1c
> +#define FW_MSG_CREDITS_STATUS			0x20
> +#define FW_MSG_CREDIT_TAKEN			0x24
> +#define FW_MSG_CREDIT_RETURNED			0x28
> +#define TRIG_IDMA_IN				0x2c
> +#define IDMA_DONE				0x30
> +#define IDMA_DONE_CLEAR				0x34
> +#define DMEM_CAPACITY				0x38
> +#define NON_SECURE_CODE_OFFSET			0x3c
> +#define UC_CG_CTRL_BITS				0x40
> +#define ALT_RESET_VEC				0x44
> +#define WDT_NMI_DURATION			0x104
> +#define WDT_RST_REQ_DURATION			0x108
> +#define WDT_CNTL				0x10c
> +#define WDT_NMI_CURRENT_COUNT			0x110
> +#define WDT_RST_CURRENT_COUNT			0x114
> +#define WDT_HALT				0x118
> +#define WDT_STATUS				0x11c
> +#define SPARE_REG_RW				0x120
> +#define SPARE_REG_RO				0x124
> +#define FW_TO_FW_IRQ_CNTL_EDGE			0x200
> +#define FW_TO_FW_IRQ_CNTL_MASK_N		0x204
> +#define FW_TO_FW_IRQ_CNTL_STATUS		0x208
> +#define FW_TO_FW_IRQ_CNTL_CLEAR			0x20c
> +#define FW_TO_FW_IRQ_CNTL_ENABLE		0x210
> +#define FW_TO_FW_IRQ_CNTL_LEVEL_NOT_PULSE	0x214
> +#define CLK_GATE_DIS				0x218
> +#define DEBUG_STATUS				0x1000
> +#define DEBUG_EXCPETION				0x1004
> +#define TIE_GENERAL_INPUT			0x1008
> +#define ERR_STATUS				0x100c
> +#define UC_ERR_INFO				0x1010
> +#define SPARE_CNTL				0x1014
> +#define MEF_TRC_CNTL				0x1100
> +#define DBG_MEF_LAST_PUSH			0x1104
> +#define DBG_MEF_LAST_POP			0x1108
> +#define DBG_MEF_COUNT_CNTL			0x110c
> +#define DBG_MEF_COUNT1				0x1110
> +#define DBG_MEF_COUNT2				0x1114
> +#define DBG_MEF_ACC_OCCUPANCY			0x1118
> +#define DBG_MEF_MAX_IRQ_TO_POP			0x111c
> +#define DBG_IRQ_CNTL				0x1120
> +#define DBG_IRQ_COUNT				0x1124
> +#define DBG_CYC_COUNT				0x1128
> +#define DBG_CNTL				0x1130
> +#define DBG_RST_REG				0x1134
> +#define DBG_MEF_STATUS0				0x1138
> +#define DBG_MEF_STATUS1				0x113c
> +#define PDEBUG_CTL				0x1140
> +#define PDEBUG_DATA				0x1144
> +#define PDEBUG_INST				0x1148
> +#define PDEBUG_LS0ADDR				0x114c
> +#define PDEBUG_LS0DATA				0x1150
> +#define PDEBUG_LS0STAT				0x1154
> +#define PDEBUG_PC				0x1158
> +#define PDEBUG_MISC				0x115c
> +#define PDEBUG_PREF_STS				0x1160
> +#define MEF0_ADDR				0x2000
> +#define MEF1_ADDR				0x2020
> +#define PRINTF_EN_THROUGH_TRACE			0x3004
> +#define PRINTF_EN_DIRECTLY_TO_DDR		0x3008
> +#define PRINTF_DDR_BASE_ADDR			0x300c
> +#define PRINTF_DDR_SIZE				0x3010
> +#define PRINTF_DDR_NEXT_ADDR			0x3014
> +#define PRINTF_STATUS				0x3018
> +#define PRINTF_AXI_CNTL				0x301c
> +#define PRINTF_MSG_LENGTH			0x3020
> +#define TO_SW_IRQ_CNTL_EDGE			0x4000
> +#define TO_SW_IRQ_CNTL_MASK_N			0x4004
> +#define TO_SW_IRQ_CNTL_STATUS			0x4008
> +#define TO_SW_IRQ_CNTL_CLEAR			0x400c
> +#define TO_SW_IRQ_CNTL_ENABLE			0x4010
> +#define TO_SW_IRQ_CNTL_LEVEL_NOT_PULSE		0x4014
> +#define ERR_IRQ_CNTL_EDGE			0x4018
> +#define ERR_IRQ_CNTL_MASK_N			0x401c
> +#define ERR_IRQ_CNTL_STATUS			0x4020
> +#define ERR_IRQ_CNTL_CLEAR			0x4024
> +#define ERR_IRQ_CNTL_ENABLE			0x4028
> +#define ERR_IRQ_CNTL_LEVEL_NOT_PULSE		0x402c
> +#define LOCAL_DMEM_BASE_ADDR			0x1300000

Do we need those defines ? 

I think is fine to have unused defines for completeness and possible
future usage, but I checked randomly 10 of above and none was referenced.

Regards
Stanislaw

  reply	other threads:[~2025-04-29  9:46 UTC|newest]

Thread overview: 16+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2025-04-29  3:28 [PATCH 0/8] Intel IPU7 PCI and input system device drivers bingbu.cao
2025-04-29  3:28 ` [PATCH 1/8] media: Rename the IPU PCI device table header and add IPU7 PCI IDs bingbu.cao
2025-04-29  7:57   ` Stanislaw Gruszka
2025-04-29  3:28 ` [PATCH 2/8] media: staging/ipu7: add Intel IPU7 PCI device driver bingbu.cao
2025-04-29  9:46   ` Stanislaw Gruszka [this message]
2025-04-29  3:28 ` [PATCH 3/8] media: staging/ipu7: add IPU7 DMA APIs and MMU mapping bingbu.cao
2025-04-29  3:28 ` [PATCH 4/8] media: staging/ipu7: add firmware parse, syscom interface and boot bingbu.cao
2025-04-29  3:28 ` [PATCH 5/8] media: staging/ipu7: add IPU7 firmware ABI headers bingbu.cao
2025-04-29  6:39   ` Sakari Ailus
2025-04-29  3:28 ` [PATCH 6/8] media: staging/ipu7: add IPU7 input system device driver bingbu.cao
2025-04-29  7:53   ` Stanislaw Gruszka
2025-04-29  8:24   ` Sakari Ailus
2025-05-26  6:52     ` Bingbu Cao
2025-05-26  7:56       ` Sakari Ailus
2025-04-29  3:28 ` [PATCH 7/8] media: staging/ipu7: add Makefile and Kconfig for IPU7 bingbu.cao
2025-04-29  3:28 ` [PATCH 8/8] MAINTAINERS: add maintainers for Intel IPU7 input system driver bingbu.cao

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=aBCf5M3J5BXSlBoN@linux.intel.com \
    --to=stanislaw.gruszka@linux.intel.com \
    --cc=bingbu.cao@intel.com \
    --cc=bingbu.cao@linux.intel.com \
    --cc=hao.yao@intel.com \
    --cc=helgaas@kernel.org \
    --cc=jerry.w.hu@intel.com \
    --cc=laurent.pinchart@ideasonboard.com \
    --cc=linux-media@vger.kernel.org \
    --cc=phasta@mailbox.org \
    --cc=sakari.ailus@linux.intel.com \
    --cc=tian.shu.qiu@intel.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.