linux-kernel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH 00/18] Add functionality to ipu3-cio2 driver allowing software_node connections to sensors on platforms designed for Windows
@ 2020-11-30 13:31 Daniel Scally
  2020-11-30 13:31 ` [PATCH 01/18] property: Return true in fwnode_device_is_available for node types that do not implement this operation Daniel Scally
                   ` (17 more replies)
  0 siblings, 18 replies; 144+ messages in thread
From: Daniel Scally @ 2020-11-30 13:31 UTC (permalink / raw)
  To: linux-kernel, linux-acpi, linux-gpio, linux-i2c, linux-media, devel
  Cc: rjw, lenb, gregkh, mika.westerberg, andriy.shevchenko,
	linus.walleij, bgolaszewski, wsa, yong.zhi, sakari.ailus,
	bingbu.cao, tian.shu.qiu, mchehab, robert.moore, erik.kaneda,
	pmladek, rostedt, sergey.senozhatsky, linux,
	kieran.bingham+renesas, jacopo+renesas, laurent.pinchart+renesas,
	jorhand, kitakar, heikki.krogerus

Hello all

Previous version:

https://lore.kernel.org/linux-media/20201019225903.14276-1-djrscally@gmail.com/

This series aims to add support for webcams on laptops with ACPI tables
designed for use with CIO2 on Windows. There are two main parts; the
first is extending the ipu3-cio2 driver to allow for patching the
firmware via software_nodes if endpoints aren't defined by ACPI. Patch #13
deals directly with that, all preceding patches are either supplemental
changes or incidental fixes along the way.

The second main part is a way to handle the unusual definition of resource
destined for the sensors in these ACPI tables; regulators and GPIO lines
that are supposed to be consumed by the sensor are lumped in the _CRS of
a dummy ACPI device upon which the sensor is dependent. Patch 18 defines a
new driver to handle those dummy devices and map the resources to the
sensor instead. 14-17 are supporting changes for that driver.

Changelogs mostly in the individual patches, but a broad summary:

	- Altered fwnode_device_is_available() to return true if the
	fwnode_handle doesn't implement that operation.
	- Altered fwnode_graph_get_endpoint_by_id() to parse secondary
	if no endpoint found on primary.
	- Enforce parent->child ordering of software_nodes on registration
	- Added a function to get the next ACPI device with matching _HID,
	plus an iterator macro
	- Altered cio2-bridge.c to store the bridge struct (and basically
	everything else) in heap, plus removed the requirement to delay
	ipu3-cio2 probe until after the i2c devices were instantiated. 
	Also now ensured we handle multiple sensors with the same _HID.
	- Added a function to get devices _dependent_ on a given ACPI dev,
	according to their _DEP entries.
	- Added a function to explicitly construct the name of an I2C dev
	created from an ACPI dev.
	- Added a driver to handle the dummy ACPI devices discussed above.

Comments very welcome!

Dan Scally (1):
  i2c: i2c-core-base: Use the new i2c_acpi_dev_name() in
    i2c_set_dev_name()

Daniel Scally (16):
  property: Return true in fwnode_device_is_available for node types
    that do not implement this operation
  property: Add support for calling fwnode_graph_get_endpoint_by_id()
    for fwnode->secondary
  software_node: Fix failure to put() and get() references to children
    in software_node_get_next_child()
  software_node: Enforce parent before child ordering of nodes array for
    software_node_register_nodes()
  software_node: Alter software_node_unregister_nodes() to unregister
    the array in reverse order
  software_node: amend software_node_unregister_node_group() to perform
    unregistration of array in reverse order to be consistent with
    software_node_unregister_nodes()
  lib/test_printf.c: Use helper function to unwind array of
    software_nodes
  ipu3-cio2: Add T: entry to MAINTAINERS
  ipu3-cio2: Rename ipu3-cio2.c to allow module to be built from
    multiple source files retaining ipu3-cio2 name
  media: v4l2-core: v4l2-async: Check possible match in match_fwnode
    based on sd->fwnode->secondary
  acpi: Add acpi_dev_get_next_match_dev() and macro to iterate through
    acpi_devices matching a given _HID
  ipu3-cio2: Add functionality allowing software_node connections to
    sensors on platforms designed for Windows
  acpi: utils: Add function to fetch dependent acpi_devices
  i2c: i2c-core-acpi: Add i2c_acpi_dev_name()
  gpio: gpiolib-acpi: Export acpi_get_gpiod()
  ipu3: Add driver for dummy INT3472 ACPI device

