Re: [RFC PATCH 2/2] HISI LPC: Add PNP device support

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Hi Mika,

 /*
@@ -469,8 +472,11 @@ static int hisi_lpc_acpi_probe(struct device *hostdev)
 	struct acpi_device *child;
 	int size, ret, count = 0, cell_num = 0;

-	list_for_each_entry(child, &adev->children, node)
+	list_for_each_entry(child, &adev->children, node) {
+		if (acpi_is_pnp_device(child))
+			continue;
 		cell_num++;
+	}

 	/* allocate the mfd cell and companion ACPI info, one per child */
 	size = sizeof(*mfd_cells) + sizeof(*hisi_lpc_mfd_cells);
@@ -492,6 +498,9 @@ static int hisi_lpc_acpi_probe(struct device *hostdev)
 			.pnpid = pnpid,
 		};

+		if (acpi_is_pnp_device(child))
+			continue;
+
 		/*
 		 * For any instances of this host controller (Hip06 and Hip07
 		 * are the only chipsets), we would not have multiple slaves
@@ -523,6 +532,33 @@ static int hisi_lpc_acpi_probe(struct device *hostdev)
 		return ret;
 	}

+	list_for_each_entry(child, &adev->children, node) {
+		struct pnp_resource *pnp_res;
+		struct pnp_dev *pnp_dev;
+		int rc;
+
+		if (!acpi_is_pnp_device(child))
+			continue;
+
+		pnp_dev = child->driver_data;

...or better yet a PNP helper function that makes this more
understandable.

Sure, but I would not say the helper function would do the same, due to to (ab)use of driver_data element. As I mentioned in patch 1/2, I couldn't see a current method for the acpi_device to reference the PNP device.


+
+		/*
+		 * Prior to adding the device, we need to translate the
+		 * resources to logical PIO addresses.
+		 */
+		list_for_each_entry(pnp_res, &pnp_dev->resources, list) {
+			struct resource *res = &pnp_res->res;
+
+			if (res->flags | IORESOURCE_IO)

I think you should use

	if (resource_type(res) == IORESOURCE_IO)

instead.

Yes, since I don't know the difference between logical OR and logical AND :)


+				hisi_lpc_acpi_xlat_io_res(child, adev, res);
+		}
+		rc = pnp_add_device(pnp_dev);
+		if (rc) {
+			put_device(&pnp_dev->dev);
+			return rc;
+		}
+	}
+

Cheers,
John

 	return 0;
 }

--
1.9.1

.



--
To unsubscribe from this list: send the line "unsubscribe linux-acpi" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html



[Index of Archives]     [Linux IBM ACPI]     [Linux Power Management]     [Linux Kernel]     [Linux Laptop]     [Kernel Newbies]     [Share Photos]     [Security]     [Netfilter]     [Bugtraq]     [Yosemite News]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Samba]     [Video 4 Linux]     [Device Mapper]     [Linux Resources]

  Powered by Linux