Taxonomy exposed filter with parent hierarchy only
I had a situation like this, i done it by giving a custom options array to the exposed filter in hook_form_alter(). 

 function mymodule_form_views_exposed_form_alter(&amp;$form, &amp;$form_state, $form_id) {
  if ($form_id == "views_exposed_form" &amp;&amp; $form['#id']=='your-form-id' ){
 $tid_options = get_tid_options();

 $form['your-field-name']['#type'] ='select';
 $form['your-field-name']['#size'] = null;
 $form['your-field-name']['#default_value'] = '';
 $form['your-field-name']['#options'] = $tid_options;
   }
}


function get_tid_options() {
  $cc=array();
  $tax=taxonomy_vocabulary_machine_name_load('machine-name');
  $vid= $tax-&gt;vid;
  //Code to find parent terms here according to your vocabulary structure.
  $child_terms = taxonomy_get_tree($vid);
  foreach($child_terms as $values) 
  $tid=$values-&gt;tid;
  $name=$values-&gt;name;
  $cc[$tid] = $name; 
 }
return $cc;


}

Use taxonomy_get_parents or taxonomy_get_parents_all to find parent terms.

May be this will help you..