Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Added NXP PCF8523 real time clock chip driver. #173

Closed
wants to merge 1 commit into from
Closed

Added NXP PCF8523 real time clock chip driver. #173

wants to merge 1 commit into from

Conversation

adnan-aj
Copy link

First attempt to patch in the NXP PCF8523 RTC chip driver as a module.

@popcornmix
Copy link
Collaborator

We generally don't accept out of tree drivers, unless there is significant demand (e.g. the rtl8192 wifi driver which had a forum thread with a thousand posts).
Out of tree drivers make merging with newer kernel versions more difficult, and there could be stability issues.

If there is interest in this, please comment here.

@rebroad
Copy link

rebroad commented Dec 24, 2012

Will this pull request get rid of the "drivers/rtc/hctosys.c: unable to open rtc device (rtc0)" error upon bootup?

@adnan-aj
Copy link
Author

No, the drivers/rtc/hctosys.c relies on two parts: a clock chip driver (like mine above, but must be compiled into the kernel, not as a module) and then, this former device-driver device-registration somewhere in arch/arm/bcm2708.c as i2c_register_board_info() as part of the board initialisation process. An excerpt to this patched file would look like:

...
static struct i2c_board_info raspyjuice_i2c_devices[] = {
{
I2C_BOARD_INFO("pcf8523", 0x68),
},
};

void __init bcm2708_init(void)
{
...
i2c_register_board_info(0, raspyjuice_i2c_devices,
ARRAY_SIZE(raspyjuice_i2c_devices));
}
...

This was to be my second phase of patching so that the hctosys.c in the kernel bootup can read the clock chip and set the time.
But I have my reservations on the 'style' of patching directly into the bcm2708.c because the file is quite neat dealing only with intrinsic device-controllers of the bcm2708. I was going to suggest a separate file for expansion-board related peripherals, after I've brought my clock hip driver 'upstream'.

@adnan-aj
Copy link
Author

A similar but improved NXP PCF8523 RTC clock chip driver is now available in linux-3.8 release candidates. I think I'll just wait until that linux version becomes prevalent/popular.

I don't know if it is worth backporting the above (release candidate) PCF8523 driver back into this linux-3.2.27.

I am closing this pull request. Thanks, anyway.

@adnan-aj adnan-aj closed this Jan 24, 2013
popcornmix pushed a commit that referenced this pull request Nov 17, 2022
If transport_add_device() fails in sas_phy_add(), the kernel will crash
trying to delete the device in transport_remove_device() called from
sas_remove_host().

Unable to handle kernel NULL pointer dereference at virtual address 0000000000000108
CPU: 61 PID: 42829 Comm: rmmod Kdump: loaded Tainted: G        W          6.1.0-rc1+ #173
pstate: 60000005 (nZCv daif -PAN -UAO -TCO -DIT -SSBS BTYPE=--)
pc : device_del+0x54/0x3d0
lr : device_del+0x37c/0x3d0
Call trace:
 device_del+0x54/0x3d0
 attribute_container_class_device_del+0x28/0x38
 transport_remove_classdev+0x6c/0x80
 attribute_container_device_trigger+0x108/0x110
 transport_remove_device+0x28/0x38
 sas_phy_delete+0x30/0x60 [scsi_transport_sas]
 do_sas_phy_delete+0x6c/0x80 [scsi_transport_sas]
 device_for_each_child+0x68/0xb0
 sas_remove_children+0x40/0x50 [scsi_transport_sas]
 sas_remove_host+0x20/0x38 [scsi_transport_sas]
 hisi_sas_remove+0x40/0x68 [hisi_sas_main]
 hisi_sas_v2_remove+0x20/0x30 [hisi_sas_v2_hw]
 platform_remove+0x2c/0x60

Fix this by checking and handling return value of transport_add_device()
in sas_phy_add().

Fixes: c7ebbbc ("[SCSI] SAS transport class")
Suggested-by: John Garry <[email protected]>
Signed-off-by: Yang Yingliang <[email protected]>
Link: https://lore.kernel.org/r/[email protected]
Reviewed-by: John Garry <[email protected]>
Reviewed-by: Jason Yan <[email protected]>
Signed-off-by: Martin K. Petersen <[email protected]>
herrnst pushed a commit to herrnst/linux-raspberrypi that referenced this pull request Nov 26, 2022
[ Upstream commit 5d7bebf ]

