All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH v2 0/8] fujitsu-laptop: use device-specific data instead of module-wide globals
@ 2017-05-19  7:44 Michał Kępień
  2017-05-19  7:44 ` [PATCH v2 1/8] platform/x86: fujitsu-laptop: distinguish current uses of device-specific data Michał Kępień
                   ` (8 more replies)
  0 siblings, 9 replies; 15+ messages in thread
From: Michał Kępień @ 2017-05-19  7:44 UTC (permalink / raw)
  To: Jonathan Woithe, Darren Hart, Andy Shevchenko
  Cc: platform-driver-x86, linux-kernel

fujitsu-laptop registers two ACPI drivers that access each other's
module-wide structures.  To improve data encapsulation and lay the
groundwork for separating the two aforementioned ACPI drivers into
separate modules, move away from module-wide global data structures by
using device-specific data instead.

To avoid breaking a working feature (backlight power synchronization
upon module load), this series leaves the module-wide struct fujitsu_bl
in place.  It will be taken care of when the backlight driver is split
into a separate module.

As we agreed that grabbing a handle to an ACPI device using its absolute
path is not a truly elegant solution, this series uses a different
approach to call_fext_func() than v1.  By passing that function a
pointer to a struct acpi_device instead of an acpi_handle, all relevant
static functions of the module will now use the same type for their
first argument and the acpi_handle fields of both module-wide structures
are removed altogether.

This patch series was tested on a Lifebook S7020 and a Lifebook E744.

As with v1, adhering to the "one logical change per patch" rule was
tricky.  If the changes introduced are illegible, I will be happy to
further explain and/or improve the series.  Using --color-words should
make reviewing much more manageable.

Changes from v1:

  - Drop patch 01/10 from v1, i.e. do not introduce fext_*() helper
    functions.

  - Drop patch 02/10 from v1 as the acpi_handle fields of both
    module-wide structures are removed altogether by other patches.

  - Replace patch 03/10 from v1 with patch 6/8, passing call_fext_func()
    a pointer to struct acpi_device instead of an acpi_handle.

  - Drop patch 04/10 from v1, thus deferring driver separation until the
    split into separate modules.  Consider patch 5/8 a partial spiritual
    successor ;)  More information is available in the commit message of
    that patch.

  - Add an additional check to patch 2/8 to avoid a NULL dereference
    which could happen due to patch 04/10 from v1 being dropped.

  - Do not store ACPI handles in private structures.  Instead, extract
    them directly from struct acpi_device pointers passed as function
    arguments.

  - Updated commit messages.

  - As the above might be a bit confusing, here is the patch number
    mapping from v1 to v2:

        v1    | v2
	------+--------
        01/10 | dropped
        02/10 | dropped
        03/10 | 6/8
        04/10 | 5/8
        05/10 | 1/8
        06/10 | 2/8
        07/10 | 3/8
        08/10 | 4/8
        09/10 | 7/8
        10/10 | 8/8

 drivers/platform/x86/fujitsu-laptop.c | 417 +++++++++++++++++-----------------
 1 file changed, 213 insertions(+), 204 deletions(-)

-- 
2.13.0

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

end of thread, other threads:[~2017-06-03 19:06 UTC | newest]

Thread overview: 15+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2017-05-19  7:44 [PATCH v2 0/8] fujitsu-laptop: use device-specific data instead of module-wide globals Michał Kępień
2017-05-19  7:44 ` [PATCH v2 1/8] platform/x86: fujitsu-laptop: distinguish current uses of device-specific data Michał Kępień
2017-05-19  7:44 ` [PATCH v2 2/8] platform/x86: fujitsu-laptop: allocate struct fujitsu_bl in acpi_fujitsu_bl_add() Michał Kępień
2017-05-19  7:44 ` [PATCH v2 3/8] platform/x86: fujitsu-laptop: use device-specific data in backlight code Michał Kępień
2017-05-19  7:44 ` [PATCH v2 4/8] platform/x86: fujitsu-laptop: allocate struct fujitsu_laptop in acpi_fujitsu_laptop_add() Michał Kępień
2017-05-19  7:44 ` [PATCH v2 5/8] platform/x86: fujitsu-laptop: track the last instantiated FUJ02E3 ACPI device Michał Kępień
2017-05-21 23:18   ` Jonathan Woithe
2017-05-23 21:47     ` Michał Kępień
2017-05-23 23:53       ` Jonathan Woithe
2017-05-19  7:44 ` [PATCH v2 6/8] platform/x86: fujitsu-laptop: explicitly pass ACPI device to call_fext_func() Michał Kępień
2017-05-19  7:44 ` [PATCH v2 7/8] platform/x86: fujitsu-laptop: use device-specific data in LED-related code Michał Kępień
2017-05-19  7:44 ` [PATCH v2 8/8] platform/x86: fujitsu-laptop: use device-specific data in remaining module code Michał Kępień
2017-05-21 23:23 ` [PATCH v2 0/8] fujitsu-laptop: use device-specific data instead of module-wide globals Jonathan Woithe
2017-05-24  0:00   ` Jonathan Woithe
2017-06-03 19:06     ` Darren Hart

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.