Hi,
This is a resubmit of the previous patch series with a few changes:
- Added LED_FUNCTION_PLAYER1 to LED_FUNCTION_PLAYER5 defines.
- Removed LED_FUNCTION_PLAYER define.
- Changed ps_led_register use led_classdev->brightness_set_blocking.
Regards,
Roderick Colenbrander
Sony Interactive Entertainment, LLC
Roderick Colenbrander (3):
HID: playstation: expose DualSense lightbar through a multi-color LED.
leds: add new LED_FUNCTION_PLAYER for player LEDs for game
controllers.
HID: playstation: expose DualSense player LEDs through LED class.
Documentation/leds/well-known-leds.txt | 14 +++
drivers/hid/hid-playstation.c | 157 ++++++++++++++++++++++++-
include/dt-bindings/leds/common.h | 7 ++
3 files changed, 177 insertions(+), 1 deletion(-)
--
2.31.1
The DualSense lightbar has so far been supported, but it was not yet
adjustable from user space. This patch exposes it through a multi-color
LED.
Signed-off-by: Roderick Colenbrander <roderick.colenbrander@sony.com>
---
drivers/hid/hid-playstation.c | 72 +++++++++++++++++++++++++++++++++++
1 file changed, 72 insertions(+)
@@ -38,6 +40,7 @@ struct ps_device {uint8_tbattery_capacity;intbattery_status;+constchar*input_dev_name;/* Name of primary input device. */uint8_tmac_address[6];/* Note: stored in little endian order. */uint32_thw_version;uint32_tfw_version;
@@ -525,6 +531,45 @@ static int ps_get_report(struct hid_device *hdev, uint8_t report_id, uint8_t *bureturn0;}+/* Register a DualSense/DualShock4 RGB lightbar represented by a multicolor LED. */+staticintps_lightbar_register(structps_device*ps_dev,structled_classdev_mc*lightbar_mc_dev,+int(*brightness_set)(structled_classdev*,enumled_brightness))+{+structhid_device*hdev=ps_dev->hdev;+structmc_subled*mc_led_info;+structled_classdev*led_cdev;+intret;++mc_led_info=devm_kmalloc_array(&hdev->dev,3,sizeof(*mc_led_info),+GFP_KERNEL|__GFP_ZERO);+if(!mc_led_info)+return-ENOMEM;++mc_led_info[0].color_index=LED_COLOR_ID_RED;+mc_led_info[1].color_index=LED_COLOR_ID_GREEN;+mc_led_info[2].color_index=LED_COLOR_ID_BLUE;++lightbar_mc_dev->subled_info=mc_led_info;+lightbar_mc_dev->num_colors=3;++led_cdev=&lightbar_mc_dev->led_cdev;+led_cdev->name=devm_kasprintf(&hdev->dev,GFP_KERNEL,"%s:rgb:indicator",+ps_dev->input_dev_name);+if(!led_cdev->name)+return-ENOMEM;+led_cdev->brightness=255;+led_cdev->max_brightness=255;+led_cdev->brightness_set_blocking=brightness_set;++ret=devm_led_classdev_multicolor_register(&hdev->dev,lightbar_mc_dev);+if(ret<0){+hid_err(hdev,"Cannot register multicolor LED device\n");+returnret;+}++return0;+}+staticstructinput_dev*ps_sensors_create(structhid_device*hdev,intaccel_range,intaccel_res,intgyro_range,intgyro_res){
@@ -761,6 +806,22 @@ static int dualsense_get_mac_address(struct dualsense *ds)returnret;}+staticintdualsense_lightbar_set_brightness(structled_classdev*cdev,+enumled_brightnessbrightness)+{+structled_classdev_mc*mc_cdev=lcdev_to_mccdev(cdev);+structdualsense*ds=container_of(mc_cdev,structdualsense,lightbar);+uint8_tred,green,blue;++led_mc_calc_color_components(mc_cdev,brightness);+red=mc_cdev->subled_info[0].brightness;+green=mc_cdev->subled_info[1].brightness;+blue=mc_cdev->subled_info[2].brightness;++dualsense_set_lightbar(ds,red,green,blue);+return0;+}+staticvoiddualsense_init_output_report(structdualsense*ds,structdualsense_output_report*rp,void*buf){
@@ -1106,10 +1167,14 @@ static int dualsense_reset_leds(struct dualsense *ds)staticvoiddualsense_set_lightbar(structdualsense*ds,uint8_tred,uint8_tgreen,uint8_tblue){+unsignedlongflags;++spin_lock_irqsave(&ds->base.lock,flags);ds->update_lightbar=true;ds->lightbar_red=red;ds->lightbar_green=green;ds->lightbar_blue=blue;+spin_unlock_irqrestore(&ds->base.lock,flags);schedule_work(&ds->output_worker);}
@@ -1196,6 +1261,8 @@ static struct ps_device *dualsense_create(struct hid_device *hdev)ret=PTR_ERR(ds->gamepad);gotoerr;}+/* Use gamepad input device name as primary device name for e.g. LEDs */+ps_dev->input_dev_name=dev_name(&ds->gamepad->dev);ds->sensors=ps_sensors_create(hdev,DS_ACC_RANGE,DS_ACC_RES_PER_G,DS_GYRO_RANGE,DS_GYRO_RES_PER_DEG_S);
@@ -1223,6 +1290,11 @@ static struct ps_device *dualsense_create(struct hid_device *hdev)if(ret)gotoerr;+ret=ps_lightbar_register(ps_dev,&ds->lightbar,dualsense_lightbar_set_brightness);+if(ret)+gotoerr;++/* Set default lightbar color. */dualsense_set_lightbar(ds,0,0,128);/* blue */ret=ps_device_set_player_id(ps_dev);
Player LEDs are commonly found on game controllers from Nintendo and Sony
to indicate a player ID across a number of LEDs. For example, "Player 2"
might be indicated as "-x--" on a device with 4 LEDs where "x" means on.
This patch introduces LED_FUNCTION_PLAYER1-5 defines to properly indicate
player LEDs from the kernel. Until now there was no good standard, which
resulted in inconsistent behavior across xpad, hid-sony, hid-wiimote and
other drivers. Moving forward new drivers should use LED_FUNCTION_PLAYERx.
Note: management of Player IDs is left to user space, though a kernel
driver may pick a default value.
Signed-off-by: Roderick Colenbrander <roderick.colenbrander@sony.com>
---
Documentation/leds/well-known-leds.txt | 14 ++++++++++++++
include/dt-bindings/leds/common.h | 7 +++++++
2 files changed, 21 insertions(+)
@@ -16,6 +16,20 @@ but then try the legacy ones, too. Notice there's a list of functions in include/dt-bindings/leds/common.h .+* Gamepads and joysticks++Game controllers may feature LEDs to indicate a player number. This is commonly+used on game consoles in which multiple controllers can be connected to a system.+The "player LEDs" are then programmed with a pattern to indicate a particular+player. For example, a game controller with 4 LEDs, may be programmed with "x---"+to indicate player 1, "-x--" to indicate player 2 etcetera where "x" means on.+Input drivers can utilize the LED class to expose the individual player LEDs+of a game controller using the function "player".+Note: tracking and management of Player IDs is the responsibility of user space,+though drivers may pick a default value.++Good: "input*:*:player-{1,2,3,4,5}+ * Keyboards Good: "input*:*:capslock"
@@ -60,6 +60,13 @@#define LED_FUNCTION_MICMUTE "micmute"#define LED_FUNCTION_MUTE "mute"+/* Used for player LEDs as found on game controllers from e.g. Nintendo, Sony. */+#define LED_FUNCTION_PLAYER1 "player-1"+#define LED_FUNCTION_PLAYER2 "player-2"+#define LED_FUNCTION_PLAYER3 "player-3"+#define LED_FUNCTION_PLAYER4 "player-4"+#define LED_FUNCTION_PLAYER5 "player-5"+/* Miscelleaus functions. Use functions above if you can. */#define LED_FUNCTION_ACTIVITY "activity"#define LED_FUNCTION_ALARM "alarm"
The DualSense player LEDs were so far not adjustable from user-space.
This patch exposes each LED individually through the LED class. Each
LED uses the new 'player' function resulting in a name like:
'inputX:white:player-1' for the first LED.
Signed-off-by: Roderick Colenbrander <roderick.colenbrander@sony.com>
---
drivers/hid/hid-playstation.c | 85 ++++++++++++++++++++++++++++++++++-
1 file changed, 84 insertions(+), 1 deletion(-)
@@ -56,6 +56,13 @@ struct ps_calibration_data {intsens_denom;};+structps_led_info{+constchar*name;+constchar*color;+enumled_brightness(*brightness_get)(structled_classdev*cdev);+int(*brightness_set)(structled_classdev*cdev,enumled_brightness);+};+/* Seed values for DualShock4 / DualSense CRC32 for different report types. */#define PS_INPUT_CRC32_SEED 0xA1#define PS_OUTPUT_CRC32_SEED 0xA2
@@ -531,6 +538,32 @@ static int ps_get_report(struct hid_device *hdev, uint8_t report_id, uint8_t *bureturn0;}+staticintps_led_register(structps_device*ps_dev,structled_classdev*led,+conststructps_led_info*led_info)+{+intret;++led->name=devm_kasprintf(&ps_dev->hdev->dev,GFP_KERNEL,+"%s:%s:%s",ps_dev->input_dev_name,led_info->color,led_info->name);++if(!led->name)+return-ENOMEM;++led->brightness=0;+led->max_brightness=1;+led->flags=LED_CORE_SUSPENDRESUME;+led->brightness_get=led_info->brightness_get;+led->brightness_set_blocking=led_info->brightness_set;++ret=devm_led_classdev_register(&ps_dev->hdev->dev,led);+if(ret){+hid_err(ps_dev->hdev,"Failed to register LED %s: %d\n",led_info->name,ret);+returnret;+}++return0;+}+/* Register a DualSense/DualShock4 RGB lightbar represented by a multicolor LED. */staticintps_lightbar_register(structps_device*ps_dev,structled_classdev_mc*lightbar_mc_dev,int(*brightness_set)(structled_classdev*,enumled_brightness))
@@ -822,6 +855,35 @@ static int dualsense_lightbar_set_brightness(struct led_classdev *cdev,return0;}+staticenumled_brightnessdualsense_player_led_get_brightness(structled_classdev*led)+{+structhid_device*hdev=to_hid_device(led->dev->parent);+structdualsense*ds=hid_get_drvdata(hdev);++return!!(ds->player_leds_state&BIT(led-ds->player_leds));+}++staticintdualsense_player_led_set_brightness(structled_classdev*led,enumled_brightnessvalue)+{+structhid_device*hdev=to_hid_device(led->dev->parent);+structdualsense*ds=hid_get_drvdata(hdev);+unsignedlongflags;+unsignedintled_index;++spin_lock_irqsave(&ds->base.lock,flags);++led_index=led-ds->player_leds;+if(value==LED_OFF)+ds->player_leds_state&=~BIT(led_index);+else+ds->player_leds_state|=BIT(led_index);++ds->update_player_leds=true;+spin_unlock_irqrestore(&ds->base.lock,flags);++schedule_work(&ds->output_worker);+}+staticvoiddualsense_init_output_report(structdualsense*ds,structdualsense_output_report*rp,void*buf){
@@ -1297,6 +1372,14 @@ static struct ps_device *dualsense_create(struct hid_device *hdev)/* Set default lightbar color. */dualsense_set_lightbar(ds,0,0,128);/* blue */+for(i=0;i<ARRAY_SIZE(player_leds_info);i++){+conststructps_led_info*led_info=&player_leds_info[i];++ret=ps_led_register(ps_dev,&ds->player_leds[i],led_info);+if(ret<0)+gotoerr;+}+ret=ps_device_set_player_id(ps_dev);if(ret){hid_err(hdev,"Failed to assign player id for DualSense: %d\n",ret);
Player LEDs are commonly found on game controllers from Nintendo and Sony
to indicate a player ID across a number of LEDs. For example, "Player 2"
might be indicated as "-x--" on a device with 4 LEDs where "x" means on.
This patch introduces LED_FUNCTION_PLAYER1-5 defines to properly indicate
player LEDs from the kernel. Until now there was no good standard, which
resulted in inconsistent behavior across xpad, hid-sony, hid-wiimote and
other drivers. Moving forward new drivers should use LED_FUNCTION_PLAYERx.
Note: management of Player IDs is left to user space, though a kernel
driver may pick a default value.
Signed-off-by: Roderick Colenbrander <roderick.colenbrander@sony.com>
---
Documentation/leds/well-known-leds.txt | 14 ++++++++++++++
include/dt-bindings/leds/common.h | 7 +++++++
2 files changed, 21 insertions(+)
Pavel, could you please eventually Ack this, so that I can take it
together with the rest?
Thanks,
--
Jiri Kosina
SUSE Labs
From: Pavel Machek <hidden> Date: 2021-09-27 14:11:12
Hi!
quoted
Player LEDs are commonly found on game controllers from Nintendo and Sony
to indicate a player ID across a number of LEDs. For example, "Player 2"
might be indicated as "-x--" on a device with 4 LEDs where "x" means on.
This patch introduces LED_FUNCTION_PLAYER1-5 defines to properly indicate
player LEDs from the kernel. Until now there was no good standard, which
resulted in inconsistent behavior across xpad, hid-sony, hid-wiimote and
other drivers. Moving forward new drivers should use LED_FUNCTION_PLAYERx.
Note: management of Player IDs is left to user space, though a kernel
driver may pick a default value.
Signed-off-by: Roderick Colenbrander <roderick.colenbrander@sony.com>
---
Documentation/leds/well-known-leds.txt | 14 ++++++++++++++
include/dt-bindings/leds/common.h | 7 +++++++
2 files changed, 21 insertions(+)
Pavel, could you please eventually Ack this, so that I can take it
together with the rest?
I'm willing to take Documentation/leds/well-known-leds.txt part
through LED tree.
I don't like the common.h change; either avoid the define or put it
into your local header.
Best regards,
Pavel
--
http://www.livejournal.com/~pavelmachek
Hi Pavel,
On Mon, Sep 27, 2021 at 7:12 AM Pavel Machek [off-list ref] wrote:
Hi!
quoted
quoted
Player LEDs are commonly found on game controllers from Nintendo and Sony
to indicate a player ID across a number of LEDs. For example, "Player 2"
might be indicated as "-x--" on a device with 4 LEDs where "x" means on.
This patch introduces LED_FUNCTION_PLAYER1-5 defines to properly indicate
player LEDs from the kernel. Until now there was no good standard, which
resulted in inconsistent behavior across xpad, hid-sony, hid-wiimote and
other drivers. Moving forward new drivers should use LED_FUNCTION_PLAYERx.
Note: management of Player IDs is left to user space, though a kernel
driver may pick a default value.
Signed-off-by: Roderick Colenbrander <roderick.colenbrander@sony.com>
---
Documentation/leds/well-known-leds.txt | 14 ++++++++++++++
include/dt-bindings/leds/common.h | 7 +++++++
2 files changed, 21 insertions(+)
Pavel, could you please eventually Ack this, so that I can take it
together with the rest?
I'm willing to take Documentation/leds/well-known-leds.txt part
through LED tree.
I don't like the common.h change; either avoid the define or put it
into your local header.
If the LED_FUNCTION_PLAYER* defines don't belong in common with the
other LED_FUNCTION* ones, where should it go? The hid-nintendo driver
intends to use the same defines, so defining it local to each driver
isn't right. Not sure if there is a great place in the input system
either (you would then have to move scrolllock and all those other LED
definitions too.)
Thanks,
Roderick
Player LEDs are commonly found on game controllers from Nintendo and Sony
to indicate a player ID across a number of LEDs. For example, "Player 2"
might be indicated as "-x--" on a device with 4 LEDs where "x" means on.
This patch introduces LED_FUNCTION_PLAYER1-5 defines to properly indicate
player LEDs from the kernel. Until now there was no good standard, which
resulted in inconsistent behavior across xpad, hid-sony, hid-wiimote and
other drivers. Moving forward new drivers should use LED_FUNCTION_PLAYERx.
Note: management of Player IDs is left to user space, though a kernel
driver may pick a default value.
Signed-off-by: Roderick Colenbrander <roderick.colenbrander@sony.com>
---
Documentation/leds/well-known-leds.txt | 14 ++++++++++++++
include/dt-bindings/leds/common.h | 7 +++++++
2 files changed, 21 insertions(+)
Pavel, could you please eventually Ack this, so that I can take it
together with the rest?
I'm willing to take Documentation/leds/well-known-leds.txt part
through LED tree.
I don't like the common.h change; either avoid the define or put it
into your local header.
If the LED_FUNCTION_PLAYER* defines don't belong in common with the
other LED_FUNCTION* ones, where should it go? The hid-nintendo driver
intends to use the same defines, so defining it local to each driver
isn't right. Not sure if there is a great place in the input system
either (you would then have to move scrolllock and all those other LED
definitions too.)
Pavel, ping please? This has been lingering really for a bit too long.
Thanks,
--
Jiri Kosina
SUSE Labs
From: Pavel Machek <hidden> Date: 2021-10-13 07:48:55
Hi!
quoted
quoted
quoted
Player LEDs are commonly found on game controllers from Nintendo and Sony
to indicate a player ID across a number of LEDs. For example, "Player 2"
might be indicated as "-x--" on a device with 4 LEDs where "x" means on.
This patch introduces LED_FUNCTION_PLAYER1-5 defines to properly indicate
player LEDs from the kernel. Until now there was no good standard, which
resulted in inconsistent behavior across xpad, hid-sony, hid-wiimote and
other drivers. Moving forward new drivers should use LED_FUNCTION_PLAYERx.
Note: management of Player IDs is left to user space, though a kernel
driver may pick a default value.
Signed-off-by: Roderick Colenbrander <roderick.colenbrander@sony.com>
---
Documentation/leds/well-known-leds.txt | 14 ++++++++++++++
include/dt-bindings/leds/common.h | 7 +++++++
2 files changed, 21 insertions(+)
Pavel, could you please eventually Ack this, so that I can take it
together with the rest?
I'm willing to take Documentation/leds/well-known-leds.txt part
through LED tree.
I don't like the common.h change; either avoid the define or put it
into your local header.
If the LED_FUNCTION_PLAYER* defines don't belong in common with the
other LED_FUNCTION* ones, where should it go? The hid-nintendo driver
intends to use the same defines, so defining it local to each driver
isn't right. Not sure if there is a great place in the input system
either (you would then have to move scrolllock and all those other LED
definitions too.)
Ok, so let's put it in the common place. I'll take this patch through
LED tree if you resubmit it. You still may want to use local defines
so you can apply the other patches without waiting.
Best regards,
Pavel
--
http://www.livejournal.com/~pavelmachek
On Wed, Oct 13, 2021 at 12:48 AM Pavel Machek [off-list ref] wrote:
Hi!
quoted
quoted
quoted
quoted
Player LEDs are commonly found on game controllers from Nintendo and Sony
to indicate a player ID across a number of LEDs. For example, "Player 2"
might be indicated as "-x--" on a device with 4 LEDs where "x" means on.
This patch introduces LED_FUNCTION_PLAYER1-5 defines to properly indicate
player LEDs from the kernel. Until now there was no good standard, which
resulted in inconsistent behavior across xpad, hid-sony, hid-wiimote and
other drivers. Moving forward new drivers should use LED_FUNCTION_PLAYERx.
Note: management of Player IDs is left to user space, though a kernel
driver may pick a default value.
Signed-off-by: Roderick Colenbrander <roderick.colenbrander@sony.com>
---
Documentation/leds/well-known-leds.txt | 14 ++++++++++++++
include/dt-bindings/leds/common.h | 7 +++++++
2 files changed, 21 insertions(+)
Pavel, could you please eventually Ack this, so that I can take it
together with the rest?
I'm willing to take Documentation/leds/well-known-leds.txt part
through LED tree.
I don't like the common.h change; either avoid the define or put it
into your local header.
If the LED_FUNCTION_PLAYER* defines don't belong in common with the
other LED_FUNCTION* ones, where should it go? The hid-nintendo driver
intends to use the same defines, so defining it local to each driver
isn't right. Not sure if there is a great place in the input system
either (you would then have to move scrolllock and all those other LED
definitions too.)
Ok, so let's put it in the common place. I'll take this patch through
LED tree if you resubmit it. You still may want to use local defines
so you can apply the other patches without waiting.
Thanks for your reply. If we want to decouple the series between LEDs
and HID, I don't mind. Not sure what is preferred by Benjamin/Jiri
either a temporary local define (#ifndef LED_FUNCTION_PLAYER1 #define
LED_FUNCTION_PLAYER1 "player-1"..) or just temporary hard coding the
string. Neither is that nice. It is only a few lines of code, so since
defines are the long-term way maybe a local define is okay.
Ok, so let's put it in the common place. I'll take this patch through
LED tree if you resubmit it. You still may want to use local defines
so you can apply the other patches without waiting.
Pavel, why complicate it so much? Given how trivial the patch is, the
easiest way is what's usually done in such cases (where substantial patch
depends on a tiny trivial change elsewhere) -- take it through HID tree
with your Reviewed-by / Acked-by:.
Do you see any issue with that?
Thanks,
--
Jiri Kosina
SUSE Labs
Ok, so let's put it in the common place. I'll take this patch through
LED tree if you resubmit it. You still may want to use local defines
so you can apply the other patches without waiting.
Pavel, why complicate it so much? Given how trivial the patch is, the
easiest way is what's usually done in such cases (where substantial patch
depends on a tiny trivial change elsewhere) -- take it through HID tree
with your Reviewed-by / Acked-by:.
Do you see any issue with that?
Pavel, another week has passed. I am considering just including the
trivial LED #define additions and take them through hid.git unless I hear
from you today.
Thanks,
--
Jiri Kosina
SUSE Labs
From: Pavel Machek <hidden> Date: 2021-10-22 07:21:19
On Fri 2021-10-22 08:42:06, Jiri Kosina wrote:
On Mon, 18 Oct 2021, Jiri Kosina wrote:
quoted
quoted
Ok, so let's put it in the common place. I'll take this patch through
LED tree if you resubmit it. You still may want to use local defines
so you can apply the other patches without waiting.
Pavel, why complicate it so much? Given how trivial the patch is, the
easiest way is what's usually done in such cases (where substantial patch
depends on a tiny trivial change elsewhere) -- take it through HID tree
with your Reviewed-by / Acked-by:.
Do you see any issue with that?
Pavel, another week has passed. I am considering just including the
trivial LED #define additions and take them through hid.git unless I hear
from you today.
I'd prefer not to deal with rejects / common immutable branches / etc.
You don't _need_ the defines at all, and you don't need them in the
common place. Just merge the patch without the defines. I'll merge the
defines. That seems like least complex solution to me.
Pavel
--
http://www.livejournal.com/~pavelmachek
Ok, so let's put it in the common place. I'll take this patch through
LED tree if you resubmit it. You still may want to use local defines
so you can apply the other patches without waiting.
Pavel, why complicate it so much? Given how trivial the patch is, the
easiest way is what's usually done in such cases (where substantial patch
depends on a tiny trivial change elsewhere) -- take it through HID tree
with your Reviewed-by / Acked-by:.
Do you see any issue with that?
Pavel, another week has passed. I am considering just including the
trivial LED #define additions and take them through hid.git unless I hear
from you today.
I'd prefer not to deal with rejects / common immutable branches / etc.
I am not proposing common immutable branch; and if there are going to be
trivial cotext conflicts because of that, those will be sorted out by
Linus without you even noticing.
You don't _need_ the defines at all
As I've already pointed to you in several threads, we have quite a lot of
code queued that does depend on the defines.
and you don't need them in the common place.
I compltely fail to see the point of having them teporarily local before
you manage to finally do something about the trivial addition to proper
shared header.
Just merge the patch without the defines. I'll merge the defines. That
seems like least complex solution to me.
That would cause my tree not to build.
--
Jiri Kosina
SUSE Labs
Ok, so let's put it in the common place. I'll take this patch through
LED tree if you resubmit it. You still may want to use local defines
so you can apply the other patches without waiting.
Pavel, why complicate it so much? Given how trivial the patch is, the
easiest way is what's usually done in such cases (where substantial patch
depends on a tiny trivial change elsewhere) -- take it through HID tree
with your Reviewed-by / Acked-by:.
Do you see any issue with that?
Pavel, another week has passed. I am considering just including the
trivial LED #define additions and take them through hid.git unless I hear
from you today.
I'd prefer not to deal with rejects / common immutable branches / etc.
I am not proposing common immutable branch; and if there are going to be
trivial cotext conflicts because of that, those will be sorted out by
Linus without you even noticing.
quoted
You don't _need_ the defines at all
As I've already pointed to you in several threads, we have quite a lot of
code queued that does depend on the defines.
quoted
and you don't need them in the common place.
I compltely fail to see the point of having them teporarily local before
you manage to finally do something about the trivial addition to proper
shared header.
quoted
Just merge the patch without the defines. I'll merge the defines. That
seems like least complex solution to me.
That would cause my tree not to build.
In other words: could you please elaborate what exact issue are you trying
to avoid by not providing your Acked-by: and letting it go through hid.git
with all the rest of the code depending on it?
--
Jiri Kosina
SUSE Labs
From: Pavel Machek <hidden> Date: 2021-10-25 09:19:36
Hi!
quoted
quoted
quoted
Pavel, another week has passed. I am considering just including the
trivial LED #define additions and take them through hid.git unless I hear
from you today.
I'd prefer not to deal with rejects / common immutable branches / etc.
I am not proposing common immutable branch; and if there are going to be
trivial cotext conflicts because of that, those will be sorted out by
Linus without you even noticing.
quoted
You don't _need_ the defines at all
As I've already pointed to you in several threads, we have quite a lot of
code queued that does depend on the defines.
quoted
and you don't need them in the common place.
I compltely fail to see the point of having them teporarily local before
you manage to finally do something about the trivial addition to proper
shared header.
quoted
Just merge the patch without the defines. I'll merge the defines. That
seems like least complex solution to me.
That would cause my tree not to build.
In other words: could you please elaborate what exact issue are you trying
to avoid by not providing your Acked-by: and letting it go through hid.git
with all the rest of the code depending on it?
I'm trying to avoid merge conflict.
I believe open-coding string for a while is acceptable price to pay
for that, and I'd prefer that solution.
If you can promise that no conflicts or other problems will happen for
either me or Linus... go ahead and merge the patch.
Best regards,
Pavel
--
http://www.livejournal.com/~pavelmachek
In other words: could you please elaborate what exact issue are you trying
to avoid by not providing your Acked-by: and letting it go through hid.git
with all the rest of the code depending on it?
I'm trying to avoid merge conflict.
What's wrong with this kind of conflict?
That's what linux-next is for; if there is a conflict, we'll be notified
and if needed and we could indicate this to Linus during merge window. The
trivial ones he resolves without any issues. And we'll know exactly what
kind of conflict (if any at all) is there beforehand from linux-next.
I believe open-coding string for a while is acceptable price to pay for
that, and I'd prefer that solution.
I don't. It's a mess. If you'd then for some reason change your mind on
the last minute and did the numbering differently in your tree, it will go
by unnoticed, while when the real conflict happens, it'll be a clear sign
that there is a thing to resolve.
Conflict is not a bad thing per se that needs to be avoided at all costs.
Conflict clearly shows the dependency between the trees and is trivially
resolved.
If you can promise that no conflicts or other problems will happen for
either me or Linus...
Linus doesn't care about this kind of hypothetical conflict if there is a
reason for it, and he resolves them on a daily basis, just check the git
history.
go ahead and merge the patch.
Can I take this as your Acked-by: then, so that I can finally apply it and
get the needed linux-next coverage before merge window opens?
--
Jiri Kosina
SUSE Labs