.cmd    = DTV_DELIVERY_SYSTEM,
                .set    = 1,
        },
+       [DTV_HIERARCHY] = {
+               .name   = "DTV_HIERARCHY",
+               .cmd    = DTV_HIERARCHY,
+               .set    = 1,
+       },
        [DTV_CODE_RATE_HP] = {
                .name   = "DTV_CODE_RATE_HP",
                .cmd    = DTV_CODE_RATE_HP,
                .cmd    = DTV_TRANSMISSION_MODE,
                .set    = 0,
        },
+       [DTV_HIERARCHY] = {
+               .name   = "DTV_HIERARCHY",
+               .cmd    = DTV_HIERARCHY,
+               .set    = 0,
+       },
 };
 
 void dtv_property_dump(struct dtv_property *tvp)
        case DTV_TRANSMISSION_MODE:
                tvp->u.data = fe->dtv_property_cache.transmission_mode;
                break;
+       case DTV_HIERARCHY:
+               tvp->u.data = fe->dtv_property_cache.hierarchy;
+               break;
        default:
                r = -1;
        }
        case DTV_TRANSMISSION_MODE:
                fe->dtv_property_cache.transmission_mode = tvp->u.data;
                break;
+       case DTV_HIERARCHY:
+               fe->dtv_property_cache.hierarchy = tvp->u.data;
+               break;
        default:
                r = -1;
        }
 
 #define DTV_CODE_RATE_LP                       37
 #define DTV_GUARD_INTERVAL                     38
 #define DTV_TRANSMISSION_MODE                  39
+#define DTV_HIERARCHY                          40
 
-#define DTV_MAX_COMMAND                                DTV_TRANSMISSION_MODE
+#define DTV_MAX_COMMAND                                DTV_HIERARCHY
 
 typedef enum fe_pilot {
        PILOT_ON,