If transport_add_device() fails in sas_phy_add(), the kernel will crash
trying to delete the device in transport_remove_device() called from
sas_remove_host().

Unable to handle kernel NULL pointer dereference at virtual address 0000000000000108
CPU: 61 PID: 42829 Comm: rmmod Kdump: loaded Tainted: G        W          6.1.0-rc1+ raspberrypi#173
pstate: 60000005 (nZCv daif -PAN -UAO -TCO -DIT -SSBS BTYPE=--)
pc : device_del+0x54/0x3d0
lr : device_del+0x37c/0x3d0
Call trace:
 device_del+0x54/0x3d0
 attribute_container_class_device_del+0x28/0x38
 transport_remove_classdev+0x6c/0x80
 attribute_container_device_trigger+0x108/0x110
 transport_remove_device+0x28/0x38
 sas_phy_delete+0x30/0x60 [scsi_transport_sas]
 do_sas_phy_delete+0x6c/0x80 [scsi_transport_sas]
 device_for_each_child+0x68/0xb0
 sas_remove_children+0x40/0x50 [scsi_transport_sas]
 sas_remove_host+0x20/0x38 [scsi_transport_sas]
 hisi_sas_remove+0x40/0x68 [hisi_sas_main]
 hisi_sas_v2_remove+0x20/0x30 [hisi_sas_v2_hw]
 platform_remove+0x2c/0x60

Fix this by checking and handling return value of transport_add_device()
in sas_phy_add().

Fixes: c7ebbbc ("[SCSI] SAS transport class")
Suggested-by: John Garry <[email protected]>
Signed-off-by: Yang Yingliang <[email protected]>
Link: https://lore.kernel.org/r/[email protected]
Reviewed-by: John Garry <[email protected]>
Reviewed-by: Jason Yan <[email protected]>
Signed-off-by: Martin K. Petersen <[email protected]>
Signed-off-by: Sasha Levin <[email protected]>
popcornmix pushed a commit that referenced this pull request Nov 29, 2022
[ Upstream commit 5d7bebf ]

If transport_add_device() fails in sas_phy_add(), the kernel will crash
trying to delete the device in transport_remove_device() called from
sas_remove_host().

Unable to handle kernel NULL pointer dereference at virtual address 0000000000000108
CPU: 61 PID: 42829 Comm: rmmod Kdump: loaded Tainted: G        W          6.1.0-rc1+ #173
pstate: 60000005 (nZCv daif -PAN -UAO -TCO -DIT -SSBS BTYPE=--)
pc : device_del+0x54/0x3d0
lr : device_del+0x37c/0x3d0
Call trace:
 device_del+0x54/0x3d0
 attribute_container_class_device_del+0x28/0x38
 transport_remove_classdev+0x6c/0x80
 attribute_container_device_trigger+0x108/0x110
 transport_remove_device+0x28/0x38
 sas_phy_delete+0x30/0x60 [scsi_transport_sas]
 do_sas_phy_delete+0x6c/0x80 [scsi_transport_sas]
 device_for_each_child+0x68/0xb0
 sas_remove_children+0x40/0x50 [scsi_transport_sas]
 sas_remove_host+0x20/0x38 [scsi_transport_sas]
 hisi_sas_remove+0x40/0x68 [hisi_sas_main]
 hisi_sas_v2_remove+0x20/0x30 [hisi_sas_v2_hw]
 platform_remove+0x2c/0x60

Fix this by checking and handling return value of transport_add_device()
in sas_phy_add().

Fixes: c7ebbbc ("[SCSI] SAS transport class")
Suggested-by: John Garry <[email protected]>
Signed-off-by: Yang Yingliang <[email protected]>
Link: https://lore.kernel.org/r/[email protected]
Reviewed-by: John Garry <[email protected]>
Reviewed-by: Jason Yan <[email protected]>
Signed-off-by: Martin K. Petersen <[email protected]>
Signed-off-by: Sasha Levin <[email protected]>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants