All of lore.kernel.org
 help / color / mirror / Atom feed
From: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
To: Patrik Gfeller <patrik.gfeller@gmail.com>
Cc: linux-media@vger.kernel.org, mchehab@kernel.org,
	Sakari Ailus <sakari.ailus@iki.fi>
Subject: Re: atomisp kernel driver(s)
Date: Wed, 29 Apr 2020 21:19:26 +0300	[thread overview]
Message-ID: <20200429181926.GM5956@pendragon.ideasonboard.com> (raw)
In-Reply-To: <48ecd222-428d-521d-fdbf-601cd1e21f74@gmail.com>

Hi Patrik,

On Wed, Apr 29, 2020 at 07:59:23PM +0200, Patrik Gfeller wrote:
> On 26.04.20 21:17, Laurent Pinchart wrote:
> > On Sun, Apr 26, 2020 at 09:44:30AM +0200, Patrik Gfeller wrote:
> >> Hi Sakari,
> >>
> >> I hope you are well!
> >>
> >> We are currently evaluation (mainly Mauro and Laurent) if it is possible
> >> to continue the work on the atomisp driver. I try to do some tests to
> >> see if the driver works at all using the patches Mauro made. As the
> >> firmware is hardcoded I need specific firmware versions. In an earlier
> >> post related to atomisp you mentioned that you use the following firmware:
> >>
> >> shisp_2400b0_v21.bin
> >> Version string: irci_stable_candrpv_0415_20150423_1753
> >>
> >> I only found the following versions
> >>
> >> shisp_2400b0_v21.bin
> >> Version string: irci_master_20140707_0622
> >>
> >> shisp_2401a0_v21.bin
> >> Version string: irci_master_20140707_0622
> >>
> >> I tried to change the hardcoded string in the code to the version I have
> >> available, but not sure if it loaded the firmware at all. I saw that
> >> there are debug lines to provide more verbose information, but I could
> >> not figure out how to enable those messages:
> >>
> >> atomisp_fops.c
> >>           isp->firmware = atomisp_load_firmware(isp);
> >>           if (!isp->firmware) {
> >>               dev_err(isp->dev, "Failed to load ISP firmware.\n");
> >>               ret = -ENOENT;
> >>               goto error;
> >>           }
> >>           ret = atomisp_css_load_firmware(isp);
> >>           if (ret) {
> >>               dev_err(isp->dev, "Failed to init css.\n");
> >>               goto error;
> >>           }
> >>
> >> If you could provide me the correct firmware file would be highly
> >> appreciated. Maybe you even remember how to enable the more verbose logging?
> > What verbose logging are you talking about ? If you're referring to
> > dev_dbg(), Documentation/admin-guide/dynamic-debug-howto.rst if your
> > kernel is compiled with dynamic debug support, otherwise just
> >
> > #define DEBUG 1
> >
> > at the top of the file.
> 
> Thanks, That was exactly what I was looking for. I've made sure that 
> dynamic debug support was enabled and re-compiled the kernel. Then I've 
> added to the following boot parameter: dyndbg="module atomisp_ov2680 +pm".

Can you try

atomisp_ov2680.dyndbg=+p

? I haven't tested the plain dyndbg argument myself. Make sure it gets
to the kernel with

cat /proc/cmdline

> I do not see debug messages in dmesg or kern.log - but maybe we do not 
> reach those lines yet.

You can add a dev_dbg() at the beginning of the probe function and see
if that one gets printed.

