提交 18245e18 编写于 作者: M Michael Krufky 提交者: Mauro Carvalho Chehab

V4L/DVB (8286): sms1xxx: remove typedefs

Signed-off-by: NMichael Krufky <mkrufky@linuxtv.org>
Signed-off-by: NMauro Carvalho Chehab <mchehab@infradead.org>
上级 ca783736
......@@ -57,19 +57,19 @@ typedef struct mutex kmutex_t;
#define SMS_ROM_NO_RESPONSE 2
#define SMS_DEVICE_NOT_READY 0x8000000
typedef enum {
enum sms_device_type_st {
SMS_STELLAR = 0,
SMS_NOVA_A0,
SMS_NOVA_B0,
SMS_VEGA,
SMS_NUM_OF_DEVICE_TYPES
} sms_device_type_st;
};
typedef struct _smscore_device smscore_device_t;
typedef struct _smscore_client smscore_client_t;
typedef struct _smscore_buffer smscore_buffer_t;
struct smscore_device_t;
struct smscore_client_t;
struct smscore_buffer_t;
typedef int (*hotplug_t)(smscore_device_t *coredev,
typedef int (*hotplug_t)(struct smscore_device_t *coredev,
struct device *device, int arrival);
typedef int (*setmode_t)(void *context, int mode);
......@@ -79,11 +79,10 @@ typedef int (*loadfirmware_t)(void *context, void *buffer, size_t size);
typedef int (*preload_t)(void *context);
typedef int (*postload_t)(void *context);
typedef int (*onresponse_t)(void *context, smscore_buffer_t *cb);
typedef int (*onresponse_t)(void *context, struct smscore_buffer_t *cb);
typedef void (*onremove_t)(void *context);
typedef struct _smscore_buffer
{
struct smscore_buffer_t {
/* public members, once passed to clients can be changed freely */
struct list_head entry;
int size;
......@@ -93,10 +92,9 @@ typedef struct _smscore_buffer
void *p;
dma_addr_t phys;
unsigned long offset_in_common;
} *psmscore_buffer_t;
};
typedef struct _smsdevice_params
{
struct smsdevice_params_t {
struct device *device;
int buffer_size;
......@@ -112,18 +110,17 @@ typedef struct _smsdevice_params
postload_t postload_handler;
void *context;
sms_device_type_st device_type;
} smsdevice_params_t;
enum sms_device_type_st device_type;
};
typedef struct _smsclient_params
{
struct smsclient_params_t {
int initial_id;
int data_type;
onresponse_t onresponse_handler;
onremove_t onremove_handler;
void *context;
} smsclient_params_t;
};
/* GPIO definitions for antenna frequency domain control (SMS8021) */
#define SMS_ANTENNA_GPIO_0 1
......@@ -201,8 +198,7 @@ typedef struct _smsclient_params
#define SMS_INIT_MSG(ptr, type, len) \
SMS_INIT_MSG_EX(ptr, type, 0, HIF_TASK, len)
typedef enum
{
enum SMS_DEVICE_MODE {
DEVICE_MODE_NONE = -1,
DEVICE_MODE_DVBT = 0,
DEVICE_MODE_DVBH,
......@@ -214,33 +210,29 @@ typedef enum
DEVICE_MODE_CMMB,
DEVICE_MODE_RAW_TUNER,
DEVICE_MODE_MAX,
} SMS_DEVICE_MODE;
};
typedef struct SmsMsgHdr_S
{
struct SmsMsgHdr_ST {
u16 msgType;
u8 msgSrcId;
u8 msgDstId;
u16 msgLength; /* Length of entire message, including header */
u16 msgFlags;
} SmsMsgHdr_ST;
};
typedef struct SmsMsgData_S
{
SmsMsgHdr_ST xMsgHeader;
struct SmsMsgData_ST {
struct SmsMsgHdr_ST xMsgHeader;
u32 msgData[1];
} SmsMsgData_ST;
};
typedef struct SmsDataDownload_S
{
SmsMsgHdr_ST xMsgHeader;
struct SmsDataDownload_ST {
struct SmsMsgHdr_ST xMsgHeader;
u32 MemAddr;
u8 Payload[SMS_MAX_PAYLOAD_SIZE];
} SmsDataDownload_ST;
};
typedef struct SmsVersionRes_S
{
SmsMsgHdr_ST xMsgHeader;
struct SmsVersionRes_ST {
struct SmsMsgHdr_ST xMsgHeader;
u16 ChipModel; /* e.g. 0x1102 for SMS-1102 "Nova" */
u8 Step; /* 0 - Step A */
......@@ -263,18 +255,16 @@ typedef struct SmsVersionRes_S
u8 RomVersionFieldPatch;
u8 TextLabel[34];
} SmsVersionRes_ST;
};
typedef struct SmsFirmware_S
{
struct SmsFirmware_ST {
u32 CheckSum;
u32 Length;
u32 StartAddress;
u8 Payload[1];
} SmsFirmware_ST;
};
typedef struct SMSHOSTLIB_STATISTICS_S
{
struct SMSHOSTLIB_STATISTICS_ST {
u32 Reserved; /* Reserved */
/* Common parameters */
......@@ -339,196 +329,25 @@ typedef struct SMSHOSTLIB_STATISTICS_S
u32 CellId; /* TPS Cell ID in bits 15..0, bits 31..16 zero;
* if set to 0xFFFFFFFF cell_id not yet recovered */
} SMSHOSTLIB_STATISTICS_ST;
};
typedef struct
{
struct SmsMsgStatisticsInfo_ST {
u32 RequestResult;
SMSHOSTLIB_STATISTICS_ST Stat;
struct SMSHOSTLIB_STATISTICS_ST Stat;
/* Split the calc of the SNR in DAB */
u32 Signal; /* dB */
u32 Noise; /* dB */
} SmsMsgStatisticsInfo_ST;
typedef struct SMSHOSTLIB_ISDBT_LAYER_STAT_S
{
/* Per-layer information */
u32 CodeRate; /* Code Rate from SMSHOSTLIB_CODE_RATE_ET,
* 255 means layer does not exist */
u32 Constellation; /* Constellation from SMSHOSTLIB_CONSTELLATION_ET,
* 255 means layer does not exist */
u32 BER; /* Post Viterbi BER [1E-5], 0xFFFFFFFF indicate N/A */
u32 BERErrorCount; /* Post Viterbi Error Bits Count */
u32 BERBitCount; /* Post Viterbi Total Bits Count */
u32 PreBER; /* Pre Viterbi BER [1E-5], 0xFFFFFFFF indicate N/A */
u32 TS_PER; /* Transport stream PER [%], 0xFFFFFFFF indicate N/A */
u32 ErrorTSPackets; /* Number of erroneous transport-stream packets */
u32 TotalTSPackets; /* Total number of transport-stream packets */
u32 TILdepthI; /* Time interleaver depth I parameter,
* 255 means layer does not exist */
u32 NumberOfSegments; /* Number of segments in layer A,
* 255 means layer does not exist */
u32 TMCCErrors; /* TMCC errors */
} SMSHOSTLIB_ISDBT_LAYER_STAT_ST;
typedef struct SMSHOSTLIB_STATISTICS_ISDBT_S
{
u32 StatisticsType; /* Enumerator identifying the type of the
* structure. Values are the same as
* SMSHOSTLIB_DEVICE_MODES_E
*
* This field MUST always be first in any
* statistics structure */
u32 FullSize; /* Total size of the structure returned by the modem.
* If the size requested by the host is smaller than
* FullSize, the struct will be truncated */
/* Common parameters */
u32 IsRfLocked; /* 0 - not locked, 1 - locked */
u32 IsDemodLocked; /* 0 - not locked, 1 - locked */
u32 IsExternalLNAOn; /* 0 - external LNA off, 1 - external LNA on */
/* Reception quality */
s32 SNR; /* dB */
s32 RSSI; /* dBm */
s32 InBandPwr; /* In band power in dBM */
s32 CarrierOffset; /* Carrier Offset in Hz */
/* Transmission parameters */
u32 Frequency; /* Frequency in Hz */
u32 Bandwidth; /* Bandwidth in MHz */
u32 TransmissionMode; /* ISDB-T transmission mode */
u32 ModemState; /* 0 - Acquisition, 1 - Locked */
u32 GuardInterval; /* Guard Interval, 1 divided by value */
u32 SystemType; /* ISDB-T system type (ISDB-T / ISDB-Tsb) */
u32 PartialReception; /* TRUE - partial reception, FALSE otherwise */
u32 NumOfLayers; /* Number of ISDB-T layers in the network */
/* Per-layer information */
/* Layers A, B and C */
SMSHOSTLIB_ISDBT_LAYER_STAT_ST LayerInfo[3]; /* Per-layer statistics,
see SMSHOSTLIB_ISDBT_LAYER_STAT_ST */
};
/* Interface information */
u32 SmsToHostTxErrors; /* Total number of transmission errors. */
} SMSHOSTLIB_STATISTICS_ISDBT_ST;
typedef struct SMSHOSTLIB_STATISTICS_DVB_S
{
u32 StatisticsType; /* Enumerator identifying the type of the
* structure. Values are the same as
* SMSHOSTLIB_DEVICE_MODES_E
* This field MUST always first in any
* statistics structure */
u32 FullSize; /* Total size of the structure returned by the modem.
* If the size requested by the host is smaller than
* FullSize, the struct will be truncated */
/* Common parameters */
u32 IsRfLocked; /* 0 - not locked, 1 - locked */
u32 IsDemodLocked; /* 0 - not locked, 1 - locked */
u32 IsExternalLNAOn; /* 0 - external LNA off, 1 - external LNA on */
/* Reception quality */
s32 SNR; /* dB */
u32 BER; /* Post Viterbi BER [1E-5] */
u32 BERErrorCount; /* Number of errornous SYNC bits. */
u32 BERBitCount; /* Total number of SYNC bits. */
u32 TS_PER; /* Transport stream PER, 0xFFFFFFFF indicate N/A */
u32 MFER; /* DVB-H frame error rate in percentage,
* 0xFFFFFFFF indicate N/A, valid only for DVB-H */
s32 RSSI; /* dBm */
s32 InBandPwr; /* In band power in dBM */
s32 CarrierOffset; /* Carrier Offset in bin/1024 */
/* Transmission parameters */
u32 Frequency; /* Frequency in Hz */
u32 Bandwidth; /* Bandwidth in MHz */
u32 ModemState; /* from SMSHOSTLIB_DVB_MODEM_STATE_ET */
u32 TransmissionMode; /* FFT mode carriers in Kilos */
u32 GuardInterval; /* Guard Interval, 1 divided by value */
u32 CodeRate; /* Code Rate from SMSHOSTLIB_CODE_RATE_ET */
u32 LPCodeRate; /* Low Priority Code Rate from
* SMSHOSTLIB_CODE_RATE_ET */
u32 Hierarchy; /* Hierarchy from SMSHOSTLIB_HIERARCHY_ET */
u32 Constellation; /* Constellation from SMSHOSTLIB_CONSTELLATION_ET */
/* Burst parameters, valid only for DVB-H */
u32 BurstSize; /* Current burst size in bytes */
u32 BurstDuration; /* Current burst duration in mSec */
u32 BurstCycleTime; /* Current burst cycle time in mSec */
u32 CalculatedBurstCycleTime; /* Current burst cycle time in mSec,
* as calculated by demodulator */
u32 NumOfRows; /* Number of rows in MPE table */
u32 NumOfPaddCols; /* Number of padding columns in MPE table */
u32 NumOfPunctCols; /* Number of puncturing columns in MPE table */
u32 ErrorTSPackets; /* Number of erroneous transport-stream packets */
u32 TotalTSPackets; /* Total number of transport-stream packets */
u32 NumOfValidMpeTlbs; /* Number of MPE tables which do not include
* errors after MPE RS decoding */
u32 NumOfInvalidMpeTlbs; /* Number of MPE tables which include
* errors after MPE RS decoding */
u32 NumOfCorrectedMpeTlbs; /* Number of MPE tables which were
* corrected by MPE RS decoding */
u32 NumMPEReceived; /* DVB-H, Num MPE section received */
/* DVB-H TPS parameters */
u32 CellId; /* TPS Cell ID in bits 15..0, bits 31..16 zero;
* if set to 0xFFFFFFFF cell_id not yet recovered */
u32 DvbhSrvIndHP; /* DVB-H service indication info,
* bit 1 - Time Slicing indicator,
* bit 0 - MPE-FEC indicator */
u32 DvbhSrvIndLP; /* DVB-H service indication info,
* bit 1 - Time Slicing indicator,
* bit 0 - MPE-FEC indicator */
/* Interface information */
u32 SmsToHostTxErrors; /* Total number of transmission errors. */
} SMSHOSTLIB_STATISTICS_DVB_ST;
typedef struct SMSHOSTLIB_GPIO_CONFIG_S
{
u8 Direction; /* GPIO direction: Input - 0, Output - 1 */
u8 PullUpDown; /* PullUp/PullDown: None - 0,
* PullDown - 1, PullUp - 2, Keeper - 3 */
u8 InputCharacteristics; /* Input Characteristics: Normal - 0,
* Schmitt trigger - 1 */
u8 OutputSlewRate; /* Output Slew Rate:
* Fast slew rate - 0, Slow slew rate - 1 */
u8 OutputDriving; /* Output driving capability:
* 4mA - 0, 8mA - 1, 12mA - 2, 16mA - 3 */
} SMSHOSTLIB_GPIO_CONFIG_ST;
typedef struct SMSHOSTLIB_I2C_REQ_S
{
u32 DeviceAddress; /* I2c device address */
u32 WriteCount; /* number of bytes to write */
u32 ReadCount; /* number of bytes to read */
u8 Data[1];
} SMSHOSTLIB_I2C_REQ_ST;
typedef struct SMSHOSTLIB_I2C_RES_S
{
u32 Status; /* non-zero value in case of failure */
u32 ReadCount; /* number of bytes read */
u8 Data[1];
} SMSHOSTLIB_I2C_RES_ST;
typedef struct _smsdvb_client
{
struct smsdvb_client_t {
struct list_head entry;
smscore_device_t *coredev;
smscore_client_t *smsclient;
struct smscore_device_t *coredev;
struct smscore_client_t *smsclient;
struct dvb_adapter adapter;
struct dvb_demux demux;
......@@ -543,7 +362,7 @@ typedef struct _smsdvb_client
/* todo: save freq/band instead whole struct */
struct dvb_frontend_parameters fe_params;
} smsdvb_client_t;
};
extern void smscore_registry_setmode(char *devpath, int mode);
extern int smscore_registry_getmode(char *devpath);
......@@ -551,37 +370,39 @@ extern int smscore_registry_getmode(char *devpath);
extern int smscore_register_hotplug(hotplug_t hotplug);
extern void smscore_unregister_hotplug(hotplug_t hotplug);
extern int smscore_register_device(smsdevice_params_t *params,
smscore_device_t **coredev);
extern void smscore_unregister_device(smscore_device_t *coredev);
extern int smscore_register_device(struct smsdevice_params_t *params,
struct smscore_device_t **coredev);
extern void smscore_unregister_device(struct smscore_device_t *coredev);
extern int smscore_start_device(smscore_device_t *coredev);
extern int smscore_load_firmware(smscore_device_t *coredev, char *filename,
loadfirmware_t loadfirmware_handler);
extern int smscore_start_device(struct smscore_device_t *coredev);
extern int smscore_load_firmware(struct smscore_device_t *coredev,
char *filename,
loadfirmware_t loadfirmware_handler);
extern int smscore_load_firmware_from_buffer(smscore_device_t *coredev,
extern int smscore_load_firmware_from_buffer(struct smscore_device_t *coredev,
u8 *buffer, int size,
int new_mode);
extern int smscore_set_device_mode(smscore_device_t *coredev, int mode);
extern int smscore_get_device_mode(smscore_device_t *coredev);
extern int smscore_set_device_mode(struct smscore_device_t *coredev, int mode);
extern int smscore_get_device_mode(struct smscore_device_t *coredev);
extern int smscore_register_client(smscore_device_t *coredev,
smsclient_params_t *params,
smscore_client_t **client);
extern void smscore_unregister_client(smscore_client_t *client);
extern int smscore_register_client(struct smscore_device_t *coredev,
struct smsclient_params_t *params,
struct smscore_client_t **client);
extern void smscore_unregister_client(struct smscore_client_t *client);
extern int smsclient_sendrequest(smscore_client_t *client,
extern int smsclient_sendrequest(struct smscore_client_t *client,
void *buffer, size_t size);
extern void smscore_onresponse(smscore_device_t *coredev,
smscore_buffer_t *cb);
extern void smscore_onresponse(struct smscore_device_t *coredev,
struct smscore_buffer_t *cb);
extern int smscore_get_common_buffer_size(smscore_device_t *coredev);
extern int smscore_map_common_buffer(smscore_device_t *coredev,
extern int smscore_get_common_buffer_size(struct smscore_device_t *coredev);
extern int smscore_map_common_buffer(struct smscore_device_t *coredev,
struct vm_area_struct *vma);
extern smscore_buffer_t *smscore_getbuffer(smscore_device_t *coredev);
extern void smscore_putbuffer(smscore_device_t *coredev, smscore_buffer_t *cb);
extern struct smscore_buffer_t *smscore_getbuffer(struct smscore_device_t *coredev);
extern void smscore_putbuffer(struct smscore_device_t *coredev,
struct smscore_buffer_t *cb);
/* smsdvb.c */
int smsdvb_register(void);
......
......@@ -29,15 +29,16 @@ DVB_DEFINE_MOD_OPT_ADAPTER_NR(adapter_nr);
struct list_head g_smsdvb_clients;
kmutex_t g_smsdvb_clientslock;
int smsdvb_onresponse(void *context, smscore_buffer_t *cb)
int smsdvb_onresponse(void *context, struct smscore_buffer_t *cb)
{
smsdvb_client_t *client = (smsdvb_client_t *) context;
SmsMsgHdr_ST *phdr = (SmsMsgHdr_ST *)(((u8 *) cb->p) + cb->offset);
struct smsdvb_client_t *client = (struct smsdvb_client_t *) context;
struct SmsMsgHdr_ST *phdr =
(struct SmsMsgHdr_ST *)(((u8 *) cb->p) + cb->offset);
switch (phdr->msgType) {
case MSG_SMS_DVBT_BDA_DATA:
dvb_dmx_swfilter(&client->demux, (u8 *)(phdr + 1),
cb->size - sizeof(SmsMsgHdr_ST));
cb->size - sizeof(struct SmsMsgHdr_ST));
break;
case MSG_SMS_RF_TUNE_RES:
......@@ -46,8 +47,8 @@ int smsdvb_onresponse(void *context, smscore_buffer_t *cb)
case MSG_SMS_GET_STATISTICS_RES:
{
SmsMsgStatisticsInfo_ST *p =
(SmsMsgStatisticsInfo_ST *)(phdr + 1);
struct SmsMsgStatisticsInfo_ST *p =
(struct SmsMsgStatisticsInfo_ST *)(phdr + 1);
if (p->Stat.IsDemodLocked) {
client->fe_status = FE_HAS_SIGNAL |
......@@ -82,7 +83,7 @@ int smsdvb_onresponse(void *context, smscore_buffer_t *cb)
return 0;
}
void smsdvb_unregister_client(smsdvb_client_t *client)
void smsdvb_unregister_client(struct smsdvb_client_t *client)
{
/* must be called under clientslock */
......@@ -100,16 +101,16 @@ void smsdvb_onremove(void *context)
{
kmutex_lock(&g_smsdvb_clientslock);
smsdvb_unregister_client((smsdvb_client_t *) context);
smsdvb_unregister_client((struct smsdvb_client_t *) context);
kmutex_unlock(&g_smsdvb_clientslock);
}
static int smsdvb_start_feed(struct dvb_demux_feed *feed)
{
smsdvb_client_t *client =
container_of(feed->demux, smsdvb_client_t, demux);
SmsMsgData_ST PidMsg;
struct smsdvb_client_t *client =
container_of(feed->demux, struct smsdvb_client_t, demux);
struct SmsMsgData_ST PidMsg;
printk(KERN_DEBUG "%s add pid %d(%x)\n", __func__,
feed->pid, feed->pid);
......@@ -127,9 +128,9 @@ static int smsdvb_start_feed(struct dvb_demux_feed *feed)
static int smsdvb_stop_feed(struct dvb_demux_feed *feed)
{
smsdvb_client_t *client =
container_of(feed->demux, smsdvb_client_t, demux);
SmsMsgData_ST PidMsg;
struct smsdvb_client_t *client =
container_of(feed->demux, struct smsdvb_client_t, demux);
struct SmsMsgData_ST PidMsg;
printk(KERN_DEBUG "%s remove pid %d(%x)\n", __func__,
feed->pid, feed->pid);
......@@ -145,7 +146,7 @@ static int smsdvb_stop_feed(struct dvb_demux_feed *feed)
&PidMsg, sizeof(PidMsg));
}
static int smsdvb_sendrequest_and_wait(smsdvb_client_t *client,
static int smsdvb_sendrequest_and_wait(struct smsdvb_client_t *client,
void *buffer, size_t size,
struct completion *completion)
{
......@@ -158,18 +159,19 @@ static int smsdvb_sendrequest_and_wait(smsdvb_client_t *client,
0 : -ETIME;
}
static int smsdvb_send_statistics_request(smsdvb_client_t *client)
static int smsdvb_send_statistics_request(struct smsdvb_client_t *client)
{
SmsMsgHdr_ST Msg = { MSG_SMS_GET_STATISTICS_REQ,
struct SmsMsgHdr_ST Msg = { MSG_SMS_GET_STATISTICS_REQ,
DVBT_BDA_CONTROL_MSG_ID,
HIF_TASK, sizeof(SmsMsgHdr_ST), 0 };
HIF_TASK, sizeof(struct SmsMsgHdr_ST), 0 };
return smsdvb_sendrequest_and_wait(client, &Msg, sizeof(Msg),
&client->stat_done);
}
static int smsdvb_read_status(struct dvb_frontend *fe, fe_status_t *stat)
{
smsdvb_client_t *client = container_of(fe, smsdvb_client_t, frontend);
struct smsdvb_client_t *client =
container_of(fe, struct smsdvb_client_t, frontend);
int rc = smsdvb_send_statistics_request(client);
if (!rc)
......@@ -180,7 +182,8 @@ static int smsdvb_read_status(struct dvb_frontend *fe, fe_status_t *stat)
static int smsdvb_read_ber(struct dvb_frontend *fe, u32 *ber)
{
smsdvb_client_t *client = container_of(fe, smsdvb_client_t, frontend);
struct smsdvb_client_t *client =
container_of(fe, struct smsdvb_client_t, frontend);
int rc = smsdvb_send_statistics_request(client);
if (!rc)
......@@ -191,7 +194,8 @@ static int smsdvb_read_ber(struct dvb_frontend *fe, u32 *ber)
static int smsdvb_read_signal_strength(struct dvb_frontend *fe, u16 *strength)
{
smsdvb_client_t *client = container_of(fe, smsdvb_client_t, frontend);
struct smsdvb_client_t *client =
container_of(fe, struct smsdvb_client_t, frontend);
int rc = smsdvb_send_statistics_request(client);
if (!rc)
......@@ -202,7 +206,8 @@ static int smsdvb_read_signal_strength(struct dvb_frontend *fe, u16 *strength)
static int smsdvb_read_snr(struct dvb_frontend *fe, u16 *snr)
{
smsdvb_client_t *client = container_of(fe, smsdvb_client_t, frontend);
struct smsdvb_client_t *client =
container_of(fe, struct smsdvb_client_t, frontend);
int rc = smsdvb_send_statistics_request(client);
if (!rc)
......@@ -225,11 +230,11 @@ static int smsdvb_get_tune_settings(struct dvb_frontend *fe,
static int smsdvb_set_frontend(struct dvb_frontend *fe,
struct dvb_frontend_parameters *fep)
{
smsdvb_client_t *client = container_of(fe, smsdvb_client_t, frontend);
struct smsdvb_client_t *client =
container_of(fe, struct smsdvb_client_t, frontend);
struct
{
SmsMsgHdr_ST Msg;
struct {
struct SmsMsgHdr_ST Msg;
u32 Data[3];
} Msg;
......@@ -259,7 +264,8 @@ static int smsdvb_set_frontend(struct dvb_frontend *fe,
static int smsdvb_get_frontend(struct dvb_frontend *fe,
struct dvb_frontend_parameters *fep)
{
smsdvb_client_t *client = container_of(fe, smsdvb_client_t, frontend);
struct smsdvb_client_t *client =
container_of(fe, struct smsdvb_client_t, frontend);
printk(KERN_DEBUG "%s\n", __func__);
......@@ -303,11 +309,11 @@ static struct dvb_frontend_ops smsdvb_fe_ops = {
.read_snr = smsdvb_read_snr,
};
int smsdvb_hotplug(smscore_device_t *coredev,
int smsdvb_hotplug(struct smscore_device_t *coredev,
struct device *device, int arrival)
{
smsclient_params_t params;
smsdvb_client_t *client;
struct smsclient_params_t params;
struct smsdvb_client_t *client;
int rc;
/* device removal handled by onremove callback */
......@@ -320,7 +326,7 @@ int smsdvb_hotplug(smscore_device_t *coredev,
return 0;
}
client = kzalloc(sizeof(smsdvb_client_t), GFP_KERNEL);
client = kzalloc(sizeof(struct smsdvb_client_t), GFP_KERNEL);
if (!client) {
printk(KERN_INFO "%s kmalloc() failed\n", __func__);
return -ENOMEM;
......@@ -439,7 +445,7 @@ void smsdvb_unregister(void)
while (!list_empty(&g_smsdvb_clients))
smsdvb_unregister_client(
(smsdvb_client_t *) g_smsdvb_clients.next);
(struct smsdvb_client_t *) g_smsdvb_clients.next);
kmutex_unlock(&g_smsdvb_clientslock);
}
......@@ -40,33 +40,31 @@
#define USB_PID_NOVA_B 0x0201
#define USB_PID_VEGA 0x0300
typedef struct _smsusb_device smsusb_device_t;
struct smsusb_device_t;
typedef struct _smsusb_urb
{
smscore_buffer_t *cb;
smsusb_device_t *dev;
struct smsusb_urb_t {
struct smscore_buffer_t *cb;
struct smsusb_device_t *dev;
struct urb urb;
} smsusb_urb_t;
struct urb urb;
};
typedef struct _smsusb_device
{
struct smsusb_device_t {
struct usb_device *udev;
smscore_device_t *coredev;
struct smscore_device_t *coredev;
smsusb_urb_t surbs[MAX_URBS];
struct smsusb_urb_t surbs[MAX_URBS];
int response_alignment;
int buffer_size;
} *psmsusb_device_t;
};
int smsusb_submit_urb(smsusb_device_t *dev, smsusb_urb_t *surb);
int smsusb_submit_urb(struct smsusb_device_t *dev, struct smsusb_urb_t *surb);
void smsusb_onresponse(struct urb *urb)
{
smsusb_urb_t *surb = (smsusb_urb_t *) urb->context;
smsusb_device_t *dev = surb->dev;
struct smsusb_urb_t *surb = (struct smsusb_urb_t *) urb->context;
struct smsusb_device_t *dev = surb->dev;
if (urb->status < 0) {
printk(KERN_INFO "%s error, urb status %d, %d bytes\n",
......@@ -75,7 +73,7 @@ void smsusb_onresponse(struct urb *urb)
}
if (urb->actual_length > 0) {
SmsMsgHdr_ST *phdr = (SmsMsgHdr_ST *) surb->cb->p;
struct SmsMsgHdr_ST *phdr = (struct SmsMsgHdr_ST *) surb->cb->p;
if (urb->actual_length >= phdr->msgLength) {
surb->cb->size = phdr->msgLength;
......@@ -102,7 +100,7 @@ void smsusb_onresponse(struct urb *urb)
/* move buffer pointer and
* copy header to its new location */
memcpy((char *) phdr + surb->cb->offset,
phdr, sizeof(SmsMsgHdr_ST));
phdr, sizeof(struct SmsMsgHdr_ST));
} else
surb->cb->offset = 0;
......@@ -119,7 +117,7 @@ void smsusb_onresponse(struct urb *urb)
smsusb_submit_urb(dev, surb);
}
int smsusb_submit_urb(smsusb_device_t *dev, smsusb_urb_t *surb)
int smsusb_submit_urb(struct smsusb_device_t *dev, struct smsusb_urb_t *surb)
{
if (!surb->cb) {
surb->cb = smscore_getbuffer(dev->coredev);
......@@ -145,7 +143,7 @@ int smsusb_submit_urb(smsusb_device_t *dev, smsusb_urb_t *surb)
return usb_submit_urb(&surb->urb, GFP_ATOMIC);
}
void smsusb_stop_streaming(smsusb_device_t *dev)
void smsusb_stop_streaming(struct smsusb_device_t *dev)
{
int i;
......@@ -159,7 +157,7 @@ void smsusb_stop_streaming(smsusb_device_t *dev)
}
}
int smsusb_start_streaming(smsusb_device_t *dev)
int smsusb_start_streaming(struct smsusb_device_t *dev)
{
int i, rc;
......@@ -178,7 +176,7 @@ int smsusb_start_streaming(smsusb_device_t *dev)
int smsusb_sendrequest(void *context, void *buffer, size_t size)
{
smsusb_device_t *dev = (smsusb_device_t *) context;
struct smsusb_device_t *dev = (struct smsusb_device_t *) context;
int dummy;
return usb_bulk_msg(dev->udev, usb_sndbulkpipe(dev->udev, 2),
......@@ -235,7 +233,8 @@ int smsusb1_load_firmware(struct usb_device *udev, int id)
void smsusb1_detectmode(void *context, int *mode)
{
char *product_string = ((smsusb_device_t *) context)->udev->product;
char *product_string =
((struct smsusb_device_t *) context)->udev->product;
*mode = DEVICE_MODE_NONE;
......@@ -256,8 +255,8 @@ void smsusb1_detectmode(void *context, int *mode)
int smsusb1_setmode(void *context, int mode)
{
SmsMsgHdr_ST Msg = { MSG_SW_RELOAD_REQ, 0, HIF_TASK,
sizeof(SmsMsgHdr_ST), 0 };
struct SmsMsgHdr_ST Msg = { MSG_SW_RELOAD_REQ, 0, HIF_TASK,
sizeof(struct SmsMsgHdr_ST), 0 };
if (mode < DEVICE_MODE_DVBT || mode > DEVICE_MODE_DVBT_BDA) {
printk(KERN_INFO "%s invalid firmware id specified %d\n",
......@@ -270,7 +269,8 @@ int smsusb1_setmode(void *context, int mode)
void smsusb_term_device(struct usb_interface *intf)
{
smsusb_device_t *dev = (smsusb_device_t *) usb_get_intfdata(intf);
struct smsusb_device_t *dev =
(struct smsusb_device_t *) usb_get_intfdata(intf);
if (dev) {
smsusb_stop_streaming(dev);
......@@ -289,15 +289,15 @@ void smsusb_term_device(struct usb_interface *intf)
int smsusb_init_device(struct usb_interface *intf)
{
smsdevice_params_t params;
smsusb_device_t *dev;
struct smsdevice_params_t params;
struct smsusb_device_t *dev;
int i, rc;
/* create device object */
dev = kzalloc(sizeof(smsusb_device_t), GFP_KERNEL);
dev = kzalloc(sizeof(struct smsusb_device_t), GFP_KERNEL);
if (!dev) {
printk(KERN_INFO "%s kzalloc(sizeof(smsusb_device_t) failed\n",
__func__);
printk(KERN_INFO "%s kzalloc(sizeof(struct smsusb_device_t) "
"failed\n", __func__);
return -ENOMEM;
}
......@@ -334,7 +334,7 @@ int smsusb_init_device(struct usb_interface *intf)
dev->buffer_size = USB2_BUFFER_SIZE;
dev->response_alignment =
dev->udev->ep_in[1]->desc.wMaxPacketSize -
sizeof(SmsMsgHdr_ST);
sizeof(struct SmsMsgHdr_ST);
params.flags |= SMS_DEVICE_FAMILY2;
break;
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册