Heikki Krogerus (1):
  software_node: Add support for fwnode_graph*() family of functions

 MAINTAINERS                                   |   9 +
 drivers/acpi/utils.c                          |  98 ++++-
 drivers/base/property.c                       |   9 +
 drivers/base/swnode.c                         | 157 +++++++-
 drivers/gpio/gpiolib-acpi.c                   |   3 +-
 drivers/i2c/i2c-core-acpi.c                   |  14 +
 drivers/i2c/i2c-core-base.c                   |   2 +-
 drivers/media/pci/intel/ipu3/Kconfig          |  32 ++
 drivers/media/pci/intel/ipu3/Makefile         |   4 +
 drivers/media/pci/intel/ipu3/cio2-bridge.c    | 260 ++++++++++++
 drivers/media/pci/intel/ipu3/cio2-bridge.h    | 108 +++++
 drivers/media/pci/intel/ipu3/int3472.c        | 381 ++++++++++++++++++
 drivers/media/pci/intel/ipu3/int3472.h        |  96 +++++
 .../ipu3/{ipu3-cio2.c => ipu3-cio2-main.c}    |  27 ++
 drivers/media/pci/intel/ipu3/ipu3-cio2.h      |   6 +
 drivers/media/v4l2-core/v4l2-async.c          |   8 +
 include/acpi/acpi_bus.h                       |   9 +
 include/linux/acpi.h                          |   5 +
 include/linux/i2c.h                           |   5 +
 lib/test_printf.c                             |   4 +-
 20 files changed, 1213 insertions(+), 24 deletions(-)
 create mode 100644 drivers/media/pci/intel/ipu3/cio2-bridge.c
 create mode 100644 drivers/media/pci/intel/ipu3/cio2-bridge.h
 create mode 100644 drivers/media/pci/intel/ipu3/int3472.c
 create mode 100644 drivers/media/pci/intel/ipu3/int3472.h
 rename drivers/media/pci/intel/ipu3/{ipu3-cio2.c => ipu3-cio2-main.c} (98%)

-- 
2.25.1


^ permalink raw reply	[flat|nested] 144+ messages in thread

end of thread, other threads:[~2021-01-09  9:59 UTC | newest]

