mirror of
https://github.com/tuxbox-fork-migrations/recycled-ni-libstb-hal.git
synced 2025-08-26 23:12:44 +02:00
try to make CA-Init more reliable
Origin commit data
------------------
Branch: master
Commit: 5164cd5ed0
Author: FlatTV <FlatTV@gmx.de>
Date: 2021-05-30 (Sun, 30 May 2021)
------------------
No further description and justification available within origin commit message!
------------------
This commit was generated by Migit
This commit is contained in:
@@ -71,7 +71,8 @@ void cs_register_messenger(cs_messenger messenger)
|
||||
return;
|
||||
}
|
||||
|
||||
cCA *CA = cCA::GetInstance();
|
||||
//let Neutrino start this function
|
||||
//cCA *CA = cCA::GetInstance();
|
||||
|
||||
cCA::cCA(void)
|
||||
{
|
||||
@@ -237,14 +238,14 @@ eData waitData(int fd, unsigned char *buffer, int *len)
|
||||
|
||||
static bool transmitData(eDVBCISlot *slot, unsigned char *d, int len)
|
||||
{
|
||||
printf("%s -> %s len(%d)\n", FILENAME, __func__, len);
|
||||
printf("%s -> %s len(%d) -> ", FILENAME, __func__, len);
|
||||
|
||||
#if BOXMODEL_VUSOLO4K || BOXMODEL_VUDUO4K || BOXMODEL_VUDUO4KSE || BOXMODEL_VUULTIMO4K || BOXMODEL_VUZERO4K
|
||||
#if y_debug
|
||||
for (int i = 0; i < len; i++)
|
||||
printf("%02x ", d[i]);
|
||||
printf("\n");
|
||||
#endif
|
||||
printf("\n");
|
||||
int res = write(slot->fd, d, len);
|
||||
printf("send: %d len: %d\n", res, len);
|
||||
|
||||
@@ -1266,6 +1267,7 @@ cCA::cCA(int Slots)
|
||||
{
|
||||
printf("%s -> %s %d\n", FILENAME, __func__, Slots);
|
||||
|
||||
zapitReady = false;
|
||||
num_slots = Slots;
|
||||
#if HAVE_ARM_HARDWARE || HAVE_MIPS_HARDWARE
|
||||
setInputs();
|
||||
@@ -1525,6 +1527,18 @@ void cCA::slot_pollthread(void *c)
|
||||
eDVBCISlot *slot = (eDVBCISlot *) c;
|
||||
bool wait = false;
|
||||
|
||||
#if HAVE_ARM_HARDWARE || HAVE_MIPS_HARDWARE
|
||||
//prevert zapit fail on booting with CI
|
||||
if (!zapitReady)
|
||||
{
|
||||
printf("[CA] Slot%d: Waiting for zapit\n", slot->slot);
|
||||
while (!zapitReady)
|
||||
{
|
||||
usleep( 3 * 1000000); //wait for 3 seconds
|
||||
}
|
||||
printf("[CA] Slot%d: zapit is ready\n", slot->slot);
|
||||
}
|
||||
#endif
|
||||
while (1)
|
||||
{
|
||||
#if HAVE_ARM_HARDWARE || HAVE_MIPS_HARDWARE /* Armbox/Mipsbox */
|
||||
@@ -1950,7 +1964,7 @@ void cCA::SetTSClock(u32 Speed, int slot)
|
||||
char buf[64];
|
||||
snprintf(buf, 64, "/proc/stb/tsmux/ci%d_tsclk", slot);
|
||||
FILE *ci = fopen(buf, "wb");
|
||||
printf("%s -> %s to: %s\n", FILENAME, __func__, Speed > 9 * 1000000 ? "extra_high" : Speed > 6 * 1000000 ? "high" : "normal");
|
||||
printf("%s -> %s for Slot%d to: %s\n", FILENAME, __func__, slot, Speed > 9 * 1000000 ? "extra_high" : Speed > 6 * 1000000 ? "high" : "normal");
|
||||
if (ci)
|
||||
{
|
||||
if (Speed > 9 * 1000000)
|
||||
@@ -1969,7 +1983,7 @@ void cCA::SetCIDelay(int Delay)
|
||||
char buf[64];
|
||||
snprintf(buf, 64, "/proc/stb/tsmux/rmx_delay");
|
||||
FILE *ci = fopen(buf, "wb");
|
||||
printf("%s -> %s to: %i\n", FILENAME, __func__, Delay);
|
||||
printf("%s -> %s for all Slots to: %i\n", FILENAME, __func__, Delay);
|
||||
if (ci)
|
||||
{
|
||||
fprintf(ci, "%i", Delay);
|
||||
@@ -1982,7 +1996,7 @@ void cCA::SetCIRelevantPidsRouting(int RPR, int slot)
|
||||
char buf[64];
|
||||
snprintf(buf, 64, "/proc/stb/tsmux/ci%d_relevant_pids_routing", slot);
|
||||
FILE *ci = fopen(buf, "wb");
|
||||
printf("%s -> %s to: %i\n", FILENAME, __func__, RPR);
|
||||
printf("%s -> %s for Slot%d to: %i\n", FILENAME, __func__, slot, RPR);
|
||||
if (ci)
|
||||
{
|
||||
fprintf(ci, "%s", RPR == 1 ? "yes" : "no");
|
||||
|
@@ -315,6 +315,7 @@ class cCA
|
||||
pthread_mutex_t ciMutex;
|
||||
std::list<eDVBCISlot *> slot_data;
|
||||
pthread_t slot_thread;
|
||||
bool zapitReady;
|
||||
|
||||
public:
|
||||
/// sh4 unused
|
||||
@@ -386,6 +387,9 @@ class cCA
|
||||
void setCheckLiveSlot(int check);
|
||||
/// as the name says
|
||||
bool CheckCerts(void);
|
||||
/// start pollthread after zapit is ready
|
||||
virtual void setZapitReady(){zapitReady = true;};
|
||||
virtual bool getZapitReady(){return zapitReady;};
|
||||
/// Virtual destructor
|
||||
virtual ~cCA();
|
||||
};
|
||||
|
@@ -292,7 +292,7 @@ void eDVBCISession::receiveData(eDVBCISlot *slot, const unsigned char *ptr, size
|
||||
unsigned char tag = *pkt++;
|
||||
int llen, hlen;
|
||||
|
||||
printf("[CI SESS] receiveData slot: %p > ", slot);
|
||||
printf("[CI SESS] receiveData slot: %p <- ", slot);
|
||||
|
||||
#if 0
|
||||
for (unsigned int i = 0; i < len; i++)
|
||||
|
Reference in New Issue
Block a user