Unverified Commit 22250dba authored by Mark Brown's avatar Mark Brown
Browse files

regmap: Merge fix for where we get the number of registers from

This didn't get sent for 6.1 since we should do a better fix but that
didn't happen in time.
parents 69af4bca 84498d1f
Loading
Loading
Loading
Loading
+11 −4
Original line number Diff line number Diff line
@@ -730,6 +730,7 @@ int regmap_add_irq_chip_fwnode(struct fwnode_handle *fwnode,
	int i;
	int ret = -ENOMEM;
	int num_type_reg;
	int num_regs;
	u32 reg;

	if (chip->num_regs <= 0)
@@ -804,14 +805,20 @@ int regmap_add_irq_chip_fwnode(struct fwnode_handle *fwnode,
			goto err_alloc;
	}

	num_type_reg = chip->type_in_mask ? chip->num_regs : chip->num_type_reg;
	if (num_type_reg) {
		d->type_buf_def = kcalloc(num_type_reg,
	/*
	 * Use num_config_regs if defined, otherwise fall back to num_type_reg
	 * to maintain backward compatibility.
	 */
	num_type_reg = chip->num_config_regs ? chip->num_config_regs
			: chip->num_type_reg;
	num_regs = chip->type_in_mask ? chip->num_regs : num_type_reg;
	if (num_regs) {
		d->type_buf_def = kcalloc(num_regs,
					  sizeof(*d->type_buf_def), GFP_KERNEL);
		if (!d->type_buf_def)
			goto err_alloc;

		d->type_buf = kcalloc(num_type_reg, sizeof(*d->type_buf),
		d->type_buf = kcalloc(num_regs, sizeof(*d->type_buf),
				      GFP_KERNEL);
		if (!d->type_buf)
			goto err_alloc;