Thread overview: 144+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2020-11-30 13:31 [PATCH 00/18] Add functionality to ipu3-cio2 driver allowing software_node connections to sensors on platforms designed for Windows Daniel Scally
2020-11-30 13:31 ` [PATCH 01/18] property: Return true in fwnode_device_is_available for node types that do not implement this operation Daniel Scally
2020-11-30 16:05   ` Laurent Pinchart
2020-11-30 17:21   ` Andy Shevchenko
2020-12-01  3:12   ` Bingbu Cao
2020-12-01  8:46     ` Dan Scally
2020-11-30 13:31 ` [PATCH 02/18] property: Add support for calling fwnode_graph_get_endpoint_by_id() for fwnode->secondary Daniel Scally
2020-11-30 16:08   ` Laurent Pinchart
2020-11-30 17:29   ` Andy Shevchenko
2020-11-30 17:28     ` Laurent Pinchart
2020-11-30 17:53       ` Andy Shevchenko
2020-11-30 18:41         ` Laurent Pinchart
2020-11-30 19:21           ` Andy Shevchenko
2020-12-02 10:13     ` Dan Scally
2020-11-30 13:31 ` [PATCH 03/18] software_node: Fix failure to put() and get() references to children in software_node_get_next_child() Daniel Scally
2020-11-30 16:10   ` Laurent Pinchart
2020-11-30 17:30   ` Andy Shevchenko
2020-11-30 13:31 ` [PATCH 04/18] software_node: Enforce parent before child ordering of nodes array for software_node_register_nodes() Daniel Scally
2020-11-30 16:11   ` Laurent Pinchart
2020-11-30 16:12     ` Laurent Pinchart
2020-11-30 23:10       ` Dan Scally
2020-11-30 17:35   ` Andy Shevchenko
2020-11-30 17:37     ` Andy Shevchenko
2020-11-30 13:31 ` [PATCH 05/18] software_node: Alter software_node_unregister_nodes() to unregister the array in reverse order Daniel Scally
2020-11-30 16:14   ` Laurent Pinchart
2020-11-30 17:45   ` Andy Shevchenko
2020-12-01 23:36     ` Dan Scally
2020-11-30 13:31 ` [PATCH 06/18] software_node: amend software_node_unregister_node_group() to perform unregistration of array in reverse order to be consistent with software_node_unregister_nodes() Daniel Scally
2020-11-30 16:17   ` Laurent Pinchart
2020-11-30 17:47     ` Andy Shevchenko
2020-12-02 10:04       ` Dan Scally
2020-11-30 17:19   ` kernel test robot
2020-12-01 18:18   ` Dan Carpenter
2020-11-30 13:31 ` [PATCH 07/18] software_node: Add support for fwnode_graph*() family of functions Daniel Scally
2020-11-30 16:25   ` Laurent Pinchart
2020-11-30 23:34     ` Dan Scally
2020-11-30 13:31 ` [PATCH 08/18] lib/test_printf.c: Use helper function to unwind array of software_nodes Daniel Scally
2020-11-30 15:54   ` Sergey Senozhatsky
2020-11-30 16:26   ` Laurent Pinchart
2020-11-30 13:31 ` [PATCH 09/18] ipu3-cio2: Add T: entry to MAINTAINERS Daniel Scally
2020-11-30 13:31 ` [PATCH 10/18] ipu3-cio2: Rename ipu3-cio2.c to allow module to be built from multiple source files retaining ipu3-cio2 name Daniel Scally
2020-12-01  6:56   ` Bingbu Cao
2020-12-01  7:07     ` Bingbu Cao
2020-11-30 13:31 ` [PATCH 11/18] media: v4l2-core: v4l2-async: Check possible match in match_fwnode based on sd->fwnode->secondary Daniel Scally
2020-11-30 16:27   ` Laurent Pinchart
2020-11-30 17:55   ` Andy Shevchenko
2020-11-30 13:31 ` [PATCH 12/18] acpi: Add acpi_dev_get_next_match_dev() and macro to iterate through acpi_devices matching a given _HID Daniel Scally
2020-11-30 17:58   ` Andy Shevchenko
2020-11-30 13:31 ` [PATCH 13/18] ipu3-cio2: Add functionality allowing software_node connections to sensors on platforms designed for Windows Daniel Scally
2020-11-30 16:45   ` kernel test robot
2020-11-30 17:09   ` Laurent Pinchart
2020-11-30 18:14     ` Andy Shevchenko
2020-12-01 22:08     ` Dan Scally
2020-12-01 22:11       ` Dan Scally
2020-12-01 22:30       ` Laurent Pinchart
2020-12-01 23:15         ` Dan Scally
2020-12-02 10:38         ` Sakari Ailus
2020-12-02 10:53           ` Dan Scally
2020-12-02 12:02             ` Andy Shevchenko
2020-12-02 22:44               ` Dan Scally
2020-12-02 12:01           ` Andy Shevchenko
2020-11-30 20:27   ` kernel test robot
2020-11-30 20:35   ` Sakari Ailus
2020-12-01  8:13     ` Dan Scally
2020-12-01 15:06     ` Andy Shevchenko
2020-12-15 10:28     ` Daniel Scally
2020-12-15 10:32       ` Daniel Scally
2020-12-15 22:02       ` Sakari Ailus
2020-12-17 14:17         ` Daniel Scally
2020-11-30 13:31 ` [PATCH 14/18] acpi: utils: Add function to fetch dependent acpi_devices Daniel Scally
2020-11-30 18:23   ` Andy Shevchenko
2020-11-30 18:40     ` Laurent Pinchart
2020-11-30 23:54     ` Dan Scally
2020-12-01 15:10       ` Andy Shevchenko
2020-12-01 15:23         ` Dan Scally
2020-11-30 13:31 ` [PATCH 15/18] i2c: i2c-core-acpi: Add i2c_acpi_dev_name() Daniel Scally
2020-11-30 17:11   ` Laurent Pinchart
2020-12-02 22:44     ` Dan Scally
2020-11-30 13:31 ` [PATCH 16/18] i2c: i2c-core-base: Use the new i2c_acpi_dev_name() in i2c_set_dev_name() Daniel Scally
2020-11-30 17:12   ` Laurent Pinchart
2020-11-30 19:18     ` Andy Shevchenko
2020-12-02  9:35       ` Andy Shevchenko
2020-12-02  9:49         ` Dan Scally
2020-12-01 23:50     ` Dan Scally
2020-11-30 13:31 ` [PATCH 17/18] gpio: gpiolib-acpi: Export acpi_get_gpiod() Daniel Scally
2020-11-30 17:02   ` kernel test robot
2020-11-30 18:04   ` kernel test robot
2020-11-30 19:20   ` Andy Shevchenko
2020-11-30 13:31 ` [PATCH 18/18] ipu3: Add driver for dummy INT3472 ACPI device Daniel Scally
2020-11-30 16:17   ` Jean-Michel Hautbois
2020-11-30 23:20     ` Dan Scally
2020-12-01 18:31       ` Andy Shevchenko
2020-12-01 18:36         ` Laurent Pinchart
2020-12-01 18:51           ` Andy Shevchenko
2020-11-30 16:29   ` Kieran Bingham
2020-11-30 17:21     ` Laurent Pinchart
2020-11-30 20:07   ` Andy Shevchenko
2020-11-30 23:32     ` Laurent Pinchart
2020-12-01 15:55       ` Sakari Ailus
2020-12-01 18:37         ` Laurent Pinchart
2020-12-02 11:09           ` Sakari Ailus
2020-12-02 12:42             ` Laurent Pinchart
2020-12-02 15:08               ` Andy Shevchenko
2020-12-03 12:37                 ` Dan Scally
2020-12-03 12:57                   ` Andy Shevchenko
2020-12-01 18:49       ` Andy Shevchenko
2020-12-01 20:59         ` Dan Scally
2020-12-02  9:39           ` Andy Shevchenko
2020-12-02 12:35             ` Laurent Pinchart
2020-12-02 15:11               ` Andy Shevchenko
2020-12-03 12:25             ` Dan Scally
2020-12-13 22:48         ` Daniel Scally
2020-12-14 15:33           ` Andy Shevchenko
2020-12-01  8:30     ` Dan Scally
2020-12-01 18:54       ` Andy Shevchenko
2020-12-01 18:55         ` Laurent Pinchart
2020-12-01 19:05           ` Andy Shevchenko
2020-12-01 19:06             ` Laurent Pinchart
2020-12-01 19:21               ` Andy Shevchenko
2020-12-01 20:34                 ` Hans de Goede
2020-12-01 20:46                   ` Andy Shevchenko
2020-12-02 12:48                   ` Laurent Pinchart
2020-12-02 15:15                     ` Andy Shevchenko
2020-12-01 21:05                 ` Dan Scally
2020-12-02  9:42                   ` Andy Shevchenko
2021-01-07 23:55     ` Daniel Scally
2021-01-08 12:17       ` Andy Shevchenko
2021-01-08 23:24         ` Daniel Scally
     [not found]           ` <CAHp75Vcy878xKUUUDH5ory9uS-Vhhx_W1PZc=S6hsSLYJ0i60w@mail.gmail.com>
2021-01-09  9:58             ` Daniel Scally
2021-01-09  0:18         ` Laurent Pinchart
2021-01-09  0:39           ` Daniel Scally
2020-11-30 20:52   ` Sakari Ailus
2020-11-30 23:06     ` Dan Scally
2020-11-30 23:21       ` Laurent Pinchart
2020-12-01  0:05         ` Dan Scally
2020-12-01  6:44       ` Sakari Ailus
2020-12-01  8:08         ` Dan Scally
2020-12-01  8:09           ` Dan Scally
2020-12-01 12:32           ` Sakari Ailus
2020-12-01 12:40             ` Laurent Pinchart
2020-12-01 12:44               ` Sakari Ailus
2020-12-01 12:48             ` Dan Scally
2020-12-01 19:01               ` Andy Shevchenko
2020-12-01 18:55       ` Andy Shevchenko

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).