mirror of
https://github.com/a52xq-dev/kernel.git
synced 2026-10-18 21:58:11 +07:00
media fixes for v4.15-rc3
-----BEGIN PGP SIGNATURE-----
iQIcBAABAgAGBQJaKrOpAAoJEAhfPr2O5OEVK5sP/iHWDJtRw/WWBYOqF9cGFl0o
ssh1iXJAsOmLjaARMOkxQBPLwTvVMreux2fHow/mukrXB8BIR7OmflBaQRLM3lbW
xm9G4yarXf7xgkxngisemQrJiweNyaNDX9P0BqJLV55Xhp+rO2Q6rutspho3xzoo
Pmz7bgnt0FjBKz+0LWnKnzozdNinj2uhTdBOTgm9rUuUUGiAVTAQSNUq2e5Gzw3m
DhO4UPOJDRmnZ6Rqldq2pD2wzmRfbVonirz7IEh7j2opcAoCM2TnmM+Z9C5zjlUj
XVFagiR+XG8lsh2zvHdweter4X9DqLBlMbBDVAQ+vH+xhBuz63Yqq1pSIvXA342U
rs1X182FSyE+pOxipuae94csHkyzlb9tmzoiUoItU+QXi8Wlg8pLH6GFQe/72t/g
HpcXMBq2lflc2KDstx+QGs/G+1EYtz64vUXZ4pvuIitrhdbd5ulLh7Y7nb7qfEym
WEHpaJwxh4MZh6RzB2tq+Tvy0/sD1krNjPTXtf2CuTdFNUuvk8QenRW1q2YVA06L
UOTxRpfPYUPwhGKOoKb2IJ5g1xoztoqMaafdsUJ16H7fcuVtE9xQayVCVhaBuo08
4g7SFCb7MhNLFG1Su291u9PKYlvGhCJaDPKE/6E+IM6szxt7h/kveYsdb05yWOoB
di+cIWZkCRUzbO7fxz4J
=xoHW
-----END PGP SIGNATURE-----
Merge tag 'media/v4.15-2' of git://git.kernel.org/pub/scm/linux/kernel/git/mchehab/linux-media
Pull media fixes from Mauro Carvalho Chehab:
"A series of fixes for the media subsytem:
- The largest amount of fixes in this series is with regards to
comments that aren't kernel-doc, but start with "/**".
A new check added for 4.15 makes it to produce a *huge* amount of
new warnings (I'm compiling here with W=1). Most of the patches in
this series fix those.
No code changes - just comment changes at the source files
- rc: some fixed in order to better handle RC repetition codes
- v4l-async: use the v4l2_dev from the root notifier when matching
sub-devices
- v4l2-fwnode: Check subdev count after checking port
- ov 13858 and et8ek8: compilation fix with randconfigs
- usbtv: a trivial new USB ID addition
- dibusb-common: don't do DMA on stack on firmware load
- imx274: Fix error handling, add MAINTAINERS entry
- sir_ir: detect presence of port"
* tag 'media/v4.15-2' of git://git.kernel.org/pub/scm/linux/kernel/git/mchehab/linux-media: (50 commits)
media: imx274: Fix error handling, add MAINTAINERS entry
media: v4l: async: use the v4l2_dev from the root notifier when matching sub-devices
media: v4l2-fwnode: Check subdev count after checking port
media: et8ek8: select V4L2_FWNODE
media: ov13858: Select V4L2_FWNODE
media: rc: partial revert of "media: rc: per-protocol repeat period"
media: dvb: i2c transfers over usb cannot be done from stack
media: dvb-frontends: complete kernel-doc markups
media: docs: add documentation for frontend attach info
media: dvb_frontends: fix kernel-doc macros
media: drivers: remove "/**" from non-kernel-doc comments
media: lm3560: add a missing kernel-doc parameter
media: rcar_jpu: fix two kernel-doc markups
media: vsp1: add a missing kernel-doc parameter
media: soc_camera: fix a kernel-doc markup
media: mt2063: fix some kernel-doc warnings
media: radio-wl1273: fix a parameter name at kernel-doc macro
media: s3c-camif: add missing description at s3c_camif_find_format()
media: mtk-vpu: add description for wdt fields at struct mtk_vpu
media: vdec: fix some kernel-doc warnings
...
This commit is contained in:
commit
77071bc6c4
269 changed files with 3169 additions and 2951 deletions
30
Documentation/media/dvb-drivers/frontends.rst
Normal file
30
Documentation/media/dvb-drivers/frontends.rst
Normal file
|
|
@ -0,0 +1,30 @@
|
|||
****************
|
||||
Frontend drivers
|
||||
****************
|
||||
|
||||
Frontend attach headers
|
||||
***********************
|
||||
|
||||
.. Keep it on alphabetic order
|
||||
|
||||
.. kernel-doc:: drivers/media/dvb-frontends/a8293.h
|
||||
.. kernel-doc:: drivers/media/dvb-frontends/af9013.h
|
||||
.. kernel-doc:: drivers/media/dvb-frontends/ascot2e.h
|
||||
.. kernel-doc:: drivers/media/dvb-frontends/cxd2820r.h
|
||||
.. kernel-doc:: drivers/media/dvb-frontends/drxk.h
|
||||
.. kernel-doc:: drivers/media/dvb-frontends/dvb-pll.h
|
||||
.. kernel-doc:: drivers/media/dvb-frontends/helene.h
|
||||
.. kernel-doc:: drivers/media/dvb-frontends/horus3a.h
|
||||
.. kernel-doc:: drivers/media/dvb-frontends/ix2505v.h
|
||||
.. kernel-doc:: drivers/media/dvb-frontends/m88ds3103.h
|
||||
.. kernel-doc:: drivers/media/dvb-frontends/mb86a20s.h
|
||||
.. kernel-doc:: drivers/media/dvb-frontends/mn88472.h
|
||||
.. kernel-doc:: drivers/media/dvb-frontends/rtl2830.h
|
||||
.. kernel-doc:: drivers/media/dvb-frontends/rtl2832.h
|
||||
.. kernel-doc:: drivers/media/dvb-frontends/rtl2832_sdr.h
|
||||
.. kernel-doc:: drivers/media/dvb-frontends/stb6000.h
|
||||
.. kernel-doc:: drivers/media/dvb-frontends/tda10071.h
|
||||
.. kernel-doc:: drivers/media/dvb-frontends/tda826x.h
|
||||
.. kernel-doc:: drivers/media/dvb-frontends/zd1301_demod.h
|
||||
.. kernel-doc:: drivers/media/dvb-frontends/zl10036.h
|
||||
|
||||
|
|
@ -41,4 +41,5 @@ For more details see the file COPYING in the source distribution of Linux.
|
|||
technisat
|
||||
ttusb-dec
|
||||
udev
|
||||
frontends
|
||||
contributors
|
||||
|
|
|
|||
|
|
@ -12643,6 +12643,14 @@ S: Maintained
|
|||
F: drivers/ssb/
|
||||
F: include/linux/ssb/
|
||||
|
||||
SONY IMX274 SENSOR DRIVER
|
||||
M: Leon Luo <leonl@leopardimaging.com>
|
||||
L: linux-media@vger.kernel.org
|
||||
T: git git://linuxtv.org/media_tree.git
|
||||
S: Maintained
|
||||
F: drivers/media/i2c/imx274.c
|
||||
F: Documentation/devicetree/bindings/media/i2c/imx274.txt
|
||||
|
||||
SONY MEMORYSTICK CARD SUPPORT
|
||||
M: Alex Dubov <oakad@yahoo.com>
|
||||
W: http://tifmxx.berlios.de/
|
||||
|
|
|
|||
|
|
@ -521,13 +521,13 @@ static void list_add_locked(struct list_head *new, struct list_head *head,
|
|||
spin_unlock_irqrestore(lock, flags);
|
||||
}
|
||||
|
||||
/**
|
||||
/*
|
||||
* register a client callback that called when device plugged in/unplugged
|
||||
* NOTE: if devices exist callback is called immediately for each device
|
||||
*
|
||||
* @param hotplug callback
|
||||
*
|
||||
* @return 0 on success, <0 on error.
|
||||
* return: 0 on success, <0 on error.
|
||||
*/
|
||||
int smscore_register_hotplug(hotplug_t hotplug)
|
||||
{
|
||||
|
|
@ -562,7 +562,7 @@ int smscore_register_hotplug(hotplug_t hotplug)
|
|||
}
|
||||
EXPORT_SYMBOL_GPL(smscore_register_hotplug);
|
||||
|
||||
/**
|
||||
/*
|
||||
* unregister a client callback that called when device plugged in/unplugged
|
||||
*
|
||||
* @param hotplug callback
|
||||
|
|
@ -636,7 +636,7 @@ smscore_buffer_t *smscore_createbuffer(u8 *buffer, void *common_buffer,
|
|||
return cb;
|
||||
}
|
||||
|
||||
/**
|
||||
/*
|
||||
* creates coredev object for a device, prepares buffers,
|
||||
* creates buffer mappings, notifies registered hotplugs about new device.
|
||||
*
|
||||
|
|
@ -644,7 +644,7 @@ smscore_buffer_t *smscore_createbuffer(u8 *buffer, void *common_buffer,
|
|||
* and handlers
|
||||
* @param coredev pointer to a value that receives created coredev object
|
||||
*
|
||||
* @return 0 on success, <0 on error.
|
||||
* return: 0 on success, <0 on error.
|
||||
*/
|
||||
int smscore_register_device(struct smsdevice_params_t *params,
|
||||
struct smscore_device_t **coredev,
|
||||
|
|
@ -764,10 +764,10 @@ static int smscore_sendrequest_and_wait(struct smscore_device_t *coredev,
|
|||
0 : -ETIME;
|
||||
}
|
||||
|
||||
/**
|
||||
/*
|
||||
* Starts & enables IR operations
|
||||
*
|
||||
* @return 0 on success, < 0 on error.
|
||||
* return: 0 on success, < 0 on error.
|
||||
*/
|
||||
static int smscore_init_ir(struct smscore_device_t *coredev)
|
||||
{
|
||||
|
|
@ -812,13 +812,13 @@ static int smscore_init_ir(struct smscore_device_t *coredev)
|
|||
return 0;
|
||||
}
|
||||
|
||||
/**
|
||||
/*
|
||||
* configures device features according to board configuration structure.
|
||||
*
|
||||
* @param coredev pointer to a coredev object returned by
|
||||
* smscore_register_device
|
||||
*
|
||||
* @return 0 on success, <0 on error.
|
||||
* return: 0 on success, <0 on error.
|
||||
*/
|
||||
static int smscore_configure_board(struct smscore_device_t *coredev)
|
||||
{
|
||||
|
|
@ -861,13 +861,13 @@ static int smscore_configure_board(struct smscore_device_t *coredev)
|
|||
return 0;
|
||||
}
|
||||
|
||||
/**
|
||||
/*
|
||||
* sets initial device mode and notifies client hotplugs that device is ready
|
||||
*
|
||||
* @param coredev pointer to a coredev object returned by
|
||||
* smscore_register_device
|
||||
*
|
||||
* @return 0 on success, <0 on error.
|
||||
* return: 0 on success, <0 on error.
|
||||
*/
|
||||
int smscore_start_device(struct smscore_device_t *coredev)
|
||||
{
|
||||
|
|
@ -1087,7 +1087,7 @@ static char *smscore_fw_lkup[][DEVICE_MODE_MAX] = {
|
|||
},
|
||||
};
|
||||
|
||||
/**
|
||||
/*
|
||||
* get firmware file name from one of the two mechanisms : sms_boards or
|
||||
* smscore_fw_lkup.
|
||||
* @param coredev pointer to a coredev object returned by
|
||||
|
|
@ -1096,7 +1096,7 @@ static char *smscore_fw_lkup[][DEVICE_MODE_MAX] = {
|
|||
* @param lookup if 1, always get the fw filename from smscore_fw_lkup
|
||||
* table. if 0, try first to get from sms_boards
|
||||
*
|
||||
* @return 0 on success, <0 on error.
|
||||
* return: 0 on success, <0 on error.
|
||||
*/
|
||||
static char *smscore_get_fw_filename(struct smscore_device_t *coredev,
|
||||
int mode)
|
||||
|
|
@ -1125,7 +1125,7 @@ static char *smscore_get_fw_filename(struct smscore_device_t *coredev,
|
|||
return fw[mode];
|
||||
}
|
||||
|
||||
/**
|
||||
/*
|
||||
* loads specified firmware into a buffer and calls device loadfirmware_handler
|
||||
*
|
||||
* @param coredev pointer to a coredev object returned by
|
||||
|
|
@ -1133,7 +1133,7 @@ static char *smscore_get_fw_filename(struct smscore_device_t *coredev,
|
|||
* @param filename null-terminated string specifies firmware file name
|
||||
* @param loadfirmware_handler device handler that loads firmware
|
||||
*
|
||||
* @return 0 on success, <0 on error.
|
||||
* return: 0 on success, <0 on error.
|
||||
*/
|
||||
static int smscore_load_firmware_from_file(struct smscore_device_t *coredev,
|
||||
int mode,
|
||||
|
|
@ -1182,14 +1182,14 @@ static int smscore_load_firmware_from_file(struct smscore_device_t *coredev,
|
|||
return rc;
|
||||
}
|
||||
|
||||
/**
|
||||
/*
|
||||
* notifies all clients registered with the device, notifies hotplugs,
|
||||
* frees all buffers and coredev object
|
||||
*
|
||||
* @param coredev pointer to a coredev object returned by
|
||||
* smscore_register_device
|
||||
*
|
||||
* @return 0 on success, <0 on error.
|
||||
* return: 0 on success, <0 on error.
|
||||
*/
|
||||
void smscore_unregister_device(struct smscore_device_t *coredev)
|
||||
{
|
||||
|
|
@ -1282,14 +1282,14 @@ static int smscore_detect_mode(struct smscore_device_t *coredev)
|
|||
return rc;
|
||||
}
|
||||
|
||||
/**
|
||||
/*
|
||||
* send init device request and wait for response
|
||||
*
|
||||
* @param coredev pointer to a coredev object returned by
|
||||
* smscore_register_device
|
||||
* @param mode requested mode of operation
|
||||
*
|
||||
* @return 0 on success, <0 on error.
|
||||
* return: 0 on success, <0 on error.
|
||||
*/
|
||||
static int smscore_init_device(struct smscore_device_t *coredev, int mode)
|
||||
{
|
||||
|
|
@ -1315,7 +1315,7 @@ static int smscore_init_device(struct smscore_device_t *coredev, int mode)
|
|||
return rc;
|
||||
}
|
||||
|
||||
/**
|
||||
/*
|
||||
* calls device handler to change mode of operation
|
||||
* NOTE: stellar/usb may disconnect when changing mode
|
||||
*
|
||||
|
|
@ -1323,7 +1323,7 @@ static int smscore_init_device(struct smscore_device_t *coredev, int mode)
|
|||
* smscore_register_device
|
||||
* @param mode requested mode of operation
|
||||
*
|
||||
* @return 0 on success, <0 on error.
|
||||
* return: 0 on success, <0 on error.
|
||||
*/
|
||||
int smscore_set_device_mode(struct smscore_device_t *coredev, int mode)
|
||||
{
|
||||
|
|
@ -1411,13 +1411,13 @@ int smscore_set_device_mode(struct smscore_device_t *coredev, int mode)
|
|||
return rc;
|
||||
}
|
||||
|
||||
/**
|
||||
/*
|
||||
* calls device handler to get current mode of operation
|
||||
*
|
||||
* @param coredev pointer to a coredev object returned by
|
||||
* smscore_register_device
|
||||
*
|
||||
* @return current mode
|
||||
* return: current mode
|
||||
*/
|
||||
int smscore_get_device_mode(struct smscore_device_t *coredev)
|
||||
{
|
||||
|
|
@ -1425,7 +1425,7 @@ int smscore_get_device_mode(struct smscore_device_t *coredev)
|
|||
}
|
||||
EXPORT_SYMBOL_GPL(smscore_get_device_mode);
|
||||
|
||||
/**
|
||||
/*
|
||||
* find client by response id & type within the clients list.
|
||||
* return client handle or NULL.
|
||||
*
|
||||
|
|
@ -1462,7 +1462,7 @@ found:
|
|||
return client;
|
||||
}
|
||||
|
||||
/**
|
||||
/*
|
||||
* find client by response id/type, call clients onresponse handler
|
||||
* return buffer to pool on error
|
||||
*
|
||||
|
|
@ -1615,13 +1615,13 @@ void smscore_onresponse(struct smscore_device_t *coredev,
|
|||
}
|
||||
EXPORT_SYMBOL_GPL(smscore_onresponse);
|
||||
|
||||
/**
|
||||
/*
|
||||
* return pointer to next free buffer descriptor from core pool
|
||||
*
|
||||
* @param coredev pointer to a coredev object returned by
|
||||
* smscore_register_device
|
||||
*
|
||||
* @return pointer to descriptor on success, NULL on error.
|
||||
* return: pointer to descriptor on success, NULL on error.
|
||||
*/
|
||||
|
||||
static struct smscore_buffer_t *get_entry(struct smscore_device_t *coredev)
|
||||
|
|
@ -1648,7 +1648,7 @@ struct smscore_buffer_t *smscore_getbuffer(struct smscore_device_t *coredev)
|
|||
}
|
||||
EXPORT_SYMBOL_GPL(smscore_getbuffer);
|
||||
|
||||
/**
|
||||
/*
|
||||
* return buffer descriptor to a pool
|
||||
*
|
||||
* @param coredev pointer to a coredev object returned by
|
||||
|
|
@ -1693,7 +1693,7 @@ static int smscore_validate_client(struct smscore_device_t *coredev,
|
|||
return 0;
|
||||
}
|
||||
|
||||
/**
|
||||
/*
|
||||
* creates smsclient object, check that id is taken by another client
|
||||
*
|
||||
* @param coredev pointer to a coredev object from clients hotplug
|
||||
|
|
@ -1705,7 +1705,7 @@ static int smscore_validate_client(struct smscore_device_t *coredev,
|
|||
* @param context client-specific context
|
||||
* @param client pointer to a value that receives created smsclient object
|
||||
*
|
||||
* @return 0 on success, <0 on error.
|
||||
* return: 0 on success, <0 on error.
|
||||
*/
|
||||
int smscore_register_client(struct smscore_device_t *coredev,
|
||||
struct smsclient_params_t *params,
|
||||
|
|
@ -1740,7 +1740,7 @@ int smscore_register_client(struct smscore_device_t *coredev,
|
|||
}
|
||||
EXPORT_SYMBOL_GPL(smscore_register_client);
|
||||
|
||||
/**
|
||||
/*
|
||||
* frees smsclient object and all subclients associated with it
|
||||
*
|
||||
* @param client pointer to smsclient object returned by
|
||||
|
|
@ -1771,7 +1771,7 @@ void smscore_unregister_client(struct smscore_client_t *client)
|
|||
}
|
||||
EXPORT_SYMBOL_GPL(smscore_unregister_client);
|
||||
|
||||
/**
|
||||
/*
|
||||
* verifies that source id is not taken by another client,
|
||||
* calls device handler to send requests to the device
|
||||
*
|
||||
|
|
@ -1780,7 +1780,7 @@ EXPORT_SYMBOL_GPL(smscore_unregister_client);
|
|||
* @param buffer pointer to a request buffer
|
||||
* @param size size (in bytes) of request buffer
|
||||
*
|
||||
* @return 0 on success, <0 on error.
|
||||
* return: 0 on success, <0 on error.
|
||||
*/
|
||||
int smsclient_sendrequest(struct smscore_client_t *client,
|
||||
void *buffer, size_t size)
|
||||
|
|
|
|||
|
|
@ -206,7 +206,7 @@ static int dvb_ca_en50221_write_data(struct dvb_ca_private *ca, int slot,
|
|||
* @hlen: Number of bytes in haystack.
|
||||
* @needle: Buffer to find.
|
||||
* @nlen: Number of bytes in needle.
|
||||
* @return Pointer into haystack needle was found at, or NULL if not found.
|
||||
* return: Pointer into haystack needle was found at, or NULL if not found.
|
||||
*/
|
||||
static char *findstr(char *haystack, int hlen, char *needle, int nlen)
|
||||
{
|
||||
|
|
@ -226,7 +226,7 @@ static char *findstr(char *haystack, int hlen, char *needle, int nlen)
|
|||
/* ************************************************************************** */
|
||||
/* EN50221 physical interface functions */
|
||||
|
||||
/**
|
||||
/*
|
||||
* dvb_ca_en50221_check_camstatus - Check CAM status.
|
||||
*/
|
||||
static int dvb_ca_en50221_check_camstatus(struct dvb_ca_private *ca, int slot)
|
||||
|
|
@ -275,9 +275,9 @@ static int dvb_ca_en50221_check_camstatus(struct dvb_ca_private *ca, int slot)
|
|||
* @ca: CA instance.
|
||||
* @slot: Slot on interface.
|
||||
* @waitfor: Flags to wait for.
|
||||
* @timeout_ms: Timeout in milliseconds.
|
||||
* @timeout_hz: Timeout in milliseconds.
|
||||
*
|
||||
* @return 0 on success, nonzero on error.
|
||||
* return: 0 on success, nonzero on error.
|
||||
*/
|
||||
static int dvb_ca_en50221_wait_if_status(struct dvb_ca_private *ca, int slot,
|
||||
u8 waitfor, int timeout_hz)
|
||||
|
|
@ -325,7 +325,7 @@ static int dvb_ca_en50221_wait_if_status(struct dvb_ca_private *ca, int slot,
|
|||
* @ca: CA instance.
|
||||
* @slot: Slot id.
|
||||
*
|
||||
* @return 0 on success, nonzero on failure.
|
||||
* return: 0 on success, nonzero on failure.
|
||||
*/
|
||||
static int dvb_ca_en50221_link_init(struct dvb_ca_private *ca, int slot)
|
||||
{
|
||||
|
|
@ -397,11 +397,11 @@ static int dvb_ca_en50221_link_init(struct dvb_ca_private *ca, int slot)
|
|||
* @ca: CA instance.
|
||||
* @slot: Slot id.
|
||||
* @address: Address to read from. Updated.
|
||||
* @tupleType: Tuple id byte. Updated.
|
||||
* @tupleLength: Tuple length. Updated.
|
||||
* @tuple_type: Tuple id byte. Updated.
|
||||
* @tuple_length: Tuple length. Updated.
|
||||
* @tuple: Dest buffer for tuple (must be 256 bytes). Updated.
|
||||
*
|
||||
* @return 0 on success, nonzero on error.
|
||||
* return: 0 on success, nonzero on error.
|
||||
*/
|
||||
static int dvb_ca_en50221_read_tuple(struct dvb_ca_private *ca, int slot,
|
||||
int *address, int *tuple_type,
|
||||
|
|
@ -455,7 +455,7 @@ static int dvb_ca_en50221_read_tuple(struct dvb_ca_private *ca, int slot,
|
|||
* @ca: CA instance.
|
||||
* @slot: Slot id.
|
||||
*
|
||||
* @return 0 on success, <0 on failure.
|
||||
* return: 0 on success, <0 on failure.
|
||||
*/
|
||||
static int dvb_ca_en50221_parse_attributes(struct dvb_ca_private *ca, int slot)
|
||||
{
|
||||
|
|
@ -632,10 +632,11 @@ static int dvb_ca_en50221_set_configoption(struct dvb_ca_private *ca, int slot)
|
|||
* @ca: CA instance.
|
||||
* @slot: Slot to read from.
|
||||
* @ebuf: If non-NULL, the data will be written to this buffer. If NULL,
|
||||
* the data will be added into the buffering system as a normal fragment.
|
||||
* the data will be added into the buffering system as a normal
|
||||
* fragment.
|
||||
* @ecount: Size of ebuf. Ignored if ebuf is NULL.
|
||||
*
|
||||
* @return Number of bytes read, or < 0 on error
|
||||
* return: Number of bytes read, or < 0 on error
|
||||
*/
|
||||
static int dvb_ca_en50221_read_data(struct dvb_ca_private *ca, int slot,
|
||||
u8 *ebuf, int ecount)
|
||||
|
|
@ -784,11 +785,11 @@ exit:
|
|||
*
|
||||
* @ca: CA instance.
|
||||
* @slot: Slot to write to.
|
||||
* @ebuf: The data in this buffer is treated as a complete link-level packet to
|
||||
* be written.
|
||||
* @count: Size of ebuf.
|
||||
* @buf: The data in this buffer is treated as a complete link-level packet to
|
||||
* be written.
|
||||
* @bytes_write: Size of ebuf.
|
||||
*
|
||||
* @return Number of bytes written, or < 0 on error.
|
||||
* return: Number of bytes written, or < 0 on error.
|
||||
*/
|
||||
static int dvb_ca_en50221_write_data(struct dvb_ca_private *ca, int slot,
|
||||
u8 *buf, int bytes_write)
|
||||
|
|
@ -933,7 +934,7 @@ static int dvb_ca_en50221_slot_shutdown(struct dvb_ca_private *ca, int slot)
|
|||
/**
|
||||
* dvb_ca_en50221_camchange_irq - A CAMCHANGE IRQ has occurred.
|
||||
*
|
||||
* @ca: CA instance.
|
||||
* @pubca: CA instance.
|
||||
* @slot: Slot concerned.
|
||||
* @change_type: One of the DVB_CA_CAMCHANGE_* values.
|
||||
*/
|
||||
|
|
@ -963,7 +964,7 @@ EXPORT_SYMBOL(dvb_ca_en50221_camchange_irq);
|
|||
/**
|
||||
* dvb_ca_en50221_camready_irq - A CAMREADY IRQ has occurred.
|
||||
*
|
||||
* @ca: CA instance.
|
||||
* @pubca: CA instance.
|
||||
* @slot: Slot concerned.
|
||||
*/
|
||||
void dvb_ca_en50221_camready_irq(struct dvb_ca_en50221 *pubca, int slot)
|
||||
|
|
@ -983,7 +984,7 @@ EXPORT_SYMBOL(dvb_ca_en50221_camready_irq);
|
|||
/**
|
||||
* dvb_ca_en50221_frda_irq - An FR or DA IRQ has occurred.
|
||||
*
|
||||
* @ca: CA instance.
|
||||
* @pubca: CA instance.
|
||||
* @slot: Slot concerned.
|
||||
*/
|
||||
void dvb_ca_en50221_frda_irq(struct dvb_ca_en50221 *pubca, int slot)
|
||||
|
|
@ -1091,7 +1092,7 @@ static void dvb_ca_en50221_thread_update_delay(struct dvb_ca_private *ca)
|
|||
*
|
||||
* @ca: CA instance.
|
||||
* @slot: Slot to process.
|
||||
* @return: 0 .. no change
|
||||
* return:: 0 .. no change
|
||||
* 1 .. CAM state changed
|
||||
*/
|
||||
|
||||
|
|
@ -1296,7 +1297,7 @@ static void dvb_ca_en50221_thread_state_machine(struct dvb_ca_private *ca,
|
|||
mutex_unlock(&sl->slot_lock);
|
||||
}
|
||||
|
||||
/**
|
||||
/*
|
||||
* Kernel thread which monitors CA slots for CAM changes, and performs data
|
||||
* transfers.
|
||||
*/
|
||||
|
|
@ -1336,12 +1337,11 @@ static int dvb_ca_en50221_thread(void *data)
|
|||
* Real ioctl implementation.
|
||||
* NOTE: CA_SEND_MSG/CA_GET_MSG ioctls have userspace buffers passed to them.
|
||||
*
|
||||
* @inode: Inode concerned.
|
||||
* @file: File concerned.
|
||||
* @cmd: IOCTL command.
|
||||
* @arg: Associated argument.
|
||||
* @parg: Associated argument.
|
||||
*
|
||||
* @return 0 on success, <0 on error.
|
||||
* return: 0 on success, <0 on error.
|
||||
*/
|
||||
static int dvb_ca_en50221_io_do_ioctl(struct file *file,
|
||||
unsigned int cmd, void *parg)
|
||||
|
|
@ -1420,12 +1420,11 @@ out_unlock:
|
|||
/**
|
||||
* Wrapper for ioctl implementation.
|
||||
*
|
||||
* @inode: Inode concerned.
|
||||
* @file: File concerned.
|
||||
* @cmd: IOCTL command.
|
||||
* @arg: Associated argument.
|
||||
*
|
||||
* @return 0 on success, <0 on error.
|
||||
* return: 0 on success, <0 on error.
|
||||
*/
|
||||
static long dvb_ca_en50221_io_ioctl(struct file *file,
|
||||
unsigned int cmd, unsigned long arg)
|
||||
|
|
@ -1441,7 +1440,7 @@ static long dvb_ca_en50221_io_ioctl(struct file *file,
|
|||
* @count: Size of source buffer.
|
||||
* @ppos: Position in file (ignored).
|
||||
*
|
||||
* @return Number of bytes read, or <0 on error.
|
||||
* return: Number of bytes read, or <0 on error.
|
||||
*/
|
||||
static ssize_t dvb_ca_en50221_io_write(struct file *file,
|
||||
const char __user *buf, size_t count,
|
||||
|
|
@ -1536,7 +1535,7 @@ exit:
|
|||
return status;
|
||||
}
|
||||
|
||||
/**
|
||||
/*
|
||||
* Condition for waking up in dvb_ca_en50221_io_read_condition
|
||||
*/
|
||||
static int dvb_ca_en50221_io_read_condition(struct dvb_ca_private *ca,
|
||||
|
|
@ -1593,7 +1592,7 @@ nextslot:
|
|||
* @count: Size of destination buffer.
|
||||
* @ppos: Position in file (ignored).
|
||||
*
|
||||
* @return Number of bytes read, or <0 on error.
|
||||
* return: Number of bytes read, or <0 on error.
|
||||
*/
|
||||
static ssize_t dvb_ca_en50221_io_read(struct file *file, char __user *buf,
|
||||
size_t count, loff_t *ppos)
|
||||
|
|
@ -1702,7 +1701,7 @@ exit:
|
|||
* @inode: Inode concerned.
|
||||
* @file: File concerned.
|
||||
*
|
||||
* @return 0 on success, <0 on failure.
|
||||
* return: 0 on success, <0 on failure.
|
||||
*/
|
||||
static int dvb_ca_en50221_io_open(struct inode *inode, struct file *file)
|
||||
{
|
||||
|
|
@ -1752,7 +1751,7 @@ static int dvb_ca_en50221_io_open(struct inode *inode, struct file *file)
|
|||
* @inode: Inode concerned.
|
||||
* @file: File concerned.
|
||||
*
|
||||
* @return 0 on success, <0 on failure.
|
||||
* return: 0 on success, <0 on failure.
|
||||
*/
|
||||
static int dvb_ca_en50221_io_release(struct inode *inode, struct file *file)
|
||||
{
|
||||
|
|
@ -1781,7 +1780,7 @@ static int dvb_ca_en50221_io_release(struct inode *inode, struct file *file)
|
|||
* @file: File concerned.
|
||||
* @wait: poll wait table.
|
||||
*
|
||||
* @return Standard poll mask.
|
||||
* return: Standard poll mask.
|
||||
*/
|
||||
static unsigned int dvb_ca_en50221_io_poll(struct file *file, poll_table *wait)
|
||||
{
|
||||
|
|
@ -1838,11 +1837,11 @@ static const struct dvb_device dvbdev_ca = {
|
|||
* Initialise a new DVB CA EN50221 interface device.
|
||||
*
|
||||
* @dvb_adapter: DVB adapter to attach the new CA device to.
|
||||
* @ca: The dvb_ca instance.
|
||||
* @pubca: The dvb_ca instance.
|
||||
* @flags: Flags describing the CA device (DVB_CA_FLAG_*).
|
||||
* @slot_count: Number of slots supported.
|
||||
*
|
||||
* @return 0 on success, nonzero on failure
|
||||
* return: 0 on success, nonzero on failure
|
||||
*/
|
||||
int dvb_ca_en50221_init(struct dvb_adapter *dvb_adapter,
|
||||
struct dvb_ca_en50221 *pubca, int flags, int slot_count)
|
||||
|
|
@ -1929,8 +1928,7 @@ EXPORT_SYMBOL(dvb_ca_en50221_init);
|
|||
/**
|
||||
* Release a DVB CA EN50221 interface device.
|
||||
*
|
||||
* @ca_dev: The dvb_device_t instance for the CA device.
|
||||
* @ca: The associated dvb_ca instance.
|
||||
* @pubca: The associated dvb_ca instance.
|
||||
*/
|
||||
void dvb_ca_en50221_release(struct dvb_ca_en50221 *pubca)
|
||||
{
|
||||
|
|
|
|||
|
|
@ -369,11 +369,14 @@ static void dvb_frontend_swzigzag_update_delay(struct dvb_frontend_private *fepr
|
|||
}
|
||||
|
||||
/**
|
||||
* Performs automatic twiddling of frontend parameters.
|
||||
* dvb_frontend_swzigzag_autotune - Performs automatic twiddling of frontend
|
||||
* parameters.
|
||||
*
|
||||
* @param fe The frontend concerned.
|
||||
* @param check_wrapped Checks if an iteration has completed. DO NOT SET ON THE FIRST ATTEMPT
|
||||
* @returns Number of complete iterations that have been performed.
|
||||
* @fe: The frontend concerned.
|
||||
* @check_wrapped: Checks if an iteration has completed.
|
||||
* DO NOT SET ON THE FIRST ATTEMPT.
|
||||
*
|
||||
* return: Number of complete iterations that have been performed.
|
||||
*/
|
||||
static int dvb_frontend_swzigzag_autotune(struct dvb_frontend *fe, int check_wrapped)
|
||||
{
|
||||
|
|
@ -1253,7 +1256,7 @@ dtv_property_legacy_params_sync(struct dvb_frontend *fe,
|
|||
* dtv_get_frontend - calls a callback for retrieving DTV parameters
|
||||
* @fe: struct dvb_frontend pointer
|
||||
* @c: struct dtv_frontend_properties pointer (DVBv5 cache)
|
||||
* @p_out struct dvb_frontend_parameters pointer (DVBv3 FE struct)
|
||||
* @p_out: struct dvb_frontend_parameters pointer (DVBv3 FE struct)
|
||||
*
|
||||
* This routine calls either the DVBv3 or DVBv5 get_frontend call.
|
||||
* If c is not null, it will update the DVBv5 cache struct pointed by it.
|
||||
|
|
|
|||
|
|
@ -125,7 +125,7 @@ struct dvb_net_priv {
|
|||
};
|
||||
|
||||
|
||||
/**
|
||||
/*
|
||||
* Determine the packet's protocol ID. The rule here is that we
|
||||
* assume 802.3 if the type field is short enough to be a length.
|
||||
* This is normal practice and works for any 'now in use' protocol.
|
||||
|
|
@ -155,7 +155,7 @@ static __be16 dvb_net_eth_type_trans(struct sk_buff *skb,
|
|||
|
||||
rawp = skb->data;
|
||||
|
||||
/**
|
||||
/*
|
||||
* This is a magic hack to spot IPX packets. Older Novell breaks
|
||||
* the protocol design and runs IPX over 802.3 without an 802.2 LLC
|
||||
* layer. We look for FFFF which isn't a used 802.2 SSAP/DSAP. This
|
||||
|
|
@ -164,7 +164,7 @@ static __be16 dvb_net_eth_type_trans(struct sk_buff *skb,
|
|||
if (*(unsigned short *)rawp == 0xFFFF)
|
||||
return htons(ETH_P_802_3);
|
||||
|
||||
/**
|
||||
/*
|
||||
* Real 802.2 LLC
|
||||
*/
|
||||
return htons(ETH_P_802_2);
|
||||
|
|
@ -215,7 +215,8 @@ static int ule_exthdr_padding(struct dvb_net_priv *p)
|
|||
return 0;
|
||||
}
|
||||
|
||||
/** Handle ULE extension headers.
|
||||
/*
|
||||
* Handle ULE extension headers.
|
||||
* Function is called after a successful CRC32 verification of an ULE SNDU to complete its decoding.
|
||||
* Returns: >= 0: nr. of bytes consumed by next extension header
|
||||
* -1: Mandatory extension header that is not recognized or TEST SNDU; discard.
|
||||
|
|
@ -291,7 +292,7 @@ static int handle_ule_extensions( struct dvb_net_priv *p )
|
|||
}
|
||||
|
||||
|
||||
/** Prepare for a new ULE SNDU: reset the decoder state. */
|
||||
/* Prepare for a new ULE SNDU: reset the decoder state. */
|
||||
static inline void reset_ule( struct dvb_net_priv *p )
|
||||
{
|
||||
p->ule_skb = NULL;
|
||||
|
|
@ -304,7 +305,7 @@ static inline void reset_ule( struct dvb_net_priv *p )
|
|||
p->ule_bridged = 0;
|
||||
}
|
||||
|
||||
/**
|
||||
/*
|
||||
* Decode ULE SNDUs according to draft-ietf-ipdvb-ule-03.txt from a sequence of
|
||||
* TS cells of a single PID.
|
||||
*/
|
||||
|
|
@ -1005,7 +1006,7 @@ static int dvb_net_sec_callback(const u8 *buffer1, size_t buffer1_len,
|
|||
{
|
||||
struct net_device *dev = filter->priv;
|
||||
|
||||
/**
|
||||
/*
|
||||
* we rely on the DVB API definition where exactly one complete
|
||||
* section is delivered in buffer1
|
||||
*/
|
||||
|
|
|
|||
|
|
@ -38,6 +38,13 @@
|
|||
* @api_version: Firmware API version.
|
||||
* @gpio: GPIOs.
|
||||
* @get_dvb_frontend: Get DVB frontend callback.
|
||||
*
|
||||
* AF9013/5 GPIOs (mostly guessed):
|
||||
* * demod#1-gpio#0 - set demod#2 i2c-addr for dual devices
|
||||
* * demod#1-gpio#1 - xtal setting (?)
|
||||
* * demod#1-gpio#3 - tuner#1
|
||||
* * demod#2-gpio#0 - tuner#2
|
||||
* * demod#2-gpio#1 - xtal setting (?)
|
||||
*/
|
||||
struct af9013_platform_data {
|
||||
/*
|
||||
|
|
@ -89,16 +96,15 @@ struct af9013_platform_data {
|
|||
#define AF9013_TS_PARALLEL AF9013_TS_MODE_PARALLEL
|
||||
#define AF9013_TS_SERIAL AF9013_TS_MODE_SERIAL
|
||||
|
||||
/*
|
||||
* AF9013/5 GPIOs (mostly guessed)
|
||||
* demod#1-gpio#0 - set demod#2 i2c-addr for dual devices
|
||||
* demod#1-gpio#1 - xtal setting (?)
|
||||
* demod#1-gpio#3 - tuner#1
|
||||
* demod#2-gpio#0 - tuner#2
|
||||
* demod#2-gpio#1 - xtal setting (?)
|
||||
*/
|
||||
|
||||
#if IS_REACHABLE(CONFIG_DVB_AF9013)
|
||||
/**
|
||||
* Attach an af9013 demod
|
||||
*
|
||||
* @config: pointer to &struct af9013_config with demod configuration.
|
||||
* @i2c: i2c adapter to use.
|
||||
*
|
||||
* return: FE pointer on success, NULL on failure.
|
||||
*/
|
||||
extern struct dvb_frontend *af9013_attach(const struct af9013_config *config,
|
||||
struct i2c_adapter *i2c);
|
||||
#else
|
||||
|
|
|
|||
|
|
@ -41,6 +41,15 @@ struct ascot2e_config {
|
|||
};
|
||||
|
||||
#if IS_REACHABLE(CONFIG_DVB_ASCOT2E)
|
||||
/**
|
||||
* Attach an ascot2e tuner
|
||||
*
|
||||
* @fe: frontend to be attached
|
||||
* @config: pointer to &struct ascot2e_config with tuner configuration.
|
||||
* @i2c: i2c adapter to use.
|
||||
*
|
||||
* return: FE pointer on success, NULL on failure.
|
||||
*/
|
||||
extern struct dvb_frontend *ascot2e_attach(struct dvb_frontend *fe,
|
||||
const struct ascot2e_config *config,
|
||||
struct i2c_adapter *i2c);
|
||||
|
|
|
|||
|
|
@ -49,7 +49,6 @@
|
|||
* @gpio_chip_base: GPIO.
|
||||
* @get_dvb_frontend: Get DVB frontend.
|
||||
*/
|
||||
|
||||
struct cxd2820r_platform_data {
|
||||
u8 ts_mode;
|
||||
bool ts_clk_inv;
|
||||
|
|
@ -62,6 +61,17 @@ struct cxd2820r_platform_data {
|
|||
bool attach_in_use;
|
||||
};
|
||||
|
||||
/**
|
||||
* struct cxd2820r_config - configuration for cxd2020r demod
|
||||
*
|
||||
* @i2c_address: Demodulator I2C address. Driver determines DVB-C slave I2C
|
||||
* address automatically from master address.
|
||||
* Default: none, must set. Values: 0x6c, 0x6d.
|
||||
* @ts_mode: TS output mode. Default: none, must set. Values: FIXME?
|
||||
* @ts_clock_inv: TS clock inverted. Default: 0. Values: 0, 1.
|
||||
* @if_agc_polarity: Default: 0. Values: 0, 1
|
||||
* @spec_inv: Spectrum inversion. Default: 0. Values: 0, 1.
|
||||
*/
|
||||
struct cxd2820r_config {
|
||||
/* Demodulator I2C address.
|
||||
* Driver determines DVB-C slave I2C address automatically from master
|
||||
|
|
@ -98,6 +108,18 @@ struct cxd2820r_config {
|
|||
|
||||
|
||||
#if IS_REACHABLE(CONFIG_DVB_CXD2820R)
|
||||
/**
|
||||
* Attach a cxd2820r demod
|
||||
*
|
||||
* @config: pointer to &struct cxd2820r_config with demod configuration.
|
||||
* @i2c: i2c adapter to use.
|
||||
* @gpio_chip_base: if zero, disables GPIO setting. Otherwise, if
|
||||
* CONFIG_GPIOLIB is set dynamically allocate
|
||||
* gpio base; if is not set, use its value to
|
||||
* setup the GPIO pins.
|
||||
*
|
||||
* return: FE pointer on success, NULL on failure.
|
||||
*/
|
||||
extern struct dvb_frontend *cxd2820r_attach(
|
||||
const struct cxd2820r_config *config,
|
||||
struct i2c_adapter *i2c,
|
||||
|
|
|
|||
|
|
@ -52,7 +52,7 @@ struct i2c_device_addr {
|
|||
};
|
||||
|
||||
|
||||
/**
|
||||
/*
|
||||
* \def IS_I2C_10BIT( addr )
|
||||
* \brief Determine if I2C address 'addr' is a 10 bits address or not.
|
||||
* \param addr The I2C address.
|
||||
|
|
@ -67,7 +67,7 @@ struct i2c_device_addr {
|
|||
Exported FUNCTIONS
|
||||
------------------------------------------------------------------------------*/
|
||||
|
||||
/**
|
||||
/*
|
||||
* \fn drxbsp_i2c_init()
|
||||
* \brief Initialize I2C communication module.
|
||||
* \return drx_status_t Return status.
|
||||
|
|
@ -76,7 +76,7 @@ Exported FUNCTIONS
|
|||
*/
|
||||
drx_status_t drxbsp_i2c_init(void);
|
||||
|
||||
/**
|
||||
/*
|
||||
* \fn drxbsp_i2c_term()
|
||||
* \brief Terminate I2C communication module.
|
||||
* \return drx_status_t Return status.
|
||||
|
|
@ -85,7 +85,7 @@ Exported FUNCTIONS
|
|||
*/
|
||||
drx_status_t drxbsp_i2c_term(void);
|
||||
|
||||
/**
|
||||
/*
|
||||
* \fn drx_status_t drxbsp_i2c_write_read( struct i2c_device_addr *w_dev_addr,
|
||||
* u16 w_count,
|
||||
* u8 *wData,
|
||||
|
|
@ -121,7 +121,7 @@ Exported FUNCTIONS
|
|||
struct i2c_device_addr *r_dev_addr,
|
||||
u16 r_count, u8 *r_data);
|
||||
|
||||
/**
|
||||
/*
|
||||
* \fn drxbsp_i2c_error_text()
|
||||
* \brief Returns a human readable error.
|
||||
* Counter part of numerical drx_i2c_error_g.
|
||||
|
|
@ -130,7 +130,7 @@ Exported FUNCTIONS
|
|||
*/
|
||||
char *drxbsp_i2c_error_text(void);
|
||||
|
||||
/**
|
||||
/*
|
||||
* \var drx_i2c_error_g;
|
||||
* \brief I2C specific error codes, platform dependent.
|
||||
*/
|
||||
|
|
|
|||
File diff suppressed because it is too large
Load diff
|
|
@ -73,7 +73,7 @@ INCLUDE FILES
|
|||
|
||||
#define DRX39XX_MAIN_FIRMWARE "dvb-fe-drxj-mc-1.0.8.fw"
|
||||
|
||||
/**
|
||||
/*
|
||||
* \brief Maximum u32 value.
|
||||
*/
|
||||
#ifndef MAX_U32
|
||||
|
|
@ -100,8 +100,8 @@ INCLUDE FILES
|
|||
#ifndef OOB_DRX_DRIVE_STRENGTH
|
||||
#define OOB_DRX_DRIVE_STRENGTH 0x02
|
||||
#endif
|
||||
/**** START DJCOMBO patches to DRXJ registermap constants *********************/
|
||||
/**** registermap 200706071303 from drxj **************************************/
|
||||
/*** START DJCOMBO patches to DRXJ registermap constants *********************/
|
||||
/*** registermap 200706071303 from drxj **************************************/
|
||||
#define ATV_TOP_CR_AMP_TH_FM 0x0
|
||||
#define ATV_TOP_CR_AMP_TH_L 0xA
|
||||
#define ATV_TOP_CR_AMP_TH_LP 0xA
|
||||
|
|
@ -188,7 +188,7 @@ INCLUDE FILES
|
|||
#define IQM_RC_ADJ_SEL_B_OFF 0x0
|
||||
#define IQM_RC_ADJ_SEL_B_QAM 0x1
|
||||
#define IQM_RC_ADJ_SEL_B_VSB 0x2
|
||||
/**** END DJCOMBO patches to DRXJ registermap *********************************/
|
||||
/*** END DJCOMBO patches to DRXJ registermap *********************************/
|
||||
|
||||
#include "drx_driver_version.h"
|
||||
|
||||
|
|
@ -208,25 +208,25 @@ DEFINES
|
|||
#define DRXJ_WAKE_UP_KEY (demod->my_i2c_dev_addr->i2c_addr)
|
||||
#endif
|
||||
|
||||
/**
|
||||
/*
|
||||
* \def DRXJ_DEF_I2C_ADDR
|
||||
* \brief Default I2C address of a demodulator instance.
|
||||
*/
|
||||
#define DRXJ_DEF_I2C_ADDR (0x52)
|
||||
|
||||
/**
|
||||
/*
|
||||
* \def DRXJ_DEF_DEMOD_DEV_ID
|
||||
* \brief Default device identifier of a demodultor instance.
|
||||
*/
|
||||
#define DRXJ_DEF_DEMOD_DEV_ID (1)
|
||||
|
||||
/**
|
||||
/*
|
||||
* \def DRXJ_SCAN_TIMEOUT
|
||||
* \brief Timeout value for waiting on demod lock during channel scan (millisec).
|
||||
*/
|
||||
#define DRXJ_SCAN_TIMEOUT 1000
|
||||
|
||||
/**
|
||||
/*
|
||||
* \def HI_I2C_DELAY
|
||||
* \brief HI timing delay for I2C timing (in nano seconds)
|
||||
*
|
||||
|
|
@ -234,7 +234,7 @@ DEFINES
|
|||
*/
|
||||
#define HI_I2C_DELAY 42
|
||||
|
||||
/**
|
||||
/*
|
||||
* \def HI_I2C_BRIDGE_DELAY
|
||||
* \brief HI timing delay for I2C timing (in nano seconds)
|
||||
*
|
||||
|
|
@ -242,13 +242,13 @@ DEFINES
|
|||
*/
|
||||
#define HI_I2C_BRIDGE_DELAY 750
|
||||
|
||||
/**
|
||||
/*
|
||||
* \brief Time Window for MER and SER Measurement in Units of Segment duration.
|
||||
*/
|
||||
#define VSB_TOP_MEASUREMENT_PERIOD 64
|
||||
#define SYMBOLS_PER_SEGMENT 832
|
||||
|
||||
/**
|
||||
/*
|
||||
* \brief bit rate and segment rate constants used for SER and BER.
|
||||
*/
|
||||
/* values taken from the QAM microcode */
|
||||
|
|
@ -260,21 +260,21 @@ DEFINES
|
|||
#define DRXJ_QAM_SL_SIG_POWER_QAM64 43008
|
||||
#define DRXJ_QAM_SL_SIG_POWER_QAM128 20992
|
||||
#define DRXJ_QAM_SL_SIG_POWER_QAM256 43520
|
||||
/**
|
||||
/*
|
||||
* \brief Min supported symbolrates.
|
||||
*/
|
||||
#ifndef DRXJ_QAM_SYMBOLRATE_MIN
|
||||
#define DRXJ_QAM_SYMBOLRATE_MIN (520000)
|
||||
#endif
|
||||
|
||||
/**
|
||||
/*
|
||||
* \brief Max supported symbolrates.
|
||||
*/
|
||||
#ifndef DRXJ_QAM_SYMBOLRATE_MAX
|
||||
#define DRXJ_QAM_SYMBOLRATE_MAX (7233000)
|
||||
#endif
|
||||
|
||||
/**
|
||||
/*
|
||||
* \def DRXJ_QAM_MAX_WAITTIME
|
||||
* \brief Maximal wait time for QAM auto constellation in ms
|
||||
*/
|
||||
|
|
@ -290,7 +290,7 @@ DEFINES
|
|||
#define DRXJ_QAM_DEMOD_LOCK_EXT_WAITTIME 200
|
||||
#endif
|
||||
|
||||
/**
|
||||
/*
|
||||
* \def SCU status and results
|
||||
* \brief SCU
|
||||
*/
|
||||
|
|
@ -299,7 +299,7 @@ DEFINES
|
|||
#define FEC_RS_MEASUREMENT_PERIOD 12894 /* 1 sec */
|
||||
#define FEC_RS_MEASUREMENT_PRESCALE 1 /* n sec */
|
||||
|
||||
/**
|
||||
/*
|
||||
* \def DRX_AUD_MAX_DEVIATION
|
||||
* \brief Needed for calculation of prescale feature in AUD
|
||||
*/
|
||||
|
|
@ -307,14 +307,14 @@ DEFINES
|
|||
#define DRXJ_AUD_MAX_FM_DEVIATION 100 /* kHz */
|
||||
#endif
|
||||
|
||||
/**
|
||||
/*
|
||||
* \brief Needed for calculation of NICAM prescale feature in AUD
|
||||
*/
|
||||
#ifndef DRXJ_AUD_MAX_NICAM_PRESCALE
|
||||
#define DRXJ_AUD_MAX_NICAM_PRESCALE (9) /* dB */
|
||||
#endif
|
||||
|
||||
/**
|
||||
/*
|
||||
* \brief Needed for calculation of NICAM prescale feature in AUD
|
||||
*/
|
||||
#ifndef DRXJ_AUD_MAX_WAITTIME
|
||||
|
|
@ -371,21 +371,21 @@ DEFINES
|
|||
/*============================================================================*/
|
||||
/*=== GLOBAL VARIABLEs =======================================================*/
|
||||
/*============================================================================*/
|
||||
/**
|
||||
/*
|
||||
*/
|
||||
|
||||
/**
|
||||
/*
|
||||
* \brief Temporary register definitions.
|
||||
* (register definitions that are not yet available in register master)
|
||||
*/
|
||||
|
||||
/******************************************************************************/
|
||||
/*****************************************************************************/
|
||||
/* Audio block 0x103 is write only. To avoid shadowing in driver accessing */
|
||||
/* RAM adresses directly. This must be READ ONLY to avoid problems. */
|
||||
/* Writing to the interface adresses is more than only writing the RAM */
|
||||
/* locations */
|
||||
/******************************************************************************/
|
||||
/**
|
||||
/*****************************************************************************/
|
||||
/*
|
||||
* \brief RAM location of MODUS registers
|
||||
*/
|
||||
#define AUD_DEM_RAM_MODUS_HI__A 0x10204A3
|
||||
|
|
@ -394,13 +394,13 @@ DEFINES
|
|||
#define AUD_DEM_RAM_MODUS_LO__A 0x10204A4
|
||||
#define AUD_DEM_RAM_MODUS_LO__M 0x0FFF
|
||||
|
||||
/**
|
||||
/*
|
||||
* \brief RAM location of I2S config registers
|
||||
*/
|
||||
#define AUD_DEM_RAM_I2S_CONFIG1__A 0x10204B1
|
||||
#define AUD_DEM_RAM_I2S_CONFIG2__A 0x10204B2
|
||||
|
||||
/**
|
||||
/*
|
||||
* \brief RAM location of DCO config registers
|
||||
*/
|
||||
#define AUD_DEM_RAM_DCO_B_HI__A 0x1020461
|
||||
|
|
@ -408,20 +408,20 @@ DEFINES
|
|||
#define AUD_DEM_RAM_DCO_A_HI__A 0x1020463
|
||||
#define AUD_DEM_RAM_DCO_A_LO__A 0x1020464
|
||||
|
||||
/**
|
||||
/*
|
||||
* \brief RAM location of Threshold registers
|
||||
*/
|
||||
#define AUD_DEM_RAM_NICAM_THRSHLD__A 0x102045A
|
||||
#define AUD_DEM_RAM_A2_THRSHLD__A 0x10204BB
|
||||
#define AUD_DEM_RAM_BTSC_THRSHLD__A 0x10204A6
|
||||
|
||||
/**
|
||||
/*
|
||||
* \brief RAM location of Carrier Threshold registers
|
||||
*/
|
||||
#define AUD_DEM_RAM_CM_A_THRSHLD__A 0x10204AF
|
||||
#define AUD_DEM_RAM_CM_B_THRSHLD__A 0x10204B0
|
||||
|
||||
/**
|
||||
/*
|
||||
* \brief FM Matrix register fix
|
||||
*/
|
||||
#ifdef AUD_DEM_WR_FM_MATRIX__A
|
||||
|
|
@ -430,7 +430,7 @@ DEFINES
|
|||
#define AUD_DEM_WR_FM_MATRIX__A 0x105006F
|
||||
|
||||
/*============================================================================*/
|
||||
/**
|
||||
/*
|
||||
* \brief Defines required for audio
|
||||
*/
|
||||
#define AUD_VOLUME_ZERO_DB 115
|
||||
|
|
@ -443,14 +443,14 @@ DEFINES
|
|||
#define AUD_I2S_FREQUENCY_MIN 12000UL
|
||||
#define AUD_RDS_ARRAY_SIZE 18
|
||||
|
||||
/**
|
||||
/*
|
||||
* \brief Needed for calculation of prescale feature in AUD
|
||||
*/
|
||||
#ifndef DRX_AUD_MAX_FM_DEVIATION
|
||||
#define DRX_AUD_MAX_FM_DEVIATION (100) /* kHz */
|
||||
#endif
|
||||
|
||||
/**
|
||||
/*
|
||||
* \brief Needed for calculation of NICAM prescale feature in AUD
|
||||
*/
|
||||
#ifndef DRX_AUD_MAX_NICAM_PRESCALE
|
||||
|
|
@ -478,7 +478,7 @@ DEFINES
|
|||
/*=== REGISTER ACCESS MACROS =================================================*/
|
||||
/*============================================================================*/
|
||||
|
||||
/**
|
||||
/*
|
||||
* This macro is used to create byte arrays for block writes.
|
||||
* Block writes speed up I2C traffic between host and demod.
|
||||
* The macro takes care of the required byte order in a 16 bits word.
|
||||
|
|
@ -486,7 +486,7 @@ DEFINES
|
|||
*/
|
||||
#define DRXJ_16TO8(x) ((u8) (((u16)x) & 0xFF)), \
|
||||
((u8)((((u16)x)>>8)&0xFF))
|
||||
/**
|
||||
/*
|
||||
* This macro is used to convert byte array to 16 bit register value for block read.
|
||||
* Block read speed up I2C traffic between host and demod.
|
||||
* The macro takes care of the required byte order in a 16 bits word.
|
||||
|
|
@ -501,7 +501,7 @@ DEFINES
|
|||
/*=== HI COMMAND RELATED DEFINES =============================================*/
|
||||
/*============================================================================*/
|
||||
|
||||
/**
|
||||
/*
|
||||
* \brief General maximum number of retries for ucode command interfaces
|
||||
*/
|
||||
#define DRXJ_MAX_RETRIES (100)
|
||||
|
|
@ -807,7 +807,7 @@ static struct drxj_data drxj_data_g = {
|
|||
},
|
||||
};
|
||||
|
||||
/**
|
||||
/*
|
||||
* \var drxj_default_addr_g
|
||||
* \brief Default I2C address and device identifier.
|
||||
*/
|
||||
|
|
@ -816,7 +816,7 @@ static struct i2c_device_addr drxj_default_addr_g = {
|
|||
DRXJ_DEF_DEMOD_DEV_ID /* device id */
|
||||
};
|
||||
|
||||
/**
|
||||
/*
|
||||
* \var drxj_default_comm_attr_g
|
||||
* \brief Default common attributes of a drxj demodulator instance.
|
||||
*/
|
||||
|
|
@ -887,7 +887,7 @@ static struct drx_common_attr drxj_default_comm_attr_g = {
|
|||
0 /* mfx */
|
||||
};
|
||||
|
||||
/**
|
||||
/*
|
||||
* \var drxj_default_demod_g
|
||||
* \brief Default drxj demodulator instance.
|
||||
*/
|
||||
|
|
@ -897,7 +897,7 @@ static struct drx_demod_instance drxj_default_demod_g = {
|
|||
&drxj_data_g /* demod device specific attributes */
|
||||
};
|
||||
|
||||
/**
|
||||
/*
|
||||
* \brief Default audio data structure for DRK demodulator instance.
|
||||
*
|
||||
* This structure is DRXK specific.
|
||||
|
|
@ -997,7 +997,7 @@ struct drxj_hi_cmd {
|
|||
/*=== MICROCODE RELATED STRUCTURES ===========================================*/
|
||||
/*============================================================================*/
|
||||
|
||||
/**
|
||||
/*
|
||||
* struct drxu_code_block_hdr - Structure of the microcode block headers
|
||||
*
|
||||
* @addr: Destination address of the data in this block
|
||||
|
|
@ -1086,7 +1086,7 @@ static u32 frac28(u32 N, u32 D)
|
|||
return Q1;
|
||||
}
|
||||
|
||||
/**
|
||||
/*
|
||||
* \fn u32 log1_times100( u32 x)
|
||||
* \brief Compute: 100*log10(x)
|
||||
* \param x 32 bits
|
||||
|
|
@ -1198,7 +1198,7 @@ static u32 log1_times100(u32 x)
|
|||
|
||||
}
|
||||
|
||||
/**
|
||||
/*
|
||||
* \fn u32 frac_times1e6( u16 N, u32 D)
|
||||
* \brief Compute: (N/D) * 1000000.
|
||||
* \param N nominator 16-bits.
|
||||
|
|
@ -1235,7 +1235,7 @@ static u32 frac_times1e6(u32 N, u32 D)
|
|||
/*============================================================================*/
|
||||
|
||||
|
||||
/**
|
||||
/*
|
||||
* \brief Values for NICAM prescaler gain. Computed from dB to integer
|
||||
* and rounded. For calc used formula: 16*10^(prescaleGain[dB]/20).
|
||||
*
|
||||
|
|
@ -1280,7 +1280,7 @@ static const u16 nicam_presc_table_val[43] = {
|
|||
#define DRXJ_DAP_AUDTRIF_TIMEOUT 80 /* millisec */
|
||||
/*============================================================================*/
|
||||
|
||||
/**
|
||||
/*
|
||||
* \fn bool is_handled_by_aud_tr_if( u32 addr )
|
||||
* \brief Check if this address is handled by the audio token ring interface.
|
||||
* \param addr
|
||||
|
|
@ -1386,7 +1386,7 @@ int drxbsp_i2c_write_read(struct i2c_device_addr *w_dev_addr,
|
|||
|
||||
/*============================================================================*/
|
||||
|
||||
/******************************
|
||||
/*****************************
|
||||
*
|
||||
* int drxdap_fasi_read_block (
|
||||
* struct i2c_device_addr *dev_addr, -- address of I2C device
|
||||
|
|
@ -1498,7 +1498,7 @@ static int drxdap_fasi_read_block(struct i2c_device_addr *dev_addr,
|
|||
}
|
||||
|
||||
|
||||
/******************************
|
||||
/*****************************
|
||||
*
|
||||
* int drxdap_fasi_read_reg16 (
|
||||
* struct i2c_device_addr *dev_addr, -- address of I2C device
|
||||
|
|
@ -1531,7 +1531,7 @@ static int drxdap_fasi_read_reg16(struct i2c_device_addr *dev_addr,
|
|||
return rc;
|
||||
}
|
||||
|
||||
/******************************
|
||||
/*****************************
|
||||
*
|
||||
* int drxdap_fasi_read_reg32 (
|
||||
* struct i2c_device_addr *dev_addr, -- address of I2C device
|
||||
|
|
@ -1566,7 +1566,7 @@ static int drxdap_fasi_read_reg32(struct i2c_device_addr *dev_addr,
|
|||
return rc;
|
||||
}
|
||||
|
||||
/******************************
|
||||
/*****************************
|
||||
*
|
||||
* int drxdap_fasi_write_block (
|
||||
* struct i2c_device_addr *dev_addr, -- address of I2C device
|
||||
|
|
@ -1705,7 +1705,7 @@ static int drxdap_fasi_write_block(struct i2c_device_addr *dev_addr,
|
|||
return first_err;
|
||||
}
|
||||
|
||||
/******************************
|
||||
/*****************************
|
||||
*
|
||||
* int drxdap_fasi_write_reg16 (
|
||||
* struct i2c_device_addr *dev_addr, -- address of I2C device
|
||||
|
|
@ -1734,7 +1734,7 @@ static int drxdap_fasi_write_reg16(struct i2c_device_addr *dev_addr,
|
|||
return drxdap_fasi_write_block(dev_addr, addr, sizeof(data), buf, flags);
|
||||
}
|
||||
|
||||
/******************************
|
||||
/*****************************
|
||||
*
|
||||
* int drxdap_fasi_read_modify_write_reg16 (
|
||||
* struct i2c_device_addr *dev_addr, -- address of I2C device
|
||||
|
|
@ -1778,7 +1778,7 @@ static int drxdap_fasi_read_modify_write_reg16(struct i2c_device_addr *dev_addr,
|
|||
return rc;
|
||||
}
|
||||
|
||||
/******************************
|
||||
/*****************************
|
||||
*
|
||||
* int drxdap_fasi_write_reg32 (
|
||||
* struct i2c_device_addr *dev_addr, -- address of I2C device
|
||||
|
|
@ -1811,7 +1811,7 @@ static int drxdap_fasi_write_reg32(struct i2c_device_addr *dev_addr,
|
|||
|
||||
/*============================================================================*/
|
||||
|
||||
/**
|
||||
/*
|
||||
* \fn int drxj_dap_rm_write_reg16short
|
||||
* \brief Read modify write 16 bits audio register using short format only.
|
||||
* \param dev_addr
|
||||
|
|
@ -1890,7 +1890,7 @@ static int drxj_dap_read_modify_write_reg16(struct i2c_device_addr *dev_addr,
|
|||
|
||||
/*============================================================================*/
|
||||
|
||||
/**
|
||||
/*
|
||||
* \fn int drxj_dap_read_aud_reg16
|
||||
* \brief Read 16 bits audio register
|
||||
* \param dev_addr
|
||||
|
|
@ -1997,7 +1997,7 @@ static int drxj_dap_read_reg16(struct i2c_device_addr *dev_addr,
|
|||
}
|
||||
/*============================================================================*/
|
||||
|
||||
/**
|
||||
/*
|
||||
* \fn int drxj_dap_write_aud_reg16
|
||||
* \brief Write 16 bits audio register
|
||||
* \param dev_addr
|
||||
|
|
@ -2086,7 +2086,7 @@ static int drxj_dap_write_reg16(struct i2c_device_addr *dev_addr,
|
|||
#define DRXJ_HI_ATOMIC_READ SIO_HI_RA_RAM_PAR_3_ACP_RW_READ
|
||||
#define DRXJ_HI_ATOMIC_WRITE SIO_HI_RA_RAM_PAR_3_ACP_RW_WRITE
|
||||
|
||||
/**
|
||||
/*
|
||||
* \fn int drxj_dap_atomic_read_write_block()
|
||||
* \brief Basic access routine for atomic read or write access
|
||||
* \param dev_addr pointer to i2c dev address
|
||||
|
|
@ -2168,7 +2168,7 @@ rw_error:
|
|||
|
||||
/*============================================================================*/
|
||||
|
||||
/**
|
||||
/*
|
||||
* \fn int drxj_dap_atomic_read_reg32()
|
||||
* \brief Atomic read of 32 bits words
|
||||
*/
|
||||
|
|
@ -2215,7 +2215,7 @@ int drxj_dap_atomic_read_reg32(struct i2c_device_addr *dev_addr,
|
|||
/*============================================================================*/
|
||||
/*============================================================================*/
|
||||
|
||||
/**
|
||||
/*
|
||||
* \fn int hi_cfg_command()
|
||||
* \brief Configure HI with settings stored in the demod structure.
|
||||
* \param demod Demodulator.
|
||||
|
|
@ -2258,7 +2258,7 @@ rw_error:
|
|||
return rc;
|
||||
}
|
||||
|
||||
/**
|
||||
/*
|
||||
* \fn int hi_command()
|
||||
* \brief Configure HI with settings stored in the demod structure.
|
||||
* \param dev_addr I2C address.
|
||||
|
|
@ -2369,7 +2369,7 @@ rw_error:
|
|||
return rc;
|
||||
}
|
||||
|
||||
/**
|
||||
/*
|
||||
* \fn int init_hi( const struct drx_demod_instance *demod )
|
||||
* \brief Initialise and configurate HI.
|
||||
* \param demod pointer to demod data.
|
||||
|
|
@ -2450,7 +2450,7 @@ rw_error:
|
|||
/*============================================================================*/
|
||||
/*============================================================================*/
|
||||
|
||||
/**
|
||||
/*
|
||||
* \fn int get_device_capabilities()
|
||||
* \brief Get and store device capabilities.
|
||||
* \param demod Pointer to demodulator instance.
|
||||
|
|
@ -2656,7 +2656,7 @@ rw_error:
|
|||
return rc;
|
||||
}
|
||||
|
||||
/**
|
||||
/*
|
||||
* \fn int power_up_device()
|
||||
* \brief Power up device.
|
||||
* \param demod Pointer to demodulator instance.
|
||||
|
|
@ -2710,7 +2710,7 @@ static int power_up_device(struct drx_demod_instance *demod)
|
|||
/*----------------------------------------------------------------------------*/
|
||||
/* MPEG Output Configuration Functions - begin */
|
||||
/*----------------------------------------------------------------------------*/
|
||||
/**
|
||||
/*
|
||||
* \fn int ctrl_set_cfg_mpeg_output()
|
||||
* \brief Set MPEG output configuration of the device.
|
||||
* \param devmod Pointer to demodulator instance.
|
||||
|
|
@ -3356,7 +3356,7 @@ rw_error:
|
|||
/* miscellaneous configurations - begin */
|
||||
/*----------------------------------------------------------------------------*/
|
||||
|
||||
/**
|
||||
/*
|
||||
* \fn int set_mpegtei_handling()
|
||||
* \brief Activate MPEG TEI handling settings.
|
||||
* \param devmod Pointer to demodulator instance.
|
||||
|
|
@ -3429,7 +3429,7 @@ rw_error:
|
|||
}
|
||||
|
||||
/*----------------------------------------------------------------------------*/
|
||||
/**
|
||||
/*
|
||||
* \fn int bit_reverse_mpeg_output()
|
||||
* \brief Set MPEG output bit-endian settings.
|
||||
* \param devmod Pointer to demodulator instance.
|
||||
|
|
@ -3472,7 +3472,7 @@ rw_error:
|
|||
}
|
||||
|
||||
/*----------------------------------------------------------------------------*/
|
||||
/**
|
||||
/*
|
||||
* \fn int set_mpeg_start_width()
|
||||
* \brief Set MPEG start width.
|
||||
* \param devmod Pointer to demodulator instance.
|
||||
|
|
@ -3522,7 +3522,7 @@ rw_error:
|
|||
/*----------------------------------------------------------------------------*/
|
||||
/* UIO Configuration Functions - begin */
|
||||
/*----------------------------------------------------------------------------*/
|
||||
/**
|
||||
/*
|
||||
* \fn int ctrl_set_uio_cfg()
|
||||
* \brief Configure modus oprandi UIO.
|
||||
* \param demod Pointer to demodulator instance.
|
||||
|
|
@ -3659,7 +3659,7 @@ rw_error:
|
|||
return rc;
|
||||
}
|
||||
|
||||
/**
|
||||
/*
|
||||
* \fn int ctrl_uio_write()
|
||||
* \brief Write to a UIO.
|
||||
* \param demod Pointer to demodulator instance.
|
||||
|
|
@ -3868,7 +3868,7 @@ rw_error:
|
|||
/*----------------------------------------------------------------------------*/
|
||||
/* I2C Bridge Functions - begin */
|
||||
/*----------------------------------------------------------------------------*/
|
||||
/**
|
||||
/*
|
||||
* \fn int ctrl_i2c_bridge()
|
||||
* \brief Open or close the I2C switch to tuner.
|
||||
* \param demod Pointer to demodulator instance.
|
||||
|
|
@ -3903,7 +3903,7 @@ ctrl_i2c_bridge(struct drx_demod_instance *demod, bool *bridge_closed)
|
|||
/*----------------------------------------------------------------------------*/
|
||||
/* Smart antenna Functions - begin */
|
||||
/*----------------------------------------------------------------------------*/
|
||||
/**
|
||||
/*
|
||||
* \fn int smart_ant_init()
|
||||
* \brief Initialize Smart Antenna.
|
||||
* \param pointer to struct drx_demod_instance.
|
||||
|
|
@ -4116,7 +4116,7 @@ rw_error:
|
|||
return rc;
|
||||
}
|
||||
|
||||
/**
|
||||
/*
|
||||
* \fn int DRXJ_DAP_SCUAtomicReadWriteBlock()
|
||||
* \brief Basic access routine for SCU atomic read or write access
|
||||
* \param dev_addr pointer to i2c dev address
|
||||
|
|
@ -4188,7 +4188,7 @@ rw_error:
|
|||
|
||||
/*============================================================================*/
|
||||
|
||||
/**
|
||||
/*
|
||||
* \fn int DRXJ_DAP_AtomicReadReg16()
|
||||
* \brief Atomic read of 16 bits words
|
||||
*/
|
||||
|
|
@ -4216,7 +4216,7 @@ int drxj_dap_scu_atomic_read_reg16(struct i2c_device_addr *dev_addr,
|
|||
}
|
||||
|
||||
/*============================================================================*/
|
||||
/**
|
||||
/*
|
||||
* \fn int drxj_dap_scu_atomic_write_reg16()
|
||||
* \brief Atomic read of 16 bits words
|
||||
*/
|
||||
|
|
@ -4237,7 +4237,7 @@ int drxj_dap_scu_atomic_write_reg16(struct i2c_device_addr *dev_addr,
|
|||
}
|
||||
|
||||
/* -------------------------------------------------------------------------- */
|
||||
/**
|
||||
/*
|
||||
* \brief Measure result of ADC synchronisation
|
||||
* \param demod demod instance
|
||||
* \param count (returned) count
|
||||
|
|
@ -4297,7 +4297,7 @@ rw_error:
|
|||
return rc;
|
||||
}
|
||||
|
||||
/**
|
||||
/*
|
||||
* \brief Synchronize analog and digital clock domains
|
||||
* \param demod demod instance
|
||||
* \return int.
|
||||
|
|
@ -4365,7 +4365,7 @@ rw_error:
|
|||
/*== 8VSB & QAM COMMON DATAPATH FUNCTIONS ==*/
|
||||
/*============================================================================*/
|
||||
/*============================================================================*/
|
||||
/**
|
||||
/*
|
||||
* \fn int init_agc ()
|
||||
* \brief Initialize AGC for all standards.
|
||||
* \param demod instance of demodulator.
|
||||
|
|
@ -4741,7 +4741,7 @@ rw_error:
|
|||
return rc;
|
||||
}
|
||||
|
||||
/**
|
||||
/*
|
||||
* \fn int set_frequency ()
|
||||
* \brief Set frequency shift.
|
||||
* \param demod instance of demodulator.
|
||||
|
|
@ -4839,7 +4839,7 @@ rw_error:
|
|||
return rc;
|
||||
}
|
||||
|
||||
/**
|
||||
/*
|
||||
* \fn int get_acc_pkt_err()
|
||||
* \brief Retrieve signal strength for VSB and QAM.
|
||||
* \param demod Pointer to demod instance
|
||||
|
|
@ -4891,7 +4891,7 @@ rw_error:
|
|||
|
||||
/*============================================================================*/
|
||||
|
||||
/**
|
||||
/*
|
||||
* \fn int set_agc_rf ()
|
||||
* \brief Configure RF AGC
|
||||
* \param demod instance of demodulator.
|
||||
|
|
@ -5105,7 +5105,7 @@ rw_error:
|
|||
return rc;
|
||||
}
|
||||
|
||||
/**
|
||||
/*
|
||||
* \fn int set_agc_if ()
|
||||
* \brief Configure If AGC
|
||||
* \param demod instance of demodulator.
|
||||
|
|
@ -5334,7 +5334,7 @@ rw_error:
|
|||
return rc;
|
||||
}
|
||||
|
||||
/**
|
||||
/*
|
||||
* \fn int set_iqm_af ()
|
||||
* \brief Configure IQM AF registers
|
||||
* \param demod instance of demodulator.
|
||||
|
|
@ -5380,7 +5380,7 @@ rw_error:
|
|||
/*============================================================================*/
|
||||
/*============================================================================*/
|
||||
|
||||
/**
|
||||
/*
|
||||
* \fn int power_down_vsb ()
|
||||
* \brief Powr down QAM related blocks.
|
||||
* \param demod instance of demodulator.
|
||||
|
|
@ -5478,7 +5478,7 @@ rw_error:
|
|||
return rc;
|
||||
}
|
||||
|
||||
/**
|
||||
/*
|
||||
* \fn int set_vsb_leak_n_gain ()
|
||||
* \brief Set ATSC demod.
|
||||
* \param demod instance of demodulator.
|
||||
|
|
@ -5694,7 +5694,7 @@ rw_error:
|
|||
return rc;
|
||||
}
|
||||
|
||||
/**
|
||||
/*
|
||||
* \fn int set_vsb()
|
||||
* \brief Set 8VSB demod.
|
||||
* \param demod instance of demodulator.
|
||||
|
|
@ -6200,7 +6200,7 @@ rw_error:
|
|||
return rc;
|
||||
}
|
||||
|
||||
/**
|
||||
/*
|
||||
* \fn static short get_vsb_post_rs_pck_err(struct i2c_device_addr *dev_addr, u16 *PckErrs)
|
||||
* \brief Get the values of packet error in 8VSB mode
|
||||
* \return Error code
|
||||
|
|
@ -6239,7 +6239,7 @@ rw_error:
|
|||
return rc;
|
||||
}
|
||||
|
||||
/**
|
||||
/*
|
||||
* \fn static short GetVSBBer(struct i2c_device_addr *dev_addr, u32 *ber)
|
||||
* \brief Get the values of ber in VSB mode
|
||||
* \return Error code
|
||||
|
|
@ -6284,7 +6284,7 @@ rw_error:
|
|||
return rc;
|
||||
}
|
||||
|
||||
/**
|
||||
/*
|
||||
* \fn static short get_vs_bpre_viterbi_ber(struct i2c_device_addr *dev_addr, u32 *ber)
|
||||
* \brief Get the values of ber in VSB mode
|
||||
* \return Error code
|
||||
|
|
@ -6306,7 +6306,7 @@ static int get_vs_bpre_viterbi_ber(struct i2c_device_addr *dev_addr,
|
|||
return 0;
|
||||
}
|
||||
|
||||
/**
|
||||
/*
|
||||
* \fn static int get_vsbmer(struct i2c_device_addr *dev_addr, u16 *mer)
|
||||
* \brief Get the values of MER
|
||||
* \return Error code
|
||||
|
|
@ -6340,7 +6340,7 @@ rw_error:
|
|||
/*============================================================================*/
|
||||
/*============================================================================*/
|
||||
|
||||
/**
|
||||
/*
|
||||
* \fn int power_down_qam ()
|
||||
* \brief Powr down QAM related blocks.
|
||||
* \param demod instance of demodulator.
|
||||
|
|
@ -6444,7 +6444,7 @@ rw_error:
|
|||
|
||||
/*============================================================================*/
|
||||
|
||||
/**
|
||||
/*
|
||||
* \fn int set_qam_measurement ()
|
||||
* \brief Setup of the QAM Measuremnt intervals for signal quality
|
||||
* \param demod instance of demod.
|
||||
|
|
@ -6656,7 +6656,7 @@ rw_error:
|
|||
|
||||
/*============================================================================*/
|
||||
|
||||
/**
|
||||
/*
|
||||
* \fn int set_qam16 ()
|
||||
* \brief QAM16 specific setup
|
||||
* \param demod instance of demod.
|
||||
|
|
@ -6891,7 +6891,7 @@ rw_error:
|
|||
|
||||
/*============================================================================*/
|
||||
|
||||
/**
|
||||
/*
|
||||
* \fn int set_qam32 ()
|
||||
* \brief QAM32 specific setup
|
||||
* \param demod instance of demod.
|
||||
|
|
@ -7126,7 +7126,7 @@ rw_error:
|
|||
|
||||
/*============================================================================*/
|
||||
|
||||
/**
|
||||
/*
|
||||
* \fn int set_qam64 ()
|
||||
* \brief QAM64 specific setup
|
||||
* \param demod instance of demod.
|
||||
|
|
@ -7362,7 +7362,7 @@ rw_error:
|
|||
|
||||
/*============================================================================*/
|
||||
|
||||
/**
|
||||
/*
|
||||
* \fn int set_qam128 ()
|
||||
* \brief QAM128 specific setup
|
||||
* \param demod: instance of demod.
|
||||
|
|
@ -7597,7 +7597,7 @@ rw_error:
|
|||
|
||||
/*============================================================================*/
|
||||
|
||||
/**
|
||||
/*
|
||||
* \fn int set_qam256 ()
|
||||
* \brief QAM256 specific setup
|
||||
* \param demod: instance of demod.
|
||||
|
|
@ -7835,7 +7835,7 @@ rw_error:
|
|||
#define QAM_SET_OP_CONSTELLATION 0x2
|
||||
#define QAM_SET_OP_SPECTRUM 0X4
|
||||
|
||||
/**
|
||||
/*
|
||||
* \fn int set_qam ()
|
||||
* \brief Set QAM demod.
|
||||
* \param demod: instance of demod.
|
||||
|
|
@ -8845,7 +8845,7 @@ rw_error:
|
|||
#define DEMOD_LOCKED 0x1
|
||||
#define SYNC_FLIPPED 0x2
|
||||
#define SPEC_MIRRORED 0x4
|
||||
/**
|
||||
/*
|
||||
* \fn int qam64auto ()
|
||||
* \brief auto do sync pattern switching and mirroring.
|
||||
* \param demod: instance of demod.
|
||||
|
|
@ -8993,7 +8993,7 @@ rw_error:
|
|||
return rc;
|
||||
}
|
||||
|
||||
/**
|
||||
/*
|
||||
* \fn int qam256auto ()
|
||||
* \brief auto do sync pattern switching and mirroring.
|
||||
* \param demod: instance of demod.
|
||||
|
|
@ -9077,7 +9077,7 @@ rw_error:
|
|||
return rc;
|
||||
}
|
||||
|
||||
/**
|
||||
/*
|
||||
* \fn int set_qam_channel ()
|
||||
* \brief Set QAM channel according to the requested constellation.
|
||||
* \param demod: instance of demod.
|
||||
|
|
@ -9284,7 +9284,7 @@ rw_error:
|
|||
|
||||
/*============================================================================*/
|
||||
|
||||
/**
|
||||
/*
|
||||
* \fn static short get_qamrs_err_count(struct i2c_device_addr *dev_addr)
|
||||
* \brief Get RS error count in QAM mode (used for post RS BER calculation)
|
||||
* \return Error code
|
||||
|
|
@ -9355,7 +9355,7 @@ rw_error:
|
|||
|
||||
/*============================================================================*/
|
||||
|
||||
/**
|
||||
/*
|
||||
* \fn int get_sig_strength()
|
||||
* \brief Retrieve signal strength for VSB and QAM.
|
||||
* \param demod Pointer to demod instance
|
||||
|
|
@ -9435,7 +9435,7 @@ rw_error:
|
|||
return rc;
|
||||
}
|
||||
|
||||
/**
|
||||
/*
|
||||
* \fn int ctrl_get_qam_sig_quality()
|
||||
* \brief Retrieve QAM signal quality from device.
|
||||
* \param devmod Pointer to demodulator instance.
|
||||
|
|
@ -9721,7 +9721,7 @@ rw_error:
|
|||
*/
|
||||
/* -------------------------------------------------------------------------- */
|
||||
|
||||
/**
|
||||
/*
|
||||
* \fn int power_down_atv ()
|
||||
* \brief Power down ATV.
|
||||
* \param demod instance of demodulator
|
||||
|
|
@ -9822,7 +9822,7 @@ rw_error:
|
|||
|
||||
/*============================================================================*/
|
||||
|
||||
/**
|
||||
/*
|
||||
* \brief Power up AUD.
|
||||
* \param demod instance of demodulator
|
||||
* \return int.
|
||||
|
|
@ -9850,7 +9850,7 @@ rw_error:
|
|||
return rc;
|
||||
}
|
||||
|
||||
/**
|
||||
/*
|
||||
* \fn int set_orx_nsu_aox()
|
||||
* \brief Configure OrxNsuAox for OOB
|
||||
* \param demod instance of demodulator.
|
||||
|
|
@ -9884,7 +9884,7 @@ rw_error:
|
|||
return rc;
|
||||
}
|
||||
|
||||
/**
|
||||
/*
|
||||
* \fn int ctrl_set_oob()
|
||||
* \brief Set OOB channel to be used.
|
||||
* \param demod instance of demodulator
|
||||
|
|
@ -9986,9 +9986,9 @@ static int ctrl_set_oob(struct drx_demod_instance *demod, struct drxoob *oob_par
|
|||
20;
|
||||
}
|
||||
|
||||
/*********/
|
||||
/********/
|
||||
/* Stop */
|
||||
/*********/
|
||||
/********/
|
||||
rc = drxj_dap_write_reg16(dev_addr, ORX_COMM_EXEC__A, ORX_COMM_EXEC_STOP, 0);
|
||||
if (rc != 0) {
|
||||
pr_err("error %d\n", rc);
|
||||
|
|
@ -10004,9 +10004,9 @@ static int ctrl_set_oob(struct drx_demod_instance *demod, struct drxoob *oob_par
|
|||
pr_err("error %d\n", rc);
|
||||
goto rw_error;
|
||||
}
|
||||
/*********/
|
||||
/********/
|
||||
/* Reset */
|
||||
/*********/
|
||||
/********/
|
||||
scu_cmd.command = SCU_RAM_COMMAND_STANDARD_OOB
|
||||
| SCU_RAM_COMMAND_CMD_DEMOD_RESET;
|
||||
scu_cmd.parameter_len = 0;
|
||||
|
|
@ -10017,9 +10017,9 @@ static int ctrl_set_oob(struct drx_demod_instance *demod, struct drxoob *oob_par
|
|||
pr_err("error %d\n", rc);
|
||||
goto rw_error;
|
||||
}
|
||||
/***********/
|
||||
/**********/
|
||||
/* SET_ENV */
|
||||
/***********/
|
||||
/**********/
|
||||
/* set frequency, spectrum inversion and data rate */
|
||||
scu_cmd.command = SCU_RAM_COMMAND_STANDARD_OOB
|
||||
| SCU_RAM_COMMAND_CMD_DEMOD_SET_ENV;
|
||||
|
|
@ -10376,9 +10376,9 @@ static int ctrl_set_oob(struct drx_demod_instance *demod, struct drxoob *oob_par
|
|||
pr_err("error %d\n", rc);
|
||||
goto rw_error;
|
||||
}
|
||||
/*********/
|
||||
/********/
|
||||
/* Start */
|
||||
/*********/
|
||||
/********/
|
||||
scu_cmd.command = SCU_RAM_COMMAND_STANDARD_OOB
|
||||
| SCU_RAM_COMMAND_CMD_DEMOD_START;
|
||||
scu_cmd.parameter_len = 0;
|
||||
|
|
@ -10419,7 +10419,7 @@ rw_error:
|
|||
/*=============================================================================
|
||||
===== ctrl_set_channel() ==========================================================
|
||||
===========================================================================*/
|
||||
/**
|
||||
/*
|
||||
* \fn int ctrl_set_channel()
|
||||
* \brief Select a new transmission channel.
|
||||
* \param demod instance of demod.
|
||||
|
|
@ -10652,7 +10652,7 @@ rw_error:
|
|||
===== SigQuality() ==========================================================
|
||||
===========================================================================*/
|
||||
|
||||
/**
|
||||
/*
|
||||
* \fn int ctrl_sig_quality()
|
||||
* \brief Retrieve signal quality form device.
|
||||
* \param devmod Pointer to demodulator instance.
|
||||
|
|
@ -10768,7 +10768,7 @@ rw_error:
|
|||
|
||||
/*============================================================================*/
|
||||
|
||||
/**
|
||||
/*
|
||||
* \fn int ctrl_lock_status()
|
||||
* \brief Retrieve lock status .
|
||||
* \param dev_addr Pointer to demodulator device address.
|
||||
|
|
@ -10856,7 +10856,7 @@ rw_error:
|
|||
|
||||
/*============================================================================*/
|
||||
|
||||
/**
|
||||
/*
|
||||
* \fn int ctrl_set_standard()
|
||||
* \brief Set modulation standard to be used.
|
||||
* \param standard Modulation standard.
|
||||
|
|
@ -11012,7 +11012,7 @@ static void drxj_reset_mode(struct drxj_data *ext_attr)
|
|||
ext_attr->vsb_pre_saw_cfg.use_pre_saw = true;
|
||||
}
|
||||
|
||||
/**
|
||||
/*
|
||||
* \fn int ctrl_power_mode()
|
||||
* \brief Set the power mode of the device to the specified power mode
|
||||
* \param demod Pointer to demodulator instance.
|
||||
|
|
@ -11171,7 +11171,7 @@ rw_error:
|
|||
/*== CTRL Set/Get Config related functions ===================================*/
|
||||
/*============================================================================*/
|
||||
|
||||
/**
|
||||
/*
|
||||
* \fn int ctrl_set_cfg_pre_saw()
|
||||
* \brief Set Pre-saw reference.
|
||||
* \param demod demod instance
|
||||
|
|
@ -11234,7 +11234,7 @@ rw_error:
|
|||
|
||||
/*============================================================================*/
|
||||
|
||||
/**
|
||||
/*
|
||||
* \fn int ctrl_set_cfg_afe_gain()
|
||||
* \brief Set AFE Gain.
|
||||
* \param demod demod instance
|
||||
|
|
@ -11324,7 +11324,7 @@ static int drx_ctrl_u_code(struct drx_demod_instance *demod,
|
|||
enum drxu_code_action action);
|
||||
static int drxj_set_lna_state(struct drx_demod_instance *demod, bool state);
|
||||
|
||||
/**
|
||||
/*
|
||||
* \fn drxj_open()
|
||||
* \brief Open the demod instance, configure device, configure drxdriver
|
||||
* \return Status_t Return status.
|
||||
|
|
@ -11543,7 +11543,7 @@ rw_error:
|
|||
}
|
||||
|
||||
/*============================================================================*/
|
||||
/**
|
||||
/*
|
||||
* \fn drxj_close()
|
||||
* \brief Close the demod instance, power down the device
|
||||
* \return Status_t Return status.
|
||||
|
|
@ -11594,7 +11594,7 @@ rw_error:
|
|||
* Microcode related functions
|
||||
*/
|
||||
|
||||
/**
|
||||
/*
|
||||
* drx_u_code_compute_crc - Compute CRC of block of microcode data.
|
||||
* @block_data: Pointer to microcode data.
|
||||
* @nr_words: Size of microcode block (number of 16 bits words).
|
||||
|
|
@ -11622,7 +11622,7 @@ static u16 drx_u_code_compute_crc(u8 *block_data, u16 nr_words)
|
|||
return (u16)(crc_word >> 16);
|
||||
}
|
||||
|
||||
/**
|
||||
/*
|
||||
* drx_check_firmware - checks if the loaded firmware is valid
|
||||
*
|
||||
* @demod: demod structure
|
||||
|
|
@ -11708,7 +11708,7 @@ eof:
|
|||
return -EINVAL;
|
||||
}
|
||||
|
||||
/**
|
||||
/*
|
||||
* drx_ctrl_u_code - Handle microcode upload or verify.
|
||||
* @dev_addr: Address of device.
|
||||
* @mc_info: Pointer to information about microcode data.
|
||||
|
|
|
|||
|
|
@ -69,15 +69,15 @@ TYPEDEFS
|
|||
|
||||
struct drxjscu_cmd {
|
||||
u16 command;
|
||||
/**< Command number */
|
||||
/*< Command number */
|
||||
u16 parameter_len;
|
||||
/**< Data length in byte */
|
||||
/*< Data length in byte */
|
||||
u16 result_len;
|
||||
/**< result length in byte */
|
||||
/*< result length in byte */
|
||||
u16 *parameter;
|
||||
/**< General purpous param */
|
||||
/*< General purpous param */
|
||||
u16 *result;
|
||||
/**< General purpous param */};
|
||||
/*< General purpous param */};
|
||||
|
||||
/*============================================================================*/
|
||||
/*============================================================================*/
|
||||
|
|
@ -130,7 +130,7 @@ TYPEDEFS
|
|||
|
||||
DRXJ_CFG_MAX /* dummy, never to be used */};
|
||||
|
||||
/**
|
||||
/*
|
||||
* /struct enum drxj_cfg_smart_ant_io * smart antenna i/o.
|
||||
*/
|
||||
enum drxj_cfg_smart_ant_io {
|
||||
|
|
@ -138,7 +138,7 @@ enum drxj_cfg_smart_ant_io {
|
|||
DRXJ_SMT_ANT_INPUT
|
||||
};
|
||||
|
||||
/**
|
||||
/*
|
||||
* /struct struct drxj_cfg_smart_ant * Set smart antenna.
|
||||
*/
|
||||
struct drxj_cfg_smart_ant {
|
||||
|
|
@ -146,7 +146,7 @@ enum drxj_cfg_smart_ant_io {
|
|||
u16 ctrl_data;
|
||||
};
|
||||
|
||||
/**
|
||||
/*
|
||||
* /struct DRXJAGCSTATUS_t
|
||||
* AGC status information from the DRXJ-IQM-AF.
|
||||
*/
|
||||
|
|
@ -158,7 +158,7 @@ struct drxj_agc_status {
|
|||
|
||||
/* DRXJ_CFG_AGC_RF, DRXJ_CFG_AGC_IF */
|
||||
|
||||
/**
|
||||
/*
|
||||
* /struct enum drxj_agc_ctrl_mode * Available AGCs modes in the DRXJ.
|
||||
*/
|
||||
enum drxj_agc_ctrl_mode {
|
||||
|
|
@ -166,7 +166,7 @@ struct drxj_agc_status {
|
|||
DRX_AGC_CTRL_USER,
|
||||
DRX_AGC_CTRL_OFF};
|
||||
|
||||
/**
|
||||
/*
|
||||
* /struct struct drxj_cfg_agc * Generic interface for all AGCs present on the DRXJ.
|
||||
*/
|
||||
struct drxj_cfg_agc {
|
||||
|
|
@ -182,7 +182,7 @@ struct drxj_agc_status {
|
|||
|
||||
/* DRXJ_CFG_PRE_SAW */
|
||||
|
||||
/**
|
||||
/*
|
||||
* /struct struct drxj_cfg_pre_saw * Interface to configure pre SAW sense.
|
||||
*/
|
||||
struct drxj_cfg_pre_saw {
|
||||
|
|
@ -192,14 +192,14 @@ struct drxj_agc_status {
|
|||
|
||||
/* DRXJ_CFG_AFE_GAIN */
|
||||
|
||||
/**
|
||||
/*
|
||||
* /struct struct drxj_cfg_afe_gain * Interface to configure gain of AFE (LNA + PGA).
|
||||
*/
|
||||
struct drxj_cfg_afe_gain {
|
||||
enum drx_standard standard; /* standard to which these settings apply */
|
||||
u16 gain; /* gain in 0.1 dB steps, DRXJ range 140 .. 335 */};
|
||||
|
||||
/**
|
||||
/*
|
||||
* /struct drxjrs_errors
|
||||
* Available failure information in DRXJ_FEC_RS.
|
||||
*
|
||||
|
|
@ -208,25 +208,25 @@ struct drxj_agc_status {
|
|||
*/
|
||||
struct drxjrs_errors {
|
||||
u16 nr_bit_errors;
|
||||
/**< no of pre RS bit errors */
|
||||
/*< no of pre RS bit errors */
|
||||
u16 nr_symbol_errors;
|
||||
/**< no of pre RS symbol errors */
|
||||
/*< no of pre RS symbol errors */
|
||||
u16 nr_packet_errors;
|
||||
/**< no of pre RS packet errors */
|
||||
/*< no of pre RS packet errors */
|
||||
u16 nr_failures;
|
||||
/**< no of post RS failures to decode */
|
||||
/*< no of post RS failures to decode */
|
||||
u16 nr_snc_par_fail_count;
|
||||
/**< no of post RS bit erros */
|
||||
/*< no of post RS bit erros */
|
||||
};
|
||||
|
||||
/**
|
||||
/*
|
||||
* /struct struct drxj_cfg_vsb_misc * symbol error rate
|
||||
*/
|
||||
struct drxj_cfg_vsb_misc {
|
||||
u32 symb_error;
|
||||
/**< symbol error rate sps */};
|
||||
/*< symbol error rate sps */};
|
||||
|
||||
/**
|
||||
/*
|
||||
* /enum enum drxj_mpeg_output_clock_rate * Mpeg output clock rate.
|
||||
*
|
||||
*/
|
||||
|
|
@ -234,7 +234,7 @@ struct drxj_agc_status {
|
|||
DRXJ_MPEG_START_WIDTH_1CLKCYC,
|
||||
DRXJ_MPEG_START_WIDTH_8CLKCYC};
|
||||
|
||||
/**
|
||||
/*
|
||||
* /enum enum drxj_mpeg_output_clock_rate * Mpeg output clock rate.
|
||||
*
|
||||
*/
|
||||
|
|
@ -247,20 +247,20 @@ struct drxj_agc_status {
|
|||
DRXJ_MPEGOUTPUT_CLOCK_RATE_25313K,
|
||||
DRXJ_MPEGOUTPUT_CLOCK_RATE_21696K};
|
||||
|
||||
/**
|
||||
/*
|
||||
* /struct DRXJCfgMisc_t
|
||||
* Change TEI bit of MPEG output
|
||||
* reverse MPEG output bit order
|
||||
* set MPEG output clock rate
|
||||
*/
|
||||
struct drxj_cfg_mpeg_output_misc {
|
||||
bool disable_tei_handling; /**< if true pass (not change) TEI bit */
|
||||
bool bit_reverse_mpeg_outout; /**< if true, parallel: msb on MD0; serial: lsb out first */
|
||||
bool disable_tei_handling; /*< if true pass (not change) TEI bit */
|
||||
bool bit_reverse_mpeg_outout; /*< if true, parallel: msb on MD0; serial: lsb out first */
|
||||
enum drxj_mpeg_output_clock_rate mpeg_output_clock_rate;
|
||||
/**< set MPEG output clock rate that overwirtes the derived one from symbol rate */
|
||||
enum drxj_mpeg_start_width mpeg_start_width; /**< set MPEG output start width */};
|
||||
/*< set MPEG output clock rate that overwirtes the derived one from symbol rate */
|
||||
enum drxj_mpeg_start_width mpeg_start_width; /*< set MPEG output start width */};
|
||||
|
||||
/**
|
||||
/*
|
||||
* /enum enum drxj_xtal_freq * Supported external crystal reference frequency.
|
||||
*/
|
||||
enum drxj_xtal_freq {
|
||||
|
|
@ -269,21 +269,21 @@ struct drxj_agc_status {
|
|||
DRXJ_XTAL_FREQ_20P25MHZ,
|
||||
DRXJ_XTAL_FREQ_4MHZ};
|
||||
|
||||
/**
|
||||
/*
|
||||
* /enum enum drxj_xtal_freq * Supported external crystal reference frequency.
|
||||
*/
|
||||
enum drxji2c_speed {
|
||||
DRXJ_I2C_SPEED_400KBPS,
|
||||
DRXJ_I2C_SPEED_100KBPS};
|
||||
|
||||
/**
|
||||
/*
|
||||
* /struct struct drxj_cfg_hw_cfg * Get hw configuration, such as crystal reference frequency, I2C speed, etc...
|
||||
*/
|
||||
struct drxj_cfg_hw_cfg {
|
||||
enum drxj_xtal_freq xtal_freq;
|
||||
/**< crystal reference frequency */
|
||||
/*< crystal reference frequency */
|
||||
enum drxji2c_speed i2c_speed;
|
||||
/**< 100 or 400 kbps */};
|
||||
/*< 100 or 400 kbps */};
|
||||
|
||||
/*
|
||||
* DRXJ_CFG_ATV_MISC
|
||||
|
|
@ -352,7 +352,7 @@ struct drxj_cfg_oob_misc {
|
|||
* DRXJ_CFG_ATV_OUTPUT
|
||||
*/
|
||||
|
||||
/**
|
||||
/*
|
||||
* /enum DRXJAttenuation_t
|
||||
* Attenuation setting for SIF AGC.
|
||||
*
|
||||
|
|
@ -363,7 +363,7 @@ struct drxj_cfg_oob_misc {
|
|||
DRXJ_SIF_ATTENUATION_6DB,
|
||||
DRXJ_SIF_ATTENUATION_9DB};
|
||||
|
||||
/**
|
||||
/*
|
||||
* /struct struct drxj_cfg_atv_output * SIF attenuation setting.
|
||||
*
|
||||
*/
|
||||
|
|
@ -398,7 +398,7 @@ struct drxj_cfg_atv_output {
|
|||
/*============================================================================*/
|
||||
|
||||
/*========================================*/
|
||||
/**
|
||||
/*
|
||||
* /struct struct drxj_data * DRXJ specific attributes.
|
||||
*
|
||||
* Global data container for DRXJ specific data.
|
||||
|
|
@ -406,93 +406,93 @@ struct drxj_cfg_atv_output {
|
|||
*/
|
||||
struct drxj_data {
|
||||
/* device capabilties (determined during drx_open()) */
|
||||
bool has_lna; /**< true if LNA (aka PGA) present */
|
||||
bool has_oob; /**< true if OOB supported */
|
||||
bool has_ntsc; /**< true if NTSC supported */
|
||||
bool has_btsc; /**< true if BTSC supported */
|
||||
bool has_smatx; /**< true if mat_tx is available */
|
||||
bool has_smarx; /**< true if mat_rx is available */
|
||||
bool has_gpio; /**< true if GPIO is available */
|
||||
bool has_irqn; /**< true if IRQN is available */
|
||||
bool has_lna; /*< true if LNA (aka PGA) present */
|
||||
bool has_oob; /*< true if OOB supported */
|
||||
bool has_ntsc; /*< true if NTSC supported */
|
||||
bool has_btsc; /*< true if BTSC supported */
|
||||
bool has_smatx; /*< true if mat_tx is available */
|
||||
bool has_smarx; /*< true if mat_rx is available */
|
||||
bool has_gpio; /*< true if GPIO is available */
|
||||
bool has_irqn; /*< true if IRQN is available */
|
||||
/* A1/A2/A... */
|
||||
u8 mfx; /**< metal fix */
|
||||
u8 mfx; /*< metal fix */
|
||||
|
||||
/* tuner settings */
|
||||
bool mirror_freq_spect_oob;/**< tuner inversion (true = tuner mirrors the signal */
|
||||
bool mirror_freq_spect_oob;/*< tuner inversion (true = tuner mirrors the signal */
|
||||
|
||||
/* standard/channel settings */
|
||||
enum drx_standard standard; /**< current standard information */
|
||||
enum drx_standard standard; /*< current standard information */
|
||||
enum drx_modulation constellation;
|
||||
/**< current constellation */
|
||||
s32 frequency; /**< center signal frequency in KHz */
|
||||
/*< current constellation */
|
||||
s32 frequency; /*< center signal frequency in KHz */
|
||||
enum drx_bandwidth curr_bandwidth;
|
||||
/**< current channel bandwidth */
|
||||
enum drx_mirror mirror; /**< current channel mirror */
|
||||
/*< current channel bandwidth */
|
||||
enum drx_mirror mirror; /*< current channel mirror */
|
||||
|
||||
/* signal quality information */
|
||||
u32 fec_bits_desired; /**< BER accounting period */
|
||||
u16 fec_vd_plen; /**< no of trellis symbols: VD SER measurement period */
|
||||
u16 qam_vd_prescale; /**< Viterbi Measurement Prescale */
|
||||
u16 qam_vd_period; /**< Viterbi Measurement period */
|
||||
u16 fec_rs_plen; /**< defines RS BER measurement period */
|
||||
u16 fec_rs_prescale; /**< ReedSolomon Measurement Prescale */
|
||||
u16 fec_rs_period; /**< ReedSolomon Measurement period */
|
||||
bool reset_pkt_err_acc; /**< Set a flag to reset accumulated packet error */
|
||||
u16 pkt_err_acc_start; /**< Set a flag to reset accumulated packet error */
|
||||
u32 fec_bits_desired; /*< BER accounting period */
|
||||
u16 fec_vd_plen; /*< no of trellis symbols: VD SER measurement period */
|
||||
u16 qam_vd_prescale; /*< Viterbi Measurement Prescale */
|
||||
u16 qam_vd_period; /*< Viterbi Measurement period */
|
||||
u16 fec_rs_plen; /*< defines RS BER measurement period */
|
||||
u16 fec_rs_prescale; /*< ReedSolomon Measurement Prescale */
|
||||
u16 fec_rs_period; /*< ReedSolomon Measurement period */
|
||||
bool reset_pkt_err_acc; /*< Set a flag to reset accumulated packet error */
|
||||
u16 pkt_err_acc_start; /*< Set a flag to reset accumulated packet error */
|
||||
|
||||
/* HI configuration */
|
||||
u16 hi_cfg_timing_div; /**< HI Configure() parameter 2 */
|
||||
u16 hi_cfg_bridge_delay; /**< HI Configure() parameter 3 */
|
||||
u16 hi_cfg_wake_up_key; /**< HI Configure() parameter 4 */
|
||||
u16 hi_cfg_ctrl; /**< HI Configure() parameter 5 */
|
||||
u16 hi_cfg_transmit; /**< HI Configure() parameter 6 */
|
||||
u16 hi_cfg_timing_div; /*< HI Configure() parameter 2 */
|
||||
u16 hi_cfg_bridge_delay; /*< HI Configure() parameter 3 */
|
||||
u16 hi_cfg_wake_up_key; /*< HI Configure() parameter 4 */
|
||||
u16 hi_cfg_ctrl; /*< HI Configure() parameter 5 */
|
||||
u16 hi_cfg_transmit; /*< HI Configure() parameter 6 */
|
||||
|
||||
/* UIO configuration */
|
||||
enum drxuio_mode uio_sma_rx_mode;/**< current mode of SmaRx pin */
|
||||
enum drxuio_mode uio_sma_tx_mode;/**< current mode of SmaTx pin */
|
||||
enum drxuio_mode uio_gpio_mode; /**< current mode of ASEL pin */
|
||||
enum drxuio_mode uio_irqn_mode; /**< current mode of IRQN pin */
|
||||
enum drxuio_mode uio_sma_rx_mode;/*< current mode of SmaRx pin */
|
||||
enum drxuio_mode uio_sma_tx_mode;/*< current mode of SmaTx pin */
|
||||
enum drxuio_mode uio_gpio_mode; /*< current mode of ASEL pin */
|
||||
enum drxuio_mode uio_irqn_mode; /*< current mode of IRQN pin */
|
||||
|
||||
/* IQM fs frequecy shift and inversion */
|
||||
u32 iqm_fs_rate_ofs; /**< frequency shifter setting after setchannel */
|
||||
bool pos_image; /**< Ture: positive image */
|
||||
u32 iqm_fs_rate_ofs; /*< frequency shifter setting after setchannel */
|
||||
bool pos_image; /*< Ture: positive image */
|
||||
/* IQM RC frequecy shift */
|
||||
u32 iqm_rc_rate_ofs; /**< frequency shifter setting after setchannel */
|
||||
u32 iqm_rc_rate_ofs; /*< frequency shifter setting after setchannel */
|
||||
|
||||
/* ATV configuration */
|
||||
u32 atv_cfg_changed_flags; /**< flag: flags cfg changes */
|
||||
s16 atv_top_equ0[DRXJ_COEF_IDX_MAX]; /**< shadow of ATV_TOP_EQU0__A */
|
||||
s16 atv_top_equ1[DRXJ_COEF_IDX_MAX]; /**< shadow of ATV_TOP_EQU1__A */
|
||||
s16 atv_top_equ2[DRXJ_COEF_IDX_MAX]; /**< shadow of ATV_TOP_EQU2__A */
|
||||
s16 atv_top_equ3[DRXJ_COEF_IDX_MAX]; /**< shadow of ATV_TOP_EQU3__A */
|
||||
bool phase_correction_bypass;/**< flag: true=bypass */
|
||||
s16 atv_top_vid_peak; /**< shadow of ATV_TOP_VID_PEAK__A */
|
||||
u16 atv_top_noise_th; /**< shadow of ATV_TOP_NOISE_TH__A */
|
||||
bool enable_cvbs_output; /**< flag CVBS ouput enable */
|
||||
bool enable_sif_output; /**< flag SIF ouput enable */
|
||||
u32 atv_cfg_changed_flags; /*< flag: flags cfg changes */
|
||||
s16 atv_top_equ0[DRXJ_COEF_IDX_MAX]; /*< shadow of ATV_TOP_EQU0__A */
|
||||
s16 atv_top_equ1[DRXJ_COEF_IDX_MAX]; /*< shadow of ATV_TOP_EQU1__A */
|
||||
s16 atv_top_equ2[DRXJ_COEF_IDX_MAX]; /*< shadow of ATV_TOP_EQU2__A */
|
||||
s16 atv_top_equ3[DRXJ_COEF_IDX_MAX]; /*< shadow of ATV_TOP_EQU3__A */
|
||||
bool phase_correction_bypass;/*< flag: true=bypass */
|
||||
s16 atv_top_vid_peak; /*< shadow of ATV_TOP_VID_PEAK__A */
|
||||
u16 atv_top_noise_th; /*< shadow of ATV_TOP_NOISE_TH__A */
|
||||
bool enable_cvbs_output; /*< flag CVBS ouput enable */
|
||||
bool enable_sif_output; /*< flag SIF ouput enable */
|
||||
enum drxjsif_attenuation sif_attenuation;
|
||||
/**< current SIF att setting */
|
||||
/*< current SIF att setting */
|
||||
/* Agc configuration for QAM and VSB */
|
||||
struct drxj_cfg_agc qam_rf_agc_cfg; /**< qam RF AGC config */
|
||||
struct drxj_cfg_agc qam_if_agc_cfg; /**< qam IF AGC config */
|
||||
struct drxj_cfg_agc vsb_rf_agc_cfg; /**< vsb RF AGC config */
|
||||
struct drxj_cfg_agc vsb_if_agc_cfg; /**< vsb IF AGC config */
|
||||
struct drxj_cfg_agc qam_rf_agc_cfg; /*< qam RF AGC config */
|
||||
struct drxj_cfg_agc qam_if_agc_cfg; /*< qam IF AGC config */
|
||||
struct drxj_cfg_agc vsb_rf_agc_cfg; /*< vsb RF AGC config */
|
||||
struct drxj_cfg_agc vsb_if_agc_cfg; /*< vsb IF AGC config */
|
||||
|
||||
/* PGA gain configuration for QAM and VSB */
|
||||
u16 qam_pga_cfg; /**< qam PGA config */
|
||||
u16 vsb_pga_cfg; /**< vsb PGA config */
|
||||
u16 qam_pga_cfg; /*< qam PGA config */
|
||||
u16 vsb_pga_cfg; /*< vsb PGA config */
|
||||
|
||||
/* Pre SAW configuration for QAM and VSB */
|
||||
struct drxj_cfg_pre_saw qam_pre_saw_cfg;
|
||||
/**< qam pre SAW config */
|
||||
/*< qam pre SAW config */
|
||||
struct drxj_cfg_pre_saw vsb_pre_saw_cfg;
|
||||
/**< qam pre SAW config */
|
||||
/*< qam pre SAW config */
|
||||
|
||||
/* Version information */
|
||||
char v_text[2][12]; /**< allocated text versions */
|
||||
struct drx_version v_version[2]; /**< allocated versions structs */
|
||||
char v_text[2][12]; /*< allocated text versions */
|
||||
struct drx_version v_version[2]; /*< allocated versions structs */
|
||||
struct drx_version_list v_list_elements[2];
|
||||
/**< allocated version list */
|
||||
/*< allocated version list */
|
||||
|
||||
/* smart antenna configuration */
|
||||
bool smart_ant_inverted;
|
||||
|
|
@ -502,25 +502,25 @@ struct drxj_cfg_atv_output {
|
|||
bool oob_power_on;
|
||||
|
||||
/* MPEG static bitrate setting */
|
||||
u32 mpeg_ts_static_bitrate; /**< bitrate static MPEG output */
|
||||
bool disable_te_ihandling; /**< MPEG TS TEI handling */
|
||||
bool bit_reverse_mpeg_outout;/**< MPEG output bit order */
|
||||
u32 mpeg_ts_static_bitrate; /*< bitrate static MPEG output */
|
||||
bool disable_te_ihandling; /*< MPEG TS TEI handling */
|
||||
bool bit_reverse_mpeg_outout;/*< MPEG output bit order */
|
||||
enum drxj_mpeg_output_clock_rate mpeg_output_clock_rate;
|
||||
/**< MPEG output clock rate */
|
||||
/*< MPEG output clock rate */
|
||||
enum drxj_mpeg_start_width mpeg_start_width;
|
||||
/**< MPEG Start width */
|
||||
/*< MPEG Start width */
|
||||
|
||||
/* Pre SAW & Agc configuration for ATV */
|
||||
struct drxj_cfg_pre_saw atv_pre_saw_cfg;
|
||||
/**< atv pre SAW config */
|
||||
struct drxj_cfg_agc atv_rf_agc_cfg; /**< atv RF AGC config */
|
||||
struct drxj_cfg_agc atv_if_agc_cfg; /**< atv IF AGC config */
|
||||
u16 atv_pga_cfg; /**< atv pga config */
|
||||
/*< atv pre SAW config */
|
||||
struct drxj_cfg_agc atv_rf_agc_cfg; /*< atv RF AGC config */
|
||||
struct drxj_cfg_agc atv_if_agc_cfg; /*< atv IF AGC config */
|
||||
u16 atv_pga_cfg; /*< atv pga config */
|
||||
|
||||
u32 curr_symbol_rate;
|
||||
|
||||
/* pin-safe mode */
|
||||
bool pdr_safe_mode; /**< PDR safe mode activated */
|
||||
bool pdr_safe_mode; /*< PDR safe mode activated */
|
||||
u16 pdr_safe_restore_val_gpio;
|
||||
u16 pdr_safe_restore_val_v_sync;
|
||||
u16 pdr_safe_restore_val_sma_rx;
|
||||
|
|
@ -531,12 +531,12 @@ struct drxj_cfg_atv_output {
|
|||
enum drxj_cfg_oob_lo_power oob_lo_pow;
|
||||
|
||||
struct drx_aud_data aud_data;
|
||||
/**< audio storage */};
|
||||
/*< audio storage */};
|
||||
|
||||
/*-------------------------------------------------------------------------
|
||||
Access MACROS
|
||||
-------------------------------------------------------------------------*/
|
||||
/**
|
||||
/*
|
||||
* \brief Compilable references to attributes
|
||||
* \param d pointer to demod instance
|
||||
*
|
||||
|
|
@ -554,7 +554,7 @@ Access MACROS
|
|||
DEFINES
|
||||
-------------------------------------------------------------------------*/
|
||||
|
||||
/**
|
||||
/*
|
||||
* \def DRXJ_NTSC_CARRIER_FREQ_OFFSET
|
||||
* \brief Offset from picture carrier to centre frequency in kHz, in RF domain
|
||||
*
|
||||
|
|
@ -569,7 +569,7 @@ DEFINES
|
|||
*/
|
||||
#define DRXJ_NTSC_CARRIER_FREQ_OFFSET ((s32)(1750))
|
||||
|
||||
/**
|
||||
/*
|
||||
* \def DRXJ_PAL_SECAM_BG_CARRIER_FREQ_OFFSET
|
||||
* \brief Offset from picture carrier to centre frequency in kHz, in RF domain
|
||||
*
|
||||
|
|
@ -585,7 +585,7 @@ DEFINES
|
|||
*/
|
||||
#define DRXJ_PAL_SECAM_BG_CARRIER_FREQ_OFFSET ((s32)(2375))
|
||||
|
||||
/**
|
||||
/*
|
||||
* \def DRXJ_PAL_SECAM_DKIL_CARRIER_FREQ_OFFSET
|
||||
* \brief Offset from picture carrier to centre frequency in kHz, in RF domain
|
||||
*
|
||||
|
|
@ -601,7 +601,7 @@ DEFINES
|
|||
*/
|
||||
#define DRXJ_PAL_SECAM_DKIL_CARRIER_FREQ_OFFSET ((s32)(2775))
|
||||
|
||||
/**
|
||||
/*
|
||||
* \def DRXJ_PAL_SECAM_LP_CARRIER_FREQ_OFFSET
|
||||
* \brief Offset from picture carrier to centre frequency in kHz, in RF domain
|
||||
*
|
||||
|
|
@ -616,7 +616,7 @@ DEFINES
|
|||
*/
|
||||
#define DRXJ_PAL_SECAM_LP_CARRIER_FREQ_OFFSET ((s32)(-3255))
|
||||
|
||||
/**
|
||||
/*
|
||||
* \def DRXJ_FM_CARRIER_FREQ_OFFSET
|
||||
* \brief Offset from sound carrier to centre frequency in kHz, in RF domain
|
||||
*
|
||||
|
|
|
|||
|
|
@ -20,17 +20,18 @@
|
|||
* @antenna_dvbt: GPIO bit for changing antenna to DVB-C. A value of 1
|
||||
* means that 1=DVBC, 0 = DVBT. Zero means the opposite.
|
||||
* @mpeg_out_clk_strength: DRXK Mpeg output clock drive strength.
|
||||
* @chunk_size: maximum size for I2C messages
|
||||
* @microcode_name: Name of the firmware file with the microcode
|
||||
* @qam_demod_parameter_count: The number of parameters used for the command
|
||||
* to set the demodulator parameters. All
|
||||
* firmwares are using the 2-parameter commmand.
|
||||
* An exception is the "drxk_a3.mc" firmware,
|
||||
* An exception is the ``drxk_a3.mc`` firmware,
|
||||
* which uses the 4-parameter command.
|
||||
* A value of 0 (default) or lower indicates that
|
||||
* the correct number of parameters will be
|
||||
* automatically detected.
|
||||
*
|
||||
* On the *_gpio vars, bit 0 is UIO-1, bit 1 is UIO-2 and bit 2 is
|
||||
* On the ``*_gpio`` vars, bit 0 is UIO-1, bit 1 is UIO-2 and bit 2 is
|
||||
* UIO-3.
|
||||
*/
|
||||
struct drxk_config {
|
||||
|
|
@ -52,6 +53,14 @@ struct drxk_config {
|
|||
};
|
||||
|
||||
#if IS_REACHABLE(CONFIG_DVB_DRXK)
|
||||
/**
|
||||
* Attach a drxk demod
|
||||
*
|
||||
* @config: pointer to &struct drxk_config with demod configuration.
|
||||
* @i2c: i2c adapter to use.
|
||||
*
|
||||
* return: FE pointer on success, NULL on failure.
|
||||
*/
|
||||
extern struct dvb_frontend *drxk_attach(const struct drxk_config *config,
|
||||
struct i2c_adapter *i2c);
|
||||
#else
|
||||
|
|
|
|||
|
|
@ -207,9 +207,9 @@ static inline u32 log10times100(u32 value)
|
|||
return (100L * intlog10(value)) >> 24;
|
||||
}
|
||||
|
||||
/****************************************************************************/
|
||||
/***************************************************************************/
|
||||
/* I2C **********************************************************************/
|
||||
/****************************************************************************/
|
||||
/***************************************************************************/
|
||||
|
||||
static int drxk_i2c_lock(struct drxk_state *state)
|
||||
{
|
||||
|
|
@ -3444,7 +3444,7 @@ error:
|
|||
|
||||
/*============================================================================*/
|
||||
|
||||
/**
|
||||
/*
|
||||
* \brief Activate DVBT specific presets
|
||||
* \param demod instance of demodulator.
|
||||
* \return DRXStatus_t.
|
||||
|
|
@ -3484,7 +3484,7 @@ error:
|
|||
|
||||
/*============================================================================*/
|
||||
|
||||
/**
|
||||
/*
|
||||
* \brief Initialize channelswitch-independent settings for DVBT.
|
||||
* \param demod instance of demodulator.
|
||||
* \return DRXStatus_t.
|
||||
|
|
@ -3696,7 +3696,7 @@ error:
|
|||
}
|
||||
|
||||
/*============================================================================*/
|
||||
/**
|
||||
/*
|
||||
* \brief start dvbt demodulating for channel.
|
||||
* \param demod instance of demodulator.
|
||||
* \return DRXStatus_t.
|
||||
|
|
@ -3732,7 +3732,7 @@ error:
|
|||
|
||||
/*============================================================================*/
|
||||
|
||||
/**
|
||||
/*
|
||||
* \brief Set up dvbt demodulator for channel.
|
||||
* \param demod instance of demodulator.
|
||||
* \return DRXStatus_t.
|
||||
|
|
@ -4086,7 +4086,7 @@ error:
|
|||
|
||||
/*============================================================================*/
|
||||
|
||||
/**
|
||||
/*
|
||||
* \brief Retrieve lock status .
|
||||
* \param demod Pointer to demodulator instance.
|
||||
* \param lockStat Pointer to lock status structure.
|
||||
|
|
@ -4148,7 +4148,7 @@ static int power_up_qam(struct drxk_state *state)
|
|||
}
|
||||
|
||||
|
||||
/** Power Down QAM */
|
||||
/* Power Down QAM */
|
||||
static int power_down_qam(struct drxk_state *state)
|
||||
{
|
||||
u16 data = 0;
|
||||
|
|
@ -4186,7 +4186,7 @@ error:
|
|||
|
||||
/*============================================================================*/
|
||||
|
||||
/**
|
||||
/*
|
||||
* \brief Setup of the QAM Measurement intervals for signal quality
|
||||
* \param demod instance of demod.
|
||||
* \param modulation current modulation.
|
||||
|
|
@ -4461,7 +4461,7 @@ error:
|
|||
|
||||
/*============================================================================*/
|
||||
|
||||
/**
|
||||
/*
|
||||
* \brief QAM32 specific setup
|
||||
* \param demod instance of demod.
|
||||
* \return DRXStatus_t.
|
||||
|
|
@ -4657,7 +4657,7 @@ error:
|
|||
|
||||
/*============================================================================*/
|
||||
|
||||
/**
|
||||
/*
|
||||
* \brief QAM64 specific setup
|
||||
* \param demod instance of demod.
|
||||
* \return DRXStatus_t.
|
||||
|
|
@ -4852,7 +4852,7 @@ error:
|
|||
|
||||
/*============================================================================*/
|
||||
|
||||
/**
|
||||
/*
|
||||
* \brief QAM128 specific setup
|
||||
* \param demod: instance of demod.
|
||||
* \return DRXStatus_t.
|
||||
|
|
@ -5049,7 +5049,7 @@ error:
|
|||
|
||||
/*============================================================================*/
|
||||
|
||||
/**
|
||||
/*
|
||||
* \brief QAM256 specific setup
|
||||
* \param demod: instance of demod.
|
||||
* \return DRXStatus_t.
|
||||
|
|
@ -5244,7 +5244,7 @@ error:
|
|||
|
||||
|
||||
/*============================================================================*/
|
||||
/**
|
||||
/*
|
||||
* \brief Reset QAM block.
|
||||
* \param demod: instance of demod.
|
||||
* \param channel: pointer to channel data.
|
||||
|
|
@ -5272,7 +5272,7 @@ error:
|
|||
|
||||
/*============================================================================*/
|
||||
|
||||
/**
|
||||
/*
|
||||
* \brief Set QAM symbolrate.
|
||||
* \param demod: instance of demod.
|
||||
* \param channel: pointer to channel data.
|
||||
|
|
@ -5341,7 +5341,7 @@ error:
|
|||
|
||||
/*============================================================================*/
|
||||
|
||||
/**
|
||||
/*
|
||||
* \brief Get QAM lock status.
|
||||
* \param demod: instance of demod.
|
||||
* \param channel: pointer to channel data.
|
||||
|
|
|
|||
|
|
@ -30,16 +30,17 @@
|
|||
#define DVB_PLL_TDEE4 18
|
||||
#define DVB_PLL_THOMSON_DTT7520X 19
|
||||
|
||||
#if IS_REACHABLE(CONFIG_DVB_PLL)
|
||||
/**
|
||||
* Attach a dvb-pll to the supplied frontend structure.
|
||||
*
|
||||
* @param fe Frontend to attach to.
|
||||
* @param pll_addr i2c address of the PLL (if used).
|
||||
* @param i2c i2c adapter to use (set to NULL if not used).
|
||||
* @param pll_desc_id dvb_pll_desc to use.
|
||||
* @return Frontend pointer on success, NULL on failure
|
||||
* @fe: Frontend to attach to.
|
||||
* @pll_addr: i2c address of the PLL (if used).
|
||||
* @i2c: i2c adapter to use (set to NULL if not used).
|
||||
* @pll_desc_id: dvb_pll_desc to use.
|
||||
*
|
||||
* return: Frontend pointer on success, NULL on failure
|
||||
*/
|
||||
#if IS_REACHABLE(CONFIG_DVB_PLL)
|
||||
extern struct dvb_frontend *dvb_pll_attach(struct dvb_frontend *fe,
|
||||
int pll_addr,
|
||||
struct i2c_adapter *i2c,
|
||||
|
|
|
|||
|
|
@ -38,6 +38,7 @@ enum helene_xtal {
|
|||
* @set_tuner_priv: Callback function private context
|
||||
* @set_tuner_callback: Callback function that notifies the parent driver
|
||||
* which tuner is active now
|
||||
* @xtal: Cristal frequency as described by &enum helene_xtal
|
||||
*/
|
||||
struct helene_config {
|
||||
u8 i2c_address;
|
||||
|
|
@ -48,9 +49,31 @@ struct helene_config {
|
|||
};
|
||||
|
||||
#if IS_REACHABLE(CONFIG_DVB_HELENE)
|
||||
/**
|
||||
* Attach a helene tuner (terrestrial and cable standards)
|
||||
*
|
||||
* @fe: frontend to be attached
|
||||
* @config: pointer to &struct helene_config with tuner configuration.
|
||||
* @i2c: i2c adapter to use.
|
||||
*
|
||||
* return: FE pointer on success, NULL on failure.
|
||||
*/
|
||||
extern struct dvb_frontend *helene_attach(struct dvb_frontend *fe,
|
||||
const struct helene_config *config,
|
||||
struct i2c_adapter *i2c);
|
||||
|
||||
/**
|
||||
* Attach a helene tuner (satellite standards)
|
||||
*
|
||||
* @fe: frontend to be attached
|
||||
* @config: pointer to &struct helene_config with tuner configuration.
|
||||
* @i2c: i2c adapter to use.
|
||||
*
|
||||
* return: FE pointer on success, NULL on failure.
|
||||
*/
|
||||
extern struct dvb_frontend *helene_attach_s(struct dvb_frontend *fe,
|
||||
const struct helene_config *config,
|
||||
struct i2c_adapter *i2c);
|
||||
#else
|
||||
static inline struct dvb_frontend *helene_attach(struct dvb_frontend *fe,
|
||||
const struct helene_config *config,
|
||||
|
|
@ -59,13 +82,6 @@ static inline struct dvb_frontend *helene_attach(struct dvb_frontend *fe,
|
|||
pr_warn("%s: driver disabled by Kconfig\n", __func__);
|
||||
return NULL;
|
||||
}
|
||||
#endif
|
||||
|
||||
#if IS_REACHABLE(CONFIG_DVB_HELENE)
|
||||
extern struct dvb_frontend *helene_attach_s(struct dvb_frontend *fe,
|
||||
const struct helene_config *config,
|
||||
struct i2c_adapter *i2c);
|
||||
#else
|
||||
static inline struct dvb_frontend *helene_attach_s(struct dvb_frontend *fe,
|
||||
const struct helene_config *config,
|
||||
struct i2c_adapter *i2c)
|
||||
|
|
|
|||
|
|
@ -41,6 +41,15 @@ struct horus3a_config {
|
|||
};
|
||||
|
||||
#if IS_REACHABLE(CONFIG_DVB_HORUS3A)
|
||||
/**
|
||||
* Attach a horus3a tuner
|
||||
*
|
||||
* @fe: frontend to be attached
|
||||
* @config: pointer to &struct helene_config with tuner configuration.
|
||||
* @i2c: i2c adapter to use.
|
||||
*
|
||||
* return: FE pointer on success, NULL on failure.
|
||||
*/
|
||||
extern struct dvb_frontend *horus3a_attach(struct dvb_frontend *fe,
|
||||
const struct horus3a_config *config,
|
||||
struct i2c_adapter *i2c);
|
||||
|
|
|
|||
|
|
@ -1,4 +1,4 @@
|
|||
/**
|
||||
/*
|
||||
* Driver for Sharp IX2505V (marked B0017) DVB-S silicon tuner
|
||||
*
|
||||
* Copyright (C) 2010 Malcolm Priestley
|
||||
|
|
@ -36,7 +36,7 @@ struct ix2505v_state {
|
|||
u32 frequency;
|
||||
};
|
||||
|
||||
/**
|
||||
/*
|
||||
* Data read format of the Sharp IX2505V B0017
|
||||
*
|
||||
* byte1: 1 | 1 | 0 | 0 | 0 | MA1 | MA0 | 1
|
||||
|
|
@ -99,7 +99,7 @@ static void ix2505v_release(struct dvb_frontend *fe)
|
|||
|
||||
}
|
||||
|
||||
/**
|
||||
/*
|
||||
* Data write format of the Sharp IX2505V B0017
|
||||
*
|
||||
* byte1: 1 | 1 | 0 | 0 | 0 | 0(MA1)| 0(MA0)| 0
|
||||
|
|
|
|||
Some files were not shown because too many files have changed in this diff Show more
Loading…
Reference in a new issue