forked from Minki/linux
1ccea77e2a
Based on 2 normalized pattern(s): this program is free software you can redistribute it and or modify it under the terms of the gnu general public license as published by the free software foundation either version 2 of the license or at your option any later version this program is distributed in the hope that it will be useful but without any warranty without even the implied warranty of merchantability or fitness for a particular purpose see the gnu general public license for more details you should have received a copy of the gnu general public license along with this program if not see http www gnu org licenses this program is free software you can redistribute it and or modify it under the terms of the gnu general public license as published by the free software foundation either version 2 of the license or at your option any later version this program is distributed in the hope that it will be useful but without any warranty without even the implied warranty of merchantability or fitness for a particular purpose see the gnu general public license for more details [based] [from] [clk] [highbank] [c] you should have received a copy of the gnu general public license along with this program if not see http www gnu org licenses extracted by the scancode license scanner the SPDX license identifier GPL-2.0-or-later has been chosen to replace the boilerplate/reference in 355 file(s). Signed-off-by: Thomas Gleixner <tglx@linutronix.de> Reviewed-by: Kate Stewart <kstewart@linuxfoundation.org> Reviewed-by: Jilayne Lovejoy <opensource@jilayne.com> Reviewed-by: Steve Winslow <swinslow@gmail.com> Reviewed-by: Allison Randal <allison@lohutok.net> Cc: linux-spdx@vger.kernel.org Link: https://lkml.kernel.org/r/20190519154041.837383322@linutronix.de Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
93 lines
2.1 KiB
C
93 lines
2.1 KiB
C
// SPDX-License-Identifier: GPL-2.0-or-later
|
|
/****************************************************************
|
|
|
|
Siano Mobile Silicon, Inc.
|
|
MDTV receiver kernel modules.
|
|
Copyright (C) 2006-2009, Uri Shkolnik
|
|
|
|
|
|
****************************************************************/
|
|
|
|
#include <linux/export.h>
|
|
#include <asm/byteorder.h>
|
|
|
|
#include "smsendian.h"
|
|
#include "smscoreapi.h"
|
|
|
|
void smsendian_handle_tx_message(void *buffer)
|
|
{
|
|
#ifdef __BIG_ENDIAN
|
|
struct sms_msg_data *msg = (struct sms_msg_data *)buffer;
|
|
int i;
|
|
int msg_words;
|
|
|
|
switch (msg->x_msg_header.msg_type) {
|
|
case MSG_SMS_DATA_DOWNLOAD_REQ:
|
|
{
|
|
msg->msg_data[0] = le32_to_cpu((__force __le32)(msg->msg_data[0]));
|
|
break;
|
|
}
|
|
|
|
default:
|
|
msg_words = (msg->x_msg_header.msg_length -
|
|
sizeof(struct sms_msg_hdr))/4;
|
|
|
|
for (i = 0; i < msg_words; i++)
|
|
msg->msg_data[i] = le32_to_cpu((__force __le32)msg->msg_data[i]);
|
|
|
|
break;
|
|
}
|
|
#endif /* __BIG_ENDIAN */
|
|
}
|
|
EXPORT_SYMBOL_GPL(smsendian_handle_tx_message);
|
|
|
|
void smsendian_handle_rx_message(void *buffer)
|
|
{
|
|
#ifdef __BIG_ENDIAN
|
|
struct sms_msg_data *msg = (struct sms_msg_data *)buffer;
|
|
int i;
|
|
int msg_words;
|
|
|
|
switch (msg->x_msg_header.msg_type) {
|
|
case MSG_SMS_GET_VERSION_EX_RES:
|
|
{
|
|
struct sms_version_res *ver =
|
|
(struct sms_version_res *) msg;
|
|
ver->chip_model = le16_to_cpu((__force __le16)ver->chip_model);
|
|
break;
|
|
}
|
|
|
|
case MSG_SMS_DVBT_BDA_DATA:
|
|
case MSG_SMS_DAB_CHANNEL:
|
|
case MSG_SMS_DATA_MSG:
|
|
{
|
|
break;
|
|
}
|
|
|
|
default:
|
|
{
|
|
msg_words = (msg->x_msg_header.msg_length -
|
|
sizeof(struct sms_msg_hdr))/4;
|
|
|
|
for (i = 0; i < msg_words; i++)
|
|
msg->msg_data[i] = le32_to_cpu((__force __le32)msg->msg_data[i]);
|
|
|
|
break;
|
|
}
|
|
}
|
|
#endif /* __BIG_ENDIAN */
|
|
}
|
|
EXPORT_SYMBOL_GPL(smsendian_handle_rx_message);
|
|
|
|
void smsendian_handle_message_header(void *msg)
|
|
{
|
|
#ifdef __BIG_ENDIAN
|
|
struct sms_msg_hdr *phdr = (struct sms_msg_hdr *)msg;
|
|
|
|
phdr->msg_type = le16_to_cpu((__force __le16)phdr->msg_type);
|
|
phdr->msg_length = le16_to_cpu((__force __le16)phdr->msg_length);
|
|
phdr->msg_flags = le16_to_cpu((__force __le16)phdr->msg_flags);
|
|
#endif /* __BIG_ENDIAN */
|
|
}
|
|
EXPORT_SYMBOL_GPL(smsendian_handle_message_header);
|