int priority_type)
 {
        struct isst_core_power info;
-       int ret;
+       int i, ret, saved_punit;
 
        info.get_set = 1;
        info.socket_id = id->pkg;
        info.power_domain_id = id->punit;
        info.enable = enable_clos;
        info.priority_type = priority_type;
-       ret = tpmi_process_ioctl(ISST_IF_CORE_POWER_STATE, &info);
-       if (ret == -1)
-               return ret;
+
+       saved_punit = id->punit;
+
+       /* Set for all other dies also. This is per package setting */
+       for (i = 0; i < MAX_PUNIT_PER_DIE; i++) {
+               id->punit = i;
+               if (isst_is_punit_valid(id)) {
+                       info.power_domain_id = i;
+                       ret = tpmi_process_ioctl(ISST_IF_CORE_POWER_STATE, &info);
+                       if (ret == -1) {
+                               id->punit = saved_punit;
+                               return ret;
+                       }
+               }
+       }
+
+       id->punit = saved_punit;
 
        return 0;
 }
                  struct isst_clos_config *clos_config)
 {
        struct isst_clos_param info;
-       int ret;
+       int i, ret, saved_punit;
 
        info.get_set = 1;
        info.socket_id = id->pkg;
        if (info.max_freq_mhz <= 0xff)
                info.max_freq_mhz *= 100;
 
-       ret = tpmi_process_ioctl(ISST_IF_CLOS_PARAM, &info);
-       if (ret == -1)
-               return ret;
+       saved_punit = id->punit;
+
+       /* Set for all other dies also. This is per package setting */
+       for (i = 0; i < MAX_PUNIT_PER_DIE; i++) {
+               id->punit = i;
+               if (isst_is_punit_valid(id)) {
+                       info.power_domain_id = i;
+                       ret = tpmi_process_ioctl(ISST_IF_CLOS_PARAM, &info);
+                       if (ret == -1) {
+                               id->punit = saved_punit;
+                               return ret;
+                       }
+               }
+       }
+
+       id->punit = saved_punit;
 
        debug_printf("set cpu:%d clos:%d min:%d max:%d\n", id->cpu, clos,
                     clos_config->clos_min, clos_config->clos_max);