staging: iio: adc: ad7816: Fix channel handling and refactor
Get series with b4
b4 am [email protected]Versions newest first · linked by author and title
- v5 Latest5 patches 6 repliesIn review
- v35 patches 2 repliesSuperseded
Changes in v5 from the cover letter
- Use correct patch version.
Patches in v5 No applies recorded yet
| # | Subject and files | Size | Replies | Applied |
|---|---|---|---|---|
| 1/5 | staging: iio: adc: ad7816: Allow channel 7 for all devicesdrivers/ | +2 | 1 reply | |
| 2/5 | staging: iio: adc: ad7816: Rename state structuredrivers/ | +12 | 0 replies | |
| 3/5 | staging: iio: adc: ad7816: Introduce chip_info and use pointer matchingdrivers/ | +37 | 1 reply | |
| 4/5 | staging: iio: adc: ad7816: Use chip_info for device capabilitiesdrivers/ | +5 | 1 reply | |
| 5/5 | staging: iio: adc: ad7816: Simplify channel validation using chip_infodrivers/ | +2 | 1 reply |
Reviews trailers per patch
No Reviewed-by, Acked-by or Tested-by trailers for v5 yet.
Cover letter [PATCH v5 0/5] staging: iio: adc: ad7816: Fix channel handling and refactor
The original patch combined a functional fix (allowing channel 7) with several refactoring steps (introducing chip_info, renaming structs, improving validation). As requested, these have now been separated.
The series proceeds as follows:
1. Fix: Allow diagnostic channel 7 for all device variants.
2. Refactor: Rename the main state structure for clarity before introducing the new chip_info struct.
3. Refactor: Introduce struct ad7816_chip_info to hold static per-variant data, update ID tables to store pointers, and switch to using device_get_match_data() for firmware-independent identification. This removes the old enum/id mechanism.
4. Refactor: Add has_busy_pin to chip_info and use this flag to determine BUSY pin handling, replacing pointer comparisons.
5. Refactor: Simplify channel validation logic using chip_info->max_channels, removing strcmp() checks.
Regarding the 'fixes' tag: I've applied it only to the first commit containing the core fix, primarily to make backporting easier. Is this the standard practice, or should the tag typically be applied to subsequent commits that build upon or are related to the fix as well?
Changes in v5:
- Use correct patch version.
Changes in v4:
- Include missing bracket for condtional statement.
Chainges in v3:
- Split the patch into smaller patches. Make the fix first followed by clean up.
- Include missing channel for channel selection.
- Address specific feedback regarding enums vs. chip_info data.
- Use device_get_match_data() for device identification.
- Move BUSY pin capability check into chip_info data.
- Simplify channel validation using chip_info data.
Changes in v2:
- Refactor by adding chip_info struct which simplifies conditional logic.
Gabriel Shahrouzi (5):
staging: iio: adc: ad7816: Allow channel 7 for all devices
staging: iio: adc: ad7816: Rename state structure
staging: iio: adc: ad7816: Introduce chip_info and use pointer
matching
staging: iio: adc: ad7816: Use chip_info for device capabilities
staging: iio: adc: ad7816: Simplify channel validation using chip_info
drivers/staging/iio/adc/ad7816.c | 94 ++++++++++++++++++-------------- 1 file changed, 54 insertions(+), 40 deletions(-)
Signature · 1 line
2.43.0