Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jmorris...
[pandora-kernel.git] / sound / pci / asihpi / hpi6205.c
index 9d5df54..e041a6a 100644 (file)
@@ -373,6 +373,7 @@ static void instream_message(struct hpi_adapter_obj *pao,
 /** Entry point to this HPI backend
  * All calls to the HPI start here
  */
+static
 void _HPI_6205(struct hpi_adapter_obj *pao, struct hpi_message *phm,
        struct hpi_response *phr)
 {
@@ -392,7 +393,7 @@ void _HPI_6205(struct hpi_adapter_obj *pao, struct hpi_message *phm,
 
        HPI_DEBUG_LOG(VERBOSE, "start of switch\n");
        switch (phm->type) {
-       case HPI_TYPE_MESSAGE:
+       case HPI_TYPE_REQUEST:
                switch (phm->object) {
                case HPI_OBJ_SUBSYSTEM:
                        subsys_message(pao, phm, phr);
@@ -402,7 +403,6 @@ void _HPI_6205(struct hpi_adapter_obj *pao, struct hpi_message *phm,
                        adapter_message(pao, phm, phr);
                        break;
 
-               case HPI_OBJ_CONTROLEX:
                case HPI_OBJ_CONTROL:
                        control_message(pao, phm, phr);
                        break;
@@ -634,11 +634,12 @@ static u16 create_adapter_obj(struct hpi_adapter_obj *pao,
 
                HPI_DEBUG_LOG(VERBOSE, "init ADAPTER_GET_INFO\n");
                memset(&hm, 0, sizeof(hm));
-               hm.type = HPI_TYPE_MESSAGE;
+               /* wAdapterIndex == version == 0 */
+               hm.type = HPI_TYPE_REQUEST;
                hm.size = sizeof(hm);
                hm.object = HPI_OBJ_ADAPTER;
                hm.function = HPI_ADAPTER_GET_INFO;
-               hm.adapter_index = 0;
+
                memset(&hr, 0, sizeof(hr));
                hr.size = sizeof(hr);
 
@@ -658,9 +659,6 @@ static u16 create_adapter_obj(struct hpi_adapter_obj *pao,
                        hr.u.ax.info.num_outstreams +
                        hr.u.ax.info.num_instreams;
 
-               hpios_locked_mem_prepare((max_streams * 6) / 10, max_streams,
-                       65536, pao->pci.pci_dev);
-
                HPI_DEBUG_LOG(VERBOSE,
                        "got adapter info type %x index %d serial %d\n",
                        hr.u.ax.info.adapter_type, hr.u.ax.info.adapter_index,
@@ -709,9 +707,6 @@ static void delete_adapter_obj(struct hpi_adapter_obj *pao)
                                [i]);
                        phw->outstream_host_buffer_size[i] = 0;
                }
-
-       hpios_locked_mem_unprepare(pao->pci.pci_dev);
-
        kfree(phw);
 }
 
@@ -1371,9 +1366,8 @@ static u16 adapter_boot_load_dsp(struct hpi_adapter_obj *pao,
                        return err;
 
                /* write the DSP code down into the DSPs memory */
-               dsp_code.ps_dev = pao->pci.pci_dev;
-               err = hpi_dsp_code_open(boot_code_id[dsp], &dsp_code,
-                       pos_error_code);
+               err = hpi_dsp_code_open(boot_code_id[dsp], pao->pci.pci_dev,
+                       &dsp_code, pos_error_code);
                if (err)
                        return err;
 
@@ -2084,13 +2078,13 @@ static u16 message_response_sequence(struct hpi_adapter_obj *pao,
        u16 err = 0;
 
        message_count++;
-       if (phm->size > sizeof(interface->u)) {
+       if (phm->size > sizeof(interface->u.message_buffer)) {
                phr->error = HPI_ERROR_MESSAGE_BUFFER_TOO_SMALL;
-               phr->specific_error = sizeof(interface->u);
+               phr->specific_error = sizeof(interface->u.message_buffer);
                phr->size = sizeof(struct hpi_response_header);
                HPI_DEBUG_LOG(ERROR,
                        "message len %d too big for buffer %zd \n", phm->size,
-                       sizeof(interface->u));
+                       sizeof(interface->u.message_buffer));
                return 0;
        }
 
@@ -2122,18 +2116,19 @@ static u16 message_response_sequence(struct hpi_adapter_obj *pao,
 
        /* read the result */
        if (time_out) {
-               if (interface->u.response_buffer.size <= phr->size)
+               if (interface->u.response_buffer.response.size <= phr->size)
                        memcpy(phr, &interface->u.response_buffer,
-                               interface->u.response_buffer.size);
+                               interface->u.response_buffer.response.size);
                else {
                        HPI_DEBUG_LOG(ERROR,
                                "response len %d too big for buffer %d\n",
-                               interface->u.response_buffer.size, phr->size);
+                               interface->u.response_buffer.response.size,
+                               phr->size);
                        memcpy(phr, &interface->u.response_buffer,
                                sizeof(struct hpi_response_header));
                        phr->error = HPI_ERROR_RESPONSE_BUFFER_TOO_SMALL;
                        phr->specific_error =
-                               interface->u.response_buffer.size;
+                               interface->u.response_buffer.response.size;
                        phr->size = sizeof(struct hpi_response_header);
                }
        }
@@ -2202,23 +2197,6 @@ static void hw_message(struct hpi_adapter_obj *pao, struct hpi_message *phm,
                        phm->u.d.u.data.data_size, H620_HIF_GET_DATA);
                break;
 
-       case HPI_CONTROL_SET_STATE:
-               if (phm->object == HPI_OBJ_CONTROLEX
-                       && phm->u.cx.attribute == HPI_COBRANET_SET_DATA)
-                       err = hpi6205_transfer_data(pao,
-                               phm->u.cx.u.cobranet_bigdata.pb_data,
-                               phm->u.cx.u.cobranet_bigdata.byte_count,
-                               H620_HIF_SEND_DATA);
-               break;
-
-       case HPI_CONTROL_GET_STATE:
-               if (phm->object == HPI_OBJ_CONTROLEX
-                       && phm->u.cx.attribute == HPI_COBRANET_GET_DATA)
-                       err = hpi6205_transfer_data(pao,
-                               phm->u.cx.u.cobranet_bigdata.pb_data,
-                               phr->u.cx.u.cobranet_data.byte_count,
-                               H620_HIF_GET_DATA);
-               break;
        }
        phr->error = err;