> >> On 25.04.20 04:39, Laurent Pinchart wrote:
> >>> On Sat, Apr 18, 2020 at 04:39:25PM +0200, Patrik Gfeller wrote:
> >>>> Hello Mauro et al,
> >>>>
> >>>> I've recently switched to Linux, and I'm very impressed. Almost
> >>>> everything thing works out of the box. Only the webcam on my device does
> >>>> not. I did some digging and if I'm right an atomisp driver would be
> >>>> required. Is this correct? Below the output of lspci:
> >>>>
> >>>> 00:00.0 Host bridge: Intel Corporation Atom/Celeron/Pentium Processor x5-E8000/J3xxx/N3xxx Series SoC Transaction Register (rev 36)
> >>>> 00:02.0 VGA compatible controller: Intel Corporation Atom/Celeron/Pentium Processor x5-E8000/J3xxx/N3xxx Integrated Graphics Controller (rev 36)
> >>>> 00:03.0 Multimedia controller: Intel Corporation Atom/Celeron/Pentium Processor x5-E8000/J3xxx/N3xxx Series Imaging Unit (rev 36)
> >>>> 00:0a.0 Non-VGA unclassified device: Intel Corporation Device 22d8 (rev 36)
> >>>> 00:0b.0 Signal processing controller: Intel Corporation Atom/Celeron/Pentium Processor x5-E8000/J3xxx/N3xxx Series Power Management Controller (rev 36)
> >>>> 00:14.0 USB controller: Intel Corporation Atom/Celeron/Pentium Processor x5-E8000/J3xxx/N3xxx Series USB xHCI Controller (rev 36)
> >>>> 00:1a.0 Encryption controller: Intel Corporation Atom/Celeron/Pentium Processor x5-E8000/J3xxx/N3xxx Series Trusted Execution Engine (rev 36)
> >>>> 00:1c.0 PCI bridge: Intel Corporation Atom/Celeron/Pentium Processor x5-E8000/J3xxx/N3xxx Series PCI Express Port #1 (rev 36)
> >>>> 00:1f.0 ISA bridge: Intel Corporation Atom/Celeron/Pentium Processor x5-E8000/J3xxx/N3xxx Series PCU (rev 36)
> >>>> 01:00.0 Network controller: Qualcomm Atheros QCA9377 802.11ac Wireless Network Adapter (rev 31)
> >>>>
> >>>> According to the history it looks like the driver was removed from the
> >>>> kernel in 2018 and replaced with a dummy driver (to make sure power save
> >>>> works).
> >>>>
> >>>> Is there a chance that the atomisp driver will return to the kernel?
> >>> As much as I'd like to say yes, I think this is unfortunately very
> >>> unlikely. There are a few obstacles to getting a working camera with
> >>> atomisp:
> >>>
> >>> - According to some reports, the driver doesn't work. That's the first
> >>>     thing that would need to be fixed, and without hardware documentation
> >>>     and support from Intel, that would be a difficult (to say the least)
> >>>     task.
> >>>
> >>> - Assuming we could fix the driver, we would need to make sure it
> >>>     supports your device. If the atomisp is anything like the IPU3 (a more
> >>>     recent ISP from Intel), there are two different and incompatible sets
> >>>     of ACPI data formats related to the device, one developed for Windows,
> >>>     and one developed for Linux. I expect the atomisp driver to support
> >>>     the latter but not the former. If your device was shipped with
> >>>     Windows, it uses the Windows-specific ACPI data format. Furthermore,
> >>>     it would in that case likely not encode all the information we would
> >>>     need in ACPI, as Windows drivers have the bad habit of hardcoding
> >>>     device-specific data in drivers. At the very least we would need to
> >>>     get the atomisp to support the Windows ACPI data format (which is most
> >>>     likely completely undocumented), and we would need to figure out how
> >>>     to retrieve data that are simply not there. This being said, maybe the
> >>>     atomisp ACPI design was better than the IPU3 and all (or part of)
> >>>     those issues don't exist, but I'd be surprised.
> >>>
> >>> - At this point you would (hopefully) have a driver that could capture
> >>>     RAW images. In order to use the camera as a webcam, those images would
> >>>     need to be processed by the ISP that is part of the atomisp. This
> >>>     requires complex image processing algorithm control code in userspace.
> >>>     Intel has not released any open version of such code for the atomisp
> >>>     (or any other platform) to my knowledge, so this would need to be
> >>>     implemented from scratch. The libcamera project could help there, as
> >>>     it provides a framework to host such code, but the atomisp-specific
> >>>     code would still need to be implemented. This is a complex task when
> >>>     the hardware is fully documented, without hardware documentation and
> >>>     thus without knowing how the hardware works, it gets extremely
> >>>     difficult. The task would be orders of magnitude more complex than
> >>>     reverse-engineering a GPU.
> >>>
> >>> - Finally, in order for the driver to be merged back in the upstream
> >>>     kernel, it would require massive cleanups, but that's the simplest
> >>>     task of all that is required here.
> >>>
> >>> I'm sorry for the bad news, we need to be more vocal blaming hardware
> >>> vendors for this type of mess.
> >>>
> >>>> There are quite a few older tablets and 2in1 devices that would benefit.
> >>>> Unfortunately I do not understand the removed code (my coding skills are
> >>>> very basic) and can thus not help to change what ever is necessary to
> >>>> make it fit for the kernel :-( (does not sound like a beginner project).
> >>>> However - I would be glad to help out to help testing an ISP driver.
> >>>>
> >>>> However - even without the cam it is a very impressing operating system
> >>>> which I enjoy very much. I would like to thank all of you for your work
> >>>> that benefits so many people!
> >>> You're welcome. Your thanks are much appreciated :-)

-- 
Regards,

Laurent Pinchart

  reply	other threads:[~2020-04-29 18:19 UTC|newest]

Thread overview: 70+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2020-04-18 14:39 atomisp kernel driver(s) Patrik Gfeller
2020-04-18 15:25 ` Mauro Carvalho Chehab
2020-04-18 15:26   ` Mauro Carvalho Chehab
2020-04-18 15:37     ` Patrik Gfeller
2020-04-19 23:31       ` Mauro Carvalho Chehab
2020-04-20 17:48         ` Patrik Gfeller
2020-04-20 18:27           ` Patrik Gfeller
2020-04-20 20:47             ` Mauro Carvalho Chehab
2020-04-22 17:56               ` Patrik Gfeller
2020-04-22 19:13                 ` Mauro Carvalho Chehab
2020-04-24  8:52                   ` Patrik Gfeller
2020-04-24  9:10                     ` Patrik Gfeller
2020-04-24 10:07                       ` Patrik Gfeller
2020-04-24 13:58                         ` Patrik Gfeller
2020-04-25 11:22                         ` Mauro Carvalho Chehab
2020-04-26 11:38                           ` Patrik Gfeller
2020-04-26 16:50                             ` Mauro Carvalho Chehab
2020-04-27 18:31                               ` Patrik Gfeller
2020-04-27 21:50                                 ` Mauro Carvalho Chehab
2020-04-28 17:59                                   ` Patrik Gfeller
2020-04-28 23:13                                     ` Mauro Carvalho Chehab
2020-04-29 17:56                                       ` Patrik Gfeller
2020-04-29 18:17                                         ` Mauro Carvalho Chehab
2020-04-30  7:56                                           ` Patrik Gfeller
2020-04-30 10:55                                             ` Mauro Carvalho Chehab
2020-04-30 15:09                                               ` Patrik Gfeller
2020-04-30 22:25                                                 ` Mauro Carvalho Chehab
2020-05-01  8:54                                                   ` Patrik Gfeller
2020-05-01  9:38                                                     ` Mauro Carvalho Chehab
2020-05-01 17:31                                                       ` Patrik Gfeller
2020-05-01 19:30                                                         ` Mauro Carvalho Chehab
2020-05-02  8:15                                                           ` Patrik Gfeller
2020-05-02  9:20                                                             ` Patrik Gfeller
2020-05-02 10:00                                                               ` Mauro Carvalho Chehab
2020-05-02  9:34                                                             ` Mauro Carvalho Chehab
2020-05-02 14:29                                                               ` Patrik Gfeller
2020-05-02 16:28                                                                 ` Mauro Carvalho Chehab
2020-05-02 18:23                                                                   ` Patrik Gfeller
2020-05-02 14:50                                                               ` Patrik Gfeller
2020-05-01 20:56                                                         ` [PATCH] media: atomisp: use add_qos_request instead of update Mauro Carvalho Chehab
2020-04-18 15:29   ` atomisp kernel driver(s) Patrik Gfeller
2020-04-25  2:39 ` Laurent Pinchart
2020-04-25 10:36   ` Patrik Gfeller
2020-04-25 12:19     ` Mauro Carvalho Chehab
2020-04-26 19:07       ` Laurent Pinchart
2020-04-26 20:51         ` Mauro Carvalho Chehab
2020-04-26 19:33     ` Laurent Pinchart
2020-04-28 18:13       ` Patrik Gfeller
2020-04-26  7:44   ` Patrik Gfeller
2020-04-26 19:17     ` Laurent Pinchart
2020-04-29 17:59       ` Patrik Gfeller
2020-04-29 18:19         ` Laurent Pinchart [this message]
2020-04-30 15:28           ` Patrik Gfeller
2020-05-02 16:08 ` Andy Shevchenko
2020-05-02 17:04   ` Mauro Carvalho Chehab
2020-05-02 17:33     ` Andy Shevchenko
2020-05-03 10:18       ` Mauro Carvalho Chehab
2020-05-12 10:20       ` Mauro Carvalho Chehab
2020-05-12 11:12         ` Andy Shevchenko
2020-05-12 11:21           ` Andy Shevchenko
2020-05-12 14:56             ` Mauro Carvalho Chehab
2020-05-12 16:01               ` Andy Shevchenko
2020-05-13 18:36                 ` Patrik Gfeller
2020-05-20  8:04                 ` Mauro Carvalho Chehab
2020-05-13  9:56               ` Mauro Carvalho Chehab
2020-05-03  8:46   ` Patrik Gfeller
2020-05-03 10:23     ` Mauro Carvalho Chehab
2020-05-03 12:31       ` Patrik Gfeller
2020-05-03 13:36         ` Patrik Gfeller
2020-05-03 14:43         ` Mauro Carvalho Chehab

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20200429181926.GM5956@pendragon.ideasonboard.com \
    --to=laurent.pinchart@ideasonboard.com \
    --cc=linux-media@vger.kernel.org \
    --cc=mchehab@kernel.org \
    --cc=patrik.gfeller@gmail.com \
    --cc=sakari.ailus@iki.fi \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.