Skip to content

Conversation

@psyborg55
Copy link

@psyborg55 psyborg55 commented Jan 26, 2022

-fix tuner offset that is only needed for symbol rates lower than 5000ks/s
-add missing FEC codes
-change rolloff register to be consistent with documentation
-fix warning
-enable data path interference canceller, it was bypassed by default
-check for adaptive equalizer, enabled by default
-set AC coupling instead of DC, recommended in driver
-attempt to assign each relevant fe status to a hw register bit
-SNR check depend on LOCK state to not lose SNR info in DVBS mode after previous change
-registers for SR lower than 5000 are written for all chips in mt driver, do the same here
-add uncorrected block readout routine. confirmed working in tvheadend
-ts clock increase, something wrong here, stream breaks up at 24000, manifests as a discontinuity increase. 11230H 45000 at 51.5e still tuned fine with 20000
-new routine for setting carrier offset
-cleanup
-support SR below 1000kS/s, device can tune 890kS/s transponder at 8w
-speed up tuning
-add missing DVBS status
-decrease status update period
-fix for tuning delay and lost SNR in tvheadend
-convert frequency when using SYS_AUTO for tuning
-show SNR percent values with old ioctl
-fix for motor driving hang
-rf/bb calibration can fail sometimes and the failure is indicated in the corresponding register. retry cal in that case
-VCO correction based on real values taken from hardware
-allow spectrum scan with SW tune algorithm and return the algo in driver
-reworked ts/ target clock selection
-fix for the SW tune thread in neumo and stats refresh
-move status read to not interfere with spectrum scan
-some progress with SYS_AUTO on more complex drivers
-fix for BER creeping out the interface all the time, poll its stats only if FEC is locked, moved SNR define to header
-tuned 512ks transponder, lower the limit accordingly
-support amateur part of KU band, tuned 10493H 1500 at 25.8e (Es'hail-2), thanks to satesco for mentioning this on forum
-fix for pctv 461e lockup on initial tune to H pol provided by @cjritola - https://lore.kernel.org/lkml/[email protected]/
-if the carrier is detected then the dvb mode is correct, assuming the stream is valid sync and fec should lock; this fixes status update delay that was happening with previous code
-build bugs fixed
-added blindscan code (example how to run: ./neumo-blindscan -a 0 -s 10700000 -e 11699000 -p 2 -c 0 --blindscan-method 2)
-support for wideband LNBs in both tuning and blind scan mode, still soft-limited to 10894Mhz
-wait a bit longer when blind locking transponder with symbolrate 7000-20000
-export rf gain for use with spectrum scan
-added spectrum scan
-fix for tuner PLL / VCO setup to lock freq < 10894Mhz; this makes wideband LNB fully usable with these cards
-lpf coefficient 3200 is wrong in ts2022, it caused tuner issues. use 2766 value
-reduced code size, merged set_frontend routines into one
-removed unneeded msleep and reduce other to minimum
-auto delivery system support in both blind and normal tune mode
-blind tune supported in neumodvb
-agc_pwm provided to tuner driver for more accurate rf level and periodic refresh of the same
-do not warn if freq or sym is 0 (gets rid of warning on tvheadend init)
-reset carrier offset before tune
-tuner reg and f3db bandwidth bugs
-skip lock when no transponders detected, device would stuck on last freq indefinitely
-faster lock of low DVBS2 symrate
-add delay in high band to stabilize tuner gain, fixes ugly large rising slope in spectrum draw

deeptho pushed a commit that referenced this pull request Dec 21, 2024
This just standardizes the use of MIN() and MAX() macros, with the very
traditional semantics.  The goal is to use these for C constant
expressions and for top-level / static initializers, and so be able to
simplify the min()/max() macros.

These macro names were used by various kernel code - they are very
traditional, after all - and all such users have been fixed up, with a
few different approaches:

 - trivial duplicated macro definitions have been removed

   Note that 'trivial' here means that it's obviously kernel code that
   already included all the major kernel headers, and thus gets the new
   generic MIN/MAX macros automatically.

 - non-trivial duplicated macro definitions are guarded with #ifndef

   This is the "yes, they define their own versions, but no, the include
   situation is not entirely obvious, and maybe they don't get the
   generic version automatically" case.

 - strange use case #1

   A couple of drivers decided that the way they want to describe their
   versioning is with

	#define MAJ 1
	#define MIN 2
	#define DRV_VERSION __stringify(MAJ) "." __stringify(MIN)

   which adds zero value and I just did my Alexander the Great
   impersonation, and rewrote that pointless Gordian knot as

	#define DRV_VERSION "1.2"

   instead.

 - strange use case #2

   A couple of drivers thought that it's a good idea to have a random
   'MIN' or 'MAX' define for a value or index into a table, rather than
   the traditional macro that takes arguments.

   These values were re-written as C enum's instead. The new
   function-line macros only expand when followed by an open
   parenthesis, and thus don't clash with enum use.

Happily, there weren't really all that many of these cases, and a lot of
users already had the pattern of using '#ifndef' guarding (or in one
case just using '#undef MIN') before defining their own private version
that does the same thing. I left such cases alone.

Cc: David Laight <[email protected]>
Cc: Lorenzo Stoakes <[email protected]>
Signed-off-by: Linus Torvalds <[email protected]>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant