ACK: [PATCH 2/4] pci: aspm: use new fwts PCI defintions

Alex Hung alex.hung at canonical.com
Thu Oct 31 03:09:05 UTC 2013


On 10/25/2013 10:12 PM, Colin King wrote:
> From: Colin Ian King <colin.king at canonical.com>
>
> Use fwts PCI defintions in fwts_pci.h
>
> Signed-off-by: Colin Ian King <colin.king at canonical.com>
> ---
>   src/pci/aspm/aspm.c | 72 +++++++++++------------------------------------------
>   1 file changed, 14 insertions(+), 58 deletions(-)
>
> diff --git a/src/pci/aspm/aspm.c b/src/pci/aspm/aspm.c
> index 835ac7f..8161440 100644
> --- a/src/pci/aspm/aspm.c
> +++ b/src/pci/aspm/aspm.c
> @@ -31,19 +31,6 @@
>   #include <inttypes.h>
>   #include "fwts.h"
>
> -#define PCI_DEV_PATH			"/sys/bus/pci/devices"
> -
> -/* PCI Confiiguration Space for Type 0 & 1 */
> -#define FWTS_PCI_HEADER_TYPE		0x0E
> -#define FWTS_PCI_CAPABILITIES_POINTER	0x34
> -
> -/* PCI Confiiguration Space for Type 1 */
> -#define FWTS_PCI_SECONDARD_BUS_NUMBER	0x19
> -
> -/* PCI Capability IDs  */
> -#define FWTS_PCI_LAST_ID		0x00
> -#define FWTS_PCI_EXPRESS_CAP_ID		0x10
> -
>   /* PCI Express Capability Structure Fields */
>   #define FWTS_PCIE_ASPM_SUPPORT_L0_FIELD	0x0400
>   #define FWTS_PCIE_ASPM_SUPPORT_L1_FIELD	0x0800
> @@ -61,37 +48,6 @@ struct pci_device {
>   	uint8_t config[256];
>   };
>
> -/*
> - * PCI Express Capability Structure is defined in Section 7.8
> - * of PCI Express®i Base Specification Revision 2.0
> - */
> -typedef struct {
> -	uint8_t pcie_cap_id;
> -	uint8_t next_cap_point;
> -	uint16_t pcie_cap_reg;
> -	uint32_t device_cap;
> -	uint16_t device_contrl;
> -	uint16_t device_status;
> -	uint32_t link_cap;
> -	uint16_t link_contrl;
> -	uint16_t link_status;
> -	uint32_t slot_cap;
> -	uint16_t slot_contrl;
> -	uint16_t slot_status;
> -	uint16_t root_contrl;
> -	uint16_t root_cap;
> -	uint32_t root_status;
> -	uint32_t device_cap2;
> -	uint16_t device_contrl2;
> -	uint16_t device_status2;
> -	uint32_t link_cap2;
> -	uint16_t link_contrl2;
> -	uint16_t link_status2;
> -	uint32_t slot_cap2;
> -	uint16_t slot_contrl2;
> -	uint16_t slot_status2;
> -} __attribute__ ((packed)) pcie_capability;
> -
>   static int facp_get_aspm_control(fwts_framework *fw)
>   {
>   	fwts_acpi_table_info *table;
> @@ -120,28 +76,28 @@ static int pcie_compare_rp_dev_aspm_registers(fwts_framework *fw,
>   	struct pci_device *rp,
>   	struct pci_device *dev)
>   {
> -	pcie_capability *rp_cap, *device_cap;
> +	fwts_pcie_capability *rp_cap, *device_cap;
>   	uint8_t rp_aspm_cntrl, device_aspm_cntrl;
>   	uint8_t next_cap;
>   	int ret = FWTS_OK;
>   	bool l0s_disabled = false, l1_disabled = false;
>
> -	next_cap = rp->config[FWTS_PCI_CAPABILITIES_POINTER];
> -	rp_cap = (pcie_capability *) &rp->config[next_cap];
> +	next_cap = rp->config[FWTS_PCI_CONFIG_TYPE1_CAPABILITY_POINTER];
> +	rp_cap = (fwts_pcie_capability *) &rp->config[next_cap];
>   	while (rp_cap->pcie_cap_id != FWTS_PCI_EXPRESS_CAP_ID) {
> -		if (rp_cap->next_cap_point == FWTS_PCI_LAST_ID)
> +		if (rp_cap->next_cap_point == FWTS_PCI_CAPABILITIES_LAST_ID)
>   			break;
>   		next_cap = rp_cap->next_cap_point;
> -		rp_cap = (pcie_capability *) &rp->config[next_cap];
> +		rp_cap = (fwts_pcie_capability *) &rp->config[next_cap];
>   	}
>
> -	next_cap = dev->config[FWTS_PCI_CAPABILITIES_POINTER];
> -	device_cap = (pcie_capability *)&dev->config[next_cap];
> +	next_cap = dev->config[FWTS_PCI_CONFIG_TYPE1_CAPABILITY_POINTER];
> +	device_cap = (fwts_pcie_capability *)&dev->config[next_cap];
>   	while (device_cap->pcie_cap_id != FWTS_PCI_EXPRESS_CAP_ID) {
> -		if (device_cap->next_cap_point == FWTS_PCI_LAST_ID)
> +		if (device_cap->next_cap_point == FWTS_PCI_CAPABILITIES_LAST_ID)
>   			break;
>   		next_cap = device_cap->next_cap_point;
> -		device_cap = (pcie_capability *)&dev->config[next_cap];
> +		device_cap = (fwts_pcie_capability *)&dev->config[next_cap];
>   	}
>
>
> @@ -222,8 +178,8 @@ static int pcie_check_aspm_registers(fwts_framework *fw)
>
>   	fwts_list_init(&dev_list);
>
> -	if ((dirp = opendir(PCI_DEV_PATH)) == NULL) {
> -		fwts_log_warning(fw, "Could not open %s.", PCI_DEV_PATH);
> +	if ((dirp = opendir(FWTS_PCI_DEV_PATH)) == NULL) {
> +		fwts_log_warning(fw, "Could not open %s.", FWTS_PCI_DEV_PATH);
>   		return FWTS_ERROR;
>   	}
>   	while ((entry = readdir(dirp)) != NULL) {
> @@ -247,7 +203,7 @@ static int pcie_check_aspm_registers(fwts_framework *fw)
>   			device->dev = dev;
>   			device->func = func;
>
> -			snprintf(path, sizeof(path), PCI_DEV_PATH "/%s/config", entry->d_name);
> +			snprintf(path, sizeof(path), FWTS_PCI_DEV_PATH "/%s/config", entry->d_name);
>   			if ((fd = open(path, O_RDONLY)) < 0) {
>   				fwts_log_warning(fw, "Could not open config from PCI device %s\n", entry->d_name);
>   				free(device);
> @@ -271,10 +227,10 @@ static int pcie_check_aspm_registers(fwts_framework *fw)
>   		struct pci_device *target, *cur = (struct pci_device *)lcur->data;
>
>   		/* Find PCI Bridge (PCIE Root Port) and the attached device  */
> -		if (cur->config[FWTS_PCI_HEADER_TYPE] & 0x01) {
> +		if (cur->config[FWTS_PCI_CONFIG_HEADER_TYPE] & 0x01) {
>   			for (ltarget = dev_list.head; ltarget; ltarget = ltarget->next) {
>   				target = (struct pci_device *)ltarget->data;
> -				if (target->bus == cur->config[FWTS_PCI_SECONDARD_BUS_NUMBER]) {
> +				if (target->bus == cur->config[FWTS_PCI_CONFIG_TYPE1_SECONDARY_BUS_NUMBER]) {
>   					pcie_compare_rp_dev_aspm_registers(fw, cur, target);
>   					break;
>   				}
>

Acked-by: Alex Hung <alex.hung at canonical.com>

-- 
Cheers,
Alex Hung



More information about the fwts-devel mailing list