Age | Commit message (Collapse) | Author | Files | Lines |
|
Document the devicetree bindings for the real time clock found
on Microchip PIC32 class devices.
Signed-off-by: Joshua Henderson <[email protected]>
Acked-by: Rob Herring <[email protected]>
Signed-off-by: Alexandre Belloni <[email protected]>
|
|
The alarm for rx8025 only has a minute accuracy, so unsupport UIE mode.
pcf8563 and hym8563 also have a minute accuracy and unsupport it.
Signed-off-by: Akinobu Mita <[email protected]>
Cc: Wolfgang Grandegger <[email protected]>
Cc: Alessandro Zummo <[email protected]>
Cc: Alexandre Belloni <[email protected]>
Signed-off-by: Alexandre Belloni <[email protected]>
|
|
The alarm for rx8025 only has a minute accuracy, so round up to nearest
minute when setting alarm. Without doing this, rtctest blocks one day
after setting alarm to 5 seconds later.
pcf8563 and hym8563 also have similar handling.
Signed-off-by: Akinobu Mita <[email protected]>
Cc: Wolfgang Grandegger <[email protected]>
Cc: Alessandro Zummo <[email protected]>
Cc: Alexandre Belloni <[email protected]>
Signed-off-by: Alexandre Belloni <[email protected]>
|
|
The ctrl1 register is accessed by alarm operations. But it is updated
in threaded interrupt handler without acquiring rtc->ops_lock.
Signed-off-by: Akinobu Mita <[email protected]>
Cc: Wolfgang Grandegger <[email protected]>
Cc: Alessandro Zummo <[email protected]>
Cc: Alexandre Belloni <[email protected]>
Signed-off-by: Alexandre Belloni <[email protected]>
|
|
When IRQ line for this chips is connected, devm_request_threaded_irq()
refuses to register irq handler with the following message.
genirq: Threaded irq requested with handler=NULL and !ONESHOT for irq
Signed-off-by: Akinobu Mita <[email protected]>
Cc: Wolfgang Grandegger <[email protected]>
Cc: Alessandro Zummo <[email protected]>
Cc: Alexandre Belloni <[email protected]>
Signed-off-by: Alexandre Belloni <[email protected]>
|
|
Few functions were marked inline even though they were relatively large
and sometimes used in multiple places. De-inline them to let the
compiler decide whether optimization makes sense. This fixes inline_hunt
report:
drivers/rtc/rtc-s5m.c: Deinline s5m8767_rtc_set_alarm_reg, save 704 bytes
drivers/rtc/rtc-s5m.c: Deinline s5m8767_wait_for_udr_update, save 192 bytes
Reported-by: Denys Vlasenko <[email protected]>
Cc: Denys Vlasenko <[email protected]>
Signed-off-by: Krzysztof Kozlowski <[email protected]>
Reviewed-by: Javier Martinez Canillas <[email protected]>
Signed-off-by: Alexandre Belloni <[email protected]>
|
|
The Makefile/Kconfig currently controlling compilation of this code is:
obj-$(CONFIG_RTC_CLASS) += rtc-core.o
rtc-core-y := class.o interface.o
drivers/rtc/Kconfig:menuconfig RTC_CLASS
drivers/rtc/Kconfig: bool "Real Time Clock"
...meaning that it currently is not being built as a module by anyone.
Lets remove the modular code that is essentially orphaned, so that
when reading the code there is no doubt it is builtin-only.
We don't replace module.h with init.h since the file does need
to know what a struct module is.
We also delete the MODULE_LICENSE tag etc. since all that information
is already contained at the top of the file in the comments.
Signed-off-by: Paul Gortmaker <[email protected]>
Signed-off-by: Alexandre Belloni <[email protected]>
|
|
When setting a new time/date the RTC's clock must be stopped first, in
order to write the time/date registers in an atomic manner.
So, this change stops the clock first and then writes the time/date
registers and the clock control register (to re-enable the clock) in one
turn.
Signed-off-by: Juergen Borleis <[email protected]>
Signed-off-by: Alexandre Belloni <[email protected]>
|
|
Check if the RTC signals an invalid time/date (due to a battery power loss
for example). In this case ignore the time/date until it is really set again.
Signed-off-by: Juergen Borleis <[email protected]>
Signed-off-by: Alexandre Belloni <[email protected]>
|
|
By using i2c_smbus_read_i2c_block_data() the code is now much simpler.
While at it: when reading the RTC's seconds register, all time/date registers
are frozen until the RTC's year register is read. So it is important to read
all time/date registers in one turn to not lose a second event. Make it more
clear why the read must happen in this way.
Signed-off-by: Juergen Borleis <[email protected]>
Signed-off-by: Alexandre Belloni <[email protected]>
|
|
pcf2123 has an offset register, which can be used to make minor
adjustments to the clock rate to compensate for temperature or
a crystal that is not exactly right.
Signed-off-by: Joshua Clayton <[email protected]>
Signed-off-by: Alexandre Belloni <[email protected]>
|
|
clock offset may be set and read in decimal parts per billion
attribute is /sys/class/rtc/rtcN/offset
The attribute is only visible for rtcs that have set_offset implemented.
Signed-off-by: Joshua Clayton <[email protected]>
Signed-off-by: Alexandre Belloni <[email protected]>
|
|
A number of rtc devices, such as the NXP pcf2123 include a facility
to adjust the clock in order to compensate for temperature or a
crystal, capacitor, etc, that results in the rtc clock not running
at exactly 32.768 kHz.
Data sheets I have seen refer to this as a clock offset, and measure it
in parts per million, however they often reference ppm to 2 digits of
precision, which makes integer ppm less than ideal.
We use parts per billion, which more than covers the precision needed
and works nicely within 32 bits
Signed-off-by: Joshua Clayton <[email protected]>
Signed-off-by: Alexandre Belloni <[email protected]>
|
|
Fix a scheduling while atomic issue caused by rv8803_set_time()
holding a spinlock during the call to i2c_smbus_read_byte_data().
Signed-off-by: Oleksij Rempel <[email protected]>
Signed-off-by: Alexandre Belloni <[email protected]>
|
|
Document Alphascale asm9260 RTC bindings
Signed-off-by: Oleksij Rempel <[email protected]>
Acked-by: Rob Herring <[email protected]>
Signed-off-by: Alexandre Belloni <[email protected]>
|
|
Add support for RTC controller found on Alphascale asm9260
SoC.
Signed-off-by: Oleksij Rempel <[email protected]>
Signed-off-by: Alexandre Belloni <[email protected]>
|
|
DS3231 has programmable square-wave output signal.
This enables to use this feature as a clock provider of
common clock framework.
Signed-off-by: Akinobu Mita <[email protected]>
Reviewed-by: Michael Turquette <[email protected]>
Signed-off-by: Alexandre Belloni <[email protected]>
|
|
To make RTC block of MAX77686/MAX77802 as independent driver,
move the registration of i2c device, regmap for register access
and irq_chip for interrupt support inside the RTC driver.
Removed the same initialisation from MFD driver.
Having this change will allow to reuse this driver for different
PMIC/devices from Maxim Semiconductor if they kept same RTC IP on
different PMIC. Some of examples as PMIC MAX77620, MAX20024 where
same RTC IP used and hence driver for these chips will use this
driver only for RTC support.
Suggested-by: Krzysztof Kozlowski <[email protected]>
Signed-off-by: Laxman Dewangan <[email protected]>
Tested-by: Javier Martinez Canillas <[email protected]>
Reviewed-by: Javier Martinez Canillas <[email protected]>
Acked-by: Lee Jones <[email protected]>
Tested-by: Krzysztof Kozlowski <[email protected]>
Reviewed-by: Krzysztof Kozlowski <[email protected]>
Signed-off-by: Alexandre Belloni <[email protected]>
|
|
There is different RTC I2C address for RTC block in MAX77686.
Driver is creating dummy i2c client for this address to access
the register of this IP block.
As there is no call to i2c_get_clientdata() for rtc_i2c client,
there is no need to store pointer and hence removing the call
to set client data for rtc i2c client.
Suggested-by: Krzysztof Kozlowski <[email protected]>
Signed-off-by: Laxman Dewangan <[email protected]>
Tested-by: Krzysztof Kozlowski <[email protected]>
Reviewed-by: Krzysztof Kozlowski <[email protected]>
Tested-by: Javier Martinez Canillas <[email protected]>
Reviewed-by: Javier Martinez Canillas <[email protected]>
Acked-by: Lee Jones <[email protected]>
Signed-off-by: Alexandre Belloni <[email protected]>
|
|
Get rid of referring parent device info for register access
all the places by making regmap as part of max77686 rtc
device info. This will also remove the need of storing parent
device info in max77686 rtc device info as this is no more required.
Signed-off-by: Laxman Dewangan <[email protected]>
Tested-by: Krzysztof Kozlowski <[email protected]>
Reviewed-by: Krzysztof Kozlowski <[email protected]>
Tested-by: Javier Martinez Canillas <[email protected]>
Reviewed-by: Javier Martinez Canillas <[email protected]>
Signed-off-by: Alexandre Belloni <[email protected]>
|
|
rtc_regmap should be used to access all RTC registers instead
of parent regmap regardless of what chip or property have it.
This makes the register access uniform and extendible for other
chips.
Signed-off-by: Laxman Dewangan <[email protected]>
Tested-by: Krzysztof Kozlowski <[email protected]>
Reviewed-by: Krzysztof Kozlowski <[email protected]>
Tested-by: Javier Martinez Canillas <[email protected]>
Reviewed-by: Javier Martinez Canillas <[email protected]>
Signed-off-by: Alexandre Belloni <[email protected]>
|
|
Fix following check patch error in rtc-max77686 driver:
- Alignment should match open parenthesis.
- braces {} should be used on all arms of this statement.
- Prefer using the BIT macro
Signed-off-by: Laxman Dewangan <[email protected]>
Tested-by: Krzysztof Kozlowski <[email protected]>
Reviewed-by: Krzysztof Kozlowski <[email protected]>
Tested-by: Javier Martinez Canillas <[email protected]>
Reviewed-by: Javier Martinez Canillas <[email protected]>
Signed-off-by: Alexandre Belloni <[email protected]>
|
|
At the moment the "sun6i" RTC drivers depends on having two specific
SoC families selected.
The Allwinner A64 SoC has the same RTC, so extend the Kconfig option
to allow inclusion of the driver for all Allwinner SoCs.
Signed-off-by: Andre Przywara <[email protected]>
Acked-by: Maxime Ripard <[email protected]>
Signed-off-by: Alexandre Belloni <[email protected]>
|
|
The RX6110 comes in two different variants: SPI and I2C.
This driver only supports the SPI variant.
If the need ever arises to also support the I2C variant, this driver
could easily be refactored to support both cases.
Reviewed-by: Philipp Zabel <[email protected]>
Signed-off-by: Steffen Trumtrar <[email protected]>
Signed-off-by: Alexandre Belloni <[email protected]>
|
|
Add the binding documentation for the Epson RX6110 RTC.
Acked-by: Rob Herring <[email protected]>
Reviewed-by: Philipp Zabel <[email protected]>
Signed-off-by: Steffen Trumtrar <[email protected]>
Signed-off-by: Alexandre Belloni <[email protected]>
|
|
pcf2123 data sheet recommends a software reset when the chip
is first powered on. This change avoids resetting the chip
every time the driver is loaded, which has some negative effects.
There are several registers including a clock rate adjustment that really
should survive a reload of the driver (or reboot).
In addition, stopping and restarting the clock to verify the chip is
there is not a good thing once the time is set.
According to the data sheet, the seconds register has a 1 in
the high bit when the voltage has gotten low. We check for this
condition, as well as whether the time retrieved from the chip is
valid. We reset the rtc only if the time is not reliable and valid.
This is sufficient for checking for the presence of the chip,
as either all zeros or all 0xff will result in an invalid time/date
Signed-off-by: Joshua Clayton <[email protected]>
Signed-off-by: Alexandre Belloni <[email protected]>
|
|
Refactor chip reset items into its own function, isolating it from
the rest of the device probe.
Subsequent commits will avoid calling this code.
Signed-off-by: Joshua Clayton <[email protected]>
Signed-off-by: Alexandre Belloni <[email protected]>
|
|
Add new functions pcf2123_write(), and pcf2123_write_reg().
Use named defines for the values being written.
This improves modularity and readability, and reduces lines of code.
Signed-off-by: Joshua Clayton <[email protected]>
Signed-off-by: Alexandre Belloni <[email protected]>
|
|
Put read operations into a function.
This improves modularity and readability.
Signed-off-by: Joshua Clayton <[email protected]>
Signed-off-by: Alexandre Belloni <[email protected]>
|
|
Add defines for all 16 registers in the pcf2123.
Add defines for useful bits from several registers
I've tried to document all the registers, and
as best as possible, all the special bits they employ
Use BIT() wherever possible in the bit definitions
Signed-off-by: Joshua Clayton <[email protected]>
Signed-off-by: Alexandre Belloni <[email protected]>
|
|
The function measurement block must not cross a page boundary. Ensure
that by raising the alignment requirement to the smallest power of 2
larger than the size of the fmb.
Fixes: d0b088531 ("s390/pci: performance statistics and debug infrastructure")
Cc: [email protected] # v3.8+
Signed-off-by: Sebastian Ott <[email protected]>
Signed-off-by: Martin Schwidefsky <[email protected]>
|
|
The iBFT table only specifies a prefix length, not a netmask.
And the netmask is pretty much pointless for IPv6.
So introduce a new attribute 'prefix-len'.
Some older user-space code might rely on the netmask attribute
being present, so we should always display it.
Changes from v1:
- Combined two patches into one
Changes from v2:
- Cleaned up/corrected wording for patch description
v3: [Put Hannes back as author]
Signed-off-by: Hannes Reinecke <[email protected]>
Signed-off-by: Lee Duncan <[email protected]>
Reviewed-by: Mike Christie <[email protected]>
Signed-off-by: Konrad Rzeszutek Wilk <[email protected]>
|
|
* pm-tools:
tools/power turbostat: bugfix: TDP MSRs print bits fixing
tools/power turbostat: correct output for MSR_NHM_SNB_PKG_CST_CFG_CTL dump
tools/power turbostat: call __cpuid() instead of __get_cpuid()
tools/power turbostat: indicate SMX and SGX support
tools/power turbostat: detect and work around syscall jitter
tools/power turbostat: show GFX%rc6
tools/power turbostat: show GFXMHz
tools/power turbostat: show IRQs per CPU
tools/power turbostat: make fewer systems calls
tools/power turbostat: fix compiler warnings
tools/power turbostat: add --out option for saving output in a file
tools/power turbostat: re-name "%Busy" field to "Busy%"
tools/power turbostat: Intel Xeon x200: fix turbo-ratio decoding
tools/power turbostat: Intel Xeon x200: fix erroneous bclk value
tools/power turbostat: allow sub-sec intervals
tools/power turbostat: Decode MSR_MISC_PWR_MGMT
tools/power turbostat: decode HWP registers
x86 msr-index: Simplify syntax for HWP fields
tools/power turbostat: CPUID(0x16) leaf shows base, max, and bus frequency
tools/power turbostat: decode more CPUID fields
|
|
* pm-cpuidle:
cpuidle: menu: help gcc generate slightly better code
cpuidle: menu: avoid expensive square root computation
* pm-sleep:
PM / suspend: replacing printk
PM/freezer: y2038, use boottime to compare tstamps
PM / sleep: declare __tracedata symbols as char[] rather than char
* pm-domains:
PM / Domains: Fix potential NULL pointer dereference
PM / Domains: Fix removal of a subdomain
PM / Domains: Propagate start and restore errors during runtime resume
PM / Domains: Join state name and index in debugfs output
PM / Domains: Restore alignment of slaves in debugfs output
PM / Domains: remove old power on/off latencies
ARM: imx6: pm: declare pm domain latency on power_state struct
PM / Domains: Support for multiple states
|
|
* pm-cpufreq: (94 commits)
intel_pstate: Do not skip samples partially
intel_pstate: Remove freq calculation from intel_pstate_calc_busy()
intel_pstate: Move intel_pstate_calc_busy() into get_target_pstate_use_performance()
intel_pstate: Optimize calculation for max/min_perf_adj
intel_pstate: Remove extra conversions in pid calculation
cpufreq: Move scheduler-related code to the sched directory
Revert "cpufreq: postfix policy directory with the first CPU in related_cpus"
cpufreq: Reduce cpufreq_update_util() overhead a bit
cpufreq: Select IRQ_WORK if CPU_FREQ_GOV_COMMON is set
cpufreq: Remove 'policy->governor_enabled'
cpufreq: Rename __cpufreq_governor() to cpufreq_governor()
cpufreq: Relocate handle_update() to kill its declaration
cpufreq: governor: Drop unnecessary checks from show() and store()
cpufreq: governor: Fix race in dbs_update_util_handler()
cpufreq: governor: Make gov_set_update_util() static
cpufreq: governor: Narrow down the dbs_data_mutex coverage
cpufreq: governor: Make dbs_data_mutex static
cpufreq: governor: Relocate definitions of tuners structures
cpufreq: governor: Move per-CPU data to the common code
cpufreq: governor: Make governor private data per-policy
...
|
|
* pm-opp:
PM / OPP: Rename structures for clarity
PM / OPP: Fix incorrect comments
PM / OPP: Initialize regulator pointer to an error value
PM / OPP: Initialize u_volt_min/max to a valid value
PM / OPP: Fix NULL pointer dereference crash when disabling OPPs
PM / OPP: Add dev_pm_opp_set_rate()
PM / OPP: Manage device clk
PM / OPP: Parse clock-latency and voltage-tolerance for v1 bindings
PM / OPP: Introduce dev_pm_opp_get_max_transition_latency()
PM / OPP: Introduce dev_pm_opp_get_max_volt_latency()
PM / OPP: Disable OPPs that aren't supported by the regulator
PM / OPP: get/put regulators from OPP core
|
|
* powercap:
powercap/rapl: track lead cpu per package
powercap/rapl: add package reference per domain
powercap/rapl: reduce ipi calls
cpumask: export cpumask_any_but
|
|
* device-properties:
device property: fix for a case of use-after-free
|
|
* acpi-ec:
ACPI / EC: Deny write access unless requested by module param
* acpi-fan:
ACPI / fan: Make struct dev_pm_ops const
* acpi-video:
ACPI / video: remove unused device_decode array
* acpi-misc:
ACPI / util: remove redundant check if element is NULL
ACPI: Add acpi_force_32bit_fadt_addr option to force 32 bit FADT addresses
drivers/acpi: make pmic/intel_pmic_crc.c explicitly non-modular
drivers/acpi: make apei/ghes.c more explicitly non-modular
drivers/acpi: make bgrt driver explicitly non-modular
|
|
* acpi-pci:
x86/ACPI/PCI: Recognize that Interrupt Line 255 means "not connected"
* acpi-soc:
i2c: designware: Add device HID for future AMD I2C controller
* pnp:
PNP / ACPI: add ACPI_RESOURCE_TYPE_SERIAL_BUS as a valid type
|
|
* acpi-processor:
ACPI / sleep: move acpi_processor_sleep to sleep.c
ACPI / processor : add support for ACPI0010 processor container
ACPI / processor_idle: replace PREFIX with pr_fmt
* acpi-cppc:
ACPI / CPPC: use MRTT/MPAR to decide if/when a req can be sent
ACPI / CPPC: replace writeX/readX to PCC with relaxed version
mailbox: pcc: optimized pcc_send_data
ACPI / CPPC: optimized cpc_read and cpc_write
ACPI / CPPC: Optimize PCC Read Write operations
|
|
* acpi-scan:
ACPI / scan: AMBA bus probing support
ACPI: introduce a function to find the first physical device
* acpi-osl:
ACPI / OSL: Add support to install tables via initrd
ACPI / OSL: Clean up initrd table override code
* acpi-apei:
ACPI / APEI: ERST: Fixed leaked resources in erst_init
ACPI / APEI: Fix leaked resources
|
|
* acpica:
ACPICA / Interpreter: Fix a regression triggered because of wrong Linux ECDT support
ACPICA: Utilities: Update trace mechinism for acquire_object
ACPICA: Namespace: Rename acpi_gbl_reg_methods_enabled to acpi_gbl_namespace_initialized
ACPICA: Namespace: Ensure \_SB._INI executed before any _REG
ACPICA: ACPICA: Tune _REG evaluations order in the initialization steps
ACPICA: Tables: make default region accessible during the table load
ACPICA: ACPI 6.0/iASL: Add support for the External AML opcode
ACPICA: Remove unnecessary arguments to ACPI_INFO
ACPICA: debugger: dbconvert: free pld_info on error return path
ACPICA: iASL: Update to use internal acpi_ut_strtoul64 function
ACPICA: iASL: Fix some typos with the name strtoul64
ACPICA: Remove incorrect "static" from a global structure
ACPICA: aclocal: Put parens around some definitions.
|
|
If the 'old' operand to cmpxchg() is a constant wider than 21 bits,
linking fails with a "relocation truncated to fit: R_AVR32_21S" error.
Fix this by replacing the "i" constraint with "Ks21" which makes the
compiler use a temporary register for out of range constants.
Signed-off-by: Mans Rullgard <[email protected]>
Acked-by: Hans-Christian Noren Egtvedt <[email protected]>
Tested-by: Andy Shevchenko <[email protected]>
Tested-by: Sudip Mukherjee <[email protected]>
|
|
This patch wires up the new copy_file_range syscall on AVR32.
On AVR32, all parameters beyond the 5th are passed on the stack. System
calls don't use the stack -- they borrow a callee-saved register
instead. This means that syscalls that take 6 parameters must be called
through a stub that pushes the last parameter on the stack.
Signed-off-by: Hans-Christian Noren Egtvedt <[email protected]>
|
|
led_trigger_store can be significantly simplified by using sysfs_streq().
Signed-off-by: Heiner Kallweit <[email protected]>
Signed-off-by: Jacek Anaszewski <[email protected]>
|
|
Switch to resource-managed function devm_led_classdev_register instead
of led_classdev_register and remove unneeded led_classdev_unregister.
Also, remove platform_set_drvdata in probe function and the remove
function, max8997_led_remove as it is now has nothing to do.
The Coccinelle semantic patch used to make this change is as follows:
//<smpl>
@platform@
identifier p, probefn, removefn;
@@
struct platform_driver p = {
.probe = probefn,
.remove = removefn,
};
@prb@
identifier platform.probefn, pdev;
expression e;
@@
probefn(struct platform_device *pdev, ...) {
...
e =
- led_classdev_register
+ devm_led_classdev_register
(...);
...
?- led_classdev_unregister(...);
...
}
@remove depends on prb@
identifier platform.removefn;
@@
removefn(...) {
...
?- led_classdev_unregister(...);
...
}
//</smpl>
Signed-off-by: Amitoj Kaur Chawla <[email protected]>
Signed-off-by: Jacek Anaszewski <[email protected]>
|
|
Switch to resource-managed function devm_led_classdev_register instead
of led_classdev_register and remove unneeded led_classdev_unregister.
Also, remove platform_set_drvdata in probe function and the remove
function, da903x_led_remove as it is now has nothing to do.
The Coccinelle semantic patch used to make this change is as follows:
//<smpl>
@platform@
identifier p, probefn, removefn;
@@
struct platform_driver p = {
.probe = probefn,
.remove = removefn,
};
@prb@
identifier platform.probefn, pdev;
expression e;
@@
probefn(struct platform_device *pdev, ...) {
...
e =
- led_classdev_register
+ devm_led_classdev_register
(...);
...
?- led_classdev_unregister(...);
...
}
@remove depends on prb@
identifier platform.removefn;
@@
removefn(...) {
...
?- led_classdev_unregister(...);
...
}
//</smpl>
Signed-off-by: Amitoj Kaur Chawla <[email protected]>
Signed-off-by: Jacek Anaszewski <[email protected]>
|
|
Switch to resource-managed function devm_led_classdev_register instead
of led_classdev_register and remove unneeded led_classdev_unregister.
Also, remove unnecessary function pdev_to_gpio, platform_set_drvdata
in the probe function and the remove function, s3c24xx_led_remove as
it is now has nothing to do.
The Coccinelle semantic patch used to make this change is as follows:
//<smpl>
@platform@
identifier p, probefn, removefn;
@@
struct platform_driver p = {
.probe = probefn,
.remove = removefn,
};
@prb@
identifier platform.probefn, pdev;
expression e;
@@
probefn(struct platform_device *pdev, ...) {
...
e =
- led_classdev_register
+ devm_led_classdev_register
(...);
...
?- led_classdev_unregister(...);
...
}
@remove depends on prb@
identifier platform.removefn;
@@
removefn(...) {
...
?- led_classdev_unregister(...);
...
}
//</smpl>
Signed-off-by: Amitoj Kaur Chawla <[email protected]>
Signed-off-by: Jacek Anaszewski <[email protected]>
|
|
Switch to resource-managed function devm_led_classdev_register instead
of led_classdev_register and remove unneeded led_classdev_unregister.
Also, remove platform_set_drvdata from probe function and the remove
function, wm831x_status_remove as it is now has nothing to do.
The Coccinelle semantic patch used to make this change is as follows:
//<smpl>
@platform@
identifier p, probefn, removefn;
@@
struct platform_driver p = {
.probe = probefn,
.remove = removefn,
};
@prb@
identifier platform.probefn, pdev;
expression e;
@@
probefn(struct platform_device *pdev, ...) {
...
e =
- led_classdev_register
+ devm_led_classdev_register
(...);
...
?- led_classdev_unregister(...);
...
}
@remove depends on prb@
identifier platform.removefn;
@@
removefn(...) {
...
?- led_classdev_unregister(...);
...
}
//</smpl>
Signed-off-by: Amitoj Kaur Chawla <[email protected]>
Signed-off-by: Jacek Anaszewski <[email protected]>
|