916314 Commits

Author SHA1 Message Date
Mauro Carvalho Chehab
e3292f808b media: atomisp: get rid of ISP_VMEM_IS_BAMEM unused defines
There are several defines on ISP-specific definition sets
that are unused, related to VMEM_BAMEM. Get rid of those.

Signed-off-by: Mauro Carvalho Chehab <mchehab+huawei@kernel.org>
2020-05-20 12:32:18 +02:00
Mauro Carvalho Chehab
8022c2e292 media: atomisp: get rid of ia_css_sc_param.h version dependency
That's the last header file which had ifdefs for ISP2401.

The problem is that the conflicting dependencies were on another
file (sh_css_defs.h). Move the conflicting code to it, adding
a prefix which would describe what version the macro applies.

Then, ensure that binary.c will use the right version,
according with the hardware version.

Signed-off-by: Mauro Carvalho Chehab <mchehab+huawei@kernel.org>
2020-05-20 12:32:18 +02:00
Mauro Carvalho Chehab
e6c1310370 media: atomisp: get rid of trivial version checks at *.h
Most of the remaining ifdefs check for ISP2401 are trivial.

Get rid of them.

Signed-off-by: Mauro Carvalho Chehab <mchehab+huawei@kernel.org>
2020-05-20 12:32:18 +02:00
Mauro Carvalho Chehab
1360fa6fa2 media: atomisp: remove unused duplicated files
Those files aren't used. So, just get rid of them.

Signed-off-by: Mauro Carvalho Chehab <mchehab+huawei@kernel.org>
2020-05-20 12:32:18 +02:00
Mauro Carvalho Chehab
33c04118f2 media: atomisp: get rid of io_ls/ subdir
The contents of this file is identical to ipu2_io_ls, except
for the bayer directory, with is only at ipu2_io_ls.

So, get rid of the duplicated code.

Signed-off-by: Mauro Carvalho Chehab <mchehab+huawei@kernel.org>
2020-05-20 12:32:18 +02:00
Mauro Carvalho Chehab
5254591b4e media: atomisp: rename anr2 param header file
This file is different than the anr1 version. So, let's name
it differently.

Signed-off-by: Mauro Carvalho Chehab <mchehab+huawei@kernel.org>
2020-05-20 12:32:18 +02:00
Mauro Carvalho Chehab
3a5e9f4c4d media: atomisp: remove bayer_io_ls duplication
There are two instances of those, one for isp2401 and another
one for isp2400, both with identical contents, except for
comments and an ifdef.

Get rid of one of them.

Signed-off-by: Mauro Carvalho Chehab <mchehab+huawei@kernel.org>
2020-05-20 12:32:18 +02:00
Mauro Carvalho Chehab
5060e35ee5 media: atomisp: use regulator_get_optional() for first attempt
Some BIOSes seem to use different names for some regulators.

Use regulator_get_optional() for the first attempt, in order
to avoid using the dummy regulator and produce a warning, in
the case that the first attempt fails.

Signed-off-by: Mauro Carvalho Chehab <mchehab+huawei@kernel.org>
2020-05-20 12:32:18 +02:00
Mauro Carvalho Chehab
0a76fd8e8d media: atomisp: add Asus Transform T101HA ACPI vars
Those were extracted from an ACPI dump:

 * Original Table Header:
 *     Signature        "DSDT"
 *     Length           0x0001A0BD (106685)
 *     Revision         0x02
 *     Checksum         0x76
 *     OEM ID           "_ASUS_"
 *     OEM Table ID     "Notebook"
 *     OEM Revision     0x01072009 (17244169)
 *     Compiler ID      "INTL"
 *     Compiler Version 0x20120913 (538052883)
 */
