Commit 273190d4 authored by Omer Shpigelman's avatar Omer Shpigelman Committed by Oded Gabbay
Browse files

habanalabs: add cdev index data member



Instead of recalculating the cdev index, store it in a dedicated data
member. This data member is intended to be passed to other drivers using
the auxiliary bus infra and hence this new data member is necessary in
case that the calculation is changed in the future.

Signed-off-by: default avatarOmer Shpigelman <oshpigelman@habana.ai>
Reviewed-by: default avatarOded Gabbay <ogabbay@kernel.org>
Signed-off-by: default avatarOded Gabbay <ogabbay@kernel.org>
parent 78da23cb
Loading
Loading
Loading
Loading
+6 −4
Original line number Diff line number Diff line
@@ -1730,7 +1730,9 @@ int hl_device_init(struct hl_device *hdev, struct class *hclass)
	char *name;
	bool add_cdev_sysfs_on_err = false;

	name = kasprintf(GFP_KERNEL, "hl%d", hdev->id / 2);
	hdev->cdev_idx = hdev->id / 2;

	name = kasprintf(GFP_KERNEL, "hl%d", hdev->cdev_idx);
	if (!name) {
		rc = -ENOMEM;
		goto out_disabled;
@@ -1745,7 +1747,7 @@ int hl_device_init(struct hl_device *hdev, struct class *hclass)
	if (rc)
		goto out_disabled;

	name = kasprintf(GFP_KERNEL, "hl_controlD%d", hdev->id / 2);
	name = kasprintf(GFP_KERNEL, "hl_controlD%d", hdev->cdev_idx);
	if (!name) {
		rc = -ENOMEM;
		goto free_dev;
@@ -2023,10 +2025,10 @@ int hl_device_init(struct hl_device *hdev, struct class *hclass)
	if (hdev->pdev)
		dev_err(&hdev->pdev->dev,
			"Failed to initialize hl%d. Device is NOT usable !\n",
			hdev->id / 2);
			hdev->cdev_idx);
	else
		pr_err("Failed to initialize hl%d. Device is NOT usable !\n",
			hdev->id / 2);
			hdev->cdev_idx);

	return rc;
}
+3 −1
Original line number Diff line number Diff line
@@ -3129,7 +3129,8 @@ struct hl_reset_info {
 * @edma_binning: contains mask of edma engines that is received from the f/w which
 *                   indicates which edma engines are binned-out
 * @id: device minor.
 * @id_control: minor of the control device
 * @id_control: minor of the control device.
 * @cdev_idx: char device index. Used for setting its name.
 * @cpu_pci_msb_addr: 50-bit extension bits for the device CPU's 40-bit
 *                    addresses.
 * @is_in_dram_scrub: true if dram scrub operation is on going.
@@ -3289,6 +3290,7 @@ struct hl_device {
	u32				edma_binning;
	u16				id;
	u16				id_control;
	u16				cdev_idx;
	u16				cpu_pci_msb_addr;
	u8				is_in_dram_scrub;
	u8				disabled;