Hi.

My Buffalo WZR-HP-AG300H is said to have AR9220 and AR9223.

root@ag300h:/# cat /sys/devices/pci0000\:00/0000\:00\:11.0/subsystem_device 
0xa097
root@ag300h:/# cat /sys/devices/pci0000\:00/0000\:00\:12.0/subsystem_device 
0xa096

--- shinoda

On 2012/08/16, at 1:08, Daniel Golle wrote:

> This takes the device_id and subsystem_id from the EEPROM, I'll add
> the info for other Rt3xxx chips in the next days.
> 
> Signed-off-by: Daniel Golle <[email protected]>
> 
> diff --git a/package/iwinfo/src/iwinfo_lib.c b/package/iwinfo/src/iwinfo_lib.c
> index b2fc6aa..5ca0a45 100644
> --- a/package/iwinfo/src/iwinfo_lib.c
> +++ b/package/iwinfo/src/iwinfo_lib.c
> @@ -314,6 +314,7 @@ const struct iwinfo_iso3166_label IWINFO_ISO3166_NAMES[] 
> = {
> 
> const char VENDOR_UBNT[] = "Ubiquiti";
> const char VENDOR_ATH[]  = "Atheros";
> +const char VENDOR_RALINK[]  = "RaLink";
> 
> const struct iwinfo_hardware_entry IWINFO_HARDWARE_ENTRIES[] = {
> /*    { vendor, model, vendorid, deviceid, subsys vendorid, subsys deviceid, 
> poweroff, freqoff } */
> @@ -368,6 +369,7 @@ const struct iwinfo_hardware_entry 
> IWINFO_HARDWARE_ENTRIES[] = {
>       { VENDOR_ATH,  "AR9220",                0x168c, 0x0029, 0x168c, 0xa094, 
>  0,     0 },
>       { VENDOR_ATH,  "AR9223",                0x168c, 0x0029, 0x168c, 0xa095, 
>  0,     0 },
>       { VENDOR_ATH,  "AR9285",                0x168c, 0x002b, 0x168c, 0xa091, 
>  0,     0 },
> +     { VENDOR_RALINK,  "Rt3352",             0x1814, 0x3352, 0x1814, 0x000c, 
>  0,     0 },
> #endif
>       { NULL }
> };
> diff --git a/package/iwinfo/src/iwinfo_utils.c 
> b/package/iwinfo/src/iwinfo_utils.c
> index 514f34b..c430652 100644
> --- a/package/iwinfo/src/iwinfo_utils.c
> +++ b/package/iwinfo/src/iwinfo_utils.c
> @@ -165,7 +165,8 @@ int iwinfo_hardware_id_from_mtd(struct iwinfo_hardware_id 
> *id)
>       while (fgets(buf, sizeof(buf), mtd) > 0)
>       {
>               if (fscanf(mtd, "mtd%d: %*x %x %127s", &off, &len, buf) < 3 ||
> -                 (strcmp(buf, "\"boardconfig\"") && strcmp(buf, 
> "\"EEPROM\"")))
> +                 (strcmp(buf, "\"boardconfig\"") && strcmp(buf, 
> "\"EEPROM\"") &&
> +                  strcmp(buf, "\"factory\"")) )
>               {
>                       off = -1;
>                       continue;
> @@ -212,6 +213,26 @@ int iwinfo_hardware_id_from_mtd(struct 
> iwinfo_hardware_id *id)
>                               id->subsystem_device_id = bc[off + 0x14];
>                               break;
>                       }
> +                     /* Rt3xxx SoC */
> +                     else if ((bc[off] == 0x3352) || (bc[off] == 0x5233) ||
> +                             (bc[off] == 0x3350) || (bc[off] == 0x5033) ||
> +                             (bc[off] == 0x3050) || (bc[off] == 0x5030) ||
> +                             (bc[off] == 0x3052) || (bc[off] == 0x5230))
> +                     {
> +                             /* vendor: RaLink */
> +                             id->vendor_id = 0x1814;
> +                             id->subsystem_vendor_id = 0x1814;
> +
> +                             /* device */
> +                             if (bc[off] & 0xf0 == 0x30)
> +                                     id->device_id = ( bc[off] >> 8 ) | 
> +                                                     ( bc[off] & 0x00ff ) << 
> 8;
> +                             else
> +                                     id->device_id = bc[off];
> +
> +                             /* subsystem from EEPROM_NIC_CONF0_RF_TYPE */
> +                             id->subsystem_device_id = ( bc[off + 0x1a] & 
> 0x0f00 ) >> 8;
> +                     }
>               }
> 
>               munmap(bc, len);
> -- 
> 1.7.11.4
> 
> _______________________________________________
> openwrt-devel mailing list
> [email protected]
> https://lists.openwrt.org/mailman/listinfo/openwrt-devel

_______________________________________________
openwrt-devel mailing list
[email protected]
https://lists.openwrt.org/mailman/listinfo/openwrt-devel

Reply via email to