DefinitionBlock ("", "DSDT", 2, "_ASUS_", "Notebook", 0x01072009)
...
                    Local0 = Package (0x12)
                        {
                            "CamId",
                            "ov2680",
                            "CamType",
                            "1",
                            "CsiPort",
                            "0",
                            "CsiLanes",
                            "1",
                            "CsiFmt",
                            "15",
                            "CsiBayer",
                            "0",
                            "CamClk",
                            "1",
                            "Regulator1p8v",
                            "0",
                            "Regulator2p8v",
                            "0"
                        }

Note: the DMI_MATCH() line probably needs to be tweaked.

Signed-off-by: Mauro Carvalho Chehab <mchehab+huawei@kernel.org>
2020-05-20 12:32:18 +02:00
Mauro Carvalho Chehab
c343a51e16 media: atomisp: get finish de-duplication of hrt/hive*.h
The last header (hive_isp_css_2401_irq_types_hrt.h) is also
almost identical, except by an if ISP2400 inside a comment
block.

Remove the duplication and keep just one file.

Signed-off-by: Mauro Carvalho Chehab <mchehab+huawei@kernel.org>
2020-05-20 12:32:18 +02:00
Mauro Carvalho Chehab
14131db2ea media: atomisp: hive_isp_css_defs.h: keep just one copy of it
While those headers are different, the different fields
aren't used at the driver. So, remove those different
unused fields, rename one define and use just one header
for all 3 different versions of the ISP.

Signed-off-by: Mauro Carvalho Chehab <mchehab+huawei@kernel.org>
2020-05-20 12:32:18 +02:00
Mauro Carvalho Chehab
ecdb2e34b2 media: atomisp: remove unused hive_isp_css_host_ids_hrt.h
Nothing here is really used by the driver. So, let's just
get rid of them.

Signed-off-by: Mauro Carvalho Chehab <mchehab+huawei@kernel.org>
2020-05-20 12:32:17 +02:00
Mauro Carvalho Chehab
7c2b6c1e34 media: atomisp: remove several duplicated files
Those files have identical contents, but are located at
different parts of the driver. As their contents are identical,
we can simply remove them.

Signed-off-by: Mauro Carvalho Chehab <mchehab+huawei@kernel.org>
2020-05-20 12:32:17 +02:00
Mauro Carvalho Chehab
c8b1a84e38 media: atomisp: remove unused definitions at */isp_capture_defs.h
The isp_capture_defs.h contain several unused defines.
Get rid of some of them, making all 3 instances identical.

Signed-off-by: Mauro Carvalho Chehab <mchehab+huawei@kernel.org>
2020-05-20 12:32:17 +02:00
Mauro Carvalho Chehab
4dcf78197a media: atomisp: get rid of unused header files
Those 4 header files aren't used anyware. So, send them to
the trash can.

Signed-off-by: Mauro Carvalho Chehab <mchehab+huawei@kernel.org>
2020-05-20 12:32:17 +02:00
Mauro Carvalho Chehab
8fba22fbdf media: atomisp: get rid of trivial ISP2401 dependencies on header files
On several header files, the dependency for ISP2401 is
trivial: for example, it just adds new fields on structs or
declare new functions.

Get rid of those trivial cases.

Signed-off-by: Mauro Carvalho Chehab <mchehab+huawei@kernel.org>
2020-05-20 12:32:17 +02:00
Mauro Carvalho Chehab
d4cf9939a6 media: atomisp: get rid of several typedef-style defines
Those vars aren't used anymore at this driver. Get rid of
them.

Signed-off-by: Mauro Carvalho Chehab <mchehab+huawei@kernel.org>
2020-05-20 12:32:17 +02:00
Mauro Carvalho Chehab
badd9b3a95 media: atomisp: isp_const.h: get rid of an unused big define list
None of those SH_CSS_BINARY_ID_* symbols are used by this driver
anymore. So, get rid of all of them.

Signed-off-by: Mauro Carvalho Chehab <mchehab+huawei@kernel.org>
2020-05-20 12:32:17 +02:00
Mauro Carvalho Chehab
406ae76079 media: atomisp: sh_css: detect ISP version at runtime
Get rid of all those ifdefs that were checking for ISP2401 inside
sh_css.c.

