mirror of
https://github.com/torvalds/linux.git
synced 2024-11-30 08:01:59 +00:00
Driver changes for omaps for v6.6
Driver changes for ti-sysc interconnect target module driver and for l3 interconnect error handler. The ti-sysc driver changes just enable using it for 64-bit systems like TI am62 that have wake-up capability for the wkup domain devices. The l3 error handling improves the code to show the error source if an unrecoverable timeout error occurs. -----BEGIN PGP SIGNATURE----- iQJFBAABCAAvFiEEkgNvrZJU/QSQYIcQG9Q+yVyrpXMFAmTcS0cRHHRvbnlAYXRv bWlkZS5jb20ACgkQG9Q+yVyrpXOtdA/+KwjCGqOpG3FDvgrLuLtL3ELKAat/LO1O eIWUvpLWX4b067AaYaEk6KRngTYGdj+KM99k88cydBY2JvFXXD3ivg5QVZoJ3aKm jiQfuouVcy6ea4ymOOfW81N9ugpTafBcSdtZomEEPF8HSCRkPD2FnzmK60BKLN/j 7s6UMGrwwwL3+2xqitsLUDlcD5dJ2a2tSf2NXy2PFrtQbx3DqR65HYwEGvncyFxR YvPKFKeT0yzt/wyZ7CGhuJPVqzAWeCWsjFnqcGscmjc7e4v6a14iR+vUo5qkaKo8 TvHWcFRsBlmvERcLGjSH5wnZnhqm46uc+9AVucpSVIOIDcljQX5D2/vuwZ2P7Zay jnaeCfrrGpFOXi5JaeFRM99ihvv1VrvQKOamsz5/XZjNCEri/f9TM4M28AmkB3FB vFZaJBbQfgYIahrE8pmXN2A6LB0QyubHkBDoYD6BKQRN/sz0t+WEEl7BS/qakO5K lzj5m/sXDPdb6ORzo5S/hFoOyOBA+EuheXuMRI96XkRK2aF/3jPW5t7IRh1dc9pa uv0NVeBc7Jf3vtRA60pO8ecc8YKZmO8hEK9cmhUyXDsgFfG7awXIEJyGc31NDWRz er26bjGjR0ELbZRlpJMpD1mYdkwfWFhnxQ5jFDIzcCMv5P2p5iJdZpryFZfCbt8t jscs2HgPX6Y= =//Xy -----END PGP SIGNATURE----- gpgsig -----BEGIN PGP SIGNATURE----- iQIzBAABCgAdFiEEiK/NIGsWEZVxh/FrYKtH/8kJUicFAmTkDGcACgkQYKtH/8kJ UifhxBAAzjHmDaL0JgVuAi0l9W9W8CYUnZre4S6qAu6349oEaRdpzChE6KWxCCvd xDginfnU93vXuxvsvTRauW9E63jLQ8vh6XyTpHV+yhbJj8x+NlkK6smp0cGCqClE cC0w/lg6HrJpkbxcK/PgSlAAFbyCmdsW5T/g+UC5Ip5Ts1pBn8xbdGBMAtzu7Clp oxqxC6RDDObeUJ5/kUI9ryIG0cH8CtSnrvz0eDLckCt1mhO6Ofw1URxzyTUc79jc rX69r9v1nPHU++5XuPXAPWc5nWXvwfKJAOXxyHIHO3kMUsEPum+Dd04vTRTD7SzS j1oiNVqEWocd7DLh8CTNx73hwJyxfjDLv9U2avg5lts6TG5eloAyf/CzCxEC29jo TSQn8W6yw4rueemzoNUypIKH5t1lkvpkbGZhIiEQf7iBCOx3b7pRJZAkWOniC/Xj Uw/w1aICfxPPXAfsxGpMC8hIZLhu8aS+He+4tUghWD1HFfxshnSYOcKpw2Cqp8P2 aTgEVTLUzaEw086S/fSKM6+fsT9Fl5vMjH5KxMmRP9k7jhu96SuHX8UV0zKVvYom U0IvQ2E8rtgoB2zQ3MeaNh0bmyA6PZL3QDpNg4ymWVkvITh6RXFpjXB8XIQh4unA ivXP4YSJnPFOM4cXlSYykx5nysOKvHkgy3OjfBMSMcqdCMP2avI= =QAxs -----END PGP SIGNATURE----- Merge tag 'omap-for-v6.6/ti-sysc-signed' of git://git.kernel.org/pub/scm/linux/kernel/git/tmlind/linux-omap into soc/drivers Driver changes for omaps for v6.6 Driver changes for ti-sysc interconnect target module driver and for l3 interconnect error handler. The ti-sysc driver changes just enable using it for 64-bit systems like TI am62 that have wake-up capability for the wkup domain devices. The l3 error handling improves the code to show the error source if an unrecoverable timeout error occurs. * tag 'omap-for-v6.6/ti-sysc-signed' of git://git.kernel.org/pub/scm/linux/kernel/git/tmlind/linux-omap: bus: ti-sysc: Fix cast to enum warning bus: ti-sysc: Fix a build warning with W=1 for sysconfig bus: ti-sysc: Configure uart quirks for k3 SoC bus: ti-sysc: Build driver for TI K3 SoCs bus: ti-sysc: Fix build warning for 64-bit build bus: omap_l3_smx: identify timeout cause before rebooting Link: https://lore.kernel.org/r/pull-1692158857-597450@atomide.com Signed-off-by: Arnd Bergmann <arnd@arndb.de>
This commit is contained in:
commit
6681618814
@ -210,7 +210,8 @@ config TI_PWMSS
|
||||
|
||||
config TI_SYSC
|
||||
bool "TI sysc interconnect target module driver"
|
||||
depends on ARCH_OMAP2PLUS
|
||||
depends on ARCH_OMAP2PLUS || ARCH_K3
|
||||
default y
|
||||
help
|
||||
Generic driver for Texas Instruments interconnect target module
|
||||
found on many TI SoCs.
|
||||
|
@ -166,19 +166,10 @@ static irqreturn_t omap3_l3_app_irq(int irq, void *_l3)
|
||||
irqreturn_t ret = IRQ_NONE;
|
||||
|
||||
int_type = irq == l3->app_irq ? L3_APPLICATION_ERROR : L3_DEBUG_ERROR;
|
||||
if (!int_type) {
|
||||
if (!int_type)
|
||||
status = omap3_l3_readll(l3->rt, L3_SI_FLAG_STATUS_0);
|
||||
/*
|
||||
* if we have a timeout error, there's nothing we can
|
||||
* do besides rebooting the board. So let's BUG on any
|
||||
* of such errors and handle the others. timeout error
|
||||
* is severe and not expected to occur.
|
||||
*/
|
||||
BUG_ON(status & L3_STATUS_0_TIMEOUT_MASK);
|
||||
} else {
|
||||
else
|
||||
status = omap3_l3_readll(l3->rt, L3_SI_FLAG_STATUS_1);
|
||||
/* No timeout error for debug sources */
|
||||
}
|
||||
|
||||
/* identify the error source */
|
||||
err_source = __ffs(status);
|
||||
@ -190,6 +181,14 @@ static irqreturn_t omap3_l3_app_irq(int irq, void *_l3)
|
||||
ret |= omap3_l3_block_irq(l3, error, error_addr);
|
||||
}
|
||||
|
||||
/*
|
||||
* if we have a timeout error, there's nothing we can
|
||||
* do besides rebooting the board. So let's BUG on any
|
||||
* of such errors and handle the others. timeout error
|
||||
* is severe and not expected to occur.
|
||||
*/
|
||||
BUG_ON(!int_type && status & L3_STATUS_0_TIMEOUT_MASK);
|
||||
|
||||
/* Clear the status register */
|
||||
clear = (L3_AGENT_STATUS_CLEAR_IA << int_type) |
|
||||
L3_AGENT_STATUS_CLEAR_TA;
|
||||
|
@ -109,6 +109,7 @@ static const char * const clock_names[SYSC_MAX_CLOCKS] = {
|
||||
* @cookie: data used by legacy platform callbacks
|
||||
* @name: name if available
|
||||
* @revision: interconnect target module revision
|
||||
* @sysconfig: saved sysconfig register value
|
||||
* @reserved: target module is reserved and already in use
|
||||
* @enabled: sysc runtime enabled status
|
||||
* @needs_resume: runtime resume needed on resume from suspend
|
||||
@ -1525,6 +1526,8 @@ static const struct sysc_revision_quirk sysc_revision_quirks[] = {
|
||||
SYSC_QUIRK_SWSUP_SIDLE | SYSC_QUIRK_LEGACY_IDLE),
|
||||
SYSC_QUIRK("uart", 0, 0x50, 0x54, 0x58, 0x47422e03, 0xffffffff,
|
||||
SYSC_QUIRK_SWSUP_SIDLE | SYSC_QUIRK_LEGACY_IDLE),
|
||||
SYSC_QUIRK("uart", 0, 0x50, 0x54, 0x58, 0x47424e03, 0xffffffff,
|
||||
SYSC_QUIRK_SWSUP_SIDLE | SYSC_QUIRK_LEGACY_IDLE),
|
||||
|
||||
/* Quirks that need to be set based on the module address */
|
||||
SYSC_QUIRK("mcpdm", 0x40132000, 0, 0x10, -ENODEV, 0x50000800, 0xffffffff,
|
||||
@ -3104,7 +3107,7 @@ static int sysc_init_static_data(struct sysc *ddata)
|
||||
|
||||
match = soc_device_match(sysc_soc_match);
|
||||
if (match && match->data)
|
||||
sysc_soc->soc = (int)match->data;
|
||||
sysc_soc->soc = (enum sysc_soc)(uintptr_t)match->data;
|
||||
|
||||
/*
|
||||
* Check and warn about possible old incomplete dtb. We now want to see
|
||||
|
Loading…
Reference in New Issue
Block a user