Signed-off-by: Mauro Carvalho Chehab <mchehab+huawei@kernel.org>
2020-05-20 12:32:17 +02:00
Mauro Carvalho Chehab
7535c68d17 media: atomisp: make util.c work with ISP2401 runtime detection
Don't hide those small functions behind ifdefs.

Signed-off-by: Mauro Carvalho Chehab <mchehab+huawei@kernel.org>
2020-05-20 12:32:17 +02:00
Mauro Carvalho Chehab
8a85fe11c2 media: atomisp: get rid of some non-existing functions for ISP2401
There are no ia_css_set_system_mode() nor
ia_css_is_system_mode_suspend_or_resume() functions at the driver.

So, get rid of the code that would try to call it.

Signed-off-by: Mauro Carvalho Chehab <mchehab+huawei@kernel.org>
2020-05-20 12:32:17 +02:00
Mauro Carvalho Chehab
c06e212da0 media: atomisp: ia_css_binary_get_shading_info(): don't test version
It doesn't make any sense to change the number of parameters
for this function depending on the ISP version.

Signed-off-by: Mauro Carvalho Chehab <mchehab+huawei@kernel.org>
2020-05-20 12:32:17 +02:00
Mauro Carvalho Chehab
bd3016e924 media: atomisp: css_trace.h: use the newest tracing code
The css_trace header for ISP2401 also builds on older versions, and
seems to be compatible with all versions. So, remove all ifdefs
in favor of the CSP2401 version.

Signed-off-by: Mauro Carvalho Chehab <mchehab+huawei@kernel.org>
2020-05-20 12:32:17 +02:00
Mauro Carvalho Chehab
1c874c13cd media: atomisp: add support for possible new names
This patch addresses what it sounds to be a change at the
name of some ACPI registers on newer ACPI tables.

Signed-off-by: Mauro Carvalho Chehab <mchehab+huawei@kernel.org>
2020-05-20 12:32:17 +02:00
Mauro Carvalho Chehab
fe670b2a79 media: atomisp: print css_version in runtime
The CSS version returned by ISP2400 is different than the one
returned by ISP2401.

While we could return just one version for both, as this sounds
like just an informative string, for now, let's keep returning
different versions, as we don't know if this would affect
userspace.

Signed-off-by: Mauro Carvalho Chehab <mchehab+huawei@kernel.org>
2020-05-20 12:32:17 +02:00
Mauro Carvalho Chehab
1e972929f0 media: atomisp: sh_css_param_dvs.h remove ISP version macros
As namespaces aren't duplicated here, just remove the ifdefs.

Signed-off-by: Mauro Carvalho Chehab <mchehab+huawei@kernel.org>
2020-05-20 12:32:16 +02:00
Mauro Carvalho Chehab
19801a18a0 media: atomisp: unify sh_css_params_shading_id_table_generate()
Instead of packing parameters differently on ISP2400 and ISP2401,
use just one way of passing them for both.

Signed-off-by: Mauro Carvalho Chehab <mchehab+huawei@kernel.org>
2020-05-20 12:32:16 +02:00
Mauro Carvalho Chehab
5e0947450d media: atomisp: remove table duplication from dfs tables
The way atomisp_dfs_tables.h is defined, it ends by duplicating
all data structs there on both atomisp_v4l2.c and atomisp_cmd.c.

Change the logic in order to place the definitions only on a single
place.

Signed-off-by: Mauro Carvalho Chehab <mchehab+huawei@kernel.org>
2020-05-20 12:32:16 +02:00
Mauro Carvalho Chehab
6a2782c0b2 media: atomisp: remove ISP version macros from sh_css_legacy.h
This header is really version-independent. So, just get rid
of the macros from it.

Signed-off-by: Mauro Carvalho Chehab <mchehab+huawei@kernel.org>
2020-05-20 12:32:16 +02:00
Mauro Carvalho Chehab
4f744a573d media: atomisp: make sh_css_sp_init_pipeline() ISP version independent
This function call has two parameters that are used only with
ISP2401, enclosed on some ugly ifdefs. Make the function independent,
passing NULL values for ISP2400.

Signed-off-by: Mauro Carvalho Chehab <mchehab+huawei@kernel.org>
2020-05-20 12:32:16 +02:00
Mauro Carvalho Chehab
977e77c0b5 media: atomisp: make sh_css_struct.h independent of ISP version
Use the same struct for both ISP2400 and ISP2401.

Signed-off-by: Mauro Carvalho Chehab <mchehab+huawei@kernel.org>
2020-05-20 12:32:16 +02:00
Mauro Carvalho Chehab
ffa123612a media: atomisp: sh_css_defs.h: get rid of build time dependencies
There are several #ifdefs checking for ISP version there. Some
of them are just two different ways to represent the same contants,
while 3 parameters are actually different, depending on the ISP
version.

Change the header in a way that it will be compatible with both
versions, and change dependent code to keep running, removing
ifdefs there only when possible.

Signed-off-by: Mauro Carvalho Chehab <mchehab+huawei@kernel.org>
2020-05-20 12:32:16 +02:00
Mauro Carvalho Chehab
483f5215a2 media: atomisp: atomisp_compat_ioctl32.c: be independent of ISP version
There are two ioctls that are only available with ISP2401. Yet,
at the compat level, we don't really need to take care, as
the native ioctl handler will already return an error code if
the ioctl doesn't exist.

So, let's just remove the ifdefs here.

Signed-off-by: Mauro Carvalho Chehab <mchehab+huawei@kernel.org>
2020-05-20 12:32:16 +02:00
Mauro Carvalho Chehab
7ef17aa55f media: atomisp: atomisp_compat_css20.c: detect ISP at runtime
Remove ifdefs that check ISP version from the code, switching
to specific ISP-dependent code at runtime.

Signed-off-by: Mauro Carvalho Chehab <mchehab+huawei@kernel.org>
2020-05-20 12:32:16 +02:00
Mauro Carvalho Chehab
78e2888ccb media: atomisp: atomisp_csi2.c: remove useless ifdefs
The ifdefs there are meaningless. Just remove them for good.

Signed-off-by: Mauro Carvalho Chehab <mchehab+huawei@kernel.org>
2020-05-20 12:32:16 +02:00
Mauro Carvalho Chehab
02c392332c media: atomisp: atomisp_subdev.c check ISP version on runtime
Remove ISP-version-dependent ifdefs.

Signed-off-by: Mauro Carvalho Chehab <mchehab+huawei@kernel.org>
2020-05-20 12:32:16 +02:00
Mauro Carvalho Chehab
a19b190e32 media: atomisp: atomisp_v4l2.c: set wdt timers according with ISP version
Add a runtime check to use the proper wdt timer init at runtime,
depending on the chipset revision.

For now, we can't get rid of the remaining version checks, as
the rest of the code is not prepared yet to detect the ISP
version on runtime.

Signed-off-by: Mauro Carvalho Chehab <mchehab+huawei@kernel.org>
2020-05-20 12:32:16 +02:00
Mauro Carvalho Chehab
9ace178dee media: atomisp: atomisp_ioctl.c: get rid of a ISP2400/ISP2401 dependency
Replace #ifdef occurrences there with runtime checks.

Signed-off-by: Mauro Carvalho Chehab <mchehab+huawei@kernel.org>
2020-05-20 12:32:16 +02:00
Mauro Carvalho Chehab
643405b0ff media: atomisp: pci/atomisp2/*.h remove #ifdef ISP2401
Those ifs can easily be removed without breaking the code.

Signed-off-by: Mauro Carvalho Chehab <mchehab+huawei@kernel.org>
2020-05-20 12:32:16 +02:00
Mauro Carvalho Chehab
268ff5bf6b media: atomisp: atomisp_dfs_tables.h: don't depend on ISP version
There's a dependency on this header for the ISP model. While
this sounds really weird (as just one resolution needs it),
as we don't know what's the right value, let's just keep it.

Signed-off-by: Mauro Carvalho Chehab <mchehab+huawei@kernel.org>
2020-05-20 12:32:16 +02:00
Mauro Carvalho Chehab
ea419fdae5 media: atomisp: atomisp_cmd.c test ISP version in runtime
The logic there has lots of ifdef dependencies if the hardware
is either ISP2400 or ISP2041.

Replace them by runtime checks.

Signed-off-by: Mauro Carvalho Chehab <mchehab+huawei@kernel.org>
2020-05-20 12:32:16 +02:00
Mauro Carvalho Chehab
e1ac35b39a media: atomisp: add a way for the driver to know the chipset version
The atomisp supports two different chipsets: ISP2400 and ISP2401.
Right now, this is controlled by ugly #defines inside the driver.

Add a global bolean to identify the type of hardware. While this
is hacky, it would be a quick way to start removing the ugly
ifdefs.

Signed-off-by: Mauro Carvalho Chehab <mchehab+huawei@kernel.org>
2020-05-20 12:32:15 +02:00
Mauro Carvalho Chehab
9a0d7fb5ec media: atomisp: simplify math_support.h
There are some uneeded defines there. Simplify it, and make
it independent of defines.

Signed-off-by: Mauro Carvalho Chehab <mchehab+huawei@kernel.org>
2020-05-20 12:32:15 +02:00
Mauro Carvalho Chehab
02330fb010 media: atomisp: remove some dead code
There are several parts of atomisp that are meant to be
built on different environments, tested using ifdefs.

Remove some of them, as this code should build only on
Linux.

Signed-off-by: Mauro Carvalho Chehab <mchehab+huawei@kernel.org>
2020-05-20 12:32:15 +02:00
Mauro Carvalho Chehab
eaa399eb54 media: atomisp: do lots of other coding style cleanups
Use some auto-reformat tools to make the atomisp style
a little better. There are still lots of weird things there,
but this will hopefully reduce the number of pure coding
style patches submitted upstream.

Signed-off-by: Mauro Carvalho Chehab <mchehab+huawei@kernel.org>
2020-05-20 12:32:15 +02:00
Mauro Carvalho Chehab
bdfe0beb95 media: atomisp: fix several coding style issues
Use checkpatch.pl --fix-inplace --strict to solve several
coding style issues, manually reviewing the produced code and
fixing some troubles caused by checkpatch.

Signed-off-by: Mauro Carvalho Chehab <mchehab+huawei@kernel.org>
2020-05-20 12:32:15 +02:00
Mauro Carvalho Chehab
4636a85cff media: atomisp: fix several typos
Running checkpatch.pl codespell logic found several typos at atomisp
driver.

Fix them using --fix-inline.

Signed-off-by: Mauro Carvalho Chehab <mchehab+huawei@kernel.org>
2020-05-20 12:32:15 +02:00
Mauro Carvalho Chehab
fd3218f513 media: atomisp: select IOSF_MBI dependency
This driver needs IOSF_MBI in order to talk with some PM
registers. Select it at compile time.

Signed-off-by: Mauro Carvalho Chehab <mchehab+huawei@kernel.org>
2020-05-20 12:32:15 +02:00
Mauro Carvalho Chehab
aa31f65140 media: atomisp: allow building the driver again
The atomisp driver builds again. So, remove depends on BROKEN.

Signed-off-by: Mauro Carvalho Chehab <mchehab+huawei@kernel.org>
2020-05-20 12:32:14 +02:00
Mauro Carvalho Chehab
e7b955f8e0 media: atomisp: fix a broken compat32 code
There's a typo at the compat32 code, with forgot to get the
pointer address, causing the driver to not build.

Not sure why this didn't produce an error back when the
driver got removed.

Signed-off-by: Mauro Carvalho Chehab <mchehab+huawei@kernel.org>
2020-05-20 12:32:14 +02:00